Prévia do material em texto
Algoritmos – Introdução Alexandre Augusto Giron 2 Objetivos ● Entender os conceitos básicos de lógica de programação ● Estudar os conceitos e tipos de algoritmos ● Aprender tipos e instruções primitivas para criar e estruturar algoritmos 3 Bibliografia da disciplina ● FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de Programação. 3 Edição. São Paulo, Prentice Hall, 2005. ● PEREIRA, S.L. Algoritmos e lógica de Programação em C – uma abordagem didática. São Paulo: Érica, 2010. ● GALANTE, G.; ZAGO, R.L. Apostila da Linguagem C. Cascavel: Unioeste, 2003. ● SANTA CATARINA. A. Algoritmos e Estruturas de Dados I. Material didático. Cascavel: Unioeste, 2001. 4 Roteiro ● Lógica de Programação ● Algoritmos – Algoritmo x Programa – Representação de Algoritmos ● Tipos primitivos ● Identificadores, expressões, funções e hierarquia de operadores ● Instruções Primitivas e Programação Estruturada 5 Lógica de Programação 6 Introdução ● Surgimento da computação – Necessidade de ferramentas para facilitar cálculos ● Computador – Do latim: computatore. (“Aquele que efetua cálculos”) ● Processamento por meio de programas (softwares) ● Dado x Informação – Dados são valores, sequência de símbolos. Ex: 18 anos (Idade) – Informação: resultado do processamento dos dados; interpretação dos dados. Ex: Se você tem mais de 18 anos, já atingiu a maioridade 7 Introdução ● Ênfases da computação – Prática: Tecnologias computacionais – Teórica: Fundamentos Teóricos 8 Lógica de Programação ● Lógica Todo cavalo é um mamífero. Todo mamífero é um animal. Logo, todo cavalo é um animal. – Raciocínio expressado na linguagem escrita ou falada ● Lógica de programação – Uso correto do raciocínio lógico na programação de computadores – Representação por meio de Algoritmos 9 O que é um Algoritmo? Sequência finita de instruções computáveis, sem ambiguidade, que transformam um conjunto de valores iniciais satisfazendo condições de um problema. ● Ou Sequência de passos para realizar uma objetivo bem definido. 10 Por que Algoritmos? ● Por que é importante o uso de algoritmos? – Abstração de alguns detalhes computacionais – Tradução para qualquer outra linguagem – Organizar um raciocínio lógico para realizar um objetivo ● Cuidados no uso de algoritmos – Falhas em cálculos podem gerar graves problemas 11 Algoritmo x Programa ● Um algoritmo não é um programa! – Algoritmo é escrito para um humano entender ● Programa: instanciação de um algoritmo em uma linguagem de programação – Linguagem de Programação: Computador entende 12 Algoritmos ● Representação de algoritmos – Descrição narrativa: descrever a solução passo a passo em linguagem natural – Fluxograma: uso de símbolos para descrever a solução – Pseudocódigo: técnica textual baseada em PDL (Program Design Language). Exemplo: Portugol ● Não esquecer que – Um algoritmo deve ser interpretável por um humano e deve ser fácil de codificar 13 Representação de algoritmos ● Fluxograma – Troca de lâmpada 14 Principais Símbolos de um fluxograma Obs: Notação obtida do livro Manzano e Oliveira (2012) Símbolo Significado Descrição Terminal Início e fim de um fluxo Entrada Manual Operação de entrada de dados Processamento Execução de uma operação Exibição Operação de saída visual de dados Decisão Uso de desvios condicionais 15 Representação de algoritmos ● Fluxograma – Exemplo 2 – Crie um fluxograma para calcular média entre duas notas (N1 e N2) informadas por um aluno – O algoritmo responderá para o aluno: ● Média >= 70 – Aprovado ● Média < 70 – Reprovado 16 Solução 17 Exercícios em sala 1) Crie um algoritmo usando descrição narrativa e fluxograma para os seguintes problemas: a) Algoritmo para calcular a média de 4 números informados e exibir em tela; b) Algoritmo para calcular o INSS para o salário informado, considerando que: ● Salário menor que R$ 1317,07 contribuirá 8%. ● Salário maior ou igual a R$ 1317,07 e menor que R$ 2195,12 contribuirá 9%. ● Salário maior que R$ 2195,13 contribuirá 11%. 2) Analise a afirmativa: “Algoritmos e Programas são sinônimos”. V ou F? Justifique. 18 Tipos primitivos, identificadores, expressões e hierarquia de operadores 19 Tipos primitivos ● Importante – Informação é a matéria-prima que faz necessária a existência dos computadores ● 4 tipos básicos de dados – Inteiro: Ele tem 8 irmãos – Real: Ela tem 1,73 metro de altura – Caracter: “a” – Cadeia de Caracteres: A placa dizia: “Pare” – Lógico: A lâmpada pode estar acesa ou apagada 20 Constantes ● Valor fixo que não se modifica ao longo do tempo, durante a execução de um programa ● Numéricas: – Inteiro ou real ● Literais: – Qualquer sequência de caracteres ● Lógicas: – Valor lógico biestável ● 1 → Verdadeiro ● 0 → Falso 21 Variável ● Informações que mudam ao longo do tempo ● Associação entre o nome dado x posição de memória ● Variáveis representadas por identificadores – Devem começar por um caracter alfabético (letra) – Podem ser seguidos por letras ou números ● Exemplos Alpha, X, i, notas, aux 22 Expressões Aritméticas ● Operadores aritméticos ● Operações matemáticas não convencionais ● Símbolos auxiliares: Parênteses 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 Operador Função Significado Exemplo pot(x,y) Potenciação x elevado a y pot(2,3) rad(x) Radiciação Raiz quadrada de x rad(9) div Quociente da divisão 9 div 4 resulta em 2 mod - Resto da divisão 9 div 4 resulta em 1 23 Expressões Lógicas ● Definição – Expressão cujos operadores são lógicos ou relacionais e cujos operandos são relações, constantes ou constantes lógicas – Uma expressão lógica tem um resultado: Verdadeiro ou Falso ● Operadores Relacionais – Comparação entre valores ● Operadores Lógicos – Formação de proposições 24 Expressões Lógicas ● Operadores Lógicos – Comparação: =,>,<, >=, <=, <> ● Exemplos Resultado 10 < 20 20 >= 10 2 + 2 = 4 15 mod 4 < 19 mod 6 1 > 3 25 Expressões Lógicas ● Operadores Lógicos – Comparação: =,>,<, >=, <=, =/= ● Exemplos Resultado 10 < 20 V 20 >= 10 V 2 + 2 = 4 V 15 mod 4 < 19 mod 6 F 1 > 3 F 26 Expressões Lógicas ● Operadores Lógicos – Resultado é sempre verdadeiro ou falso – Operandos: constante lógica ou uma expressão – E, OU, XOU, NAO ● Resultado determinado por Tabela-Verdade 27 Tabela Verdade: E e OU ● Operador E: conjunção ● Operador OU: disjunção Exemplo: Se chover e relampejar Exemplo: Se chover ou relampejar eu fico em casa eu fico de casa A B A e B 0 0 0 0 1 0 1 0 0 1 1 1 A B A ou B 0 0 0 0 1 1 1 0 1 1 1 1 28 Tabela Verdade: XOU e NAO ● Operador XOU: “ou exclusivo” - coincidência ● Operador NAO: negação A B A xou B 0 0 0 0 1 1 1 0 1 1 1 0 A nao A 0 1 0 1 1 0 1 0 29 Hierarquia de operadores ● Prioridade: 1) Sempre parênteses mais internos 2) Operadores Aritméticos 1) Multiplicação/Divisão 2) Soma/Subtração 3) Operadores Relacionais 4) Operadores Lógicos 1) NAO 2) E 3) OU 4) XOU 30 Exercícios em sala 1) Determine o resultado das expressões a seguir. Dados: A, B e C contém 2,7,3 e D é verdadeiro e H é falso. a) B = A * C e (D ou H) b) B > A ou B = (A+A+C) c) nao D ou (H xou nao D) e (A * C < B) 2) Monte a tabela verdade para as expressões lógicas a seguir: a) A e nao B b) nao A ou nao B e C c) (A e B) e (B ou C) 31 Instruções primitivas e Programação Estruturada 32 Instruções Primitivas ●Comando de Atribuição – Fornecer um valor à uma variável – Tipo do dado deve ser compatível com a variável ● Exemplo: considere duas variáveis, Var1 e A, do tipo inteiro: Var1 ← 20; A ← Var1; 33 Instruções Primitivas ● Comandos de Entrada e Saída de dados – Entrada: recebe dados dos usuários; – Saída: exibe os dados aos usuários. ● Exemplo: Entrada de dados leia Var1; leia A,B,C; ● Exemplo: Saída escreva X,Y,Z; escreva “O resultado é:”, Var; 34 Programação Estruturada ● Organização da lógica de raciocínio para resolver um problema – Algoritmos: Pseudocódigo, fluxograma, descrição 35 Definição - Pseudocódigo ● Forma simplificada de escrita de um algoritmo ● Um pseudocódigo é uma linguagem de projeto de programação – Não é uma linguagem de programação (Manzano e Oliveira, 2012) ● No Brasil, Guimarães e Lages (1994) propuseram o Português Estruturado – Mais conhecido como Portugol 36 Portugol ● Bastante utilizado para ensino de lógica de programação e algoritmos ● Por que português estruturado? Inicio inteiro A leia A X <- A + 10 escreva A Fim 37 Portugol ● Não há rigor sintático como outras linguagens ● Portugol inspirou linguagens de programação e interpretadores – G-Portugol – Portugol Viana – Portugol IDE – Portugol Studio ● Exemplos de programas? Veremos mais adiante! 38 Sintaxe Geral do Português Estruturado - Portugol inicio <tipo> <nome_variavel1>, <nome_var2> <tipo2> <nome_var3>, <nome_var4>, ... <comando1> <comando2> ... <comandoN> fim 39 Exemplo 1 – Portugol IDE 40 Exemplo 2 – Portugol IDE ● Crie um programa que permita fazer a conversão entre Reais e Dólares. Leia um valor em Reais pelo teclado, o valor da taxa de câmbio e mostre o correspondente em Dólares. 41 Exemplo 2 – Portugol IDE – Solução 42 Sintaxe no Portugol IDE ● Tipos: – real, inteiro, texto, logico (verdadeiro, falso), caracter ● Entrada/Saída – escrever, ler ● Operadores: – Atribuição: <- – Lógicos: E, OU, XOU, NAO – Relacionais: =, >, >=, <=, <, =/= ● Dúvidas? – http://www.dei.estt.ipt.pt/portugol/node/6 43 Exercícios em sala 1) Construa algoritmos em portugol para resolver os seguintes problemas: a) Fazer um algoritmo para calcular a área de um retângulo (Área = base * altura). b) Dadas 4 notas fazer um algoritmo para calcular a média aritmética. Após o cálculo, o algoritmo deverá informar “APROVADO” se a média for maior ou igual a 70, e “EXAME” caso contrário. c) Três nadadores realizaram uma competição entre si, cada um obteve um tempo (em minutos) cronometrado. Faça um algoritmo que leia os tempos dos nadadores, informando qual dos três venceu a competição (o que obteve o menor tempo). 44 Resumo ● Lógica de programação – Raciocínio lógico na programação de computadores ● Algoritmos x Programa ● Variáveis e constantes possuem um tipo primitivo (inteiro, real..) ● Expressões lógicas sempre têm um resultado – Verdadeiro ou Falso ● Programação Estruturada – Início → Declaração de Variáveis → Comandos → Fim. 45 Para casa ● Leitura dos Capítulos 1 e 2 (Livro Lógica de Programação – Forbellone) ● Lista de Exercícios 1 – Introdução 46 Referências ● MANZANO, Jose A. N. G.; OLIVEIRA, Jayr F. de. Algoritmos - Lógica para Desenvolvimento de Programação de Computadores. ERICA, 26ª ed., 2012. ● FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de Programação. 3 Edição. São Paulo, Prentice Hall, 2005.