Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
AULA 03
Algoritmo
Estrutura
exemplos
Estrutura do algoritmo
Algoritmo nome do algoritmo
-objetivo do algoritmo: -definio das variveis -entrada dos dados -clculos -sadas Fim_algoritmo
Exemplo 1
ALGORITMO soma_valores Algoritmo para somar dois valores dados
1) declarao das variveis inteiro a, b, c 2) Entrada dos dados imprima ( entre com dois valores ) leia ( a, b )
3) Clculo da soma dos valores ca+b 4) Mostrando os valores dados imprima ( dados de entrada ) imprima ( a, b )
Comentrio
Comentrio uma informao para o programador; no interpretada pelo computador utilizado tanto no algoritmo quanto num programa escrito em linguagem de alto nvel.
Exemplo 2
1) declarao das variveis inteiro a, b, c 2) Entrada dos dados imprima ( entre com dois valores ) leia ( a, b ) 3) Clculo da soma dos valores ca+b
4) Mostrando os valores dados imprima ( dados de entrada ) imprima ( a, b ) 5) Mostrando os resultados calculados imprima ( soma dos valores = , c )
Identao
Espaos deixados no inicio de cada instruo para identificar um grupo de instrues.
Exemplo:
ALGORITMO exemplo 1) definio das variveis
identao
Estruturas de programao
Seqencial Seleo
Repetio
Exemplo 3
1) declarao das variveis inteiro a, b, c 2) Entrada dos dados imprima ( entre com dois valores ) leia ( a, b ) 3) Clculo da soma dos valores ca+b
Estrutura de Seleo
Define qual tarefa ir ser realizada num programa quando a este so apresentadas algumas opes a serem seguidas. Esta estrutura pode apresentar:
Uma alternativa; Duas alternativas; Mais de duas alternativas;
( A > 40 ) ? n
X A + 10
Imprima ( X )
NO
SIM
( A > 40 ) ?
X A + 10
X A * 10
Mostrar ( x )
Algoritmo
Seleo com uma alternativa SE ( condio VERDADE ) ento procedimento fim_se
Algoritmo
Seleo com duas alternativas SE ( condio VERDADE ) ento procedimento 1 seno procedimento 2 fim_se
Operadores Lgicos
Utilizados na confeco das condies So eles:
Maior que Menor que Maior ou igual a Menor ou igual a Diferente de Igual a > < =
Exemplo 4
Se ( valores_lidos > 10 ) ento x valores_lidos / 5 v x2 seno x valores_lidos * 5 v (X ) fim_se Imprima ( v )
Exemplo 5
Soluo 1
Comparar os 3 nmeros entre si
2)
3)
seno Se ( v2 > v3 ) ento imprima ( maior valor = , v2 ) seno imprima ( maior valor = , v3 ) fim_se fim_se
Fim_algoritimo
Testando o algoritmo v 1
3 valores dados: 49 10 23 logo: v1 49 v2 10 v3 23 v1 > v2 e v1 > v3 , portanto, maior valor v1 Ou seja, 49
Testando o algoritmo v 2
3 valores dados: 9 10 23 v1 9 v2 10 v3 23
v1 < v2 e v2 < v3 , portanto, maior valor v3 Ou seja, 23
Testando o algoritmo v 3
3 valores dados: 9 10 3 v1 9 v2 10 v3 3 v1 < v2 e v2 > v3 , portanto, maior valor v2 Ou seja, 10
Testando o algoritmo v 4
3 valores dados: 19 10 23 v1 19 v2 10 v3 23 v1 > v2 e v1 < v3 , portanto, maior valor v3 Ou seja, 23
Testando o algoritmo v 5
3 valores dados: 23 23 23 v1 23 v2 23 v3 23 v1 = v2 e v2 = v3 , portanto, maior valor v3 Ou seja, 23
Soluo 2
2)
3)
4) obtendo o maior valor maior_valor v1 Se ( v2 > maior_valor ) ento maior_valor v2 fim_se Se ( v3 > maior_valor ) ento maior_valor v3 fim_se 5) mostrando maior valor imprima ( maior valor = , maior_valor ) Fim_algoritmo
Testando o algoritmo v 1
3 valores dados: 49 10 23 logo: v1 49 v2 10 v3 23 maior_valor 49 Como v2 < maior_valor e v3 < maior_valor , o maior valor est na varivel maior_valor Ou seja, 49
Testando o algoritmo v 2
3 valores dados: 9 10 23 v1 9 v2 10 v3 23
maior_valor 9 Como v2 > maior_valor => maior_valor 10 Como v3 > maior_valor => maior_valor 23 o maior valor est na varivel maior_valor Ou seja, 23
Testando o algoritmo v 3
3 valores dados: 9 10 3 v1 9 v2 10 v3 3
maior_valor 9 Como v2 > maior_valor => maior_valor 10 Como v3 < maior_valor => maior_valor 10 o maior valor est na varivel maior_valor Ou seja, 10
Testando o algoritmo v 4
3 valores dados: 19 10 23 v1 19 v2 10 v3 23
maior_valor 19 Como v2 < maior_valor => maior_valor 19 Como v3 > maior_valor => maior_valor 23 o maior valor est na varivel maior_valor Ou seja, 23
Comentrios
O que difere um algoritmo do outro? Quais as vantagens de um algoritmo sobre o outro?
Exemplo 6
Calcular a seguinte expresso: 5A + B -------------------------2A ( A B ) + --------B + 3A
VL =
4) Calculo do numerador do denominador num2 2 A 5) Calculo do denominador simples den1 B + 3A 6) calculo da expressao Se ( den1 = 0 ) ento imprima ( expresso no calculada ) imprima ( denominador nulo ) seno
seno 6.1) calculo do denominador geral den2 ( A B ) * num2 / den1 6.2) calculo da expresso Se ( den2 = 0 ) ento imprima ( expresso no calculada ) imprima ( denominador nulo ) seno VL num1 / den2 imprima ( valor da expressao = , VL ) fim_se fim_se
Exemplo 7
So dados os resultados de uma prova que consta de 5 questes, cujas respostas podem ser uma das 3 alternativas A, B ou C; So dados tambm as respostas de um aluno para esta prova. Desenvolva um algoritmo para calcular o desempenho deste aluno na prova segundo o seguinte critrio:
Acerto de 3 ou mais questes conceito A Acerto de 1 ou 2 questes conceito B Acerto de nenhuma questo - conceito R
1) definio das variveis caracter gab1, gab2, gab3, gab4, gab5 caracter resp1, resp2, resp3, resp4, resp5 caracter conceito inteiro n_questoes 2) entrada dos dados 2.1 ) dados do gabarito imprima ( entre com as 5 alternativas do gabarito ) leia ( gab1, gab2, gab3, gab4, gab5 )
2.2 ) dados do aluno imprima ( entre com as 5 resposta do aluno ) leia ( resp1, resp2, resp3, resp4, resp5 ) 3) inicializando variveis n_questoes 0
4) calculando quantas questes esto certas Se ( gab1 = resp1 ) ento n_questoes n_questoes + 1 fim_se Se ( gab2 = resp2 ) ento n_questoes n_questoes + 1
fim_se
Se ( gab4 = resp4 ) ento n_questoes n_questoes + 1 fim_se Se ( gab5 = resp5 ) ento n_questoes n_questoes + 1 fim_se
se ( n_questoes 3 ) ento conceito A seno se ( n_questoes > 0 ) ento conceito B seno conceito R fim_se fim_se
6) mostrando os resultados
6.1 ) dados de entrada imprima ( gabarito: ) imprima ( questao 1: , imprima ( questao 2: , imprima ( questao 3: , imprima ( questao 4: , imprima ( questao 5: ,
imprima ( resposta do aluno: ) imprima ( resposta 1: , resp1 ) imprima ( resposta 2: , resp2 ) imprima ( resposta 3: , resp3 ) imprima ( resposta 4: , resp4 ) imprima ( resposta 5: , resp5 )