Introdução a Lógica de Programação
|
|
|
- Rubens Aires Rosa
- 9 Há anos
- Visualizações:
Transcrição
1 UNIERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE ENGENHARIA MECÂNICA E MECATRÔNICA Disciplina: GEM03 (Algoritmos e Programação de Computadores) Prof: Ezequiel Roberto Zorzal Introdução a Lógica de Programação Podemos relacionar lógica com a correção do pensamento, pois uma de suas preocupações é determinar quais operações são válidas e quais não são, fazendo análises das formas e leis do pensamento. Lógica: é a arte de bem pensar Ciência das formas do pensamento. Lógica do dia-a-dia: a) 1. A gaveta está fechada; 2. A caneta está dentro da gaveta; 3. Precisamos primeiro abrir a gaveta para depois pegar a caneta. b) 1. Fulano é engenheiro; 2. Todo engenheiro é estudioso; 3. Logo, Fulano é estudioso. c) 1. Anacleto é mais velho que Felisberto; 2. Felisberto é mais velho que Marivaldo; 3. Portanto, Anacleto é mais velho que Marivaldo. F ou = 0 ou 1 Problemas de lógica Exemplo 1 1. Lisa tem 13 anos; 2. irgínia não tem 12 anos; 3. A criança que comeu uma maçã não tem 11 anos; 4. Lisa não comeu nem o biscoito nem a maça. Lanche Biscoito Chocolate Maçã 11 anos Idade 12 anos 13 anos Nome Lanche Idade Alexandre Maçã 12 anos Lisa Chocolate 13 anos irgínia Biscoito 11 anos Nome Idade Alexandre Lisa irgínia anos anos anos Exemplo Marli tomou chololate quente; 2. A mulher que comprou um casaco de lã, tomou uma sopa; 3. Regina comprou um casaco de camurça.
2 Bebida Chá Chocolate Quente Sopa Casaco Camurça Couto Lã Nome Bebida Casaco Marli Chocolate Quente Couro Paula Sopa Lã Regina Chá Camurça Nome Casaco Marli Paula Regina Camurça Couro Lã Malba Tahan O homem que calculava Haviam 5 escravas de um poderoso califa. Três delas tem olhos azuis e nunca falam a verdade. As outras duas tem olhos negros e só dizem verdade. As escravas se apresentaram com os rostos cobertos por véus e Beremiz foi desafiado a determinar a cor dos olhos de cada uma, tendo o direito a fazer três perguntas, não mais do que uma pergunta a cada escrava. Para facilita as referencias, chamaremos as 5 escravas A,B,C,D e E. Beremiz começou perguntando à escrava A: "Qual a cor dos seus olhos?" Para seu desespero, ela respondeu em chinês, língua que ele não entendia, por isso protestou. Seu protesto não foi aceito, mas ficou decidido que as respostas seguintes seriam em árabe. Em seguida, lê perguntou a B: "Qual foi a resposta que A me deu?" B respondeu: "Que seus olhos eram azuis". Finalmente, Beremiz perguntou a C: "Quais as cores dos olhos de A e B?" A resposta de C foi: "Ä tem olhos pretos e B tem olhos azuis". Neste ponto, o homem que calculava concluiu. "A tem olhos pretos, B azuis, C pretos, D azuis e E azuis". Acertou e todos ficaram maravilhados. Explicação para a dedução de Beremiz: Em primeiro lugar, se perguntarmos a qualquer das cinco escravas qual a cor dos seus olhos, sua resposta só poderá ser "Negros", tenha ela olhos azuis ou negros, pois na primeira hipótese ela mentirá e na segunda dirá a verdade. Logo B mentiu e, portanto seus olhos são azuis. Como C disse que os olhos de B eram azuis, C falou a verdade, logo seus olhos são negros. Também porque C fala a verdade, os olhos de A são negros, Como somente duas escravas tem olhos negros, segue-se que os olhos de D e E são azuis. A B C D E Negros Azuis Negros Azuis Azuis Mas e a lógica de programação? Significa o uso correto das leis do pensamento, da ordem da razão e 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. O objetivo principal do estudo da lógica de programação é a construção de algoritmos coerentes e válidos. Afinal o que é algoritmo? Algoritmo: É uma seqüência de passos que visam atingir um objetivo bem definido. É uma seqüência finita e bem definida de passos que, quando executados, realizam uma tarefa específica ou resolvem um problema. Exemplo: Receitas de culinária, manual de instruções, coreografia, etc. Propriedades do algoritmo: Composto por ações simples e bem definidas (Não pode haver ambigüidade, ou seja, cada instrução representa uma ação que deve ser entendida e realizada); Seqüência ordenada de ações; Conjunto finito de passos. Como saber se já temos detalhes suficientes para o algoritmo ser entendido e realizado? R: Depende da relação de instruções reconhecidas pelo agente executor do algoritmo. Exemplo:
3 Receita de bolo Ser Humano; Algoritmo Computacional Computador. Jogo a travessia do rio As regras são as seguintes: 1 - Somente o pai, a mãe e o policial sabem pilotar o barco; 2 - A mãe não pode ficar sozinha com os filhos; 3 - O pai não pode ficar sozinho com as filhas; 4 - O prisioneiro não pode ficar sozinho com nenhum integrante da família; 5 - O barco só pode transportar 2 pessoas por vez. 6 - ocê pode ir e vir com as pessoas quantas vezes precisar. Solução: iagem Ida olta 1 Polícia Policia Prisioneiro 2 Policia Filha 1 Policia Prisioneiro 3 Mãe Mãe Filha 2 4 Mãe Pai Pai 5 Policia Mãe Prisioneiro 6 Mãe Pai Pai 7 Pai Filho 1 Policia Prisioneiro 8 Policia Policia Filho 2 9 Policia Prisioneiro - Torre de Hanói: Regra: Mover todos os discos de uma haste para outra sem que o disco maior fique sobre o disco menor.
4 Solução: 1. Posição inicial; 2. Move o disco 1 para a haste C; 3. Move o disco 2 para a haste B; 4. Move o disco 1 para a haste B; 5. Move o disco 3 para a haste C; 6. Move o disco 1 para a haste A; 7. Move o disco 2 para a haste C; 8. Move o disco 1 para a haste C; Recipientes Temos 3 recipientes de tamanhos distintos (8,5 e 3 litros), sendo que o recipiente de 8 litros está totalmente cheio. Considerando que os recipientes não sejam adequados, deseja-se colocar 4 litros em dois recipientes. Solução: Passos Recipiente 8 litros Recipiente 5 litros Recipiente 3 litros Desenvolvendo Algoritmos e Diagrama de Bloco O objetivo principal do estudo da lógica de programação é a construção de algoritmos coerentes e válidos. Um algoritmo pode ser definido como uma seqüência de passos que visam a atingur um objetivo bem definido. Regras para construção de algoritmos Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva. Para isso utilizaremos algumas técnicas: Usar somente um verbo por frase; Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática; Usar frases curtas e simples; Ser objetivo; Procurar usar palavras que não tenham sentido dúbio. Entretanto ao montar um algoritmo precisamos primeiro dividir o problema apresentado em 3 fases fundamentais. Entrada: São os dados de entrada do algoritmo;
5 Processamento: São os procedimentos utilizados para chegar ao resultado final; Saída: São os dados já processados. Analogia: Ser humano. ENTRADA PROCESSAMENTO SAÍDA Percepção das impressões sensoriais Saída do resultado dos processos de pensamento Processo de pensamento (Com auxílio da nossa memória executamos os diversos processos, como controlar, comparar, combinar, deduzir, etc.) Exemplo de algoritmo: Imagine o seguinte problema: calcular a média final dos alunos da 3ª série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Onde: P1 + P2 + P3 + P4 MédiaFinal = 4 Para montar o algoritmo proposto, faremos 3 perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4. b) Qual será o processamento a ser utilizado? R: O processamento será somar todos os dados de entrada e dividi-los por 4. c) Quais serão os dados de saída? R: O dado de saída será a média final. P 1+ P2 + P3 + P4 4 Algoritmo: (português coloquial) Receba a nota da Prova1 Receba a nota da Prova2 Receba a nota da Prova3 Receba a nota da Prova4 Some todas as notas e Divida o resultado por 4 Mostre o resultado da divisão Descrevemos então uma atividade bem cotidiana: trocar uma lâmpada. Apesar de parecer óbvio demais, muitas vezes fazemos este tipo de atividade inconscientemente, sem percebermos os pequenos detalhes. Algoritmo 1.0 Troca de lâmpada.
6 1. Pegar uma escada; 2. Posicionar embaixo da lâmpada; 3. Buscar uma lâmpada nova; 4. Subir na escada; 5. Retirar a lâmpada velha; 6. Colocar a lâmpada nova. Para se trocar a lâmpada, é seguida uma determinada seqüência de ações, representadas através desse algoritmo. Como isso pode ser seguido por qualquer pessoa, estabelece-se aí um padrão de comportamento. A sequencialização tem por objetivo reger o fluxo de execução, determinando qual ação vem a seguir. O algoritmo anterior tem um objetivo bem específico: trocar uma lâmpada. E se a lâmpada não estiver queimada? O algoritmo faz com ela seja trocada do mesmo modo, não prevendo essa situação. Para solucionar este problema, podemos efetuar um teste seletivo, verificando se a lâmpada está ou não queimada: Algoritmo 1.1 Troca de Lâmpada com teste. 1. Pegar uma escada 2. Posicionar embaixo da lâmpada 3. Buscar uma lâmpada nova; 4. Ligar o interruptor; 5. Se a lâmpada não acender, então: Subir na escada Retirar a lâmpada velha Colocar a lâmpada nova. Dessa forma, algumas ações estão ligadas à condição (lâmpada não acender). No caso da lâmpada acender, as três linhas: 1. Subir na escada; 2. Retirar a lâmpada velha 3. Colocar a lâmpada nova. Não serão executadas, em algumas situações, embora o algoritmo resolva o problema proposto, a solução pode não ser a mais eficiente. Exemplo: três alunos devem resolver um determinado problema: O aluno A conseguiu resolver o problema executando 35 linhas de programa. O aluno B resolveu o problema executando 10 linhas de programa. O aluno C resolveu o problema executando 54 linhas de programa. Obviamente, o algoritmo desenvolvido pelo aluno B é menor e mais eficiente que os demais. Isso significa que há código desnecessário nos demais programas. Dessa forma, podemos otimizar o algoritmo anterior, uma vez que buscamos a escada e a lâmpada sem saber se serão necessárias: Algoritmo 1.2 Troca de lâmpada com teste no. 1. Ligar o interruptor 2. Se a lâmpada não acender, então: Pegar uma escada; Posicionar embaixo da lâmpada; Buscar uma lâmpada nova; Subir na escada;
7 Retirar a lâmpada velha; Colocar a lâmpada nova. Podemos considerar ainda que a lâmpada nova pode não funcionar. Nesse caso devemos trocá-la novamente, quantas vezes for necessário, até que a lâmpada acenda: Algoritmo 1.3 Troca de Lâmpada com teste de repetição indefinida. 1. Ligar o interruptor 2. Se a lâmpada não acender, então : Pegar uma escada. Posicionar embaixo da lâmpada Buscar uma lâmpada nova; Subir na escada; Retirar a lâmpada velha; Colocar a lâmpada nova; Se a lâmpada não acender, então : Retirar a lâmpada; Colocar outra lâmpada; Se a lâmpada não acender, então:... Até quando? Observamos que o teste da lâmpada nova é efetuado por um conjunto de ações: Se a lâmpada não acender então: Retire a lâmpada Coloque outra lâmpada Em vez de escrevermos várias vezes este conjunto de ações, podemos alterar o fluxo seqüencial de execução do programa, de forma que, após executar a ação coloque outra lâmpada, voltemos a executar a ação se a lâmpada não acender. Precisa-se então determinar um limite para tal repetição, para garantir que ela cesse quando a lâmpada finalmente acender: 1. Enquanto a lâmpada não acender, faça: 2. Retire a lâmpada 3. Coloque outra lâmpada Uma versão final do algoritmo, que repete ações até alcançar o seu objetivo: trocar a lâmpada queimada por uma que funcione, é apresentada abaixo. Algoritmo 1.4 Troca de lâmpada com teste e condição de parada. 1. Ligar o interruptor 2. Se a lâmpada não acender, então: 3. Pegar uma escada 4. Posicionar embaixo da lâmpada 5. Buscar uma lâmpada nova 6. Subir na escada 7. Retirar a lâmpada velha 8. Colocar a lâmpada nova Enquanto a lâmpada não acender, faça: Retirar a lâmpada Colocar outra lâmpada.
8 O que faríamos se tivéssemos mais soquetes a testar, por exemplo, 10 soquetes? Até agora, estamos efetuando a troca de uma única lâmpada. Todo o procedimento poderia ser repetido 10 vezes, por exemplo, no caso de querermos trocar 10 lâmpadas. Algoritmo 1.5 Troca de Lâmpada com teste para 10 soquetes com repetição. 1. Ir até o interruptor do primeiro soquete; 2. Enquanto a quantidade de soquetes testados for menor que dez, faça Ligar o interruptor Se a lâmpada não acender, então: Pegar uma escada Posicionar embaixo da lâmpada Buscar uma lâmpada nova Subir na escada Retirar a lâmpada velha Colocar a lâmpada nova 1. Enquanto a lâmpada não acender, faça: 2. Retirar a lâmpada 3. Colocar outra lâmpada. 3. Ir até o interruptor do próximo soquete. De que maneira representamos o algoritmo? Diagrama de bloco (Fluxograma) O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. Simbologia Símbolos mais utilizados: Símbolo Terminal Processamento Função Indica o ou fim de um processamento. Exemplo: Inicio do algoritmo. Processamento em geral. Exemplo: Cálculo de dois números. Entrada de dado manual Indica entrada de dados através do teclado. Exemplo: Digite a nota da prova. Mostra informações ou resultados. Exemplo: Mostre o resultado do cálculo. Exibir Indica uma condição Exemplo: Soquetes testados <=10 Condição
9 Exemplos: Chupar uma bala Calcular a média de 4 notas INICIO INICIO Pegar a bala P1, P2, P3, P4 Retirar o papel MediaFina=(P1+P2+P3+P4)/4 Chupar a bala MédiaFinal Jogar o papel no lixo FIM FIM
10 Fluxograma: Algoritmo Troca de Lâmpada com teste para 10 soquetes com repetição. INICIO Ir para o primeiro soquete Soquetes testados <=10 F Ligar o interruptor Lâmpada não acende F Pegar uma escada Colocar a escada embaixo do soquete Buscar uma lâmpada nova Subir na escada Retirar a lâmpada queimada Colocar a lâmpada nova Lâmpada não acende F Retirar a lâmpada queimada Colocar a lâmpada nova Ir para o próximo soquete FIM
11 Constantes, ariáveis, Tipos de Dados, Operadores e Operações Lógicas ariáveis e constantes são os elementos básicos que um programa manipula. Constante: é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução do programa. MédiaFinal = P1 + P2 + P3 + P4 4 Constante ariável: é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode ser alterado ao longo do tempo de execução de um programa. Nome = José ariável Conteúdo da variável As variáveis podem ser: Numéricas: inteiras, reais. Caracteres: conjunto de caracteres, string. Lógicas: ou F Alfanuméricas: Letras e/ou números. Declaração de variáveis As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas sendo numéricas, lógicas e literais. Exemplos de declarações: Inteiro: x,y; Caracter: nome, endereço, data; Real: abc, peso, pi; Lógico: resposta; Operadores Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos 3 tipos de operadores: Operadores Aritméticos; Operadores relacionais; Operadores Lógicos; Operadores aritméticos: Utilizados para obter resultados numéricos. Operador Função Exemplos + Adição 2+3,X+Y - Subtração 4-2, N-M * Multiplicação 3*4, A*B / Divisão 10/2, X1/X2 pot(x,y) Potenciação (x elevado a y) pot(2,3) rad(x,y) Radiciação (Raiz quadrada de x) rad(9) mod Resto da divisão 9 mod 4 resulta em 1 div Quociente da divisão 27 div 5 resulta em 5 Precedência entre os operadores aritméticos: Prioridade Operadores 1ª Parênteses mais internos 2ª pot rad 3ª * / div mod 4ª + -
12 Em caso de empate (operadores de mesma prioridade), devemos resolver da esquerda para a direita, conforme a seqüência existente na expressão aritmética. Exemplos: a) / b) 1 4 * 3/6 pot(3,2) 1 4 * 3/ / c) pot(5,2) 4/2 + rad(1 + 3 * 5)/2 pot(5,2) 4/2 + rad(1 + 15)/2 pot(5,2) 4/2 + rad(16)/2 25 4/2 + 4/ Operadores relacionais Utilizados para comparar cadeias de caracteres e números. Sempre retornam valores lógicos ( ou F). Operador Função Exemplos = Iagual a 3 = 3, X = Y > Maior que 5 > 4, X > Y < Menor que 3 < 6, X < Y >= Maior ou igual a 5 >= 3, X >= Y <= Menor ou igual a 3 <= 5, X <= Y <> Diferente de 8 <> 9, X <> Y Exemplos: Tendo duas variáveis A=5 e B=3 Expressão Resultado A = B F A <> B A > B A < B F A >= B A <= B F a) 2 * 4 = 24/3 8 = 8 b) 15 mod 4 < 19 mod 6 3 < 1 F c) 3 * 5 div 4 <= pot(3,2)/0,5 15 div 4 <= 9/0,5 3 <= 18 d) mod 7 >= 3 * >= >= 3 Nome = José F
13 Operadores Lógicos Operador Não (NOT) e (AND) ou (OR) Função Negação Conjunção Disjunção Três portas básicas (AND, OR, NOT) são suficientes para construir qualquer sistema lógico combinacional digital. Operação de negação A F não A F Operação de conjunção A B A e B F F F F F F F Operação de disjunção não-exclusiva A B A ou B F F F F F Precedência entre os operadores lógicos Prioridade Operadores 1ª não 2ª e 3ª ou Exemplos: a) Se chover e relampejar, eu fico em casa. Quando eu fico em casa? b) Se chover ou relampejar eu fico em casa. Quando eu fico em casa? c) 2 < 5 e 15/3 = 5 e 5 = 5 e d) F ou 20 div(18/3) <> (21/3) div 2 F ou 20 div 6 <> 7 div 2 F ou 3 <> 3 F ou F F
14 e) não ou pot(3,2)/3 < mod 7 não ou 9/3 < 15 0 não ou 3 < 15 não ou F ou f) não (5 <> 10/2) ou e 2 5 > 5 2 ou v) não (5 <> 5 ou e 3 > 3 ou ) não (F ou e F ou ) não (F ou F ou ) não ( F ou ) não () F g) pot(2,4) <> ou * 5/3 mod 5 < 0 16 <> 6 ou /3 mod 5 < 0 ou mod 5 < 0 ou < 0 ou 2 < 0 ou F Exemplo: Podemos obter a tabela-verdade a partir de todas as combinações das entradas. Diretamente da tabela verdade é possível escrever uma expressão lógica. Resolução: F ((X ou não(y)) e Z) ou (não(x) e não(y) e não(z)); Comandos de Atribuição Comandos de Atribuição Um comando de atribuição permite-nos fornecer um valor a uma variável. Exemplos: lógico: A,B; inteiro: X; A B; X div 2; B 5 = 3; X 2;
15 Comandos de entrada e saída Entrada de dados: Para que o algoritmo possa receber os dados de que necessita, adotaremos um comando de entrada de dados denominado leia, cuja finalidade é atribuir o dado a ser fornecido à variável identificada. leia (X); leia (A, XPTO, NOTA); Saída de dados: Para que o algoritmo possa mostrar os dados que calculou, como resposta ao problema que resolveu, adotaremos um comando de saída de dados denominado escreva, cuja finalidade é exibir o conteúdo da variável identificada. escreva (Y); escreva (B, XPTO, SOMA/4); escreva ( Bom dia, NOME); escreva ( ocê pesa, P, quilos ); Blocos Um bloco pode ser definido como um conjunto de ações com uma função definida; nesse caso, um algoritmo pode ser visto como um bloco. Ele serve também para definir limites nos quais as variáveis declaradas em seu interior são conhecidas. Para delimitar um bloco, utilizamos os delimitadores e Exemplo: início //início do bloco (algoritmo) // declaração de variáveis // seqüência de ações //fim do bloco (algoritmo) Estrutura seqüencial A estrutura seqüencial de um algoritmo corresponde ao fato de que o conjunto de ações primitivas será executado em uma seqüência linear de cima para baixo e da esquerda para a direita, isto é, na mesma ordem em que foram escritas. Convencionaremos que as ações serão seguidas pó um ponto-e-vírgula (;), que objetiva separar uma ação da outra e auxiliar a organização seqüencial das ações, pois após encontrar um (;) deveremos executar o próximo comando da seqüência. Modelo geral de um algoritmo: 1. início //identificação do início do bloco correspondente ao algoritmo 2. //declaração de variáveis 3. //corpo do algoritmo 4. ação 1; 5. ação 2; 6. ação 3; ação n; 11. //fim do algoritmo Exemplos: a) Construa um algoritmo que calcule a média aritmética entre quatro notas bimestrais quaisquer fornecidas por um aluno (usuário). Dados de entrada: quatro notas bimestrais (N1, N2, N3, N4). Dados de saída: média aritmética anual (MA). O que devemos fazer para transformar quatro notas bimestrais em uma média anual? Resposta: utilizar a média aritmética. O que é média aritmética? Resposta: a soma dos elementos divididos pela quantidade deles. Em nosso caso particular: (N1, N2, N3, N4)/4. Algoritmo Média aritmética 1. início //Começo do algoritmo
16 2. //declaração de variáveis 3. real: N1, N2, N3, N4, MA; //Notas bimestrais e média anual //entrada de dados 6. leia(n1, N2, N3, N4); //processamento 9. MA (N1 + N2 + N3 + N4)/4; //saída de dados 12. escreva (MA); //Término do algoritmo b) Construa um algoritmo que calcule a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, em que são fornecidos a altura e o raio desse cilindro. Sabendo que: A lata de tinta custa R$ 50,00; Cada lata contém 5 litros; Cada litro de tinta pinta 3 metros quadrados. Dados de entrada: altura (H) e raio (R). Dados de saída: custo (C) e quantidade (QTDE). Utilizando o planejamento reverso, sabemos que: O custo é dado pela quantidade de latas * R$ 50,00; A quantidade de latas é dada pela quantidade total de litros/5; A quantidade total de litros é dada pela área do cilindro/3; A área do cilindro é dada pela área da base + área lateral; A área da base é (PI * pot(r,2)); A área lateral é altura * comprimento: (2 * PI * R * H); Sendo que R (raio) e H (altura) são dados de entrada e PI é uma constante de valor conhecido: 3, início 2. real: H, R; 3. real: C, Qtde, Área, Litro; 4. leia (H, R); 5. Área (3,14 * pot(r,2)) + (2 * 3,14 * R * H); 6. Litro Área/3; 7. Qtde Litro/5; 8. C Qtde * 50,00; 9. escreva (C, Qtde); 10. c) Construa um algoritmo para calcular as raízes de uma equação do 2º grau (Ax 2 + Bx + C), sendo que os valores A, B, C são fornecidos pelo usuário (considere que a equação possui duas raízes reais). 1. início 2. //Declaração de variáveis 3. real: A, B, C, //Coeficientes da equação 4. D, //delta 5. X1, X2; //raízes //entrada de dados 8. leia (A,B,C); //processamento de dados 11. D pot (B,2) 4*A*C; 12. X1 (-B + rad(d))/(2*a); 13. X2 (-B rad(d))/(2*a); //saída de dados 16. escreva ( Primeira raiz =, X1); 17. escreva ( Segunda raiz =, X2); 18.
17 d) Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer do plano, P(x 1,y 1 ) e Q(x 2, y 2 ), imprima a distância entre eles. 2 2 A fórmula que efetua tal cálculo é: d = ( x2 x1) + ( y2 y1), que reescrita utilizando os operadores matemáticos adotados fica: d=rad(pot(x2-x1,2) + pot(y2-y1,2)) 1. início 2. //Declaração de variáveis 3. real: D; //Distancia calculada 4. inteiro: X1, X2, Y1, Y2; //pontos //entrada de dados 7. leia (X1, X2, Y1, Y2); //alores dos pontos //processamento de dados 10. D rad (pot(x2-x1,2) + pot(y2-y1,2)); //saída de dados 13. escreva ( Distancia =, D); 14. e) Faça um algoritmo para calcular o volume de uma esfera de raio R, em que R é um dado fornecido pelo usuário. O volume de uma esfera é dado por 1. início 2. //Declaração de variáveis 3. real: R, //raio 4. ; //volume //entrada de dados 7. leia (R); //processamento de dados 10. 4/3 * * pot (R,3); //saída de dados 13. escreva ( olume =, ); R 3 = π 3. Estruturas de Seleção Uma estrutura de seleção permite a escolha de um grupo de ações (bloco) a ser executado quando determinadas condições, representadas por expressões lógicas ou relacionais são ou não satisfeitas. Seleção simples: quando precisamos testar uma certa condição antes de executar uma ação. Exemplo: //declaração de variáveis real: N1, N2, N3, N4, MA; // notas bimestrais e média anual leia (N1,N2,N3,N4); // entrada de dados MA (N1 + N2 + N3 + N4) / 4; // processamento escreva (MA); // saída de dados se (MA >= 7) então escreva ( Aluno Aprovado! ); Seleção composta: quando tivermos situações em que duas alternativas dependem de uma mesma condição, uma condição ser verdadeira e outra de a condição ser falsa. Exemplo:
18 //declaração de variáveis real: N1, N2, N3, N4, MA; // notas bimestrais e média anual leia (N1,N2,N3,N4); // entrada de dados MA (N1 + N2 + N3 + N4) / 4; // processamento escreva (MA); // saída de dados se (MA >= 7) então // Bloco verdade escreva ( Aluno Aprovado! ); escreva ( Parabéns! ); fim; senão // Bloco falsidade escreva ( Aluno Reprovado! ); escreva ( Estude Mais! ); fim; Seleção encadeada: quando, devido à necessidade de processamento, agrupamos várias seleções. Exemplo: Dados três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo, se forem, verificar se compõem um triângulo eqüilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo. Dados de entrada: três lados de um suposto triângulo (A, B, C). Dados de saída mensagens: não compõem triângulo, triângulo eqüilátero, triângulo isósceles, triângulo escaleno. O que é triângulo? R: Figura geométrica fechada de três lados, em que cada um é menor que a soma dos outros dois. O que é um triângulo eqüilátero? R: um triângulo com três lados iguais. O que é um triângulo isósceles? R: um triângulo com dois lados iguais. O que é um triângulo escaleno? R: um triângulo com todos os lados diferentes. É triângulo? É eqüilátero? É isósceles? É escaleno Ações - - Eqüilátero F - Isósceles F F Escaleno F Não é triângulo Traduzindo as condições para expressões lógicas: É triângulo: (A < B + C) e (B< A + C) e (C < A + B) É eqüilátero: (A = B) e (B = C) É isósceles: (A = B) ou ( A = C) ou (B = C) É escaleno: (A <>B) e (B <> C) e (A <> C) inteiro: A, B, C; leia(a, B, C); se ((A < B + C) e (B < A + C) e (C < A + B)) então se ((A = B) e (B = C)) então escreva ( Triângulo Eqüilátero ); senão se ((A = B) ou (A = C) ou (B = C)) então escreva ( Triângulo Isósceles ); senão escreva ( Triângulo Escaleno ); senão escreva ( Estes valores não formam um Triângulo! );
19 Exercício Desenvolva um algoritmo que calcule as raízes de uma equação do 2º grau, na forma Ax 2 + Bx + C, levando em consideração a existência de raízes reais. R: real: A, B, C, D, X1, X2; // coeficientes da equação, delta, raízes leia (A, B, C); D pot (B,2) 4*A*C; se (D>0) // Duas raízes reais então X1 (-B + rad(d)) / (2*A); X2 (-B rad(d)) / (2*A); escreva ( Primeira raiz =, X1, e Segunda raiz =, X2); fim; senão se (D = 0) // uma única raiz real então X1 -B / (2*A); escreva ( Raiz =, X1); fim; senão escreva ( As raízes são imaginárias ); Estruturas de Seleção se então se amos supor que, em um dado algoritmo, um comando genérico W deva ser executado apenas quando forem satisfeitas as condições <Condição 1>, <Condição 2>, <Condição 3> e <Condição 4>, teríamos: se <Condição 1> então se <Condição 2>
20 então se (X = 4) então C2; C4; Somente um, e apenas um, comando pode ser executado, isto é, trata-se de uma situação excludente (se X é igual a 3, não é igual a 1 nem a 2 nem a 4). Não se trata de uma estrutura encadeada, pois as seleções não serão interligadas. Por isso, todas as condições (X = n) serão avaliadas e ocorrerão testes desnecessários. Para diminuir a quantidade de testes dessa estrutura podemos transforma-la em um conjunto de seleções encadeadas, conforme o seguinte modelo: se (X = 1) então C1; senão se (X = 2) então C2; senão se (X = 3) então C2; senão se (X = 4) então C4; Seleção de múltipla escolha Quando um conjunto de valores discretos precisa ser testado e ações diferentes são associadas a esses valores, estamos diante de uma seleção encadeada homogênea do tipo se senão se. Como essa situação é bastante freqüente na construção de algoritmos que dependem de alternativas, utilizaremos uma estrutura específica para estes casos, a seleção de múltipla escolha. O modelo genérico desse tipo de repetição é o seguinte: escolha X caso 1: C1; caso 2: C2;... caso n: Cn; caso contrário: Cn+1; fimescolha; Exemplo: Construa um algoritmo que, tendo como dados de entrada o preço de um produto e seu código de origem, mostre o preço junto de sua procedência. Caso o código não seja nenhum dos especificados, o produto deve ser encarado como importado. Siga a tabela de códigos a seguir: Código de origem Procedência 1 Sul 2 Norte 3 Leste 4 Oeste 5 ou 6 Oeste 7,8 ou 9 Sudeste 10 até 20 Centro-Oeste 25 até 30 Nordeste //declaração de variáveis real: Preco; inteiro: Origem; leia (Preço, Origem); // entrada de dados escolha (Origem) caso 1: escreva(preço, produto do Sul );
21 caso 2: escreva(preço, produto do Norte ); caso 3: escreva(preço, produto do Leste ); caso 4: escreva(preço, produto do Oeste ); caso 7, 8, 9: escreva(preço, produto do Sudeste ); caso : escreva(preço, produto do Centro-Oeste ); caso 5, 6, : escreva(preço, produto do Nordeste ); caso contrario: escreva(preço, produto Importado ); fimescolha; Exercício Elabore um algoritmo que calcule o que deve ser pago por um produto, considerando o preço normal de etiqueta e a escolha da condição de pagamento. Utilize os códigos da tabela, a seguir, para ler qual a condição de pagamento escolhida e efetuar o cálculo adequado. Código Condição de pagamento 1 À vista em dinheiro ou cheque, recebe 10% de desconto. 2 À vista no cartão de crédito, recebe 5% de desconto. 3 Em duas vezes, preço normal de etiqueta sem juros. 4 Em três vezes, preço normal de etiqueta mais juros de 10%. R: //declaração de variáveis real: P, NP; // preço do produto, novo preço conforme a condição escolhida inteiro: COD; // código do produto leia (P, COD); // entrada de dados escolha (COD) caso 1: NP P * 0.90; // desconto de 10 escreva( Preço à vista com desconto =, NP); fim; caso 2: NP P * 0.95; // desconto de 5 escreva( Preço no cartão com desconto =, NP); fim; caso 3: NP P / 2; // duas vezes sem acrescimo escreva( Duas parcelas de =, NP); fim; caso 4: NP (P * 1.10)/3; // acréscimo de 10 escreva( Três parcelas de =, NP); fim; caso contrario: escreva( Código inexistente! ); fimescolha; Estruturas de Repetição Repetição com teste no início Consiste em uma estrutura de controle de fluxo de execução que permite repetir diversas vezes um mesmo trecho do algoritmo, porém, sempre verificando antes de cada execução se é permitido executar o mesmo trecho. O modelo genérico desse tipo de repetição é o seguinte: enquanto <condição> faça C1; C2;... Cn; fimenquanto;
22 Quando o resultado de <condição> for falso, o comando de repetição é abandonado. Se já a primeira vez o resultado é falso, os comandos não são executados nenhuma vez. Por exemplo, para inserir o cálculo da média dos alunos em um laço de repetição utilizamos a estrutura enquanto que <condição> utilizaríamos? A condição seria que a quantidade de médias calculadas fosse menor ou igual a 50; porém, o que indica quantas vezes a média foi calculada? A estrutura (enquanto) não oferece esse recurso; portanto, devemos estabelecer um modo de contagem, o que pode ser feito com a ajuda de um contador representado por uma variável com um dado valor inicial, o qual é incrementado a cada repetição. Exemplo (Contador): inteiro: CON; // declaração do contador CON 0; // inicialização do contador CON CON + 1; // incrementar o contador de 1 Exemplo: Algoritmo Média aritmética para 50 alunos //declaração de variáveis real: N1, N2, N3, N4, MA; // notas bimestrais e média anual inteiro: CON; // contador CON 0; // inicialização do contador enquanto (CON < 50) faça // teste da condição de parada leia (N1,N2,N3,N4); // entrada de dados MA (N1 + N2 + N3 + N4) / 4; // processamento escreva (MA); // saída de dados se (MA >= 7) então // Bloco verdade escreva ( Aluno Aprovado! ); escreva ( Parabéns! ); fim; senão // Bloco falsidade escreva ( Aluno Reprovado! ); escreva ( Estude Mais! ); fim; CON CON + 1; //incrementar o contador em um fimenquanto; Em uma variação do algoritmo acima, poderíamos calcular a média geral da turma, que seria a média aritmética das 50 médias anuais: (M1 + M2 + M M49 + M50) / 50. Podemos utilizar nessa situação as vantagens da estrutura de repetição, fazendo um laço que a cada execução acumule em uma variável, conhecida como acumulador, o somatório das médias anuais de cada aluno. Exemplo (Acumulador): inteiro: ACM, X; //declaração do acumulador, variável qualquer ACM 0; // inicialização do acumulador ACM ACM + X; // acumular em ACM o valor anterior mais o valor de X Exemplo: Algoritmo Média aritmética de 50 alunos //declaração de variáveis real: MA, ACM, MAT; // media anual de um dado aluno, acumulador, média anual da turma inteiro: CON; // contador CON 0; // inicialização do contador ACM 0; // inicialização do acumulador enquanto (CON < 50) faça // teste da condição de parada leia (MA); // entrada de dados ACM ACM + MA; // processamento CON CON + 1; //incrementar o contador em um fimenquanto; MAT ACM/50; // Cálculo da média anual da turma
23 escreva ( Média anual da turma =, MAT); O algoritmo construído acima utiliza o pré-conhecimento da quantidade de alunos da turma da qual se desejava a média geral, o que permitiu construir um laço de repetição com quantidade pré-determinada de execuções. Entretanto, se não soubéssemos quantos eram os alunos, o que faríamos para controlar o laço de repetição? Precisaríamos de um laço que fosse executado por uma quantidade indeterminada de vezes. Assim, teríamos de encontrar outro critério de parada, que possibilitasse que o laço fosse finalizado após a última média anual (independente de quantas sejam) ter sido informada. Isso pode ser feito utilizando um valor predefinido como finalizador, a ser informado após a última média. Para aplicar tal conceito ao algoritmo da média geral da turma, usaremos como finalizador o valor -1 que, quando encontrado, encerra o laço sem ter seu valor computado ao acumulador. Exemplo: //declaração de variáveis real: MA, ACM, MAT; // media anual de um dado aluno, acumulador, média anual da turma inteiro: CON; // contador CON 0; // inicialização do contador ACM 0; // inicialização do acumulador MA 0; // inicialização da variável de leitura enquanto (MA <> -1) faça // teste da condição de parada leia (MA); // entrada de dados se (MA <> -1) então // evita acumulação do finalizador ACM ACM + MA; // processamento CON CON + 1; //incrementar o contador em um fim; fimenquanto; se (CON > 0) // houve pelo menos uma execução então MAT ACM/CON; // Cálculo da média anual da turma escreva ( Média anual da turma =, MAT); fim; senão escreva ( Nenhuma média válida fornecida ); Repetição com teste no final Para realizar a repetição com teste até no final, utilizaremos a estrutura repita, que permite que um bloco ou ação primitiva seja repetido até que uma determinada condição seja verdadeira. O modelo genérico desse tipo de repetição é o seguinte: repita C1; C2;... Cn; até <condição>; Exemplos: a) Média anual de 50 alunos e calcula a média geral da turma. Algoritmo média com repita //declaração de variáveis real: MA, ACM, MAT; // media anual de um dado aluno, acumulador, média anual da turma inteiro: CON; // contador CON 0; // inicialização do contador ACM 0; // inicialização do acumulador repita
24 leia (MA); // entrada de dados ACM ACM + MA; // processamento CON CON + 1; //incrementar o contador em um até (CON >= 50); // teste da condição de parada MAT ACM/50; // Cálculo da média anual da turma escreva ( Média anual da turma =, MAT); b) Imagine uma brincadeira entre dois colegas, na qual um pensa um número e o outro deve fazer chutes até acertar o número imaginado. Como dica, a cada tentativa é dito se o chute foi alto ou foi baixo. Elabore um algoritmo dentro deste contexto que leia o número imaginado e os chutes, ao final mostre quantas tentativas foram necessárias para descobrir o número. Algoritmo descoberta do número inteiro: NUM, CHUTE, TENT; // numero inicial a ser descoberto, chute, quantidade de tentativas TENT 0; leia(num); repita leia(chute); TENT TENT + 1; se (CHUTE > NUM) então escreva ( Chutou alto! ); senão se (CHUTE < NUM) então escreva ( Chutou baixo! ); até (NUM = CHUTE); escreva (TENT); Repetição com variável de controle Nas estruturas de repetição vistas até agora, ocorrem casos em que se torna difícil determinar o número de vezes em que o bloco será executado. Sabemos que ele será executado enquanto uma condição for satisfeita enquanto ou até que uma condição seja satisfeita repita. A estrutura para é diferente, já que sempre repete a execução do bloco um número predeterminado de vezes, pois ela não prevê uma condição e possui limites fixos. O modelo genérico para a estrutura de repetição para é o seguinte: para de vi até vf passo p faça C1; C2;... Cn; fimpara; Em que: é a variável de controle; vi é o valor inicial da variável ; vf é o valor final da variável, ou seja, o valor até o qual ela vai chegar; p é o valor do incremento dado à variável. Exemplos: a) Média anual de 50 alunos (com para) //declaração de variáveis real: MA, ACM, MAT; // media anual de um dado aluno, acumulador, média anual da turma inteiro: ; // variável de controle ACM 0; // inicialização do acumulador para de 1 até 50 passo 1 faça leia (MA); // entrada de dados ACM ACM + MA; // processamento fimpara; MAT ACM/50; // Cálculo da média anual da turma
25 escreva ( Média anual da turma =, MAT); b) Elabore um algoritmo que efetue a soma de todos os números ímpares que são múltiplos de 3 e que se encontram no conjunto dos números de 1 até 500. //declaração de variáveis inteiro: SI, ; // Soma dos numero impares múltiplos de três, variável de controle SI 0; para de 1 até 500 passo 1 faça se ( mod 2 = 1) // número é ímpar? então se ( mod 3 = 0) // múltiplo de três? então SI SI + ; fim; fimpara; escreva ( Soma =, SI); c) Elabore um algoritmo que simule uma contagem regressiva de 10 minutos, ou seja, mostre 10:00, e então 9:59, 9:58,..., 9:00; 8:59, 8:58, até 0:00 Algoritmo Contagem regressiva //declaração de variáveis inteiro: MIN, SEG; // contador dos minutos, contador dos segundos escreva ( 10:00 ); para MIN de 9 até 0 passo -1 faça para SEG de 59 até 0 passo -1 faça escreva(min, :, SEG); fimpara; fimpara; Exercícios: a) Elabore um algoritmo que, utilizando as três estruturas de repetição, imprima a tabuada do número 5: Algoritmo Tabuada do número 5 usando enquanto inteiro: CON; CON 1; enquanto (CON <= 10) faça escreva (CON, x 5 =, CON * 5); CON CON +1; fimenquanto; Algoritmo Tabuada do número 5 usando repita inteiro: CON; CON 1; repita escreva (CON, x 5 =, CON * 5); CON CON +1; até (CON > 10); Algoritmo Tabuada do número 5 usando para
26 inteiro: CON; CON 1; para CON de 1 até 10 passo 1 faça escreva (CON, x 5 =, CON * 5); fimpara; b) Modifique o algoritmo para que ele imprima a tabuada de quaisquer números, sendo que esses são fornecidos pelo usuário, até encontrar como finalizador -1. Sabendo que o primeiro número-base fornecido não é -1: Algoritmo Tabuada de qualquer número usando enquanto inteiro: N, CON; leia (N); enquanto (N <> -1) faça CON 1; enquanto (CON <= 10) faça escreva (CON, x, N, =, CON * N); CON CON +1; fimenquanto; leia (N); fimenquanto; Algoritmo Tabuada de qualquer número usando repita inteiro: N, CON; leia (N); repita CON 1; repita escreva (CON, x, N, =, CON * N); CON CON +1; até (CON > 10); leia (N); até (N = -1); Algoritmo Tabuada de qualquer número usando para inteiro: N, COM, X; leia (N); para X de 1 até? para 1 faça // número de repetições é indefinido CON 1; para CON de 1 até 10 passo 1 faça escreva (CON, x, N, =, CON * N); fimpara; leia (N); fimapara; Obs: erificamos nesse algoritmo a impossibilidade de construir esse algoritmo utilizando a estrutura para, pois esta exige que o número de repetições, além de ser finito, seja predeterminado.
Algoritmo. pegar uma escada; posicionar embaixo da lâmpada; buscar uma lâmpada nova; ligar o interruptor; se a lâmpada não acender, então:
Algoritmo é a forma organizada de expressar uma seqüência de passos que visam atingir um objetivo definido. Algoritmo é a lógica necessária para o desenvolvimento de um programa. Apesar do nome estranho,
Estruturas de Controle
Lógica de Programação Capítulo 3 Estruturas de Controle Estruturas de Controle Neste capítulo Estrutura de Seleção Estrutura de Repetição Lógica de Programação orbellone / Eberspacher O luxo de Controle
Programação de Redes de Computadores
1: Introdução 1 MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA CAMPUS SÃO JOSÉ SANTA CATARINA Programação de Redes de Computadores
Programação Estruturada
Algoritmos e Técnicas - Estruturas de Controle de Fluxo - Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizada para apresentar
Introdução à Ciência da Computação
Introdução à Ciência da Computação Estruturas de Controle Parte I Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir foram adaptados dos originais de A. L. V. Forbellone e H. F. Eberspächer
Técnicas de Programação
Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir
ALGORITMOS AULA 1. Profª Amanda Gondim
ALGORITMOS AULA 1 Profª Amanda Gondim O que é lógica? NOÇÕES DE LÓGICA A lógica trata da correção do pensamento Ensina-nos a usar corretamente as leis do pensamento É a arte de pensar corretamente A forma
Introdução à Lógica de Programação
Introdução à Lógica de Programação 1 Sumário Noções de Lógica; Algoritmo; leonardobcamposatgmail.com 2/18 Noções de Lógica O uso corriqueiro da palavra lógica está normalmente relacionado à coerência e
LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO
LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Expressando a lógica em programação Ferramentas gráficas: diagramas e fluxogramas; Ferramentas textuais: pseudocódigos ou metalinguagens (Português
UNIDADE 4 ESTRUTURAS DE CONTROLE
1 UNIDADE 4 ESTRUTURAS DE CONTROLE Na criação de algoritmos, utilizamos os conceitos de bloco lógico, entrada e saída de dados, variáveis, constantes, atribuições, expressões lógicas, relacionais e aritméticas,
Conceitos Básicos. Professor: Juliano Lucas Gonçalves.
Conceitos Básicos Professor: Juliano Lucas Gonçalves [email protected] Agenda Revisão Algoritmos Memória, variáveis e constantes Estrutura básica de um algoritmo em pseudocódigo 2 O que já
Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini
Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Apresentação do Professor Professor: José Carlos Perini E-mail: [email protected] Blog: http://profperini.com Formação
Lógica e Linguagem de Programação Aula 03 - Estruturas de controle Exercícios de Fixação 2 - RESPOSTAS Professor: Danilo Giacobo
1. Dado o algoritmo a seguir, responda: lógico: A, B, C; se A então C1; se B então se C então C2; C3; C4; C5; C6; Lógica e Linguagem de Programação Aula 03 - Estruturas de controle Exercícios de Fixação
Introdução à Ciência da Computação
Introdução à Ciência da Computação Estruturas de Controle Parte II Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir foram adaptados dos originais de A. L. V. Forbellone e H. F. Eberspächer
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS PROFESSOR : Romilson Lopes Sampaio Introdução a Lógica de Programação
Aula 4B. Lógica e Algoritmos. Profª. Fabiany
Fundamentos de Programação 1 Aula 4B Lógica e Algoritmos. Profª. Fabiany Lógica A lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Sequência Lógica São passos
Oficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
CONCEITOS DE ALGORITMOS
CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são
Informática Fundamentos em C++ Revisão 1
exatasfepi.com.br Informática Fundamentos em C++ Revisão 1 André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13 Conceitos em Programação Técnicas de
Lógica de Programação Lógica, Conceitos; Fluxo de Controle
Disciplina: Lógica e Técnicas de Programação CENTRO TERRITORIAL DE EDUCAÇÃO PROFISSIONAL Lógica de Programação Lógica, Conceitos; Fluxo de Controle Prof. Igor Rangel de Araujo Brito [email protected]
01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução.
Engenharia de Controle e Automação Programação I Prof. Ricardo Sobjak [email protected] Introdução Lógica Sequencia lógica Instruções s Programas Lógica Raciocínio estruturado (partindo-se do
Oficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
Algoritmos. Prof. Jonatas Bastos Site:
Algoritmos Prof Jonatas Bastos Email: jonatasfbastos@gmailcom Site: http://jonatasfbastoswordpresscom/ 1 Estrutura de Repetição Computadores não reclamam por executar alguma tarefa, nem se cansam em fazer
AEDI Fundamentos Revisão 1
exatasfepi.com.br AEDI Fundamentos Revisão 1 André Luís Duarte Feliz é o homem que acha sabedoria, e o homem que adquire entendimento; Provérbios 3:13 Conceitos em Programação Técnicas de algoritmos Descrição
INTRODUÇÃO À PROGRAMAÇÃO. Introdução à Algoritmos. Prof. Me. Sérgio Carlos Portari Júnior
INTRODUÇÃO À PROGRAMAÇÃO Introdução à Algoritmos Prof. Me. Sérgio Carlos Portari Júnior www.sergioprotari.com.br [email protected] TÓPICOS ABORDADOS Noções de Lógica (Parte 1) O que é a lógica Lógica
Lógica de Programação I
Gilson de Souza Carvalho [email protected] 1 ALGORITMIZANDO A LÓGICA Por que é Importante Construir um Algoritmo? Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido
Lógica de Programação
Lógica de Programação Estruturas de Repetição Repetição com teste no início Consiste em uma estrutura de controle de fluxo lógico que permite executar diversas vezes um mesmo trecho do algoritmo, porém,
01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.
Engenharia de Controle e Automação Programação I Prof. Ricardo Sobjak [email protected] Tipos de dados Numéricos Alfanuméricos Lógicos Tipos de dados Os tipos de dados primitivos ou básicos são
Introdução à Ciência da Computação
Créditos Introdução à Ciência da Computação Tópicos Preliminares em Programação Exceto por adaptações e complementos menores, o material a seguir é composto de slides gentilmente cedidos por: Prof. Rudinei
Introdução a Computação
Edirlei Soares de Lima Introdução a Computação Aula 02 Lógica de Programação Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para atingir
08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,
ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)
Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Até o momento da disciplina vimos comandos de entrada, processamento e saída
LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior
LÓGICA DE PROGRAMAÇÃO Algoritmos Computacionais Sérgio Carlos Portari Júnior [email protected] Tópicos abordados Algoritmos Computacionais Estrutura de Dados Tipos Primitivos Constantes Variáveis
INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO
INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO Algoritmos Computacionais Lógica O que é Lógica? Ciência que estuda as formas do pensamento Raciocínio Colocar as ideias no lugar Sempre que pensamos a lógica nos acompanha
Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.
- Bibliografia - - Operadores - Criação de um algoritmo - Exercícios Aula 01 Colegiado de Engenharia da Computação Slide 1 O que é Algoritmo? Segundo o Dicionário Aurélio, a palavra algoritmo origina-se
Capítulo 1 - Lógica e Algoritmos
1. Introdução à Lógica de Programação Capítulo 1 - Lógica e Algoritmos A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir
Introdução a Lógica de Programação
Introdução a Lógica de Programação O processo de programação é uma conversa controlada entre um ser humano (tecnicamente preparado) e um computador Linguagem Linguagem de baixo nível Grande dificuldade,
CAPÍTULO 4 ESTRUTURAS DE CONTROLE
CAPÍTULO 4 ESTRUTURAS DE CONTROLE Fabio Augusto Oliveira Guilherme da Cunha Fonseca FEPI Centro Universitário de Itajubá Curso de Engenharia de Produção 1 INTRODUÇÃO Já vimos entrada, processamento e saída,
UFG Instituto de Informática Curso de Engenharia de Software Disciplina de Introdução à Programação
UFG Instituto de Informática Curso de Engenharia de Software Disciplina de Introdução à Programação Lista de exercícios 2.1 Estruturas condicionais - básico 1) Desenvolver um algoritmo que determine o
I - CONCEITOS INICIAIS
Sumário I - CONCEITOS INICIAIS... 2 Lógica de programação... 2 Algoritmo... 2 Instrução... 3 Programa de Computador... 3 Fases... 4 Diagrama de Blocos... 4 II - VARIÁVEIS... 5 Numéricas... 5 Cadeia ou
Exercícios de Fixação referentes a Avaliação 1 de Algoritmos
Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento de Informática e Matemática Aplicada Exercícios de Fixação referentes a Avaliação 1 de Algoritmos 1. Escreva
Lógica de Programação
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que
Algoritmos. Prof. Jonatas Bastos Site:
Algoritmos Prof. Jonatas Bastos Email: [email protected] Site: http://jonatasfbastos.wordpress.com/ 1 Exemplo de Algoritmo { declaração de variáveis } real: p1, p2, p3, p4, Media; inicio { comandos
1 ESTRUTURA SEQUENCIAL
Noções de Programação de Computadores Prof. Eduardo 1 1 ESTRUTURA SEQUENCIAL algoritmo Nome_do_algoritmo declaração de variáveis variáveis inicio bloco de comandos; fim_algoritmo 1.1 Declaração de variáveis
Algoritmo e Programação. Capítulo 2 Tópicos Preliminares
Algoritmo e Programação Capítulo 2 Tópicos Preliminares Tópicos Preliminares Neste capítulo Tipos Primitivos Variáveis Expressões Aritméticas, Lógicas e Relacionais Comandos de Entrada e Saída Blocos Tópicos
Algoritmos I Aula 2 Lógica de Programação
Algoritmos I Aula 2 Lógica de Programação Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação O que é Lógica? O termo lógica está relacionado com o logos, razão, palavra ou
Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição
- Aula 01, 02, 03 e 04 Apresentação da disciplina.
1 - Aula 01, 02, 03 e 04 Apresentação da disciplina. Disciplina: Algoritmos (Disciplina é pré-requisito para outras disciplinas). Plano de Ensino: Estrutura Sequencial, Estrutura de Decisão (Desvio Condicional
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: estruturas de repetição While / Do While / For Prof. Renato Pimentel 1 Estruturas de repetição O real poder dos computadores está
CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES
NB217 Algoritmos e Estruturas de Dados I Profa. Rosanna Mara Rocha Silveira Fevereiro/2012 - Versão 4.1 CAPÍTULO IV ESTRUTURAS CONDICIONAIS 35 Dentro dos algoritmos temos comandos especiais utilizados
BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35
BCC 201 - Introdução à Programação Portugol Guillermo Cámara-Chávez UFOP 1/35 Introdução I Lógica A lógica é usada no dia a dia das pessoas que trabalham com computação para solucionar problemas de forma
Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação: estruturas de repetição 1 Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números Para
Universidade Estadual do Sudoeste da Bahia Departamento de Estudos Básicos e Instrumentais Disciplina: Introdução à Ciência da Computação Prof.
Universidade Estadual do Sudoeste da Bahia Departamento de Estudos Básicos e Instrumentais Disciplina: Introdução à Ciência da Computação Prof. Modesto A. Chaves Faça um algoritmo que Leia dois valores
Universidade Veiga de Almeida Algoritmos e Linguagem I
Aula 2 Conteúdo: 3. Etapas na solução de problemas 4. Algoritmos estruturados 3. Etapas na solução de problemas Podemos definir problema como sendo uma questão que foge a uma determinada regra, ou um desvio
Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho
s e Programação Noções de Lógica e Algoritmos Tarcio Carvalho EMENTA Desenvolvimento de algoritmos; Tipos de dados básicos e estruturados; Comandos de uma linguagem de Programação; Metodologia de desenvolvimento
ESTRUTURA CONDICIONAL E SELEÇÃO
Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ESTRUTURA CONDICIONAL E SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE OU DECISÃO) Até o momento da disciplina vimos algoritmos e programas
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo
Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição enquanto.
ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior
ALGORITMOS E APLICAÇÕES FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior Formato Básico do Pseudocódigo Tipos de dados O VisuAlg prevê quatro tipos de dados: inteiro, real,
Linguagem Computacional
Informática II Linguagem Computacional Algoritmos e Programação Parte 3 Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves 1 Sumário Operações e Expressões q Definição q Operadores: Aritméticos. Relacionais.
Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares
1 Introdução à Lógica de Programação Adaptação de Luis Otavio Alvares 2 Elaboração de um programa Problema Análise Programa Algoritmo 3 Processo de geração de um programa Análise do problema: Ler atentamente
CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES
NBT110- Algoritmos e Estruturas de Dados Profa. Rosanna Mara Rocha Silveira Fevereiro/2013 - Versão 1.1 CAPÍTULO IV ESTRUTURAS CONDICIONAIS 31 Dentro dos algoritmos temos comandos especiais utilizados
Noções de algoritmos - Aula 1
Noções de algoritmos - Aula 1 Departamento de Física UFPel Definição de algoritmo Sequência ordenada e finita de operações para a realização de uma tarefa. Tarefa: Experimento de Física I. Passo 1: Reunir
SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10
Nota SSC0304 - Introdução à Programação para Engenharias Lista 01 Entrega em 06/04/2018 08h10 Nome N.º USP Obs 1: Utilize essa primeira página como capa da sua lista de exercícios Obs 2: Esta lista é em
Lógica de Programação
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas v e coerentes,, que resolvam com qualidade os problemas
Lógica de Programação Módulo I Prof.: Ricardo Lokchin. Fazer os exercícios abaixo na Linguagem C ou em ALGORITMOS.
Curso Superior de Tecnologia em Sistemas para Internet a Distância Instituto Federal Sul-rio-grandense - IFSUL Sistema Universidade Aberta do Brasil UAB Núcleo de Produção de Tecnologia e Ensino - NPTE
Pseudocódigo e visualg
Pseudocódigo e visualg Professor: Juliano Lucas Gonçalves [email protected] Agenda Revisão Algoritmos Estrutura de dados Estrutura básica de um algoritmo em pseudocódigo Teste de mesa Operadores
3.1 - O que é um diagrama de bloco? Simbologia... 11
Sumário 1 - Introdução à Lógica.... 2 1.1 Lógica... 2 1.2 Raciocínio Lógico... 2 1.3 Instruções... 3 1.4 Algoritmo... 3 1.5 Lógica de programação... 4 1.6 Programas... 4 1.7 Exercícios para fixação:...
INFORMÁTICA APLICADA AULA 02 ALGORITMOS
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 ALGORITMOS Profª ª Danielle Casillo ALGORITMOS Um algoritmo é uma sequência de instruções
Lógica de Programação. Capítulo 1. Introdução. Lógica de Programação. Forbellone / Eberspacher. Introdução
Lógica de Programação Capítulo 1 Introdução Lógica de Programação Forbellone / Eberspacher Neste capítulo Introdução Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos
ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)
Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Já vimos entrada, processamento e saída, que compõem os algoritmos puramente
Estruturas de Decisão
Estruturas de Decisão Professor: Juliano Lucas Gonçalves [email protected] Agenda Operadores Relacionais Lógicos Estruturas de Decisão Se...Entao Se...Entao...Senao Se...Entao...Senao (encadeados)
... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;
Instituto Federal de Santa Catarina - Câmpus Chapecó Engenharia de Controle e Automação Programação I Professora: Lara Popov Zambiasi Bazzi Oberderfer Estruturas de Repetição São muito comuns as situações
Programação em C. Victor Amorim dos Santos
Programação em C Victor Amorim dos Santos Proposições Lógicas Expressões Lógicas e o tipo Boolean Importante para a tomada de decisão; Tipo Boolean: tipo de dados para representar a satisfação ou não de
A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..
Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Introdução aos Algoritmos A única diferença entre o difícil e o impossível é que o último demora um pouco mais de
Algoritmos e Estruturas de Dados
Algoritmos e Estruturas de Dados Introdução Prof. Sinaide Nunes Bezerra Vídeoaulas e exercícios em linguagem C, acesse www.mathgraph.com.br 1 de novembro de 2015 Sumário 1 Introdução
Introdução ao VisuALG
Introdução ao VisuALG Agenda VisuALG: Introdução ao VisuALG; Apresentação do Software; Entrada, Processamento e Saída; Depuração; Exercícios. Introdução ao VISUALG Site: http://www.apoioinformatica.inf.br/produtos/visualg
Conceitos Básicos de Algoritmos
Conceitos Básicos de Algoritmos 35 TIPOS PRIMITIVOS Palavra-reservada: inteiro - define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais Palavra-reservada: real - define variáveis numéricas
Estrutura de decisão
Estrutura de decisão Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente sequenciais. Com as instruções de SALTO ou DESVIO
Introdução à Lógica de Programação Aula 2. Adaptação de Luis Otavio Alvares
1 Introdução à Lógica de Programação Aula 2 Adaptação de Luis Otavio Alvares 2 Operadores Usados para incrementar, decrementar, comparar e avaliar dados, que são operações básicas em processamento de dados.
Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3
Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 Exercício - Seleção Escreva um algoritmo que leia o ano, mês e dia que uma pessoa nasceu
Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Etapas para o desenvolvimento de um programa Analise: estudo do problema para determinação dos dados de entrada, do processamento
Introdução à Algoritmos INF 1005 e INF Programação I
Introdução à Algoritmos INF 1005 e INF1004 - Programação I Pontifícia Universidade Católica Departamento de Informática 1 Algoritmo: Conceito Sequência finita e não ambígua de passos para a solução de
INFORMÁTICA APLICADA AULA 01 ALGORITMOS
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 01 ALGORITMOS Profª ª Danielle Casillo O que é lógica? NOÇÕES DE LÓGICA A lógica trata da
Variáveis, Expressões Aritméticas e Entrada e Saída de Dados
Escola de Ciências e Tecnologia UFRN Variáveis, Expressões Aritméticas e Entrada e Saída de Dados ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso quando estiver em
Programação Procedimental
Programação Procedimental Maria Adriana Vidigal de Lima Universidade Federal de Uberlândia - 2013 1 Escrita de Algoritmos 1.1 Técnicas de Programação e Algoritmos Na elaboração de programas maiores e complexos
