Buscar

Aula2_Algoritmos3

Prévia do material em texto

Aulas de Algoritmo e 
Programação de Computadores 
Plano de Aulas 
Aula 1: Introdução a Algoritmos 
Definição de Algoritmo 
É uma seqüência de passos com uma ordem bem definida que visa atingir um objetivo. 
Exemplo: receita de bolo 
Na vida quotidiana, os algoritmos são encontrados freqüentemente: instruções para se utilizar 
um velho eletrodoméstico, uma receita para preparo de algum prato, o guia de preenchimento 
da declaração do imposto de renda, a regra para determinação de máximos e mínimos de 
funções por derivadas sucessivas, a maneira como as contas de água, luz e telefone são 
calculadas mensalmente. 
A partir de um estado inicial, após um período de tempo finito, produzem um estado final 
previsível e bem definido. 
Programar é construir algoritmos. Um programa é a tradução de um algoritmo para um 
formato que o computador entende. 
Baixo nível versus alto nível: o computador só entende a linguagem de máquina, as linguagens 
de alto nível precisam ser traduzidas para linguagem de máquina por um 
compilador/interpretador. 
A estrutura de um computador digital 
Unidade de entrada. Esta unidade traduz informação de uma grande variedade de dispositivos 
em um código que a unidade central de processamento é capaz de entender. Em outras 
palavras, ela é capaz de traduzir letras, números, imagens, marcas ou tinta magnética em 
padrões de pulsos elétricos que são compreensíveis ao computador. 
Memória. A memória é capaz de armazenar não só os dados, mas também o programa que irá 
“manipular” estes dados. 
Unidade lógica e aritmética. Nesta unidade são feitos todos os cálculos aritméticos e qualquer 
manipulação de dados, sejam eles numéricos ou não. 
Unidade de controle. É a unidade responsável pelo tráfego dos dados. Ela obtém dados 
armazenados na memória e interpreta-os. Controla a transferência de dados da memória para 
a unidade lógica e aritmética, da entrada para a memória e da memória para a saída. 
Unidade de saída. Os dados processados são convertidos, por esta unidade, de impulsos 
elétricos em palavras ou números que podem ser “escritos” em impressoras ou “mostrados” 
em vídeos ou numa série de outros dispositivos. 
Formas de representação de um algoritmo 
Narrativa 
Uso da linguagem natural. Tem a inconveniência da má interpretação, originando 
ambigüidades e imprecisões. 
Exemplo: Trocar o pneu de um carro 
1. Afrouxar ligeiramente as porcas 
2. Suspender o carro 
3. Retirar as porcas e o pneu 
4. Colocar o Pneu reserva e as porcas 
5. Abaixar o carro 
6. Dar o aperto final nas porcas 
Fluxograma 
Uso de formas geométricas. 
Exemplo: Cálculo da média final 
 
 
Pseudocódigo 
Uso de linguagem própria aproximando-se das linguagens de alto nível 
Forma geral: 
 Algoritmo < nome_do_algoritmo > 
 < declaração_de_variáveis > 
 Início 
 < Instruções > 
 Fim 
 
Exemplo: Cálculo da média do exemplo anterior. 
n1, n2 
 M �(n1+n2)/2 
m >=5 Aprovado 
Reprovado 
 Fim 
 Algoritmo Média_do_aluno 
 Real: n1,n2,media 
 Início 
 Escreva(“Digite as duas notas:”) 
 Leia(n1,n2) 
 media ← (n1+n2)/2 
 Se (média >= 5) então 
 Escreva (“APROVADO”) 
 Senão 
 Escreva (“REPROVADO”) 
 Fim_se 
 Fim 
 
Exercícios de fixação 
 
1. Construa um algoritmo para escrever os termos da seqüencia de Fibonacci inferiores a 
um número L. 
Algoritmo 
Escreva os termos de Fibonacci inferiores a L. 
fim algoritmo 
 
2. Um algoritmo não pode conter um comando como ”Escreva todos os termos da 
seqüência de 'Fibonacci’. Por quê? 
Porque os números da seqüência são infinitos e um algoritmo é uma seqüência de 
passos que termina após um período definido. 
 
3. Escrever um algoritmo que produza os valores: 
2 4 6 8 10 12 14 
1 3 5 7 9 11 13 
 
Aula 2: Tipos de Dados 
 
Representação em Pseudocódigo 
Diferenciar uma linguagem real da representação de pseudocódigo que será usada no curso. 
Exemplo: mostrar algoritmo Media em PASCAL e C++ 
Algoritmo Média 
 Real: n1,n2,media 
 Início 
 Escreva(“Digite as duas notas:”) 
 Leia(n1,n2) 
 media ← (n1+n2)/2 
 Se (média >= 5) então 
 Escreva (“APROVADO”) 
 Senão 
 Escreva (“REPROVADO”) 
 Fim_se 
 Fim 
Arquitetura de um Computador 
Qualquer trabalho realizado no computador é baseado na manipulação das informações 
contidas em sua memória: instruções (leitura, escrita, operações, atribuição, etc.) e dados 
(valores processados pelas instruções). 
O algoritmo criado num editor de texto deve ser traduzido em linguagem de máquina por um 
compilador/interpretador antes de ser executado pelo computador. 
 
Para realizar essa tradução, o compilador precisa saber como traduzir os dados (informações) 
manipulados no programa. Por isso é necessário definir o tipo de cada dado utilizado. 
 
O tipo de dado está diretamente relacionado com a quantidade de memória que ele ocupa. A 
memória é um conjunto de células identificadas por um endereço. 
 
1 célula = 1 byte = 8 bits 
1 bit = 2 estados (0 e 1) 
1 byte possui 28 estados = 256 
 
1 Byte 
00000000 0 
00000001 1 
00000010 2 
00000011 3 
... ... 
11111111 255 
 
1 Kilobyte (Kb) = 1024 bytes 
1 Megabyte (Mb) = 1024 Kilobyte 
1 Gigabyte (Gb) = 1024 Megabyte 
Tipos de Dados 
Dados Numéricos 
Números Inteiros: números sem parte fracionária. 
Ex: 86 0 -15 32768 
Números Reais: representados com parte fracionária e ponto (ponto flutuante). 
Ex: 8.5 -9.43 0.0 3452.78894 
Dados Literais 
São seqüências de caracteres contendo letras, dígitos e/ou símbolos especiais. 
Chamados também de alfanuméricos, cadeia de caracteres ou strings. 
São representados entre aspas. 
Exemplo: “UFRN” comprimento = 4 
 “06/03/2007” comprimento = 10 
 “ “ comprimento = 1 
 ““ comprimento = 0 
Dados Lógicos 
Representa dois valores lógicos: verdadeiro (V) e falso (F). 
Armazenamento de dados na memória 
Inteiro 
Ocupa uma quantidade de bits equivalente arquitetura do computador. Num computador de 
16bits, ocupa 2 bytes e o inteiro longo ocupa 4 bytes. 
Inteiro: 16 bits = 2 bytes = [-32768,32768] 
Inteiro longo: 32 bits = 4 bytes = [-2147438648, 2147438647] 
Real 
Ocupa o dobro de memória do tipo Inteiro. 
Real: 4 bytes [1.5E-45, 3.4E+38] 
Dupla: 8 bytes [5.0E-234, 1.7E+308] 
2.5E20 = 2.5 * 1020 
Lógico 
Ocupa um byte na memória. 
Literal 
Um byte para cada caractere (de acordo com a tabela ASCII). 
Exercícios 
1. Quais informações estão presentes na memória do computador? 
Instruções e dados 
2. Por que é necessário definir o tipo de um dado no computador? 
Porque ele precisa saber quanto de memória é preciso reservar para 
representar/armazenar este dado. 
3. Qual tipo de dado usar para armazenar os valores: 
12 = Inteiro 
15.3 = Real 
“34.5” = Literal 
V = Lógico 
“Hoje” = Literal 
4. Quais os dados e os respectivos tipos de dados envolvidos na solução do problema: 
“Mostrar o nome, número de matrícula e nota final de cada um dos alunos de 
algoritmos e programação de computadores”. 
Nome = Literal 
Matrícula = Literal/Inteiro 
Nota Final = Real 
 
Aula 3: Variáveis e Expressões 
 
Variáveis 
Variável é uma entidade destinada a guardar dados. Toda variável possui: 
• Um nome 
• Um tipo (do dado que pode ser armazenado) 
• Um valor (dado ou informações) 
Figura: Mostrar a fita de memória e como os dados e variáveis ficam na memória. 
O nome de uma variável deve obedecer a certas regras: 
• Deve começar com uma letra 
• Não pode conter caracteres especiais, exceto o sublinha 
Exemplos: 
• Correto: PesoMaximo, hora_aula, nota1, nomeDoAluno 
• Incorreto: _conta, 1aHoraAula, media?, Salario$Medio 
Declaração de Variáveis 
Todas as variáveis utilizadas num algoritmo devem ser declaradas. 
Sintaxe: <tipo> : <lista de variáveis> 
Exemplo: 
Inteiro: ano, mês, idade 
Real: salário, troco 
Lógico: Opção, Resultado 
Literal[30] : nome, cidade, profissão 
 
Exemplo: Cálculo da média 
 Algoritmo Média_do_aluno 
 Real: n1,n2,media 
 Início 
 Escreva(“Digiteas duas notas:”) 
 Leia(n1,n2) 
 media ← (n1+n2)/2 
 Se (média >= 5) então 
 Escreva (“APROVADO”) 
 Senão 
 Escreva (“REPROVADO”) 
 Fim_se 
 Fim 
Expressões 
Uma expressão é uma entidade composta por operadores, dados, variáveis e parênteses e 
que, quando avaliada, resulta em um valor. 
Os operadores podem ser unários ou binários e produzem um resultado em função dos seus 
operandos. 
Os operadores podem ser: 
• Aritméticos 
• Lógicos 
• Literais 
• Relacionais 
Expressões aritméticas 
Resultado é do tipo numérico (inteiro ou real). 
Operador Tipo Operação Prioridade 
+ Unário Manutenção de sinal 1 
- Unário Inversão de sinal 1 
^ Binário Exponenciação 2 
* Binário Multiplicação 3 
/ Binário Divisão 3 
+ Binário Adição 4 
- Binário Subtração 4 
 
Exemplo: calculo � 3*4+6/2-1 
media � (nota1 * 4 + nota2 * 5 + nota3 * 6)/15 
Expressões lógicas 
Resultado é do tipo lógico (verdadeiro ou falso) 
Operador Tipo Operação Prioridade 
Não Unário Negação 1 
E Binário Conjunção 2 
Ou Binário Disjunção 3 
 
Construir tabelas verdades. 
Com o operador (E) para que o resultado seja verdadeiro, ambos os operandos devem ser 
verdadeiros. Com o operador (Ou) para que o resultado seja verdadeiro, um dos operandos 
deve ser verdadeiro. O operador (Não) nega/inverte o valor lógico do operando. 
Exemplo (negação): 
Se (Gastos > Lucro) então 
 ObteveLucro � falso 
Senão 
 ObjteveLucro � verdadeiro 
Fimse 
 
Se (não ObteveLucro) então 
Escreva (“Reduza custos para obter lucro”) 
Fimse 
 
Exemplo (conjunção): 
Se (ObteveLucro) e (Lucro > 50000) então 
 Escreva (“Você atingiu a meta anual, parabéns!”) 
Fimse 
 
Exemplo (disjunção): 
Se (mediaParcial > 7) ou (mediaFinal > 5) então 
Escreva (“APROVADO”) 
Senão 
Escreva (“REPROVADO”) 
Fimse 
 
Expressões literais 
Resultado é do tipo literal. 
Operador de concatenação (+). Não é definido em todas as linguagens. 
Exemplo: “apanha” + “dor” resulta em “apanhador”, “Nota “ + “1” resulta em “Nota 1” 
Expressões relacionais 
Resultado é do tipo lógico. 
Operador Tipo Operação 
= Binário Igual 
<> Binário Diferente 
< Binário Menor 
<= Binário Menor ou igual 
> Binário Maior 
>= Binário Maior ou igual 
 
Avaliar as expressões observar as prioridades. Em caso de empate, avaliar da esquerda para a 
direita. A ordem de avaliação entre os diferentes operadores é: 
1. Aritméticos 
2. Literais 
3. Relacionais 
4. Lógicos 
Exemplos: Resultado �(2^2-4 > 0) 
Aprovado�(media >= 5) 
Aula 4 
Exercícios de Variáveis e Expressões 
1. A seqüência de Fibonacci se define como tendo os dois primeiros termos iguais a 1 e 
cada termo seguinte é igual à soma dos dois termos imediatamente anteriores. 
Construa um algoritmo em forma narrativa para escrever os termos da seqüencia de 
Fibonacci inferiores a um número L. 
a. Se L é igual a zero, imprima uma mensagem de aviso: a série é vazia 
b. Se L é maior ou igual a 1, imprima o primeiro termo da série (o número 1) 
c. Se L é maior ou igual a 2, imprima o segundo termos da série (o número 1) 
d. Enquanto a quantidade de elementos da série for menor que L faça: 
i. Escreva o próximo termo da série como sendo a soma dos últimos dois 
termos 
 
2. Um algoritmo não pode conter um comando como ”Escreva todos os termos da 
seqüência de 'Fibonacci’. Por quê? 
Porque um algoritmo deve terminar após um período de tempo finito, e a seqüência 
de Fibonacci é infinita. 
 
3. Escrever um algoritmo em forma de fluxograma que produza o resultado APROVADO 
ou REPROVADO a partir das notas de um aluno (n1, n2, n3, n4) durante um período 
letivo. 
 
 
 
4. Identificar o tipo de cada uma das constantes abaixo: 
a. 21 Inteiro 
b. “BOLA” Literal 
c. “VERDADEIRO” Literal 
d. 0.21 Real 
e. Falso Lógico 
n1, n2, n3, n4 
 MP �(n1*4+n2*5+n3*6)/15 
MP >=7 Aprovado 
Reprovado Fim 
 MF �(MP+n4)/2 
MF >=5 
Aprovado 
5. Assinalar com um X os identificadores de variáveis válidos: 
(x) VALOR ( ) 5a_feira 
(x) X2 (x) A5 
( ) 3X4 ( ) Imaginário 
(x) XYZ ( ) Real 
( ) “NOTA” ( ) Ro+ta 
( ) Complexo() 
 
6. Escreva as expressões abaixo em forma algorítmica 
a. (x1-x2)(y1-y2) (x1-x2)*(y1-y2) 
b. x0 + v0t – 1 gt
2 x0 + v0*t-(g*t^2)/2 
 2 
7. Sendo P, Q, R e S variáveis do tipo numérico, cujos conteúdos são iguais a 2, 3, 12 e 
4.5, respectivamente, quais os valores fornecidos por cada uma das expressões 
aritméticas abaixo? 
 
P = 2, Q = 3, R = 12, S= 4.5 
 
a. 100 * Q/P + R 162 
b. P * R/5 4.8 
c. -(S - R) + (Q^2 - R - 3) 3.5 
d. R + P + 5 19 
e. (S/P+1) - Q*R -32.75 
f. 1-(S-1) -2.5 
g. 1+R+S/Q 14.5 
h. P + (2.9 + 0.3 + S * 2) 14.2 
 
8. Assuma que todas as variáveis (x, y, z e w) são de tipo Inteiro. Ache o valor de cada 
variável. 
 
a. x � (2 + 3) * 6 30 
b. y � (12 + 6)/2*3 3 
c. z � (2 + 3)/4 1 
d. w � 3 + 2*(7/2) 10 
 
9. Quais os valores armazenados em SOMA, NOME e TUDO, supondo-se que NUM, X, 
COR, DIA, TESTE e COD valem, respectivamente 5, 2.5, “AZUL”, “TERÇA”, falso e 
verdadeiro. 
 
a. NOME � DIA “TERÇA” 
b. SOMA � NUM + (X + 1) 8.5 
c. TUDO � não TESTE ou COD e SOMA < X Falso 
 
10. Faça um algoritmo que contenha a declaração das variáveis e a expressão necessária 
para calcular a hipotenusa de um triângulo retângulo, dado o valor dos catetos. 
 
Algoritmo Hipotenusa 
 Real: hipotenusa, cateto_a, cateto_b 
Inicio 
 Escreva(“Digite o valor dos catetos”) 
 Leia(cateto_a, cateto_b) 
 hipotenusa � (cateto_a^2+catetob^2)^0.5 
 Escreva(“O valor da hipotenusa é “, hipotenusa) 
Fim 
 
Aula 5: Instruções Primitivas 
São as instruções básicas para o funcionamento do computador: 
• Entrada de dados (teclado, fitas, discos magnéticos, mouse, scanner, etc.) 
• Saída de dados (vídeo, impressora, fitas, discos magnéticos, etc.) 
• Atribuição de dados (movimentação/armazenamento de dados na memória) 
Instrução de Atribuição 
Armazena uma informação (dados) em uma variável. 
Sintaxe: 
<nome da variável> � <expressão> 
Semântica: 
1. Avaliação da expressão 
2. Armazenamento do valor resultante na variável 
Obs.: Deve haver compatibilidade entre o tipo da variável e o da expressão resultante. 
Exemplos: 
 aprovado � (MP >= 7) ou (MF >= 5) 
delta � b^2 – 4*a*c 
Instrução de Entrada 
Sintaxe: 
Leia (<lista de variáveis>) 
Semântica: 
Os dados são lidos de um dispositivo de entrada e armazenados nas variáveis listadas. 
Exemplos: 
Leia (gastos) 
Leia (nota1, nota2, nota3, nota4) 
Instrução de Saída 
Sintaxe: 
Escreva (<lista de expressões>) 
Semântica: 
A lista de expressões é enviada ao dispositivo de saída. 
Envio ao dispositivo de saída: 
Variáveis: valor recuperado na memória e enviado. 
Constantes: valores enviados diretamente. 
Expressão: são avaliadas e em seguida o valor resultante é enviado. 
Interface com o usuário 
• Informar o que o usuário deve digitar antes de usar a instrução leia() 
• Informar ao usuário o que significa o resultado apresentado na instrução escreva() 
Exemplos de algoritmos 
1. Calcule a sua idade em meses e em dias a partir da sua idade em anos. 
2. Dado o preço unitário e a quantidade de um produto, imprimir o valor da compra. 
3. Calcular a área e o perímetro de um retângulo, sendo dadas as medidas dos lados. 
4. Calcular o valor da função f(x) = (3x-1)/5 nos extremos do intervalo [a, b] (dados os 
valores de a e b), e em mais dois valores do seu interior, igualmente espaçados. 
Rastreamento de algoritmos 
Consiste na execução manual do algoritmo, seguindo os passos que o computador seguiria 
para a sua execução automática. É utilizado para verificar se um algoritmo está correto. 
Exercícios de fixação 
1. Encontrar o consumo médio de um veículo, conhecidos a distância total e o volume de 
combustível consumido para percorrer tal distância. 
Algoritmo Consumo 
 Real: consumo, distancia, volume 
Inicio 
 escreva ("Calcula o consumo médio de combustível") 
 escreva("------- - ------- ----- -- -----------") 
 escreva (" ") 
 escreva ("Qual a distancia (Km) percorrida pelo veiculo? ") 
 leia(distancia) 
 escreva ("Quantos litros de combustível foram gastos no trajeto? ") 
 leia(volume) 
 consumo <- volume/distancia 
 escreva("O consumo medio de combustível foi de ", consumo, " litros/km") 
 escreva("O carro fez ", distancia/volume, "km com 1 litro") 
Fim 
 
2. Calcular a média parcial de um aluno da UFRN, dadas as suas três primeiras notas. 
Algoritmo MediaParcial 
 Real : media, nota1, nota2, nota3 
Inicio 
 escreva ("------- -- ----- -------") 
 escreva ("Calculo da média Parcial") 
 escreva ("------- -- ----- -------") 
 escreva (" ") 
 escreva ("Digite as suas três primeiras notas: ") 
 leia(nota1, nota2, nota3) 
 media <- (nota1*4 + nota2*5 + nota3*6)/15 
 escreva("A sua média na disciplina é ", media) 
Fim 
 
3. Calcular o valor da função f(x,y) = 3x2 + 2y2 - xy em um ponto qualquer do plano 
cartesiano. 
Algoritmo PontoNoPlano 
 Real: fxy, x, y 
Inicio 
 escreva ("===========================================") 
 escreva ("Calculo da função f(x,y) = 3x^2 + 2y^2 - xy") 
 escreva ("===========================================") 
 escreva (" ") 
 escreva ("Digite as cordenadas x e y de um ponto: ") 
 leia(x,y) 
 fxy <- (3*x^2) + (2*y^2) - (x*y) 
 escreva ("O valor da função f(x,y) ") 
 escreva ("para x = ", x, " e y = ", y, " é igual a ", fxy) 
Fim 
 
4. Leia uma temperatura em graus centígrados e imprima a equivalente em graus 
farheneit ( F = 9C/5 + 32). 
Algoritmo CelsiusFarheneit 
 Real: tempCel, tempFar 
Inicio 
 escreva ("++++++++++++++++++++++++++++++++++++++++++++") 
 escreva ("| Conversão Celsius - Farheneit |") 
 escreva ("++++++++++++++++++++++++++++++++++++++++++++") 
 escreva ("") 
 escreva ("Qual a temperatura em graus Celsius? ") 
 leia(tempCel) 
 tempFar <- 9 * tempCel/5 + 32 
 escreva ("A temperatura digitada é equivalente a", tempFar, "F") 
Fim 
 
5. Leia uma quantidade de chuva dada em polegadas e imprima a equivalente em 
milímetros ( 1 polegada = 25,4 milímetros ). 
Algoritmo PolegadaMilimetro 
 Real: polegadas, milimetros 
Inicio 
 escreva ("---> Conversão de Polegadas em Milimetros <---") 
 escreva ("") 
 escreva ("Qual a medida em polegadas? ") 
 leia(polegadas) 
 milimetros <- polegadas * 25.4 
 escreva ("A medida equivale a", milimetros, "mm") 
Fim 
 
Aula 6 
Exercícios de Instruções Primitivas 
1. O que vai ser impresso na tela para cada uma das instruções abaixo e qual a diferença 
entre cada uma delas? O que é o nome três na letra c? Existe mais de uma saída 
possível? 
a. Escreva (“A resposta é”, 3) 
b. Escreva (“A resposta é 3”) 
c. Escreva (“A resposta é”, tres) 
d. Escreva (“A resposta é três”) 
 
2. Qual o a saída do algoritmo abaixo? 
Algoritmo ServidorPublico 
 Logico: funcionario 
 Inteiro: anosDeServico 
Inicio 
 funcionario <-V 
 anosDeServico <- 4 
 escreva (“Recebe benefício: ”, AnosdeServico > 5 e funcionario) 
Fim 
 
3. Identifique os erros e corrija o algoritmo abaixo: 
Alg. Lucro 
 
Inicio 
 escreva “Qual a arrecadação da sua empresa?” 
 leia (“arrecadacao”) 
 escreva ("Qual o gasto da sua empresa? ") 
 leia “gastos” 
 lucro <- arrecadacao - gastos 
 escreva ("O lucro da sua empresa foi de, lucro”) 
Fim 
4. Identifique os erros e corrija o algoritmo abaixo: 
Algoritmo Consumo 
 Real: consumo medio, distancia total, volume 
Inicio 
 escreva ("Qual a distancia percorrida pelo veiculo? ") 
 leia(distancia total) 
 escreva ("Quantos litros de combustível foram gastos no trajeto? ") 
 leia(volume) 
 consumo medio = volume/distancia total 
 escreva("O consumo médio de combustível foi de ", consumo, " litros/km") 
Fim 
 
5. Quais os valores das variáveis a e b nas linhas 6, 8 e 9 do algoritmo abaixo: 
Algoritmo Estado 
 Inteiro: a, b 
Inicio 
 a <- 5 
 b <- 2 
 escreva (a, b) // linha 6 
 b <- a; 
 escreva (a, b) // linha 8 
 a <- b; 
 escreva (a, b) // linha 9 
Fim 
 
6. Construa a seção de declaração de variáveis do algoritmo abaixo: 
Algoritmo Estado 
 
Inicio 
 a <- 5.5 
 b <- 2 
 total <- a * b 
Fim 
 
7. O algoritmo abaixo foi escrito para a ferramenta VisuAlg. Identifique as diferenças 
entre a linguagem utilizada no VisuAlg e a linguagem de pseudocódigo utilizada na 
disciplina de algoritmos e programação de computadores. 
algoritmo "CelsiusFarheneit" 
// Função : Converte um temperatura de graus Celsius para Farheneit 
// Autor : Judson Santiago 
// Data : 21/03/2007 
var 
 tempCel, tempFar : real 
inicio 
 escreval ("Conversão Celsius - Farheneit") 
 escreval ("") 
 escreva ("Qual a temperatura em graus Celsius? ") 
 leia(tempCel) 
 tempFar <- 9 * tempCel/5 + 32 
 escreval ("A temperatura digitada é equivalente a", tempFar, "F") 
Fimalgoritmo 
 
8. Crie um algoritmo para pedir o nome e senha de um usuário. O algoritmo deve 
imprimir verdadeiro se o nome e senha forem respectivamente iguais a “aluno” e 
“algoritmos”, e falso caso contrário. Não utilize a instrução SE. 
 
9. Faça um algoritmo para construir uma mensagem de boas vindas aos novos hospedes 
de um hotel. O algoritmo deve pedir o nome, sobrenome e cidade de origem do 
hospede e imprimir uma mensagem seguindo este padrão: 
Bem vindo NOME SOBRENOME. 
Esperamos que a sua viagem de CIDADE até Natal tenha sido agradável. 
 
Aula 7: Controle de Fluxo de Execução 
 
Até agora todos os algoritmos seguiam uma estrutura de execução linear, em que cada 
instrução é executada após a instrução anterior. Certas estruturas de controle permitem 
mudar o fluxo de execução de um algoritmo. 
As estruturas de controle se classificadas em: 
• Estruturas de decisão 
� Se 
� Escolha 
• Estrutura de repetição 
� Para 
� Enquanto 
� Repita 
Estrutura de Decisão SE 
Sintaxe: 
 Se ( <condição> ) então Se ( <condição> ) então 
 <instruções1> <instruções> 
 Senão Fimse 
 <instruções2> 
 Fimse 
Semântica: Apenas um bloco de instruções é executado. Qual deles é executado depende da 
avaliação da expressão <condição>. Se a condição é verdadeira, então o bloco <instruções1> é 
executado; se a condição é falsa o bloco <instruções2> é executado. 
Exemplo: Determinar se a senha do usuário é igual a “algoritmos” 
As instruções dentro do SE podem conter outras estruturas de decisão SE, formando SE’s 
aninhados ou encaixados. 
Exemplo: Determinar o maior (max) e o menor (min) valor entre 3 numeros (a, b, c). 
Estrutura de Decisão ESCOLHA 
Sintaxe: 
Escolha ( <expressão de seleção>) 
 Caso (<exp1>) faça 
 <instruções1> 
 ... 
 Caso (<expn>) faça 
 <instruçõesn> 
 Senão 
 <instruções> 
Fimescolha 
 
Semântica: a expressão de seleção deve ser um nome de variável. A expressão <exp> de cada 
caso deve listar os possíveis valores que a variável deve ter para a execução do caso. 
Exemplo: Decidir de qual cidade é o time de um torcedor de futebol. 
Algoritmo Torcedor 
 Literal: time 
Inicio 
 Escreva ("Entre com o nome de um time de futebol: ") 
 Leia (time) 
 Escolha (time) 
 Caso ("Flamengo", "Fluminense", "Vasco", "Botafogo") 
 Escreva ("É um time carioca.") 
 Caso ("São Paulo", "Palmeiras", "Santos", "Corínthians") 
 Escreva ("É um time paulista.") 
 Senão 
 Escreva ("É de outro estado.") 
 Fimescolha 
Fim 
 
Estrutura de Repetição PARA 
Sintaxe: 
Para <variável> de <valor inicial> até <valor final> faça 
<instruções> 
Fimpara 
 
Semântica: A variável inicialmente recebe <valor inicial>; se o valor da variável é menor ou 
igual ao valor final, o bloco de instruções é executado e o valor da variável é incrementado de 
uma unidade; o processocontinua enquanto o valor da variável for menor ou igual a valor 
final. 
Exemplo: Calculo do fatorial de um número 
Algoritmo Fatorial 
Inteiro: num, k, fat 
Inicio 
Leia (num) 
fat �1 
Para k de 2 até num faça 
 fat � fat * k 
Fimpara 
Escreva(“Fatorial de”,num, “ é igual a “, fat) 
Fim 
 
Explicar como se acompanha a execução de um algoritmo. 
 
Estrutura de Repetição ENQUANTO 
Sintaxe: 
Enquanto (<condição>) faça 
<instruções> 
Fimenquanto 
Semântica: enquanto a condição for verdadeira o bloco de instruções será executado. Para 
que a repetição não seja infinita a condição deve se tornar falsa em algum momento. 
Exemplo: Imprimir números em ordem decrescente 
Algoritmo Decrescente 
 Inteiro: num 
Inicio 
 Escreva (“Digite um número inteiro positivo:”) 
 Leia (num) 
Enquanto (num>=0) faça 
 Escreva(num) 
 num � num - 1 
Fimenquanto 
Fim 
Estrutura de Repetição REPITA 
Sintaxe: 
Repita 
<instruções> 
Até (<condição>) 
Semântica: Repete o bloco de instruções até que a condição seja verdadeira. O bloco de 
instruções é sempre executado pelo menos uma vez. 
Exemplo: Entrada de login e senha 
Algoritmo LoginSenha 
 Literal: login, senha 
Inicio 
Repita 
 Escreva(“Digite seu login:”) 
 Leia(login) 
Escreva(“Digite sua senha:”) 
 Leia(senha) 
Até (login=”alunos” e senha=”algoritmos”) 
Escreva (“Login feito com sucesso”) 
Fim 
 
 
 
Aula 8 
Exercícios de Controle de Fluxo de Execução 
1. Dado o trecho de algoritmo abaixo: 
Se (A > B e C < B) então 
D�5 
Fimse 
 
Em D estará armazenado o valor 5 se: 
a) A < B < C 
b) A > B > C 
c) A < B > C 
d) B < C < A 
e) nenhuma das respostas acima. 
 
2. Dados três valores, X, Y, Z, verificar se eles podem ser os comprimentos dos lados de 
um triangulo. Verificar se é um triângulo eqüilátero, isósceles ou escaleno. Se eles não 
formarem um triângulo, escrever uma mensagem. 
 
 Antes de começar a elaboração do algoritmo, toma-se necessária a revisão de 
algumas propriedades e definições. O comprimento de cada lado de um triângulo é 
menor do que a soma dos comprimentos dos outros dois lados. Chama-se triângulo 
eqüilátero ao triângulo que tem os comprimentos dos três lados iguais. Chama-se 
triângulo isósceles ao triângulo que tem os comprimentos de dois lados iguais. 
Portanto, todo triângulo eqüilátero é também isósceles. Chama-se triângulo escaleno 
ao triângulo que tem os comprimentos de seus três lados diferentes. 
 
3. Dados três valores inteiros distintos (a,b, c), escreva-os em ordem crescente. 
 
4. Um restaurante da cidade construiu um cardápio eletrônico e atribuiu um número 
para cada prato disponível. Construa um algoritmo que apresente o cardápio de 
opções na tela (considere 4 pratos numerados de 1 a 4), leia a escolha do usuário e 
escreva qual a opção escolhida. 
 
5. Calcular a soma entre todos os valores inteiros compreendidos entre dois números 
dados (não inclua os números dados na soma). 
 
6. Construa uma calculadora que receba um operador OP e dois valores X e Y. A 
calculadora deve executar a operação OP (+, -, *, /) sobre os operandos e apresentar o 
resultado do cálculo. A calculadora deve executar indefinidamente até que o operador 
utilizado pelo usuário seja igual a letra “F” de Fim. 
 
 
 
7. Executando o seguinte algoritmo 
N � 0 
Repita 
Quadrado � N + 1 
Se (N > 5) então 
Escreva (Quadrado) 
Fimse 
N � N + 1 
Até (N = 10) 
 
Que valores serão escritos? 
8. Uma pesquisa sobre algumas características físicas da população de uma determinada 
região coletou os seguintes dados, referentes a cada habitante, para serem analisados: 
• Sexo (masculino, feminino); 
• Cor dos olhos (azuis, verdes, castanhos); 
• Cor dos cabelos (louros, castanhos, pretos); 
• Idade em anos. 
Para cada habitante, foi digitada uma linha com esses dados e a última linha, que não 
corresponde a ninguém, conterá o valor de idade igual a -1. Fazer um algoritmo que 
determine e escreva: 
a) A maior idade dos habitantes; 
b) A porcentagem de indivíduos do sexo feminino cuja idade está entre 18 e 35 
anos e que tenham olhos verdes e cabelos louros. 
 
9. Leia um número indeterminado de linhas contendo cada uma: 
• Cômodo de uma residência; 
• Potência necessária para a iluminação deste cômodo; 
• As duas dimensões do cômodo. 
Calcule e escreva: 
a) Para cada cômodo: 
• A área do cômodo; 
• Número de lâmpadas de 75W necessárias; 
b) Para toda a residência: 
• Total de lâmpadas; 
• Total de potência.

Outros materiais