Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * ALGORITMOS Pascal Prof. Ana Gavinho Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo : definição Descreve um padrão de comportamento através de um conjunto bem definido e finito de ações (comandos) que irão produzir um resultado desejado (apresenta uma solução para um problema). É uma seqüência de instruções finita e ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema. Seqüencia ordenada de passos que deve ser seguida para realizar uma tarefa. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo não computacional É um algoritmo cuja seqüência de passos, a princípio, não pode ser executada por um computador. Algoritmo computacional Para ser executado por um computador, deve ter instruções corretas e sem ambigüidades. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 1 de Algoritmo Algoritmo e Estruturas de Dados - 02/2014 É computacional? Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 2 de Algoritmo Algoritmo e Estruturas de Dados - 02/2014 É computacional? Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo detalhado: Como fritar um ovo? Algoritmo e Estruturas de Dados - 02/2014 Algoritmo 1: 1. Colocar um ovo na frigideira. 2. Esperar o ovo ficar frito. 3. Retirar o ovo da frigideira. Algoritmo 2: Colocar a frigideira no fogo. Colocar óleo e esperar até o óleo ficar quente. Quebrar o ovo separando a casca e colocar o conteúdo do ovo na frigideira. Esperar o ovo ficar frito. Retirar o ovo da frigideira. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo: formas de representação Descrição narrativa Fluxograma Pseudocódigo ou linguagem estruturada ou portugol Obter as notas da primeira e da segunda prova. Calcular a média aritmética das duas notas. Se a média for >= 7 então o aluno foi aprovado, senão (nota < 7) o aluno foi reprovado. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo: descrição narrativa Exemplo : Cálculo da média de um aluno Obter as notas da primeira e da segunda prova. Calcular a média aritmética das duas notas. Se a média for >= 7 então o aluno foi aprovado, senão (nota < 7) o aluno foi reprovado. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo: fluxograma Principais formas geométricas OPERACÃO INICIO / FIM DECISÃO SAÍDA DE DADOS ENTRADA DE DADOS A CONECTOR Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo: fluxograma (cont.) Exemplo : Cálculo da média de um aluno MEDIA <-(N1+N2)/2 INICIO MEDIA >= 7 “APROVADO” N1, N2 FIM A “REPROVADO” V F A Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo: pseudocódigo Pseudocódigo ou linguagem estruturada ou portugol Muito semelhante a forma em que os programas são escritos. Possui definição dos tipos de variáveis usadas no algoritmo. Permite a tradução de um algoritmo para uma linguagem de programação específica de forma praticamente direta. Neste curso, vamos usar a linguagem Pascal e o software freeware PascalZim. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo - questionário Algoritmo e Estruturas de Dados - 02/2014 Por que um algoritmo não pode tem um comando como “Escreva todos os números pares”? Escreva um algoritmo que produza os valores: 2 4 6 8 10 Escreva um algoritmo que produza os valores: 1 3 5 7 9 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * program NomePrograma ; // comentarios { } (* *) declarações begin comandos begin comandos end; comandos end . Algoritmo e Estruturas de Dados - 02/2014 Pascal – estrutura do programa Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Pascal – declarações constantes : seu valor não muda ao longo do programa const identificador = valor; [...identificador = valor;] variáveis : seu valor pode mudar ao longo do programa var identificador [...,identificador] : tipo Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Estes nomes de identificadores são validos? Por que? Algoritmo e Estruturas de Dados - 02/2014 “nota1” 1nota salario_liquido SalarioLiquido a1b2c3 km/h #produto leia nota1 nota1+nota2 salario-liquido salarioliquido Matricula X2 @gmail.com nota(1) a:b Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 PascalZim – tipos de variáveis Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Pascal – exemplo de declarações Algoritmo e Estruturas de Dados - 02/2014 const PI =3.1415; { define uma constante real } maior_idade = 18; { define uma constante inteira } pais = ‘Brasil’; { define uma constante string } var indice: integer; { declara 1 variável inteira } nota1, nota2 : real; { declara 2 variáveis reais } achou: boolean; { declara uma variável lógica } sexo: char; { declara uma variável caracter } nome, sobrenome: string[20]; { declara duas strings com 20 caracteres } Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Que tipos de dados seriam usados para cada informação deste cadastro? Crie uma variável (nome e tipo) para cada informação deste cadastro. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * <identificador> := <expressão> ; Algoritmo e Estruturas de Dados - 02/2014 Pascal – comandos de atribuição Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplos de atribuição Algoritmo e Estruturas de Dados - 02/2014 var indice: integer; nota1, nota2, media : real; passou: boolean; sexo: char; nome, sobrenome: string[20]; begin indice := 1; {recebe um valor} nota1 := 9.5 ; {recebe um valor} media := (nota1 + nota2) /2; {recebe o valor da expressão aritmética} passou : = (media >= 7.0); {recebe o valor da expressão lógica} sexo := ‘F’; {recebe um valor} nome := ‘Jose’ ; {recebe um valor} Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Operadores aritméticos sobre inteiros div - divisão inteira mod - resto da divisão * Operadores aritméticos sobre inteiros e reais + soma - subtração * multiplicação ex: 10 + 30 resultado: 40 ex: 30 - 20 resultado: 10 ex: 20 * 4,2 resultado: 84.0 Algoritmo e Estruturas de Dados - 02/2014 Operadores aritméticos Operadores aritméticos sobre reais / - divisão real ex: 11.0 / 2.0 resultado: 5.5 ex: 11 div 2 resultado: 5 ex: 11 mod 2 resultado: 1 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Ordem de execução dos operadores aritméticos * / div mod + - Algoritmo e Estruturas de Dados - 02/2014 Operadores aritméticos ex: 4 + 6 / 2 = 7 (4 + 6) / 2 = 5 1 + 2 * 3 = 7 (1 + 2) * 3 = 9 3 + 5 mod 2 = 4 (3 + 5) mod 2 = 0 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 ex: ‘Belo’ + ‘Horizonte’ resultado: ‘BeloHorizonte’ ‘Belo’ + ’ ‘ + ‘Horizonte’ resultado: ‘Belo Horizonte’ Operadores de caracteres + Concatenação de caracteres Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Quais comando de atribuição estão corretos? Algoritmo e Estruturas de Dados - 02/2014 var indice, a, b : integer; nome, primeironome, sobrenome: string; tem : boolean; a := 1; a := true; b := ‘2’; b := 2; indice := a + b; indice := nome + sobrenome; indice := indice +1; primeironome := ‘Jose’; sobrenome := ‘Silva’; nome := primeironome + sobrenome ; nome := indice; tem := false; tem := a; tem := (a>b); Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Operadores relacionais Operadores lógicos Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Complete o quadro abaixo Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Complete o quadro abaixo Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Qual o valor (V ou F) de cada expressão lógica abaixo? a = 5 b = 10 . a < b . (a+b) < 15 . (a+b) < (b-a) . a <= b . (a+b) <= 15 . (a+b) <= (b-a) . b >= a . (a+b) >= 15 . (a+b) >= (b-a) . a = b . (a+b) = 15 . (a+b) = (b-a) . a <> b . (a+b) <> 15 . (a+b) <> (b-a) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Qual o valor (V ou F) de cada expressão lógica abaixo? a = 5 b = 10 . (a < b) and ((a+b) < 15) and ((a+b) < (b-a)) . (a < b) or ((a+b) < 15) or ((a+b) < (b-a)) . (a < b) and ((a+b) < 15) or ((a+b) < (b-a)) . (a < b) or ((a+b) < 15) and ((a+b) < (b-a)) . (a <= b) and ((a+b) <= 15) or ((a+b) <= (b-a)) . (b >= a) or ((a+b) >= 15) and ((a+b) >= (b-a)) . (a = b ) or ((a+b) = 15) or ((a+b) = (b-a)) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Pascal - comandos de entrada e saída Saída: write (expressão [..., expressão] ); ou writeln (expressão [..., expressão] ); Expressão pode ser: um identificador uma string uma expressão aritmética Entrada: read (variavel [..., varialvel] ); ou readln (variavel [..., varialvel] ); Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Pascal – saída formatada Podemos formatar a saída de um campo numérico em relação a quantidade de casas decimais mostradas : indentificador:tamanho_do_campo:casas_decimais Algoritmo e Estruturas de Dados - 02/2014 Exemplo: Media := 9.75; writeln(‘Media = ', media:2:1); saída: Media = 9,8 Media := 9.74; writeln(‘Media = ', media:2:1); saída: Media = 9,7 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 1 - calcule a média aritmética entre 2 números Program Media_v1 ; // Calcula a média aritmética entre 2 numeros Var n1, n2: real; Begin // Le dois numeros readln(n1, n2); // Mostra o resultado writeln('Media = ', (n1 + n2)/2 ); End. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 2 - calcule a média aritmética entre 2 números Algoritmo e Estruturas de Dados - 02/2014 Program Media_v2 ; // Calcula a média aritmética entre 2 numeros Var n1, n2, media: real; Begin // Solicita dois numeros ao usuário write('Informe o primeiro numero: '); readln(n1); write('Escreva o segundo numero: '); readln(n2); media := (n1 + n2) / 2; // Calcula a media // Mostra o resultado writeln('A media entre ', n1:3:1, ' e ', n2:3:1, ' é ', media:3:2); End. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * 1) Calcule a média aritmética entre 3 números. 2) Um aluno ficou para a prova final porque a média entre as notas de suas 2 provas foi menor que 7. Ele fez a prova final e teve uma nova média – a média final - calculada a partir da média aritmética entre os valores da prova final e da antiga média. Leia a nota das três provas e calcule sua média final. Algoritmo e Estruturas de Dados - 02/2014 Exercícios - 1 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Pascal - estrutura de decisão condição usa operadores lógicos e relacionais Simples: if <condição> then comando ou bloco de comandos ; Composta: if <condição> then comando ou bloco de comandos else comando ou bloco de comandos ; Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 1 : Leia um número e diga se ele é > zero Program MaiorQueZero ; // Le um numero e informa se ele é maior que zero Var n1: integer; Begin write('Informe um numero inteiro : '); readln(n1); if (n1 > 0) then writeln(‘O numero ',n1, ' é maior que zero.') else if (n1 = 0) then writeln(‘O numero ',n1, ' é i igual a zero.') else // (n1 < 0) writeln(‘O numero ',n1, ' é menor que zero.'); end. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 2 : Leia um número e diga se ele é > zero Program MaiorQueZero_v2 ; // Le um numero e informa se ele é maior que zero Var n1: integer; Begin write('Informe um numero inteiro : '); readln(n1); if (n1 > 0) then begin write (‘O numero ',n1) ; writeln (' é maior que zero.') ; end else if (n1 = 0) then writeln (‘O numero ',n1, ' é i igual a zero.') else // (n1 < 0) writeln (‘O numero ',n1, ' é menor que zero.'); end. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 3 : Leia 2 números e diga se são > zero Program MaiorQueZero_v3 ; // Le 2 numeros e informa se são maiores que zero Var n1, n2: integer; Begin write('Informe dois numeros inteiros : '); readln(n1,n2); if (n1 > 0) then write('O numero ',n1, ' é maior que zero') else if (n1 = 0) then write('O numero ',n1, ' é igual a zero') else // (n1 < 0) write('O numero ',n1, ' é menor que zero'); if (n2 > 0) then writeln(' e o numero ',n2, ' é maior que zero') else if (n2 = 0) then writeln(' e o numero ',n2, ' é igual a zero') else // (n2 < 0) writeln(' e o numero ',n2, ' é menor que zero'); End. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Leia 2 números e diga qual o maior, qual o menor ou se eles são iguais. Leia 3 números e diga qual o maior e qual o menor deles. Leia n números e diga qual o maior e qual o menor deles (veremos isto na semana que vem). Leia um numero N e diga se ele é par ou não. Na lanchonete da faculdade, você comprou algumas garrafas de água mineral. Leia o preço da garrafa, a quantidade comprada e calcule o valor total. Leia o valor pago em dinheiro e calcule o troco. Leia os números A e B, troque seus valores e imprima-os. Exercícios - 2 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * A cantina da escola vende os seguintes produtos: Leia o código de um produto e liga qual seu nome e valor. Informe se um aluno está aprovado ou não. Leia as notas da primeira e da segunda prova e calcule sua média. Se ela for maior ou igual a 7 (sete), o aluno esta aprovado, senão está em prova final. Leia a nota da prova final e calcule sua média final, que é a média aritmética entre a nota da prova final e da antiga média. Se a média final for maior ou igual a 5 (cinco), o aluno está aprovado senão está reprovado. Algoritmo e Estruturas de Dados - 02/2014 Exercícios – 2 (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Pascal - Comando Case case <expressao_selecao> of <lista_1_valores> : comando ou bloco de comandos ; <lista_2_valores> : comando ou bloco de comandos ; ... else comandos ; end ; Algoritmo e Estruturas de Dados - 02/2014 <expressao_selecao> : seu resultado deve ser um inteiro, um caracter ou um valor lógico. <lista_valores> deve conter um valor, uma lista de valores separados por virgula, uma faixa de valores na forma <valor_inic>..<valor_fim> Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Program EstacaoAno; // Informa, a partir do mês, qual a estação do ano var mes: integer; begin write('Digite o número do mês (entre 1 e 12) : '); readln(mes); case mes of 12,1..2 : writeln('É verão.'); 3..5 : writeln('É outono.'); 6..8 : writeln('É inverno.'); 9..11 : writeln('É primavera.'); else writeln('Mês do ano inválido.'); end; End. Exemplo 1 : Qual a estação do ano? Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Program TipoChar; // Informa o tipo de caracter digitado var c: char; begin write('Digite um caracter: '); readln(c); case c of 'A'..'Z','a'..'z‘ : writeln('Caracter lido e'' uma letra.'); '0'..'9‘ : begin write('Caracter lido e'' um digito '); writeln('entre 0 e 9.'); end; '+','-','*','/‘ : writeln('Caracter lido e'' um operador aritmético.'); else write('O caractere lido não e'' letra, ou digito '); writeln('ou operador aritmético.'); end; End. Exemplo 2 : Qual o tipo do caracter? Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Uma pessoa entre 0 e 11 anos é uma criança; entre 12 e 17 anos é um adolescente e com 18 anos ou mais é um adulto. Leia a idade de uma pessoa e diga qual sua classificação (cuidado com números negativos e idades muito avançadas, como 250 anos). A cantina da escola vende os seguintes produtos: Leia o código de um produto e liga qual seu nome e valor. Leia um número entre 1 e 12 e liga qual o mês do ano, por extenso. Escrevas os exemplos 1 e 2 anteriores (do comando case) usando o comando if. Exercícios – 3 : usando comando case Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Estrutura de repetição : comando while while <condição> do comando ou bloco de comandos ; <condição> usa operadores lógicos e relacionais comando ou bloco de comandos é executado quando a condição é verdadeira o valor de <condição> é alterado dentro do bloco de comandos Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program Dobro ; { Le 5 numeros e calcula seu dobro } var num, dobro, cont: integer; Begin cont := 1; while (cont <=5) do begin write('Escreva o ',cont,'.o número : '); readln(num); dobro := num*2; writeln('O dobro de ', num, ' é ',dobro); writeln(''); cont := cont+1; end; End. Exemplo 1 : leia 5 números e calcule o dobro de cada 1 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo 2 : leia vários números até ler o número zero. Diga qual o menor número lido. Program MenorValor ; { Indica menor valor lido } var num, menor: integer; Begin write('Informe o primeiro numero : '); read(num); menor := num; while (num <>0) do begin if (num < menor) then menor := num; write('Informe outro numero : '); read(num); end; // while writeln('O menor valor é ',menor); End. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, dizer quantos números foram lidos. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, imprimir a sua soma. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, imprimir a média dos números lidos. Leia N registros contendo a altura e o código de sexo dos alunos de uma turma ( M e F). Parar ao ler a altura zero. Ao final, imprimir: A maior, a menor e a media da altura das mulheres A maior, a menor e a media da altura dos homens A maior, a menor e a media da altura da turma Leia 100 notas de alunos. Diga qual a maior e qual ao menor nota. Exercícios - 4 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * repeat <comandos> until <condicao> ; <condição> usa operadores lógicos e relacionais <comandos> é executado pelo menos uma vez quando <condição> for V, o comando termina o valor de <condição> é alterado dentro do bloco de comandos Estrutura de repetição : comando repeat Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program DobroComRepeat ; { Le 5 numeros e calcula seu dobro } var num, dobro, cont: integer; Begin cont := 1; repeat write('Escreva o ',cont,'.o numero : '); readln(num); dobro := num*2; writeln('O dobro de ', num, ' é ',dobro); writeln(''); cont := cont+1; until (cont > 5); End. Exemplo 1 : leia 5 números e calcule o dobro de cada 1 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program MenorValorComRepeat ; { Indica menor valor lido } var num, menor: integer; Begin write('Informe um numero : '); read(num); if (num < > 0) then begin menor := num; repeat if (num < menor) then menor := num; write('Informe outro numero : '); read(num); until (num = 0); end; writeln(''); writeln('O menor valor é ',menor); End. Exemplo 2 : leia vários números até ler o número zero. Diga qual o menor número lido. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program MenorValorComRepeat ; { Indica menor valor lido } var num, menor: integer; Begin menor := 999999999; // maior valor que pode ser armazenado repeat write('Informe um numero : '); read(num); if (num < menor) and (num <> 0) then menor := num; until (num = 0); writeln(''); writeln('O menor valor é ',menor); End. Exemplo 3 : leia vários números até ler o número zero. Diga qual o menor número lido. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, dizer quantos números foram lidos. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, imprimir a sua soma. Ler N números inteiros e positivos, parar ao ler o numero zero. Ao final, imprimir a média dos números lidos. Leia N registros contendo a altura e o código de sexo dos alunos de uma turma ( M e F). Parar ao ler a altura zero. Ao final, imprimir: A maior, a menor e a media da altura das mulheres A maior, a menor e a media da altura dos homens A maior, a menor e a media da altura da turma Leia 100 notas de alunos. Diga qual a maior e qual ao menor nota. Exercícios – 5 – usando comando repeat Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * for contador := <inicio> to <fim> do comando ou bloco de comandos ; contador começa com o valor inicial <inicio> e é incrementado de 1 a cada loop. o comando termina quando contador for maior que <fim> Estrutura de repetição : comando for Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * for contador := <inicio> downto <fim> do comando ou bloco de comandos ; neste caso, o contador começa com o valor inicial <inicio> e é decrementado de 1 a cada loop. o comando termina quando contador for menor que <fim> Estrutura de repetição : comando for (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program DobroComFor_to ; { Le 5 numeros e calcula seu dobro } var num, dobro, cont: integer; Begin for cont := 1 to 5 do begin write('Escreva o ',cont,'.o numero : '); readln(num); dobro := num*2; writeln('O dobro de ', num, ' é ',dobro); writeln(''); end; End. Exemplo 1 : leia 5 números e calcule o dobro de cada 1 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program DobroComFor_downto; { Le 5 numeros e calcula seu dobro } var num, dobro, cont: integer; Begin for cont := 5 downto 1 do begin write(‘Escreva o’, (5-cont+1), ‘ numero : ‘); readln(num); dobro := num*2; writeln(‘O dobro de ‘, num, ‘ é ‘,dobro); writeln(‘’); end; End. Exemplo 2 : leia 5 números e calcule o dobro de cada 1 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program MenorComFor; { Le 5 numeros e informa o menor valor} var num, menor, cont: integer; Begin write('Escreva o primeiro numero : '); readln(num); menor := num; for cont := 2 to 5 do begin write('Escreva o ‘, cont, ‘.o numero : '); readln(num); if (num < menor) then menor := num; end; writeln('O menor numero eh ‘, menor); End. Exemplo 3 : leia 5 números e diga qual o menor Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Ler 10 números inteiros. Ao final, imprimir a sua soma Ler 10 números inteiros e positivos. Ao final, imprimir a sua média. Ler 10 números inteiros. Ao final, imprimir o maior e o menor valor lido. Leia 10 registros contendo a altura e o código de sexo dos alunos de uma turma ( M e F). Parar ao ler a altura zero. Ao final, imprimir: A maior, a menor e a media da altura das mulheres A maior, a menor e a media da altura dos homens A maior, a menor e a media da altura da turma Leia 10 registros contendo a altura e o código de sexo dos alunos de uma turma ( M e F). Parar ao ler a altura zero. Ao final, imprimir: Exercícios – 6 – usando comando for Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Estruturas de Dados Homogêneas: Vetores variáveis que possuem o mesmo nome e são do mesmo tipo são variáveis unidimensionais cada variável é acessada por um índice a partir de um valor inicial e um valor final var identificador[..,identificador] : array [1..tamanho] of tipo ; Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo de Vetores var nome: array [1..4] of string ; nome 1 2 3 4 var nota: array [1..3] of real ; nota 1 2 3 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program VetorNomes; // Le 4 nomes e os armazena num vetor const max = 4; var ind: integer; nome: array [1..max] of string; Begin for ind := 1 to max do begin write('Informe o ', ind,'. nome: '); readln(nome[ind]); end; End. Exemplo 1 : leia e armazene 4 nomes em um vetor Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program VetorNotas; // Le 3 notas e as armazena num vetor const max = 3; var ind: integer; nota: array [1..max] of real; Begin ind := 1; repeat write('Informe a ', ind,'. nota: '); readln(nota[ind]); ind := ind + 1; until (ind > max); End. Exemplo 2 : leia e armazene 3 notas em um vetor Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Crie um vetor de 5 posições com números inteiros. Leia e armazene 5 valores. Em que posição esta o maior valor? Qual a posição do menor valor? Quantos números pares há neste vetor? Crie um vetor de 6 posições com números inteiros. Leia e armazene 6 valores. Inverta as posições dos números do vetor: o primeiro com o último, o segundo com o penúltimo e assim por diante. Faça o mesmo para um vetor com 5 posições. Em um vetor de 3 posições, 2 são notas de um aluno e a quarta é sua media final. Leia as 2 notas deste aluno, armazene-as no vetor e calcule sua media final. Exercícios – 7 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Para a ordenação de vetores, no método da bolha compara-se o primeiro elemento com o segundo e troca-se a posição se eles estiverem fora de ordem. Sucessivamente, compara-se o segundo com o terceiro, o terceiro com o quarto até levar o maior elemento ao fim do vetor. Se os elementos forem testados sem ser feita nenhuma troca é porque já estão ordenados (use um flag). Faça um algoritmo para o método da bolha. Exercícios – 7 (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Estruturas de Dados Homogêneas: Matrizes var ident[..,ident] : array [1..tam1, 1..tam2] of tipo ; variáveis que possuem o mesmo nome e são do mesmo tipo são variáveis bidimensionais (um vetor que possui mais de um índice) cada variável é acessada por dois índices a partir de um valor inicial e um valor final Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo de Matrizes var notasTurma: array [1..4, 1..3] of real ; Quantos alunos tem a turma e quantas notas tem cada aluno? var diasSemana: array [1..7, 1..4] of integer ; Quantos dias tem a semana e quantas semanas tem a matriz? var diasAno: array [1..30, 1..12] of integer ; Quantos dias tem cada mês? Quantos meses tem cada ano? Quantos elementos tem a matriz (quantos dias tem o ano)? Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo de Matrizes (cont) var matriz: array [1..3, 1..3] of real ; Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program ArmazenaNotas; // Le 3 notas de 4 alunos var indLinha, indColuna: integer; // uma linha para cada aluno e nota: array [1..4,1..3] of real; // uma coluna para cada nota Begin for indLinha := 1 to 4 do begin writeln('Notas do ',indLinha,'. aluno.'); for indColuna := 1 to 3 do begin write('Informe a ', indColuna,'. nota: '); readln(nota[indLinha,indColuna]); end; writeln(''); end; End. Exemplo 1 : leia e armazene 3 notas de 4 alunos de uma turma Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Um professor tem uma turma de 35 alunos onde cada aluno tem duas notas de prova. Ele deseja ler e armazenar o nome dos alunos, suas duas notas e a média destas notas. Faça um algoritmo que: leia e armazene o nome e as notas de cada aluno calcule a média das notas mostre o nome, as notas e a média de cada aluno ordene a relação de alunos por nome e mostre o nome, as notas e a média de cada aluno. Ordene a relação de alunos por média e mostre o nome, as notas, a média de cada aluno e sua situação: Exercícios – 8 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Imprima a matriz abaixo: 11 12 13 21 22 23 31 32 33 Exercícios – 8 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Estruturas de Dados Heterogêneas: registros type identificador_registro = record <declaração dos campos> end; var identificador_variavel : identificador_registro; são declarados na instrução type e antes da declaração das variáveis. os campos de um registro são como variáveis e podem armazenar dados de tipos diferentes. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Exemplo de Registros type cadastro_aluno = record Nome: string[20]; Nota1: real; Nota2: real; end; var aluno: cadastro_aluno; Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * program NotasAluno; type cadastro_aluno = record Nome: string; Nota1: real; Nota2: real; end; var aluno: cadastro_aluno; Begin write('Informe o nome...........: '); read(aluno.nome); write('Informe a primeira nota..: '); read(aluno.nota1); write('Informe a segunda nota...: '); read(aluno.nota2); writeln; writeln(‘O aluno ‘,aluno.nome, ‘ tem media = ‘,(aluno.nota1+aluno.nota2)/2); End. Exemplo 1 : leia o nome e as 2 notas de um aluno e calcule sua média Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * é um programa que auxilia o programa principal através da realização de uma determinada sub-tarefa. é chamados dentro do corpo do programa principal como se fosse um comando. após seu término, a execução do programa continua a partir do ponto onde foi chamado. cada subprograma, além de ter acesso às variáveis do programa que o chamou (são as variáveis globais), pode ter suas próprias variáveis (são as variáveis locais). Pascal - Subprogramas Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * são escritos após a declaração das variáveis e antes do corpo do programa principal parâmetros são informações passadas a um subprograma quando este é chamado. funções são subprogramas que retornam um valor. procedimentos são subprogramas que não retornam um valor. Pascal – Subprogramas (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * procedure NomeProced ( <parametros> ) ; declarações begin comandos end; Pascal – Procedimentos Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program SomaSemParm; // soma 2 numeros var n1, n2, total: integer; //são var globais procedure Soma; begin total := n1+n2; //são var globais end; // end da procedure Soma Begin n1 := 2; n2 := 3; Soma; writeln('A soma de ',n1,' e ', n2,' é igual a ', total); End. Exemplo 1 : soma de 2 números, sem parâmetros Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program SomaComParamValor; // soma 2 numeros var n1, n2, total: integer; //são var globais procedure Soma(x,y: integer); // x e y são locais a Soma begin total := x+y; // total é var global end; // end da procedure Soma Begin n1 := 2; n2 := 3; Soma(n1,n2); writeln('A soma de ',n1,' e ', n2,' é igual a ', total); End. Exemplo 2 : soma de 2 números, com parâmetros por valor Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program SomaComParamRefer; // soma 2 numeros var n1, n2, total: integer; //são var globais procedure Soma(x,y: integer; var resposta:integer); // x e y são locais a Soma // resposta é parametro por referencia begin resposta := x+y; // resposta é a var global total end; // end da procedure Soma Begin n1 := 2; n2 := 3; Soma(n1,n2,total); writeln('A soma de ',n1,' e ', n2,' é igual a ', total); End. Exemplo 3 : soma de 2 números, com parâmetros por referência Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * function NomeFuncao ( <parametros> ) : tipo ; declarações begin comandos end; * Pascal – Funções Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program SomaSemParm; // soma 2 numeros var n1, n2, total: integer; //são var globais function Soma: integer; begin Soma := n1+n2; //são var globais end; // da função Soma Begin n1 := 2; n2 := 3; total:= Soma; writeln('A soma de ',n1,' e ', n2,' é igual a ', total); End. Exemplo 1 : soma de 2 números, sem parâmetros Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program FuncSomaComParm; // soma 2 numeros var n1, n2, total: integer; //são var globais function Soma(x,y: integer): integer; begin Soma := x+y; // x e y são var locais end; // da função Soma Begin n1 := 2; n2 := 3; total:= Soma(n1,n2); writeln('A soma de ',n1,' e ', n2,' é igual a ', total); End. Exemplo 2 : soma de 2 números, com parâmetros por valor Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * recursão é a possibilidade de um sub-programa (procedimento ou função) chamar a si mesmo. Exemplo: o fatorial de um numero N = N * ( N-1) * (N-2)* ... * 2 * 1 Pascal – recursão Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Program CalculaFatorial; // calcula o fatorial de n var n, fatorial: integer; Function Fat(x:integer):integer; Begin if (x <= 2) then Fatorial := x else Fat := x * Fat (x-1); end; // da função Fat Exemplo: fatorial de um número n Begin write('Escreva um numero :'); read(n); fatorial := Fat(n); writeln(‘O fatorial de ‘,n, ‘ é igual a ‘,fatorial); End. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Funções numéricas predefinidas em pascal Algoritmo e Estruturas de Dados - 02/2014 Exemplos Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Funções numéricas predefinidas em pascal (cont) Algoritmo e Estruturas de Dados - 02/2014 Exemplos Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Funções predefinidas para uso em strings Algoritmo e Estruturas de Dados - 02/2014 Exemplos Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Exemplos Funções predefinidas para uso em strings (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Exemplos Funções predefinidas para uso em strings (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * * Algoritmo e Estruturas de Dados - 02/2014 Exemplos Funções predefinidas para uso em strings (cont.) Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Exercícios Leia dois números inteiros, calcule a sua média usando um procedimento e a imprima. Faça o exercício acima usando uma função. Leia dois números inteiros e usando uma função diga qual o maior deles. Faça o exercício acima para 3 números, retornando o maior deles. Escreva um procedimento que troque o valor de dois números. Dado um numero de 3 algarismos, faça uma rotina(procedimento ou função) que decomponha este numero nos seus digitos. Exemplo: número 145 decomposto nos números 1 (centenas), 4 (dezenas) e 5 (unidades). Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Exercícios O digito verificador de um numero de 3 algarismos é calculado da seguinte forma: DV = (D1*4 + D2*3 + D3*2) mod 10 onde D1 é o primeiro digito do número, D2 seu segundo digito e D3 seu terceiro digito. Faça um programa que leia uma serie de números de no máximo 3 algarismos (parar ao ler zero) e escreva seu DV calculado por uma rotina (função ou procedimento). Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Glossário de termos Bloco de comandos : conjunto de comandos com uma função bem definida. Comandos : ações, instruções de uma linguagem. Função : sub–algoritmo que retorna um valor ou uma informação. Identificadores : nomes dados a variáveis, constantes e programas. Devem começar por letra e podem ter letras, números ou underscore. Não podem ser palavras reservadas ou ter espaços em branco. Linguagens de programação : softwares que permitem o desenvolvimento de programas. Possuem poder de criação ilimitado desde sistemas empresariais até sistemas operacionais. Palavra reservada: nomes de comandos da linguagem. Procedure: sub-algoritmo que não retorna valor ou informação. Programa : é um algoritmo escrito em uma linguagem computacional. Variável : nome de um local de memória onde se armazena um determinado valor compatível como tipo da variável. Algoritmo e Estruturas de Dados - 02/2014 Algoritmo e Estruturas de Dados - 02/2014 * Algoritmo e Estruturas de Dados - 02/2014 * Exercícios Leia 10 registros contendo a altura ( de 0,30m a 2,20m) e o código de sexo dos alunos de uma turma ( M e F). Ao final, imprimir: A maior, a menor e a media da altura das mulheres A maior, a menor e a media da altura dos homens A maior, a menor e a media da altura da turma Um professor tem uma turma de 35 alunos onde cada aluno tem duas notas de prova. Ele deseja ler e armazenar o nome dos alunos (use um vetor), suas duas notas e a média destas notas (use uma matriz) . Faça um algoritmo que: leia e armazene o nome (apenas caracteres alfabéticos e espaços em branco) e as notas de cada aluno (entre 0 e 10) calcule a média das notas mostre o nome, as notas e a média de cada aluno: Algoritmo e Estruturas de Dados - 02/2014 UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH * * Algoritmo e Estruturas de Dados UniBH Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados UniBH UniBH * Algoritmo e Estruturas de Dados * Algoritmo e Estruturas de Dados
Compartilhar