






































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
lógica de programação de computadores
Tipologia: Manuais, Projetos, Pesquisas
1 / 78
Esta página não é visível na pré-visualização
Não perca as partes importantes!
1.1. Noções de Lógica
A origem da palavra lógica vem do grego “logos” (Ciência do raciocínio e da demonstração). O uso corriqueiro da palavra lógica está normalmente relacionado à coerência e racionalidade. Frequentemente associa-se lógica apenas à matemática, não percebendo sua aplicabilidade e relação com as demais ciências. Poderíamos dizer também que a lógica é a “arte de bem pensar”, que é a “ciência das formas do pensamento”. Visto que a forma mais complexa do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Podemos ainda dizer que a lógica tem em vista a “ordem da razão”. Isto dá a entender que a nossa razão pode funcionar desordenadamente. Por isso a lógica estuda e ensina a colocar “ordem no pensamento”. Sempre que pensamos, a lógica ou a ilógica necessariamente nos acompanha. Podemos perceber a importância da lógica em nossa vida, não só na teoria, como na prática, já que, quando queremos pensar, falar, escrever ou agir corretamente, precisamos colocar “ordem no pensamento”, isto é, utilizar lógica. Lógica de programação significa o uso correto das leis do pensamento, da “ordem da razão” e de processos de raciocínio e simbolização formais na programação de computadores, objetivando racionalidade e o desenvolvimento de técnicas que cooperem para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar.
1.2. Conceituação de Algoritmo
Segundo Forbellone e Eberspacher (2000) algoritmo “pode ser definido como uma sequência de passos que visam atingir um objetivo bem definido”. De acordo com Farrer (1989) algoritmo é “a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações”. Salvetti e Barbosa (1998) afirmam que algoritmo é “uma sequência finita de instruções ou operações básicas (operações definidas sem ambiguidade e executáveis em tempo finito dispondo- se apenas de lápis e papel) cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância”. Resumindo: algoritmo é uma sequência ordenada, e sem ambiguidade (duplo sentido), de comandos que, obedecidos, resultam numa sucessão finita e previsível de ações.
1.3. Algoritmizando a Lógica
Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido na Lógica de Programação e, dessa forma, permite-nos abstrair de uma série de detalhes computacionais que podem ser acrescentados mais tarde. Quando se alcança uma solução algorítmica para um problema, esta pode ser traduzida para qualquer linguagem de programação e ser agregada das funcionalidades disponíveis nos diversos ambientes, ou seja, a codificação em uma linguagem de programação acaba se tornando uma simples transcrição de palavras-chave.
Após ter dado o conceito de algoritmo, iremos introduzir alguns conceitos, regras e convenções para o seu desenvolvimento. Nesse curso, trabalharemos em nível de memória RAM (Random Access Memory – Memória de Acesso Aleatório), ou seja, não haverá armazenamento permanente de dados. A memória armazena informações em endereços específicos. Quanto maior for a capacidade de armazenamento da memória, maior a sua quantidade de endereços. A distribuição desses armazenamentos é realizada pelo programa executável, que será gerado a partir de código fonte. A memória é semelhante a um arquivo com várias gavetas (ou divisões), sendo que cada divisão, por analogia, representa um endereço específico de memória. A memória de um computador armazena os dados fazendo referência através dos endereços. Quando se cria um algoritmo e o seu respectivo programa, o programador não se preocupa em qual endereço ficará armazenada uma determinada informação, pois ele utiliza as variáveis de memória que substituem os respectivos endereços da memória de trabalho. Cada espaço de memória possui um nome que é criado pelo próprio programador e para criar esses nomes, existem regras, normas, porém isto não significa que estas normas são únicas, mas contribuem para o funcionamento do algoritmo.
2.1. Regra para Criação/Formação de Identificadores
Um identificador é o nome escolhido para os espaços que serão alocados na memória, ou seja, o nome das constantes e/ou variáveis, e também para tipos definidos, procedimentos e funções, tendo as seguintes características: É formado por um ou mais caracteres; O primeiro caracter deve, “aconselhavelmente”, ser uma letra; Não serão usados acentos, nem Ç, nem espaço em branco ( ); Não é permitido o uso de alguns símbolos especiais, tais como: * $ %! { } [ # @ / = | ]. Exceção : único símbolo especial permitido: sublinha ou underscore ou underline, exemplo: Nome_Pai; É importante que seja seguido um padrão para os identificadores, onde possam ser destacados das palavras reservadas existentes na linguagem estruturada, exemplo: Primeira letra da palavra em maiúscula e as restantes minúsculas; Todas as letras maiúsculas; Todas as letras minúsculas.
2.2. Tipos Básicos de Dados
Definem a estrutura do dado a ser utilizado.
2.2.1. Numérico Iremos dividir o tipo numérico em duas partes (inteiro e real), descritas a seguir:
2.2.1.1. Inteiro Todo e qualquer valor numérico que pertença ao conjunto dos números inteiros relativos (negativa, nula ou positiva), ou seja não fracionários. Os números inteiros, em algoritmo, vão de
2.2.1.2. Real Todo e qualquer valor numérico que pertença ao conjunto dos números reais (negativa, nula, positiva), poderão ser números inteiros ou com partes fracionárias. Os números reais, em algoritmo vão de 2,910-39^ até 1,710^38. Exemplos: -4,3; -46; 38; 95,6; 0; 32,5.
2.2.2. Literal Este tipo de dado é definido por uma sequência de caracteres (letras, dígitos, e caracteres especiais), devendo ser colocados entre aspas duplas, para que não seja confundido com outro tipo de dados. Exemplos: “falso”; “1481”; “29/02/2000”; “PROFESSOR”; “Linda!” No exemplo acima o literal “1481”, não poderá entrar nos cálculos, pois não é inteiro ou real; assim como a expressão “falso”, também não pode ser confundida como um valor lógico.
2.2.3. Lógico Identifica valores lógicos: falso ou verdadeiro. Sendo representado pelas palavras falso e verdadeiro (minúsculas).
A tabela abaixo resume os tipos de dados mais comuns e sua definição nas linguagens mais conhecidas: Tipo Exemplo Basic (VB) Pascal/Delphi Java/C++ inteiro 3; 56; 400 integer integer int real 5.687; 54,8 single real Float literal “X”; “5”; “Palavra” string string String lógico verdadeiro; falso. V; F true / false true / false true / false
2.3. Conceituação de Constantes e Variáveis
2.3.1. Constantes
Constante é um valor fixo que não se altera durante a execução do algoritmo, podendo ser um valor numérico, um valor lógico ou uma sequência de caracteres (literal).
2.3.2. Variáveis
É a representação de um valor (inteiro, real, lógico ou literal), cujo conteúdo pode variar durante a execução do algoritmo. Apesar de assumir diversos valores, a variável só pode armazenar um valor a cada instante.
2.4. Como Fazer as Declarações
2.4.1. Declaração de Variáveis
Como já sabemos, os computadores manipulam dados através dos programas. Mas como os programas trabalham com estes dados? Os dados ficam na memória, portanto o programa precisa de uma forma de acessar esta memória e, consequentemente, os dados. Os programas acessam os dados através de variáveis. Portanto, uma variável corresponde a uma posição de memória, cujo conteúdo pode variar ao longo da execução do programa. Toda variável possui um nome ou identificador. As variáveis só podem armazenar valores de um mesmo tipo, de forma que elas são classificadas como: inteiro, real, lógico ou literal. Para declarar uma variável utilize o seguinte método:
Determine qual é o tipo de informação presente nos itens sublinhados (isoladamente) abaixo (inteiro, real, literal ou lógico): a) O céu hoje não apresenta estrelas! b) Caio desceu 50 degraus, pois o elevador estava com defeito. c) Carolina levou 2 horas e meia para chegar ao trabalho, tamanho era o congestionamento. d) Havia escrito em um cartaz “Preserve o meio ambiente!” e) Manoel ganhou sua 1ª medalha na competição por ter alcançado a marca de 40,1 segundos nos 200 metros livre.
Verifique se os nomes dos identificadores são válidos marcando V ou F: a) Sexo ( ) e) Localidade ( ) i) Endereco ( ) b) 12Nome ( ) f) Nota1 ( ) j) Valor $ ( ) c) Nota ( ) g) Percentagem% ( ) k) Numero ( ) d) Sexo=M/F ( ) h) Nome Pai ( ) l) NomeAluno ( )
Declare as variáveis para os itens abaixo que conterão os seguintes dados: a) O nome de uma pessoa. b) O seu salário bruto. c) O número de filhos. d) Seu telefone. Obs.: Não esqueça de usar as regras para formar identificadores.
2.5. Comentários
Como podemos perceber, é de grande importância que um algoritmo seja bastante claro e de fácil entendimento. Para nos auxiliar nessa tarefa, usaremos comentários. Os comentários podem ser colocados em qualquer ponto do algoritmo que se faça necessário. Ele é um texto, ou apenas uma frase, delimitado por chaves, que serve para explicar a finalidade do uso de um comando, o conteúdo de uma variável ou quaisquer informações que precisem ser comentadas. Exemplos: declare SalMin: real {salário mínimo} SalBruto: real {salário bruto} Soma: real {resultado de uma adição}
ou
declare SalMin, SalBruto, Soma: real {SalMin: salário mínimo; SalBruto: salário bruto e Soma: resultado de uma adição}
2.6. Comandos
Por definição, comando é a descrição de uma ação a ser executada em um dado momento.
2.6.1. Atribuição
Este comando permite que se forneça um valor a uma certa constante ou variável, onde a natureza deste valor tem que ser compatível com o tipo da variável ou do tipo básico que está sendo armazenado. Sintaxe : Identificador valor
Onde : Identificador: é o nome da constante ou variável à qual está sendo atribuído o valor; : é o símbolo de atribuição que permite que o identificador receba um determinado valor (conteúdo); valor: pode ser inteiro, real, lógica ou literal.
2.6.2. Entrada
Sabe-se que as unidades de entrada (exemplo: teclado) são dispositivos que possibilitam a comunicação entre o usuário e o computador, e aqui serão representadas pelo comando leia, que permite ao usuário informar o conteúdo a ser lido pelo computador e armazenado em uma variável. Um comando de entrada é construído de acordo com a seguinte regra: Sintaxe : leia Lista_De_Identificadores
Onde : leia: é uma palavra reservada, que indica que o valor será informado pelo usuário; Lista_De_Identificadores: são os nomes das variáveis separados por vírgula.
2.6.3. Saída
Os comandos de saída de dados permitem mostrar ao usuário, através de um dispositivo de saída (exemplos: monitor e impressora), mensagens ou resultados obtidos. Sintaxe : escreva “mensagens ”, Lista_De_Identificadores escreva Lista_De_Identificadores, “ mensagens”
Onde : escreva: é uma palavra reservada, que apresenta mensagens (que deverão estar entre aspas, caso elas existam) e/ou o conteúdo de variáveis, para o usuário, simulando o monitor do microcomputador; “mensagens”: frases ou textos que serão apresentados pelo dispositivo de saída, sendo opcional o seu uso. Pode vir antes, entre ou depois dos identificadores; Lista_De_Identificadores: são os nomes das variáveis e/ou constantes separados por vírgula.
Apresente o seguinte algoritmo: a) Ler 2 valores, no caso variáveis A e B. b) Efetuar a soma das variáveis A e B implicando seu resultado na variável X. c) Apresentar o valor da variável X após a soma dos dois valores indicados.
A fórmula para calcular a área de uma circunferência é: A = ¶R^2. Sendo que o valor de ¶ = 3.14159 basta estabelecer: a) Ler um valor para raio, no caso a variável R. b) Efetuar o cálculo da área, elevando o valor de R ao quadrado e multiplicando por ¶. c) Apresentar o valor da variável A.
Leia duas variáveis A e B. A seguir, calcule a soma, a diferença, o produto e a divisão entre elas. A seguir mostre o resultado de cada conta com as mensagens correspondentes.
Leia duas notas de um aluno. A seguir, calcule a média do aluno, sabendo que a primeira nota tem peso 3,5 e a segunda nota tem peso 7,5.
Escreva um algoritmo que leia o número de um funcionário, seu número de horas trabalhadas, o valor que recebe por hora e calcula o salário desse funcionário. A seguir, mostre o número e o salário do funcionário.
Faça um algoritmo que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu salário no final do mês.
Desenvolva um algoritmo que leia o código de uma peça 1, o número de peças 1, o valor unitário de cada peça 1, o código de uma peça 2, o número de peças 2, o valor unitário de cada peça 2 e calcula e mostra o valor a ser pago.
Faça um algoritmo para determinar o consumo médio de um automóvel sendo fornecidos a distância total percorrida pelo automóvel e o total de combustível gasto.
Crie um algoritmo que receba do usuário o valor de uma determinada compra e a quantidade de parcelas em que se quer dividir este valor. O algoritmo deve calcular o valor de cada parcela e escrever o valor da compra e valor de cada parcela. Considere que não será acrescido nenhum juro no valor total.
Faça um algoritmo que leia a idade de uma pessoa em anos, calcule e escreva quantos dias ele viveu, considerar o ano com 365,25 dias.
Uma instituição de ensino realizou uma pesquisa sobre os eleitores de um município que participaram da última eleição. Faça um algoritmo que leia o total de votos brancos, nulos e válidos. Calcule e escreva o percentual que cada um representa em relação ao total de eleitores.
Verônica distribui sua renda mensal da seguinte forma: 10% saúde, 25% educação, 30% alimentação, 10% vestuário, 5% lazer, 20% outros. Faça um algoritmo que leia a renda mensal líquida de Verônica, calcule e escreva o valor aplicado em cada item acima citado.
Construa um algoritmo para pagamento de comissão de vendedores de peças, levando-se em consideração que sua comissão será de 3% do total da venda e que você tem os seguintes dados:
Identificação do vendedor; Código da peça; Preço unitário da peça; Quantidade vendida. Escreva a identificação do vendedor e o valor de sua comissão.
Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. Obs.: Área = ( Base * Altura ) / 2
Dado as seguintes informações de um funcionário: Nome, idade, cargo e o seu salário bruto. Considere: a) O salário bruto teve um reajuste de 38%; b) O funcionário receberá uma gratificação de 20% do salário bruto; c) O salário total é descontado em 15%. Faça um algoritmo para escrever: Nome, idade e cargo; Salário bruto; Salário líquido.
Uma empresa tem para um determinado funcionário uma ficha contendo o nome, número de horas trabalhadas e o número de dependentes de um funcionário. Considerando que: a) A empresa paga 20 reais por hora e 40 reais por dependentes. b) Sobre o salário são feitos descontos de 8,5% para o INSS e 5% para IR. Faça um algoritmo para ler o nome, número de horas trabalhadas e número de dependentes de um funcionário. Após a leitura, escreva qual o nome, salário bruto, os valores descontados para cada tipo de imposto e finalmente qual o salário líquido do funcionário.
O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo que leia o nome do automóvel e o preço de fábrica. Escreva o nome do automóvel e o preço final.
Faça um algoritmo que receba o valor de um depósito e o valor da taxa de juros, calcule e mostre o valor do rendimento e o valor total depois do rendimento.
A conta de água de uma residência é o resultado da soma da tarifa de água com a tarifa de esgoto. Faça um algoritmo que leia a tarifa de água, calcule a tarifa de esgoto (80% da tarifa de água) e escreva o valor da conta a ser paga.
Crie um algoritmo que leia a quantidade de presenças e faltas de um aluno. Calcule e escreva a sua porcentagem de presenças e faltas em relação ao total de aulas dadas.
As Centrais Elétricas de Goiás necessita que você crie um algoritmo que: Leia: a) O número da conta, o valor do Kwh, a quantidade de Kwh consumido. b) Calcule e escreva: c) O valor a pagar; d) O valor do ICMS, sabendo que o ICMS é 25% do valor a pagar; e) O número da conta.
b) Suponha que serão lidos os valores 10 e 5 para as variáveis L e H respectivamente: algoritmo declare L, H, A: real escreva "Digite dois valores:" leia L, H A LH escreva L, "", H, "=", A fim _ algoritmo
c) Suponha que será lido o valor 25 para a variável X: algoritmo declare X, Y: real escreva "Digite um número:" leia X Y 2X escreva "2", X, "=", Y fim _ algoritmo
d) Suponha que serão lidos 10 e 20 para as variáveis A e B respectivamente: algoritmo declare A, B, C: real escreva "Digite dois números:" leia A, B C (A+B)B escreva "(", A, "+", B, ")", B, "=", C fim _ algoritmo
e) Suponha que serão lidos os valores "BERNARDES" e "FÁTIMA" para as variáveis SOBRE e NOME respectivamente: algoritmo declare Nome, Sobre, Nomcomp: literal escreva "Digite o nome:" leia Nome escreva "Digite o sobrenome:" leia Sobre Nomcomp Nome+" "+Sobre escreva "O nome completo é: ", Nomcomp fim _ algoritmo
f) Faça um algoritmo/programa que leia dois números, calcule e escreva a soma deles. algoritmo declare Nro1, Nro2, Soma: real escreva "Digite dois números:" leia Nro1, Nro Soma Nro1 + Nro escreva Nro1, "+", Nro2, "=", Soma fim _ algoritmo
g) Faça um algoritmo/programa que leia três números, calcule e escreva a multiplicação deles. algoritmo declare Nro1, Nro2, Nro3, Multiplicacao: real escreva "Digite três números:" leia Nro1, Nro2, Nro Multiplicacao Nro1 * Nro2 * Nro escreva Nro1, "", Nro2, "", Nro3, "=", Multiplicacao fim _ algoritmo
h) Faça um algoritmo/programa que leia a idade do pai e a idade do filho, calcule e escreva a diferença de idade dos dois. algoritmo declare IdadePai, IdadeFilho, Diferenca: inteiro escreva "Digite a idade do pai:" leia IdadePai escreva "Digite a idade do filho:" leia IdadeFilho Diferenca IdadePai - IdadeFilho escreva "A diferença de idade do pai para o filho são de ", Diferenca, " anos." fim _ algoritmo
i) Faça um algoritmo/programa que leia a idade de uma pessoa em anos, calcule e escreva quantos dias ele viveu, considerar o ano com 365,25 dias. algoritmo declare Idade : inteiro DiasVividos : real escreva "Digite a idade da pessoa:" leia Idade DiasVividos Idade * 365, escreva Idade, " anos corresponde a ", DiasVividos, " dias vividos." fim _ algoritmo
3.1. Expressões Aritméticas
São expressões que utilizam operadores aritméticos e funções aritméticas envolvendo constantes e variáveis numéricas.
3.1.1. Operadores Aritméticos
Operador aritmético Operação Descrição
3.1.2. Funções Aritméticas
Função aritmética Sintaxe Descrição Valor absoluto Abs(x) Retorna o valor absoluto do número x Sinal Sinal(x) Retorna o valor -1, +1 ou zero conforme o valor de x seja negativo, positivo ou igual a zero Arredondamento Arredonda(x) Retorna o valor arredondado do número x Trunca Trunca(x) Retorna a parte inteira de um número fracionário Raiz Quadrada RzQd(x) Retorna o valor da raiz quadrada do número x Potenciação Elev(x,y) Semelhante ao operador ^, retorna o resultado do número x elevado ao número y
Divisão inteira Div(x,y) Faz a divisão inteira do número x pelo número y, ou seja, retorna somente a parte inteira da divisão Resto da divisão inteira Resto(x,y) Retorna o resto da divisão inteira do número x pelo número y
3.2. Expressões Literais
São expressões com constantes e/ou variáveis literais que tem como resultado valores literais. Diferentemente das expressões aritméticas, as expressões literais aceitam somente o operador de concatenação.
Operador literal Operação Descrição
3.3. Expressões Relacionais
São expressões compostas por outras expressões ou variáveis numéricas com operadores relacionais. As expressões relacionais retornam valores lógicos.
Operador relacional Operação Descrição = Igualdade Verifica se dois valores são iguais e retorna um valor lógico <> Diferença Verifica se dois valores são diferentes e retorna um valor lógico
< Menor que Verifica se um número é menor que outro e retorna um valor lógico
Maior que Verifica se um número é maior que outro e retorna um valor lógico <= Menor ou igual a
Verifica se um número é menor ou igual a outro e retorna um valor lógico
= Maior ou igual a
Verifica se um número é maior ou igual a outro e retorna um valor lógico
3.4. Expressões Lógicas
São expressões compostas por expressões relacionais com operadores lógicos. As expressões lógicas retornam valores lógicos.
3.4.1. Operadores Lógicos
Operador lógico Operação Simbologia Descrição
e Intersecção ou conjunção
Retorna o valor lógico resultante da intersecção de valores lógicos de expressões relacionais. V e V = V V e F = F F e V = F F e F = F
ou União ou disjunção v
Retorna o valor lógico resultante da união de valores lógicos de expressões relacionais. V ou V = V V ou F = V F ou V = V F ou F = F
não Negação! ~
Retorna o valor lógico resultante da contradição de valores lógicos de expressões relacionais. não V = F não F = V
Tabela de Prioridades entre Função e Operações Aritméticas, Relacionais e Lógicas 1º Parênteses 2º Função aritmética (Div, Resto...) 3º Potenciação e radiciação 4º Multiplicação e divisão 5º Adição e subtração 6º Relacionais (=, <>, >...) 7º Negação (não) 8º Conjunção (e) 9º Disjunção (ou)