Buscar

Aula7_Logica_Programacao

Prévia do material em texto

23/11/11 
1 
Genaro Costas 
genaro@dcc.ufba.br 
!  SCHILDT, H. C Completo e Total. 3. ed. São Paulo: Makron, 1997. 
830p. 
!  FARRER, H. Algoritmos Estruturados. 3. ed. Rio de Janeiro: LTC, 
1999. 260p 
!  VELOSO, P. Estrutura de Dados, Editora Campus, Rio de Janeiro, 
1983. 
!  FORBELLONE, A. et al. Lógica de programação: a construção de 
algoritmos e estruturas de dados, São Paulo: Makron Books, 
1993. 
!  GUIMARÃES, A. , Lages, N. A. C. Algoritmos e estrutura de dados, 
Rio de Janeiro: LTC, 1994. 

 
2 
23/11/11 
2 
3 
!  Computadores – máquinas capazes de 
solucionar problemas, mas que só agem 
quando recebem instruções nos mínimos 
detalhes. 
!  Processamento de dados – tarefa principal 
dos computadores. Consiste em receber 
dados, realizar operações com esses dados e 
gerar uma resposta. 
4 
23/11/11 
3 
Estrutura de um computador 
 
MEMÓRIA 
UNIDADE 
DE 
ENTRADA 
UNIDADE 
DE 
SAIDA 
UNIDADE 
DE 
CONTROLE 
UNIDADE 
LÓGICA E 
ARITMÉTICA 
Unidade Central de Processamento 
5 
!  Unidade de entrada – Traduz informação de um 
dispositivo de entrada em um código que a PCU 
e n t e n d e ( p a d r õ e s d e p u l s o s e l é t r i c o s 
compreensíveis ao computador) 
!  Memória – armazena os dados e o próprio 
programa. Número finito de localizações que são 
identificadas por meio de um único endereço. 
6 
23/11/11 
4 
!  Unidade lógica e aritmética – faz cálculos 
aritméticos e qualquer manipulação de dados 
(numéricos ou não) 
!  Unidade de controle – Responsável pelo “tráfico” 
de dados. 
!  Unidade de sa ída – converte os dados 
processados, de impulsos elétricos em palavras ou 
números que podem ser escritos em dispositivos 
de saída. 
7 
!  Hardware – parte física do computador. 
!  Software – programas de computador. Pode 
ser um ou vários programas interligados. 
!  Linguagens de programação – linguagens 
utilizadas para codificar os programas de 
computador. 
◦  Ex.: Pascal, C, Java, C++, Fortran, Cobol, 
Assembly 
!  Desenvolvimento de programas – análise, 
algoritmo e codificação. 
8 
23/11/11 
5 
!  Análise – etapa onde o problema a ser resolvido 
pelo programa de computador é estudado em 
detalhes para definição dos dados de entrada, do 
processamento e dos dados de saída. 
!  Algoritmo – utilização de ferramentas para 
descrever o problema com suas soluções. 
◦  Ferramentas – descrição narrativa, fluxograma ou 
português estruturado 
!  Codificação – etapa onde o algoritmo é 
transformado em códigos da linguagem de 
programação. 
9 
10 
!  Melhor assim? 
00000000 00000001 00000010 00001000 0000000 00100000 
00000000 00000011 00000100 00001001 0000000 00100000 
00000000 00001000 00001001 00000101 0000000 00100010 
•  O que é isto? 
00000000000000010000001000001000000000000100000 
00000000000000110000010000001001000000000100000 
000000000000100000001001000001010000000 00100010 
23/11/11 
6 
11 
!  E assim? 
0 1 2 8 0 32 
0 3 4 9 0 32 
0 8 9 5 0 34 
•  Melhorando... 
add $8, $1, $2 
add $9, $3, $4 
sub $5, $8, $9 
12 
!  Melhorando ainda mais... 
$8 = $1 + $2 
$9 = $3 + $4 
$5 = $8 - $9 
•  Claro agora? 
u ! a + b 
v ! c + d; 
x ! u - v 
•  Sim, é claro: x ! (a+b) - (c+d) 
23/11/11 
7 
PROGRAM'Ascii(INPUT,OUTPUT);'
VAR'i,n,val:INTEGER;'
''''''''c:CHAR;'
BEGIN'
'''''n:=0;'
'''''FOR'i:=0'TO'256'DO'
'''''BEGIN'
''''''''''n:=n+1;'
''''''''''WRITELN(i,''I>'',CHR(i),''');'
''''''''''IF'n=22'THEN'BEGIN'
''''''''''''''''''''''''''''WRITELN('c'para'continuar');'
''''''''''''''''''''''''''''REPEAT'
''''''''''''''''''''''''''''READLN(c);'
''''''''''''''''''''''''''''UNTIL'c='c';'
''''''''''''''''''''''''''''n:=0;'
'''''''''''''''''''''''END;'
'''''END;'
'''''READLN'
END.'
13 
PROGRAM'BASKHARA'
C'
''''''REAL''A,B,C,'DELTA,'X1,X2,'RE,'IM'
C'
''''''PRINT'*,'"Este'programa'resolve'uma'
equação'de'2o.grau"'
''''''PRINT'*,'"no'formato:'a*x**2'+'b*x'+'
c'='0"'
C'
''''''PRINT''10,'"Digite'a,b,c:'"'
'10'''FORMAT(A,1X,$)'
'20'''READ(*,*,ERR=20)'A,B,C'
C'
''''''DELTA=B*BI4.*A*C'
C'
IF'(DELTA.GT.0)'THEN''''''!'(DUAS'RAIZES'
REAIS)'
'''''''''X1=(IBISQRT(DELTA))/(2.*A)'
'''''''''X2=(IB+SQRT(DELTA))/(2.*A)'
'''''''''PRINT'*,'"RAIZES:''X1=",X1'
'''''''''PRINT'*,'"'''''''''X2=",X2'
''''''ELSE'IF'(DELTA.EQ.0)'THEN'!'(DUAS'
RAIZES'REAIS'IGUAIS)'
'''''''''X1=IB/(2.*A)'
'''''''''X2=X1'
'''''''''PRINT'*,'"RAIZES:'X1=X2=",X1'
''''''ELSE''''''''''''''''''''''!'(DUAS'
RAIZES'COMPLEXAS)'
'''''''''RE=IB/(2.*A)'
'''''''''IM=SQRT(IDELTA)/(2.*A)'
'''''''''PRINT'*,'"RAIZES'COMPLEXAS:'
X1=",RE,"'I",IM,"i"'
'''''''''PRINT'*,'"''''''''''''''''''
X2=",RE,"'+",IM,"i"'
''''''ENDIF'
C'
''''''END'
14 
23/11/11 
8 
#include'<stdio.h>'
''
int'main()'
{'
'''int'x,'y;'//define'duas'variáveis'
''
'''printf("x'='");''
'''scanf("%d",'&x);'//scanf'atribui'o'valor'digitado'a'x'
''
'''printf("y'='");'
'''scanf("%d",'&y);'//scanf'atribui'o'valor'digitado'a'y'
''
''//printf'mostra'na'tela'o'resultado.'
'''printf("x'+'y'='%d\n",'x+y);''
''
'''return'0;'
}'
15 
Estrutura de um computador 
 
MEMÓRIA 
UNIDADE 
DE 
ENTRADA 
UNIDADE 
DE 
SAIDA 
UNIDADE 
DE 
CONTROLE 
UNIDADE 
LÓGICA E 
ARITMÉTICA 
Unidade Central de Processamento 
16 
23/11/11 
9 
!  Um algoritmo é um conjunto finito de regras que 
fornece uma sequência precisa de operações para 
resolver um problema específico. 
!  Sequência de passos que visa atingir um objetivo 
bem definido. 
!  Descrição de uma sequência de passos que 
devem ser seguidos para a realização de uma 
tarefa. 
!  Regras formais para a obtenção de um resultado 
ou da solução de um problema, englobando 
fórmulas de expressões aritméticas. 
17 
!  Algoritmo – Trocar o pneu do carro 
◦  Passo 1 – Retirar o estepe da mala. 
◦  Passo 2 – Retirar as ferramentas e o macaco. 
◦  Passo 3 – Folgar os parafusos da roda. 
◦  Passo 4 – Posicionar o macaco. 
◦  Passo 5 – Levantar o carro. 
◦  Passo 6 – Remover a roda com pneu furado. 
◦  Passo 7 – Encaixar o estepe. 
◦  Passo 8 – Aperto inicial nos parafusos. 
◦  Passo 9 – Descer o carro. 
◦  Passo 10 – Apertar os parafusos. 
◦  Passo 11 – Guardar roda e ferramentas. 
18 
23/11/11 
10 
!  Algoritmo – Fazer um bolo 
◦  1) Bater duas claras ; 
◦  2) Adicionar duas gemas; 
◦  3) Adicionar um xícara de açúcar; 
◦  4) Adicionar duas colheres de manteiga; 
◦  5) Adicionar uma xícara de leite de coco; 
◦  6) Adicionar farinha e fermento; 
◦  7) Colocar numa forma e levar ao forno em lume 
brando 
19 
!  entender o problema; 
!  definir os dados de entrada; 
!  definir o processamento; 
!  definir os dados de saída; 
!  construir o algoritmo usando descrição 
narrativa, fluxograma ou pseudocódigo; 
!  realizar testes. 
20 
23/11/11 
11 
!  Finitude: algoritmos devem terminar após um 
número finito de passos; 
!  Definição: cada passo deve ser precisamente 
definido 
!  Entradas: devem ter zero ou mais entradas 
!  Saídas: devem ter uma ou mais saídas; 
!  Efetividade: todas as operações devem ser 
simples de modo que possam ser executadas em 
um tempo limitado. 
21 
!  Difícil para iniciantes saber o que o 
computador pode ou não fazer 
!  Criação de algoritmos é um processo não 
automático e tem muito de arte 
!  Pode haver mais de uma solução para um 
problema. 
22 
23/11/11 
12 
!  Calcular a área de um retângulo. 
◦  Dados de entrada 
!  base e altura 
◦  Processamento (cálculo) 
!  Área do retângulo = base x altura 
◦  Dados de saída 
!  Área do retângulo 
23 
!  Calcular a média de um aluno e verificar 
aprovação. 
◦  Dados de entrada 
!  notas e pesos correspondentes,média para aprovação 
◦  Processamento (cálculo) 
!  Média do aluno = 
[(N1 x P1) + (N2 x P2) + ... + (Nn x Pn)] / (P1 + P2 + ... + Pn) 
!  Se média do aluno for maior ou igual à média para 
aprovação, aluno aprovado. Caso contrário, aluno 
reprovado. 
◦  Dados de saída 
!  Média do aluno, aprovação 
24 
23/11/11 
13 
!  Linguagem natural ou descrição narrativa: 
Algoritmos expressos diretamente em 
linguagem natural como as receitas. 
!  Fluxograma: representação gráfica 
!  Pseudo-código (pseudo-linguagem): 
linguagem intermediária entre linguagem 
natural e linguagem de programação. 
25 
!  Descrição narrativa 
!  Escrever, usando linguagem natural, os passos a 
serem seguidos para a solução. 
!  Vantagens – a linguagem natural já é bastante 
conhecida. Não é necessário aprender nenhum 
conceito novo. 
!  Desvantagens – possibilidades de várias 
interpretações, gerando dificuldade na codificação. 
26 
23/11/11 
14 
!  Exemplo 1 – Descrição narrativa 
◦  Passo 1 – Receber largura do retângulo 
◦  Passo 2 – Receber altura do retângulo 
◦  Passo 3 – Multiplicar a largura pela altura 
◦  Passo 4 – Mostrar o resultado da multiplicação 
27 
!  Fluxograma 
!  Descrição dos passos para a resolução do problema 
utilizando símbolos gráficos definidos previamente. 
!  Vantagens – entendimento mais fácil do que a 
leitura de textos. 
!  Desvantagens – necessidade de aprender a 
simbologia. Poucos detalhes, dificultando a 
codificação. 
28 
23/11/11 
15 
!  Fluxograma – símbolos utilizados 
Início e fim do algoritmo 
Sentido do fluxo de dados 
Cálculos e atribuição de valores 
Entrada de dados 
Saída de dados 
Tomada de decisão 
29 
!  Exemplo 1 – Fluxograma 
Início 
Fim 
b, h 
A = b * h 
A 
30 
23/11/11 
16 
!  Pseudocódigo (portugol) 
◦  Descrição dos passos a serem seguidos através 
de regras definidas previamente. 
◦  Vantagens – codificação mais rápida. 
◦  Desvantagens – necessidade de aprender o 
pseudocódigo. 
31 
!  Exemplo 1 – Pseudocódigo 
 
Algoritmo AreaRetangulo 
 
 escreva “Informe a largura do retângulo” 
 leia b 
 escreva “Informe a altura do retângulo” 
 leia h 
 a <- b * h 
 escreva “Área = ”, A 
 
Fim Algoritmo 
32 
23/11/11 
17 
Visão Geral 
33 
!  Ação é um acontecimento que, a partir de um 
estado inicial, após um período de tempo 
finito, produz um estado final previsível e 
bem definido. 
!  Algoritmo é a descrição de um conjunto de 
comandos que, obedecidos, resultam numa 
sucessão finita de ações. 
34 
23/11/11 
18 
!  Suponha que queiramos resolver o seguinte 
problema: a partir de dois números que 
serão informados, calcular a adição dos 
mesmos. 
!  Se você fosse encarregado de efetuar essa 
tarefa, seria bem provável que utilizasse os 
passos a seguir: 
a) saber quais são os números; 
b) calcular a soma dos números; 
c) responder à questão com o valor do resultado. 
35 
Estrutura de um computador 
 
MEMÓRIA 
UNIDADE 
DE 
ENTRADA 
UNIDADE 
DE 
SAIDA 
UNIDADE 
DE 
CONTROLE 
UNIDADE 
LÓGICA E 
ARITMÉTICA 
Unidade Central de Processamento 
36 
23/11/11 
19 
!  Vejamos como seria resolvido esse mesmo 
problema em termos das operações básicas 
citadas anteriormente: 
a) operação de entrada de dados dos números ; 
 
b1) movimento do valor dos números entre a memória e a 
ULA; 
b2) operação aritmética de somar os 2 números; 
b3) movimentação do resultado da ULA para guardar na 
memória; 
 
c) operação de saída do resultado, que está guardado na 
memória, para o dispositivo de saída desejado. 
 
!  Deve-se salientar que os passos b1 e b3, 
normalmente, ficam embutidos na operação 
matemática, não sendo explicitados. 
37 
!  Em resumo, pode-se dizer que escrever 
algoritmos ou, em última análise, programar 
consiste em dividir qualquer problema em 
muitos pequenos passos, usando uma ou mais 
das quatro operações básicas citadas. 
!  Esses passos que compõem o algoritmo são 
denominados de comandos. 
!  Os comandos de uma linguagem de 
programação podem estar mais próximos da 
máquina (linguagens de baixo nível) ou serem 
mais facilmente entendidos pelo homem 
(linguagens de alto nível). 
38 
23/11/11 
20 
!  A sequencia de operações básicas, dada 
anteriormente, para resolver o problema 
de adicionar dois números, está em uma 
linguagem de baixo nível para o nosso 
computador hipotético. 
!  Em uma linguagem de alto nível teríamos 
um resultado assim: 
Leia X,Y 
SOMA ← X + Y 
Escreva SOMA 
39 
!  Conceito: 
◦  Programação Imperativa ou Programação Procedural 
!  Paradigma de programação que descreve a 
computação como uma sequencia de comandos ou 
ações. 
40 
23/11/11 
21 
!  Existem 3 estruturas básicas de 
controle nas quais se baseiam os 
algoritmos: 
◦  Sequenciação 
◦  Decisão ou seleção 
◦  Repetição ou iteração 
41 
!  Os comandos do algoritmo fazem parte de uma 
sequencia, onde é relevante a ordem na qual se 
encontram os mesmos, pois serão executados 
um de cada vez, estritamente, de acordo com 
essa ordem. 
!  De uma forma genérica, poderíamos expressar 
uma sequencia da seguinte maneira: 
Comando-1 
Comando-2 
Comando-3 
: 
Comando-n 
 
42 
23/11/11 
22 
!  Tem-se uma sequenciação de n 
comandos na qual os comandos serão 
executados na ordem em que aparecem, 
isto é, o comando de ordem i+1 só será 
executado após a execução do de ordem 
i (o 3° só será executado após o 2°). 
!  Todo algoritmo é uma sequencia. A 
sequenciação é aplicada quando a 
solução do problema pode ser 
decomposta em passos individuais. 
43 
!  Essa estrutura também é conhecida por estrutura 
condicional. 
!  Há a subordinação da execução de um ou mais 
comandos à veracidade de uma condição. 
!  Vejamos o funcionamento: 
se <condição> 
então <seq. de comandos-1> 
senão <seq. de comandos-2> 
fim se 
44 
23/11/11 
23 
!  Se a <condição> for verdadeira será executado a <seq. de 
comandos-1> e, em caso contrário, teremos a execução 
da <seq. de comandos-2>. 
!  A decisão deve ser sempre usada quando há a necessidade 
de testar alguma condição e em função da mesma tomar 
uma atitude. 
!  Em nosso dia-a-dia, estamos sempre tomando decisões, 
vejamos um exemplo: 
Se tiver dinheiro suficiente, então vou almoçar em um 
bom restaurante. 
Caso contrário (senão), vou comer um salgado na 
lanchonete. 
45 
!  Essa estrutura também é conhecida por 
“looping” ou laço. 
!  A repetição permite que tarefas individuais 
sejam repetidas um número determinado de 
vezes ou tantas vezes quantas uma condição 
lógica permita. 
!  Vejamos alguns exemplos: 
a) vou atirar pedras na vidraça até quebrá-la; 
b) baterei cinco pênaltis; 
c) enquanto tiver saúde e dinheiro, vou desfrutar a vida. 
46 
23/11/11 
24 
!  a) vou atirar pedras na vidraça até quebrá-la; 
◦  Nesse exemplo, vai-se repetir a ação de atirar pedras 
na janela até que seja satisfeita a condição de quebrar 
a janela. 
!  b) baterei cinco pênaltis; 
◦  Nesse exemplo, haverá a repetição da atitude de bater 
um pênalti um número determinado de vezes (cinco). 
!  c) enquanto tiver saúde e dinheiro, vou 
desfrutar a vida. 
◦  Nesse exemplo, a condição que me permitirá 
continuar desfrutando a vida é ter dinheiro e saúde. 
47 
!  A utilização combinada dessas 3 
estruturas descritas vai permitir 
expressar a solução para uma gama 
muito grande de problemas. 
!  Todas as linguagens de 
programação oferecem 
representantes dessas estruturas. 
48 
23/11/11 
25 
!  Um algoritmo é considerado completo se 
os seus comandos forem do 
entendimento do seudestinatário. 
!  Num algoritmo, um comando que não for 
do entendimento do destinatário terá que 
ser desdobrado em novos comandos, que 
constituirão um refinamento do comando 
inicial, e assim sucessivamente, até que 
os comandos sejam entendidos pelo 
destinatário. 
49 
 
!  Por exemplo, o algoritmo para calcular a 
média aritmética de dois números pode ser 
escrito da seguinte forma: 
 
 
Algoritmo CALCULA_MÉDIA 
 Receba os dois números 
 Calcule a média dos dois números 
 Exiba o resultado 
Fim Algoritmo 
50 
23/11/11 
26 
!  Podemos desdobrar o comando “Calcule a 
média dos dois números” em: 
Soma os dois números 
Divida o resultado por 2 
 
!  Após esse refinamento, o algoritmo pode 
ser considerado completo, a menos que o 
destinatário não saiba fazer as operações 
de adição e divisão, ou não seja capaz de 
entender diretamente algum comando. 
51 
!  O algoritmo estando completo, podemos 
reescrevê-lo, inserindo o refinamento na 
posição do comando que foi refinado. 
!  Assim sendo, obtém-se: 
 
Algoritmo CALCULA_MÉDIA 
 Receba os dois números 
 Soma os dois números 
 Divida o resultado por 2 
 Exiba o resultado 
Fim Algoritmo 
52 
23/11/11 
27 
!  Reescrever um algoritmo completo, com os 
refinamentos sucessivos inseridos nos seus 
devidos lugares, permite ter uma visão 
global de como o algoritmo deve ser 
executado. 
!  À medida que o algoritmo passa a ser maior 
e mais complexo, esta visão global torna-se 
menos clara e, neste caso, um algoritmo 
apresentado com os refinamentos 
sucessivos separados oferece uma melhor 
abordagem para quem precisar entendê-lo. 
53 
Algoritmo CALCULA_MÉDIA 
 Leia N1 
 Leia N2 
 Mem ! N1 + N2 
 Resultado ! Mem / 2 
 Escreva Resultado 
Fim Algoritmo 
Algoritmo CALCULA_MÉDIA 
 Receba os dois números 
 Soma os dois números 
 Divida o resultado por 2 
 Exiba o resultado 
Fim Algoritmo 
21 19 40 20 
N1 N2 Mem Resultado 
54 
23/11/11 
28 
Detalhamento dos Elementos da Linguagem 
!  Valores que não se modificam ao longo do 
tempo de execução. 
◦  Exemplos: 
!  Um numero 
!  Um valor lógico 
!  Uma sequencia de Caracteres 
!  Conforme seu tipo, classificada em: 
◦  Numérica 
◦  Lógica 
◦  Literal 
56 
23/11/11 
29 
!  Associação simbólica de um valor que pode 
variar durante a execução. 
◦  Exemplo: 
!  2x2 + 3x + 4 
!  É identificada por um nome ou identificador. 
◦  Um ou mais caracteres sendo que o primeiro deve 
ser letra e os seguintes. 
◦  Exemplos: 
!  X Y NUMERO1 SOMA 
57 
!  Só podem armazenar valores de um mesmo tipo. 
◦  Numéricas 
◦  Lógicas 
◦  Texto 
!  Sua declaração tem que ser explicita 
!  Exemplo: 
◦  declare SOMA numérico 
◦  declare N1, N2 numérico 
◦  declare CONDICAO lógico 
◦  declare NOME, ENDERECO literal 
58 
23/11/11 
30 
Algoritmo CALCULA_MÉDIA 
 declare N1, N2, Mem, Resultado numérico 
 
 leia N1 
 leia N2 
 Mem ! N1 + N2 
 Resultado ! Mem / 2 
 escreva Resultado 
 
Fim Algoritmo 
Variáveis 
Constante 
59 
!  Ajuda a entender o algoritmo 
 
Algoritmo CALCULA_MÉDIA 
 declare N1, N2, Mem, Resultado numérico 
 
 leia N1 
 leia N2 
 Mem ! N1 + N2 {calcula a soma de N1 e N2} 
 Resultado ! Mem / 2 
 escreva Resultado 
 
Fim Algoritmo 
60 
23/11/11 
31 
!  Cada passo do algoritmo 
◦  Atribuição 
!  C ! A + B 
◦  Entrada e saída 
!  leia 
!  escreva 
Algoritmo CALCULA_MÉDIA 
 declare N1, N2, 
 Mem, Resultado numérico 
 
 leia N1 
 leia N2 
 Mem ! N1 + N2 
 Resultado ! Mem / 2 
 escreva Resultado 
 
Fim Algoritmo 
Entrada 
Saída 
Atribuições 
61 
 Mem ! N1 + N2 
 Resultado ! Mem / 2 
!  N1 + N2 é uma expressão aritmética 
◦  Expressão onde o resultado é aritmético 
◦  Operadores: 
!  Adição Subtração Multiplicação 
!  Divisão Potenciação Radiciação 
62 
23/11/11 
32 
!  N1 > N2 é uma expressão lógica 
◦  Expressão onde o resultado é verdadeiro ou falso 
◦  Operadores Relacionais: 
= (igual a) < (menor que) 
≠ (diferente de) ≥ (maior ou igual a) 
> (maior que) ≤ (menor ou igual a) 
 
◦  Operadores Lógicos 
!  e – para conjunção 
!  ou – para disjunção 
!  não – para negação 
63 
{ o aluno é aprovado se alguma de suas notas 
 for maior que 7} 
 
Algoritmo LOGICA 
 declare NOTA1, NOTA2 numérico 
 declare aprovado lógico 
 
 NOTA1 ! 5.1 
 NOTA2 ! 8.1 
 aprovado ! (NOTA1>7) ou (NOTA2>7) 
 
 escreve aprovado 
Fim Algoritmo 
64 
23/11/11 
33 
{ o aluno é aprovado se alguma de suas notas 
 for maior que 7} 
 
Algoritmo LOGICA 
 declare NOTA1, NOTA2 numérico 
 declare aprovado lógico 
 
 NOTA1 ! 5.1 
 NOTA2 ! 8.1 
 aprovado ! (NOTA1>7) ou (NOTA2>7) 
 
 se aprovado 
 então escreve “Aluno Aprovado” 
 senão escreve “Aluno Reprovado” 
 fim se 
Fim Algoritmo 
Execução condicionada ao 
resultado da variável 
‘aprovado’ 
65 
!  Estrutura: 
se (condição lógica) 
 então (sequencia de comandos) 
fim se 
 
se (condição lógica) 
 então (sequencia de comandos - 1) 
 senão (sequencia de comandos - 2) 
fim se 
 
66 
23/11/11 
34 
{Escrever os números de um a 5} 
 
Algoritmo Escreve1a5 
 escreve 1 
 escreve 2 
 escreve 3 
 escreve 4 
 escreve 5 
Fim Algoritmo 
Perguntas: 
 Funciona? 
 Pode melhorar? 
 
 
67 
{Escrever os números de um a 5} 
 
Algoritmo Escreve1a5 
 declare valor numérico 
 valor ! 1 
 escreve valor 
 valor ! valor +1 
 escreve valor 
 valor ! valor +1 
 escreve valor 
 valor ! valor +1 
 escreve valor 
 valor ! valor +1 
 escreve valor 
Fim Algoritmo 
Perguntas: 
 Funciona? 
 Pode melhorar? 
 
 
Se repete 
68 
23/11/11 
35 
{Escrever os números de um a 5} 
 
Algoritmo Escreve1a5 
 declare valor numérico 
 valor ! 1 
 repita 5 
 escreve valor 
 valor ! valor +1 
 fim repita 
Fim Algoritmo 
Perguntas: 
 Funciona? 
 Pode melhorar? 
 
 
69 
{Escrever os números de um a 5} 
 
Algoritmo Escreve1a5 
 declare valor numérico 
 valor ! 1 
 enquanto valor < 10 
 escreve valor 
 valor ! valor +1 
 fimenquanto 
fim Algoritmo 
Perguntas: 
 Funciona? 
Repete até valor > 10 

ser verdade 
70 
23/11/11 
36 
!  Estrutura 
enquanto <condição> 
 
 sequencia A de comandos 
 
fimenquanto 
A condição 
de parada é 
obrigatória 
71 
!  Imprimir os a sequencia de números de 1 a 
20 sem o número 7 e 14. 
!  Imprimir o somatório dos números de 1 a 20 
excluindo o número 13. 
72 
23/11/11 
37 
!  Supondo que o algoritmo trabalhe com 100 
valores de notas, como definir? 
◦  declare NOTA[1:100] numérico 
!  Reserva 100 variáveis que podem ser usadas de forma 
indexada. 
◦  Exemplos 
◦  NOTA[1]  8.1 (Indexação direta) 
◦  i  7 
◦  NOTA[i]  7.1 (Indexação indireta) 
73 
!  Vários valores podem ser lidos por um único 
comando 
◦  Exemplo 
leia NOTA[1]..NOTA[10] {ler os 10 valores} 
 
Escreva NOTA[1]..NOTA[5] {escreve os 5 primeiros 
 valores} 
74 
23/11/11 
38 
!  Escrever um algoritmo que leia 100 notas e 
calcule a nota média. 
Algoritmo NOTAMEDIA 
declare NOTA[1..100] numérico 
declare soma, índice, media numérico 
leia NOTA[1]..NOTA[100] 
soma ! 0 
índice !1 
repita 
 se índice>100 
 então interrompa 
 fim se 
 soma ! NOTA[índice] 
 índice ! índice + 1 
fim repita 
media ! soma / 100 
escreva media 
Fim Algoritmo 
 
75 
!  Estrutura 
declare MATRIZ[1..100,1..100] numérico 
 
 { declara 1000 posições numéricas } 
 
Acesso á valores de forma indexa 
 
MATRIZ[1,2] 33 MATRIZ[ i, j ]  1.1 
 
76 
23/11/11 
39 
!  Ler uma matriz de dimensão 16x16 e contar 
o números de valoresiguais a zero. 
!  Ler duas matrizes de dimensão 10x10 e 
calcular a matriz resultado da multiplicação 
das duas matrizes. 
77 
!  Chamadas de Registros 
!  Estrutura 
declare ALUNO registro ( NOME literal, 
 NOTA numérico) 
 
Acesso aos valores através do identificador 
Ex: 
 ALUNO.NOME  “João Carlos” 
 ALUNO.NOTA  8.2 
78 
23/11/11 
40 
!  Permite a criação de estruturas de dados mais 
elaboradas. 
!  Muito usadas na leitura e gravação de 
arquivos 
79 
!  Pseudocódigo 
◦  Constantes 
◦  Variáveis 
◦  Comentários " 
◦  Expressões 
!  Aritméticas 
!  Lógicas 
◦  Estruturas de controle de Fluxo 
◦  Estruturas de repetição 
!  Condição de parada 
◦  Introdução a variáveis compostas homogêneas e 
registros 
80

Continue navegando