Prévia do material em texto
Universidade de Mogi das Cruzes
ALGORITMOS
Estruturas Simples
O professor pode ser excelente, o método de ensino
maravilhoso, mas sem a sua participação caro aluno,
o aprendizado não acontece.
Mogi das Cruzes, SP
2008
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 2/115
AUTORES
A presente apostila está sendo elaborada com a colaboração dos professores da UMC,
que ministram e/ou ministraram as disciplinas Técnicas de Programação e/ou Algoritmos para
Estruturas Simples e compostas, a saber:
• Marcia A. S. Bissaco
• Andréa Ono Sakai
• Cibele Mattos
• Marco Antônio Porto Alvarenga
• Marco Antônio Sawada (in memorium)
• Roberta Panzera
• Sebastião Varotto
• Viviane Guimarães Ribeiro
Para esclarecimento de dúvidas, sugestões ou críticas entre em contato através do e-mail
marciab@umc.br ou do telefone 4798-7112.
Se tiver interesse de saber um pouquinho sobre mim, veja os anexos.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 3/115
SUMÁRIO
1. CONCEITOS BÁSICOS............................................................................................... 5
1.1. LÓGICA DE PROGRAMAÇÃO E ALGORITMOS.............................................. 5
1.2. FORMAS DE REPRESENTAÇÃO DE ALGORITMOS ....................................... 6
1.2. 1. Descrição Narrativa................................................................................. 6
1.2. 2. Pseudocódigo.......................................................................................... 7
1.2. 3. Fluxograma............................................................................................. 8
1.2. 4. Diagrama de Chaplin............................................................................. 10
1.2. 5. Transformação do algoritmo em um programa ...................................... 11
1.3. EXERCÍCIOS PROPOSTOS ............................................................................... 13
1.3. 1. Responda as questões abaixo................................................................. 13
1.3. 2. Elaboração de algoritmos descritivos..................................................... 14
1.3. 3. Transcrevendo algoritmo em fluxograma para pseudocódigo e vice-versa16
2. PROGRAMAÇÃO ESTRUTURADA ........................................................................ 22
2.1. INTRODUÇÃO ................................................................................................... 22
2.2. TIPOS DE DADOS, VARIÁVEIS E OPERADORES.......................................... 22
2.2.1. Tipos de dados ........................................................................................ 22
2.2.1.1. Dados numéricos inteiros ............................................................ 23
2.2.1.2. Dados numéricos reais................................................................. 23
2.2.1.3. Dados literais .............................................................................. 23
2.2.1.4. Dados lógicos.............................................................................. 24
2.2.2. Variáveis................................................................................................. 24
2.2.3. Variáveis versus alocação de memória .................................................... 25
2.2.4. Operadores.............................................................................................. 28
2.2.4.1. Operador de atribuição ................................................................ 28
2.2.4.2. Operadores aritméticos e funções ................................................ 28
2.2.4.3. Operadores Lógicos..................................................................... 29
2.2.4.4. Operadores relacionais ................................................................ 30
2.2.4.5. Prioridade para execução das operações no computador .............. 30
2.2.5. Exercícios propostos ............................................................................... 30
2.3. TÉCNICA DE PROGRAMAÇÃO ESTRUTURADA .......................................... 35
2.3. 1. Estrutura Seqüencial.............................................................................. 35
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 4/115
2.3.1.1. Sintaxe ....................................................................................... 35
2.3.1.2. Exemplos ................................................................................... 35
2.3.1.3. Exercícios propostos................................................................... 42
2.3.2. Estrutura Condicional.............................................................................. 50
2.3.2.1. Sintaxe ....................................................................................... 50
2.3.2.2. Exemplos ................................................................................... 54
2.3.2.3. Exercícios propostos................................................................... 63
2.3.3. Estrutura Repetição................................................................................ 68
2.3.3.1. Sintaxe ....................................................................................... 68
2.3.3.2. Exemplos ................................................................................... 70
2.3.3.3. Exercícios propostos................................................................... 75
2.4. EXERCÍCIOS PROPOSTOS COMPLEMENTARES .......................................... 84
2.5. RESUMO........................................................................................................... 106
REFERÊNCIAS BIBLIOGRÁFICAS........................................................................... 111
ANEXOS...................................................................................................................... 112
A.1. Como ser reprovado em Algoritmos e/ou Laboratório de Programação.............. 112
A.2. Sobre o autor ..................................................................................................... 114
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 5/115
1. CONCEITOS BÁSICOS
“Programar é basicamente construir algoritmos”.
1.1. LÓGICA DE PROGRAMAÇÃO E ALGORITMOS
Qualquer problema é solucionado seguindo um ou mais caminhos. Para isto, usa-se a
lógica, ou seja, raciocínios coerentes que conduzem a soluções eficazes para o problema. Por
exemplo:
1. A gaveta está fechada.
2. A caneta está dentro da gaveta.
3. Portanto, primeiro é preciso abrir a gaveta para depois pegar a caneta.
Quando o problema a ser solucionado é de processamento de dados (computador), é
necessário usar a lógica de maneira formal, ou seja, adequar os raciocínios a simbolização usada
na programação, de modo a obter o resultado do que deseja programar com qualidade. Neste
caso, usamos a expressão lógica de programação, que é representada por algoritmos.
Os algoritmos fazem parte da nossa vida diária, constantemente estamos fazendo uso
dele. Alguns exemplos são:
• Indicações dadas para se chegar até uma determinada rua;
• Um receita culinária;
• Uma planta serve ao mesmo propósito num projeto de construção;
• Instruções para o uso de medicamentos, equipamentos;
• Indicações de como montar um aparelho.
Algoritmos são, portanto, uma seqüência ordenada e sem ambigüidade de passos
executáveis (ou seja, instruções/ações), precisamente definidos, que manipulam um conjunto de
dados a fim de resolver um dado problema.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 6/115
1.2. FORMAS DE REPRESENTAÇÃO DE ALGORITMOS
Um algoritmo deve possuir ações bem definidasde modo a não dar margem à dupla
interpretação. Ele parte de um ponto inicial, passando pelas ações até alcançar o resultado final.
Não importando a representação a ser escolhida, para solucionar o problema devem ser
empregadas corretamente as leis do pensamento para obter o resultado esperado.
Um algoritmo pode ser representado através de descrição narrativa, fluxograma,
pseudocódigo e diagrama de chaplin, formas de represetação descritas nos itens seguintes.
1.2. 1. Descrição Narrativa
Nesta forma de representação, os algoritmos são expressos diretamente em Linguagem
Natural. Por exemplo, observe a solução dos problemas apresentados abaixo referente à troca de
uma lâmpada velha e ao cálculo da média aritmética de duas notas.
ALG01 – Trocar uma lâmpada velha
1. Pegar uma escada;
2. Posicionar a escada embaixo da lâmpada;
3. Buscar uma lâmpada nova;
4. Subir na escada;
5. Retirar a lâmpada velha;
6. Colocar a lâmpada nova.
ALG02 – Calcular a média aritmética de um aluno
1. Pegar as notas N1 e N2;
2. Calcular a média aritmética (M � (N1 + N2)/2);
3. Mostrar o resultado;
A Linguagem Natural muitas vezes é PROLIXA (cansativa, longa, irritante) e
IMPRECISA, podendo ocasionar problemas, tais como:
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 7/115
• Má interpretação;
• Perda de informação;
• Dificuldade de se transmitir a informação desejada.
Por exemplo, descreva um caminho para sair de onde você está no momento e ir até a
estação do metrô Tiete em São Paulo.
1.2. 2. Pseudocódigo
Nesta forma de representação, os algoritmos são expressos numa linguagem simplificada,
também conhecida por portugol ou português estruturado.
No momento do desenvolvimento de um algoritmo, é preciso saber quais dados serão
recebidos do mundo externo e também quais informações exteriorizar. Não interessa, portanto,
saber se os dados entrarão via teclado, pela leitura de um arquivo de dados ou por qualquer outro
meio. Para dar entrada ou saída nesses dados, são utilizados os verbos LER, ESCREVER e
IMPRIMIR. O comando ler (ou leia) espera receber um determinado dado (sem importar a
origem). O comando escrever (ou escreva) mostra a informação produzida no vídeo. O comando
imprimir (ou imprima) faz a impressão em papel da informação produzida. A sintaxe dos
comandos é :
leia (variável1, variável2, ... , variável n);
escreva (lista de constantes, variáveis e/ou expressões );
imprima (lista de constantes, variáveis e/ou expressões );
Exemplos:
Leia (numero1);
numero2 ← numero1 * 2;
escreva (‘O dobro do número é ‘, numero2);
imprima (‘O triplo do número é ‘, numero1 * 3);
A seguir são apresentados os algoritmos ALG01 e ALG02, que ilustram uma solução
para a troca de lâmpada velha e para o cálculo da média aritmética de um aluno,
respectivamente.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 8/115
ALG01 – Pseudocódigo do algoritmo para trocar uma lâmpada velha
Algoritmo Troca_lâmpada;
Início
Escreva (‘Pegar uma escada’);
Escreva (‘Posicionar a escada embaixo da lâmpada’);
Escreva (‘Buscar uma lâmpada nova’);
Escreva (‘Subir na escada’);
Escreva (‘Retirar a lâmpada velha’);
Escreva (‘Colocar a lâmpada nova’).
Fim
ALG02 – Pseudocódigo do algoritmo que calculaa média aritmética de duas notas
Algoritmo CalcMedia;
Var
N1, N2, M : Numérico;
Início
Leia (N1, N2);
M � (N1 + N2)/2);
Escreva (M);
Fim.
Note que ambos os algoritmos começam e terminam com as palavras Algoritmo, início e
fim, sendo que a palavra algoritmo é seguida de um identificador, que corresponde a um nome
representativo do problema a ser solucionado. Em ALG02 tem também as palavras chaves Var e
Numérico, que são utilizadas para declaração de variáveis e seus tipos de dados que fazerm
parte da solução do problema. Estas serão esclarecidas mais a frente. Por enquanto, é importante
saber que estas palavras chaves compõem a sintaxe do pseudocódigo.
1.2. 3. Fluxograma
Nesta forma de representação, os algoritmos são expressos numa linguagem gráfica,
sendo que algumas das formas geométricas que simbolizam algumas das ações mais realizadas
são:
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 9/115
Descrição Representação gráfica Descrição Representação gráfica
Inicio/Fim
Processamento
Entrada de dados
Decisão
Saída de dados
Repetição
Conectores
Direção do fluxo
Veja a solução dos problemas da troca da lâmpada velha e do cálculo da média utilizando
o fluxograma.
ALG01 - Trocar uma lâmpada velha
inicio
fim
Pegar uma escada;
Posicionar a escada embaixo da lâmpada;
Buscar uma lâmpada nova;
Subir na escada;
Retirar a lâmpada velha;
Colocar a lâmpada nova;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 10/115
ALG02 – Calcular a média aritmética
{Início do algoritmo}
{Entrada de dados, isto é, das notas N1 e N2}
{Processamento, isto é, cálculo da média}
{Saída de dados: mostrando resultado}
{Fim do algoritmo}
O fluxograma é também conhecido pelos profissionais da área de Tecnologia da
Informação de diagrama de blocos, embora tenham sigificados diferentes.
1.2. 4. Diagrama de Chaplin
Nesta forma de representação, os algoritmos são expressos num diagrama de quadros,
que apresenta uma visão hierárquica e estruturada da lógica do programa. Tem um ponto de
entrada e um ponto de saída e é composto pelas estruturas básicas: seqüência, seleção e
repetição. Veja o exemplo a seguir.
ALG02 – Diagrama de chaplin do algoritmo que calcula a média aritmética de duas notas e
mostra mensagem “Aprovado” ou “Reprovado”
Início
Fim
N1, N2
M � (N1 + N2)/2
M
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 11/115
1.2. 5. Transformação do algoritmo em um programa
Quando o verbo programar é mencionado, imediatamente vem à mente a palavra
programa (ou software), que na realidade consiste num algoritmo traduzido para uma forma
inteligível para o computador.
Quem realiza essa tradução é um outro programa denominado Linguagem de
Programação, tal como Pascal, Delphi, Visual Basic, C, etc. A função básica da Linguagem de
Programação é converter um código-fonte, isto é, o algoritmo escrito numa sintaxe
compreensível pelo programador para a Linguagem de Máquina ou Linguagem Binária.
Assim sendo, programa é uma combinação de algoritmo mais linguagem de
programação, sendo que para elaborar o algorimto é necessário pensar de forma lógica para
solucionar o problema real que se apresenta (Figura 1).
Figura 1 - Esquema algoritmo-programa
Os programadores devem iniciar o desenvolvimento de um programa elaborando antes o
fluxograma ou pseudocódigo a fim de demonstrar a linha de raciocínio lógico para resolução do
problema, isto é, para estabelecer a seqüência de operações a ser realizada pelo programa
desejado1.
A codificação do algoritmo pode ser realizada em qualquer Linguagem de Programação.
Lembrando que estas apresentam sintaxes diferentes, mas são similares em muitas outras
particularidades, como por exemplo, o paradigma de programação empregado (programação
estruturada, orientada a eventos ou orientada a objetos). A seguir são apresentadas as
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 12/115
implementações em PASCAL dos algoritmos ALG01 e ALG02, mencionado o que é exibido no
monitor quando cada uma das linhas de código é executada pelo computador.
ALG01 – Codificação em PASCAL do
problema da troca da lâmpada
Aparece no monitor durante execuçãodo
programa
Program Troca_lampada;
Uses WinCrt;
Begin
writeln (‘Pegar uma escada;’);
writeln (‘Posicionar a escada embaixo da
lâmpada; ’);
writeln (‘Buscar uma lâmpada nova; ’);
writeln (‘Subir na escada; ’);
writeln (‘Retirar a lâmpada velha; ’);
writeln (‘Colocar a lâmpada nova.’);
End.
Nada
Nada
Nada
Pegar uma escada;
Posicionar a escada embaixo da lâmpada;
Buscar uma lâmpada nova;
Subir na escada;
Retirar a lâmpada velha;
Colocar a lâmpada nova.
Nada
ALG02 – Codificação em PASCAL do
cálculo da média aritmética de 2 notas
Aparece no monitor durante execução do
programa
Program CalcMedia;
Uses WinCrt;
Var N1, N2, M : real;
Begin
Writeln (‘Digite Nota 1:’);
Readln (N1);
Writeln (‘Digite Nota 2:’);
Readln (N2);
M := (N1 + N2)/2);
Writeln (‘A média é = ’, M:5:2);
End.
Nada
Nada
Nada
Nada
Nada
Digite Nota 1:
<Deve ser digitado algum valor pelo teclado>
Digite Nota 2
<Deve ser digitado algum valor pelo teclado>
Nada
Nada
Nada
Nada
Os programas geralmente têm uma estrutura padrão que consiste em: Entrada �
Processamento � Saída. Os dados necessários à resolução do problema são entrados via teclado
e armazenados na memória do computador em posições denominadas de variável. O
processamento é realizado pela Unidade Lógica e Aritmética (ULA) e a saída de dados
processados (informações/valores calculados) ocorre através do monitor.
Para desenvolver um programa com entrada, processamento e saída, é importante
responder as seguintes perguntas durante a elaboração do algoritmo: O que tenho? O que quero?
Como fazer?
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 13/115
1.3. EXERCÍCIOS PROPOSTOS
1.3. 1. Responda as questões abaixo
a. O que é lógica de programação?
b. O que é algoritmo?
c. Como os algoritmos podem ser representados?
d. O que é descrição narrativa?
e. Dê um exemplo de algoritmo representado em descrição narrativa.
f. Qual a desvantagem de se utilizar a descrição narrativa para representar os algoritmos?
g. O que é pseudocódigo?
h. Dê um exemplo de pseudocódigo.
i. O que é fluxograma?
j. Dê um exemplo de utilização do fluxograma.
k. Fale sobre o diagrama de Chaplin.
l. Dê exemplo de um algoritmo representado pelo diagrama de Chaplin.
m. Como se transforma um algoritmo num programa?
n. O que é linguagem de programação?
o. O que é um programa?
p. Como os programadores devem proceder para desenvolver um programa?
q. Como pode ser realizada a codificação de algoritmo para transforma-lo num programa de
computador?
r. Exemplifique a codificação do algoritmo da troca de lâmpada velha em PASCAL.
s. Exemplifique a codificação do algoritmo do cálculo da média em PASCAL.
t. Qual é a estrutura básica de um programa?
u. Durante a fase de elaboração do algoritmo, que perguntas devem ser respondidas?
v. Onde ocorre o processamento dos dados dentro do computador?
w. Como são entrados no computador os dados necessários á resolução do problema?
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 14/115
x. Cite alguns dispositivos utilizados para entrar dados na memória do computador.
y. Cite alguns dispositivos utilizados para saída das informações no computador.
z. O que é memória?
aa. Coloque falso (F) ou verdadeiro (V)
( ) Programadores não devem iniciar o desenvolvimento de um programa elaborando
antes o fluxograma ou o pseudocódigo
( ) Fluxograma ou pseudocódigo são construídos a fim de demonstrar a linha de
raciocínio lógico para resolução do problema
( ) Pascal, Java, Delphi, C e Windows são linguagens de programação
( ) O algoritmo pode ser codificado em qualquer Linguagem de Programação
( ) Os dados necessários à resolução do problema não são entrados via teclado
( ) Os dados são armazenados na memória do computador em posições denominadas de
variável.
1.3. 2. Elaboração de algoritmos descritivos
Elabore algoritmos descritivos para ensinar uma pessoa totalmente leiga a realizar as
seguintes tarefas:
1) Chupar bala;
2) Estourar pipoca numa panela usando o fogão.
3) Trocar uma lâmpada queimada que está no teto, supondo que temos uma escada com
altura suficiente e uma caixa com lâmpadas de diferentes potências.
4) Estourar pipoca numa panela usando o fogão, utilizando somente os verbos acender,
colocar, desligar e misturar, bem como usar somente os objetos panela, tigela, fogo, sal,
milho de pipoca, pipoca e manteiga.
5) Trocar a lâmpada queimada empregando somente os verbos colocar, descer, escolher,
girar e subir. Além disso, usar também apenas os objetos escada, lâmpada queimada,
lâmpada nova, soquete.
6) Colocar exatamente 4 litros de água num garrafão que tem capacidade para 5 litros. Pode-
se usar também outro garrafão com capacidade de 3 litros e a fonte de água a vontade.
7) Atravessar três jesuítas e três canibais para o outro lado de um rio. Para isso, há um barco
com capacidade para duas pessoas. Por medidas de segurança, não se deve permitir que
em alguma margem a quantidade de jesuítas seja inferior à dos canibais. Qual a solução
para efetuar a travessia com segurança? Elabore um algoritmo mostrando a resposta,
indicando as ações que concretizam a solução deste problema.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 15/115
8) Solucionar o problema da Torre de Hanói, que envolve um ambiente formado por uma
base com 3 pinos (pA, pB e pC). No pino pA há uma pilha de 3 discos furados com
diâmetros diferentes (dP, dM e dG), ordenados de tal forma que o disco maior (dG) está
em baixo e o menor (dP) em cima, formando assim uma torre conforme a figura a seguir:
Figura 2 - Ambiente da Torre de Hanói.
O problema consiste em transferir-se a torre do pino pA para o pino pC
obedecendo as seguintes restrições:
a) Só é possível movimentar um disco por vez para qualquer pino;
b) Um disco maior nunca poderá ser colocado sobre um menor;
c) A solução deverá ser encontrada com o menor número de passos possível.
9) Mostrar os passos necessários para trocar um pneu furado, considerando as seguintes
situações:
a) Trocar o pneu traseiro esquerdo;
b) Trocar o pneu traseiro esquerdo e, antes, verificar se o pneu reserva está em
condições de uso;
c) Verificar se existe algum pneu furado, se houver verificar o pneu reserva e, então,
trocar o pneu correto.
Tome como exemplo os algoritmos desenvolvidos para solucionar o problema da troca de
lâmpadas. Para cada algoritmo faça um refinamento do anterior, introduzindo novas
ações e alterando o fluxo de execução de forma compatível com as situações
apresentadas.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 16/115
1.3. 3. Transcrevendo algoritmo em fluxograma para pseudocódigo e vice-versa
Fluxograma Pseudocódigo
Programa ALG03;
Inicio
Escreva (“Meu primeiro programa”);
Fim.
Inicio
Fim
“Estou aprendendo”
a”
“desenvolver algoritmos”
Inicio
“10”
Fim
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 17/115
Fluxograma Pseudocódigo
Programa ALG06;
Var
x: Inteiro;
Inicio
x � 10;
Fim.
Programa ALG07;
Var
y: Inteiro;
Inicio
y � 10;
Escreva(y);
Fim.
Inicio
Fim
y � 10
“y = “, y
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 18/115
Fluxograma Pseudocódigo
Programa ALG10;
Var
N1,N2: Inteiro;
Inicio
N1 � 2;
N2 � 3;
Escreva(‘N1 = ‘, N1, ‘ N2 = ‘,N2);
Fim.
Inicio
“N1 = ”, N1
“N2 = ”, N2
N1 � 2
N2 � 3
Fim
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 19/115
Fluxograma Pseudocódigo
Programa ALG11;
Var
a: Inteiro;
b: Real;
nome:caracter;
teste:lógico;
Inicio
a � 1;
b � 1.25;
nome � ‘Maria’;
teste � verdadeiro;
Escreva (a);
Escreva (b);
Escreva (nome);
Escreva (teste);
Fim.
Programa ALG13;
Var
a,b,soma: Inteiro;
Inicio
a � 15;
b � 3;
soma � a + b;
Escreva (‘ Soma = ‘, soma);
Fim.
Inicio
Fim
a � 15;
b � 3;
‘Soma = ‘, a + b
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 20/115
Fluxograma Pseudocódigo
Programa ALG14;
Var
letra:caracter;
Inicio
letra � ‘A’;
Escreva(letra);
Fim.
Programa ALG15;
Var
n:real;
Inicio
Escreva (‘Digite um número real:’);
Leia (n);
Escreva (n);
Fim.
Programa ALG16;
Var
num1,num2:real;
Inicio
Escreva(‘Digite dois números reais:’);
Leia(num1,num2);
Escreva(‘Primeiro numero = ‘,num1);
Escreva(‘Segundo numero = ‘,num2);
Fim.
Inicio
Fim
‘Digite um número real‘
n
Nn
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 21/115
Fluxograma Pseudocódigo
Inicio
Fim
‘Digite o primeiro’ número”
‘Digite o segundo ‘ número”
num1
‘2o = ‘, num2
‘1º = ‘, num1
num2
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 22/115
2. PROGRAMAÇÃO ESTRUTURADA
“Algoritmos só se aprende fazendo”.
2.1. INTRODUÇÃO
Segundo alguns especialistas, qualquer programa de computador pode ser escrito
utilizando apenas três estruturas básicas: Seqüência, Condição e Repetição. Isto significa que, na
construção de um algoritmo, deve ser criado um fluxo de ações a ser executado seqüencialmente,
ou seja, de cima para baixo e da esquerda para a direita.
Antes, porém, é necessário fazer as seguintes perguntas: quais dados serão utilizados para
solucionar o problema? De que tipo eles são (inteiro, real, literal ou lógico)? Qual o tamanho
desses dados?
Portanto, nos itens seguintes são abordados descrição e exemplos a respeito de tipos de
dados e demais assuntos relacionados. São também apresentados exemplos de utilização das
estruturas básicas e uma lista de exercícios para fixação dos conceitos.
2.2. TIPOS DE DADOS, VARIÁVEIS E OPERADORES
Uma relação dos tipos de dados, dos operadores de atribuição, aritméticos, lógicos e
relacionais que podem ser utilizados pelo computador bem como o conceito de variável são
mostrados a seguir.
2.2.1. Tipos de dados
Uma informação manipulada pelo computador pode ser classificada como instruções ou
dados. Sendo que, uma instrução comanda o funcionamento da máquina e determina como
devem ser tratados dos dados. E os dados, correspondem à porção das informações a serem
processadas pelo computador. Os tipos de dados manipulados pelo computador são três:
• Dados numéricos
• Dados literais
• Dados lógicos
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 23/115
Recordando:
Conjunto dos números naturais (N)
N = { 1, 2, 3, 4, ...}
Conjunto dos números inteiros (Z)
Z = {..., -3, -2, -1, 0, 1, 2, 3, ... }
Conjunto dos números fracionários (Q)
Q = { p/q | p, q pertencem a Z}
Conjunto dos números reais (R) é formado pela união do conjunto Q.
2.2.1.1. Dados numéricos inteiros
Este tipo de dados são números pertencentes ao conjunto dos números inteiros (Z).
Podendo assumir valores negativos, nulo e positivos. Exemplos:
24 – número inteiro positivo
0 – número inteiro
-12 – número inteiro negativo
2.2.1.2. Dados numéricos reais
Este tipo de dados são números pertencentes ao conjunto dos números fracionários (Q).
Podendo assumir valores negativos, nulos e positivos. Exemplos:
24.01 – número real positivo com duas casas decimais.
144 – número real positivo com zero casas decimais.
-13.3 – número real negativo com uma casa decimal.
0 – número real com zero casas decimais.
2.2.1.3. Dados literais
Este tipo de dados são caracteres tais como: letras, dígitos e/ou símbolos especiais.
Podem ser chamados também como: dados alfanuméricos, cadeias de caracteres ou
string. No algoritmo, estes dados são delimitados pelo apostrofo (‘cadeia de caracteres’).
Exemplos:
‘qual ?’ - literal de comprimento 6.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 24/115
‘ ‘ - literal de comprimento 1.
‘1-2+3=’ - literal de comprimento 6.
‘AbCdeF‘ - literal de comprimento 7.
‘0’ - literal de comprimento 1.
2.2.1.4. Dados lógicos
Estes tipos de dados são chamados de booleanos. Eles representam dados lógicos com
Verdadeiro e falso. Nos algoritmo seus valores são delimitados pelo ponto (.V.). Exemplos:
.V. – valor lógico verdadeiro
.F. – valor lógico falso
2.2.2. Variáveis
Variável é um nome (rótulo) dado a uma parte da memória, cujo conteúdo (valor) pode
ser alterado durante a execução do programa. Embora seja possível alterar o valor armazenado
na memória (na variável), é possível armazenar só um valor de cada vez. A variável é composta
de dois elementos básicos: a) conteúdo – valor atual da variável e b) identificador – nome dado à
variável.
O identificador deve obrigatoriamente iniciar com uma letra e os caracteres seguintes
com letras ou números. Exemplos:
A � 5 (O valor 5 é armazenado na variável A)
B� 6 (O valor 6 é armazenado na variável B)
C � A+B (O valor que está em A é somado ao valor em B, e o resultado é armazenado
na variável C.)
Vale lembrar que quando um valor é armazenado numa variável, o valor antigo será
perdido.
Identificadores permitidos: A, Nome, N1 e S2N. Identificadores não permitidos: 2N, A
–B, N[1], A*2
Todas as variáveis usadas em um algoritmo (pseudocódigo) devem ser declaradas antes
de serem usadas. Isto faz necessário para permitir a reserva de espaço na memória.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 25/115
Sintaxe da declaração:
Var
<nome_da_variável> : <tipo_de_dados>;
Regras:
• A palavra Var deve aparecer uma única vez;
• Para um mesmo tipo de dado, podem ser listadas várias variáveis (seus nomes devem
ser separados por vírgula);
• Variáveis de tipos diferentes devem ser declaradas em linhas diferentes.
Exemplos:
Var
nome,endereço: caracter;
idade:inteiro;
salário:real;
tem_filhos:lógico;
2.2.3. Variáveis versus alocação de memória
O particionamento da memória para armazenamento de dados é realizado após análise do
problema a ser resolvido. É necessário responder as seguintes perguntas:
• Qual o problema a resolver?
• Quais os dados devem ser armazenados?
• Que tipo dado a ser utilizado?
• Qual o tamanho dos dados a serem utilizados?
• Como resolver o problema?
Digamos que o problema a ser resolvido é: somar dois números quaiquer, tais como:
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 26/115
Neste caso, os dados que devem ser armazenados, considerando os valores 2 e 3, são:
Onde 2 é o Primeiro número escolhido, 3 é o Segundo número escolhido e 5 é o Resultado, ou
seja, o total da soma dos dois números. Então, posso rotular as partes da memória do
computador, onde os valores 2, 3 e 5 serão armazenados, como sendo Primeiro, Segundo e
Resultado respectivamente.Estas partes de memória podem receber também outros valores tais como: 4, 4 e 8; 289,
97 e 386; 232, 1 e 233; 398, 0 e 398; e etc. Estas partes da memória são, portanto, chamadas de
variáveis e sempre que um novo valor for colocado nelas, o conteúdo anterior é perdido ou
sobrescrito.
No exemplo acima, pode-se concluir que os dados são do tipo inteiro.
Portanto, a porção de memória a ser reservada para as variáveis rotuladas (Primeiro,
Segundo e Resultado) terá um dimensionamento apropriado para o tipo inteiro.
A memória do computador pode ser particionada para armazenar dados de outros tipos
também, tais como dados do tipo real, literal e lógico. A diferença destes tipos de dados consiste
apenas no tamanho da porção de memória a ser reservada, como ilustra tabela a seguir.
TIPO DE DADO TAMANHO
Inteiro 2 bytes
Literal [1] (1 caracter) 1 byte
Real 4 bytes
Lógico 1 byte
Lembrando: 1 byte = 8 bits; 1 bit pode assumir apenas um de dois valores (0 ou 1).
Cada tipo de dado pode assumir de um valor mínimo a um valor máximo, como mostra a
tabela abaixo:
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 27/115
Relembrando o exemplo da soma dos dois números, se os números a serem somados
estão dentro da seguinte faixa de valores:
Então, a porção de memória a ser reservada se enquadra no tipo inteiro.
É importante ressaltar também que o processo de rotular as partes da memória com
nomes, isenta o programador de conhecer os endereços da memória expressos em hexadecimal.
A figura a seguir ilustra o particionamento da memória (a numeração hexadecimal foi substituída
pela decimal apenas para facilitar o entendimento).
Figura 3 - Esquema de memória
Voltando ao problema da soma de dois números, pode-se agora responder a última
pergunta “Como resolver o problema?”. A resposta é: definir variáveis e ....
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 28/115
A figura a seguir ilustra todo o processo.
Figura 4 - Variáveis versus mapeamento de memória
2.2.4. Operadores
2.2.4.1. Operador de atribuição
O operador de atribuição (�) é usado para fornecer um valor a uma dada variável.
Exemplificando:
A � 5 (Atribuindo o valor 5 à variável A)
B � A (Atribuindo o valor da variável A, valor igual a 5, à variável B)
A � B + C (Atribuindo o valor da soma dos valores nas variáveis B e C à variável C)
2.2.4.2. Operadores aritméticos e funções
Para realizar cálculos matemáticos é necessário saber qual a representação dos símbolos
de operações matemáticas, a saber:
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 29/115
Operador Operação Exemplo
+ Adição 2 + 5 = 7
- Subtração 20 – 10 = 10
* Multiplicação 3 * 5 = 15
/ Divisão (onde o resultado será um número real) 5 / 2 = 2,5
DIV Divisão (onde o resultado será um número inteiro)
10 div 2 = 5
7 div 2 = 3
MOD Resto de uma divisão 7 mod 2 = 1
** ou exp(a, b) Exponenciação 5 ** 2 ou exp(5, 2)
Sqrt (x) Raiz quadrada Sqrt(5)
Exp(ln(x)*n) Exponenciação xn Exp(ln(5)*3)
Exemplificando através da elaboração de um algoritmo que resolve:
a) x = ab b) y = √a
Algoritmo A;
Var x, a, b:real;
inicio
a ←10;
b ←2;
x ← Exp(ln(a)*b);
escreva(x);
fim.
Algoritmo A;
var y, a:real;
inicio
a ←16;
y ← Sqrt(a);
escreva(y);
fim
2.2.4.3. Operadores Lógicos
Os operadores usados em expressões lógicas são os Operadores Lógicos apresentados na
tabela a seguir.
Operador Relação Descrição Exemplo
E (And) E lógico
Conjunção (as duas
ao mesmo tempo )
(Media > 5) .E. (Freq > 75)
Ou (Or) Ou lógico Disjunção Inclusiva (Flag = .V.) .Ou. (Cont > 50)
Não (Not) Negação lógica Negação Não (Sei_nada)
Ou-X (Xor) Ou ‘Exclusivo’ (Sal < 500) Ou-X (N_dep > 2)
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lógicos,
onde P e Q são variáveis do tipo lógico.
P Q P.e. Q P .ou. Q P .ou-X. Q Não (P .e. Q) Não (P .ou. Q) Não (P .ou-X. Q)
F F F F F V V V
F V F V V V F F
V F F V V V F F
V V V V F F F V
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 30/115
2.2.4.4. Operadores relacionais
Além de operações matemáticas, é freqüente a comparação de informações. Por
exemplo, se a média aritmética do aluno for maior ou igual a 5 então o professor toma a decisão
de aprovar o aluno. Para isso, são usados os operadores relacionais listados na tabela a seguir.
Operador Relação Exemplo
= Igualdade Nome = ‘João da Silva’
≠≠≠≠ ou <> Diferente Saldo ≠ 100,00
> Maior que Salário > 3000,00
Idade > 18
≥≥≥≥ ou >= Maior ou igual que Média ≥ 5,0
< Menor que Renda < 10000
≤≤≤≤ ou <= Menor ou igual que Aluguel ≤ 400
2.2.4.5. Prioridade para execução das operações no computador
O computador avalia as expressões e executa as operações mistas na seguinte ordem:
Ordem Operações
1º Parênteses e funções (resolvidos da esquerda para a direita)
2º Multiplicação (*), Divisão ( / e div ) e Resto ( Mod ) (resolvidos da
esquerda para a direita)
3º soma e subtração
4º Operadores relacionais: >, <, ≥≥≥≥, ≤≤≤≤, =, ≠≠≠≠
5º Operador Lógico Não
6º Operador Lógico E
7º Operador Lógico Ou
2.2.5. Exercícios propostos
1) Responda as questões abaixo:
a) O que é variável?
b) O que é tipo de dado?
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 31/115
c) O que você entende por memória do computador?
d) Quais as regras para compor o nome (rótulo ou identificador) de uma variável?
e) Quais as regras para a declaração de uma variável?
2) Relacione as colunas
Tipo de dado Descrição
a) Numérico
inteiro
( ) São caracteres tais como: letras, dígitos e/ou símbolos especiais. Pode-se também
chamar estes dados de : alfanuméricos, cadeia de caracteres ou string. No
algoritmo estes dados são delimitados pelo apóstrofo.
b) Numérico real ( ) São chamados de boleanos. Pode assumir dois valores: Falso e Verdadeiro. No
algoritmo seus valores são delimitados pelo ponto (.V.).
c) Literal ( ) São números pertencentes ao conjunto dos números inteiros (Z), podendo
assumir valores negativos, nulos e positivos.
d) Lógico ( ) São números pertencentes ao conjunto dos números fracionários (Q), podendo
assumir valores negativos, nulos e positivos.
3) Classifique os dados abaixo de acordo com seu tipo (inteiro, real, literal ou lógico).
Dado Tipo de dado Dado Tipo de dado
0.7845 ‘abc’
‘+35987’ .F.
.V. -0.0
‘.F.’ +36
32 -1
32.0 ‘2’
‘-0.0’ ‘Teste’
24.01 144
‘1-2+3=’ ‘AbCdeF’
‘qual?’ -13.3
4) Na lista seguinte, assinale com V os nomes de variáveis válidos e com I os inválidos.
( ) Abc ( ) 3abc ( ) A
( ) 123a ( ) _a ( ) acd1
( ) _ ( ) Aa ( ) 1
( ) A123 ( ) _1 ( ) A0123
( ) A1_v3 ( ) _a123 ( ) B214
( ) AB CDE ( ) etc... ( ) guarda-chuva
5) Indique a prioridade na avaliação das expressões
Soma e subtração
Operador lógico E
Operador Lógico Não
Parênteses e funções (resolvidos da esquerda para a direita)
Operadores relacionais: >, <, >=, <=, <>
Multiplicação (*), Divisão (/ e Div) e Resto (Mod) (resolvidos da esquerda para a direita)
Operador lógico Ou
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 32/115
6) Dadas as declarações de variáveis abaixo, monte as tabelas de símbolos correspondentes.
a) VAR
a,b,c : real;
delta : real;
positivo : lógico;
raiz1, raiz2 : real;
Nome simbólico Posição inicial Tipo de dado
A 1 Real
b) VAR
x,y : inteiro;
nome, profissao : literal [20];
rua : literal [30];
numero : inteiro;renda : real;
Nome simbólico Posição inicial Tipo de dado
7) Elabore um exercício sobre o conteúdo apresentado até o presente momento. Pode ser
criativo.
8) Dado os enunciados abaixo, identifique as variáveis necessárias na elaboração do algoritmo.
Dê nome para essas variáveis e identifique os tipos de dados possíveis:
8.1) Crie um algoritmo que calcule a soma de dois números inteiros.
8.2) Crie um algoritmo que calcule a média de um aluno composta por duas provas.
8.3) Crie um algoritmo que calcule o salário líquido de um funcionário, considerado:
a) os dados do funcionário: nome, RG e telefone.
b) salário bruto de R$ 2500,00
c) descontos de R$ 300,00
9) Dados os identificadores abaixo, assinale somente os que são aceitos em Algoritmos.
( ) Valor
( ) abc
( ) B248
( ) A/B
( ) X2
( ) a
( ) salário
( ) Nome
( ) 3 x 4
( ) MARIA
( ) KM/H
( ) 3E
( ) Valor Pago
( ) NoTa
( ) _a123
( ) Contador
( ) A1B2C3
( ) 1
( ) ‘Nota’
( ) XYZ
( ) AH!
( ) Nota
( ) _a
( ) acd1
( ) Placa-Carro
( ) SALA125
( ) ‘NOTA’
( ) Algoritmo_1
( ) Nome_da_empresa
( ) SALÁRIO-LÍQUIDO
( ) 1º algoritmo
( ) Nota*do*aluno
( ) notadoaluno
( ) _1
( ) _
( ) algo 1
( ) 123ª
( ) Média
( ) inicio
( ) vetor
( ) AB CDE
( ) Algoritmo1
( ) A123
( ) a123
( ) 3abc
10) Ligue os valores aos seus tipos de dados correspondentes
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 33/115
11) Indique os tipos de dados (inteiro, real, literal, lógico) que podem ser armazenados nas
variáveis abaixo:
Var
Nota:
Idade:
Cidade:
Salario:
Sexo:
12) Na hora de criar o nome da variável (identificador) é necessário seguir regras. Indique com V
à regra verdadeira e F para regra falsa.
( ) Não pode usar símbolos especiais
(%, &, *, -, / , etc);
( ) O único símbolo permitido é o ( _ )
underline.
( ) Pode haver espaços; ( ) Não pode haver espaços;
( ) Não pode iniciar com um número; ( ) Pode ter acento agudo ou crase;
( ) Deve iniciar com uma letra; ( ) Pode iniciar com número
( ) Pode usar símbolos especiais (%,
&, *, -, / , etc);
( ) Pode usar números para compor o restante
do nome após iniciar com letra;
13) Sendo P, Q, R e S, variáveis numéricas, cujo os conteúdos são iguais a 2, 3, 12 e 4.5,
respectivamente, quais os valores fornecidos por cada uma das expressões abaixo.
a) 100 * Q DIV P + R
b) P * R MOD 5 – Q/2
c) Q*Q – R/4 * P –3
d) S MOD (P+1) – Q * R
e) S+ R * (3 – 2*P)/5 + 5*Q
14) Dada as variáveis numéricas A e B, as variáveis literais NOME e PROFISSAO, completar o
quadro a seguir com os resultados lógicos (falso ou verdadeiro) obtidos como resultado das
relações, tendo em vista os valores atribuídos a estas variáveis.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 34/115
15) Considerando as variáveis do exercício anterior e mais a variável lógica TESTE contendo o
valor lógico falso, avaliar as expressões a seguir, para cada uma das três combinações de valores
apresentadas:
a) A+1 >= B/4 .ou. NOME <> ‘ANA’
b) A+5 <= B*2 .e. PROFISSÃO = ‘MÉDICO’
c) NOME <> ‘ANA’ .ou. PROFISSÃO = ‘PROFESSOR .e. A+1 >= B/2
d) PROFISSÃO = ‘CONTADOR’ .ou. TESTE
e) não TESTE .e. (A+2 >B/6 .ou. não PROFISSÃO = ‘ENGENHEIRO’)
f) não (A+2 >= B .e. TESTE)
16) Sejam as variáveis lógicas P, Q, R, S contendo, respectivamente, os valores verdadeiro,
falso, falso, verdadeiro. Indique o resultado das operações:
a) P .e. S f) P .ou. R
b) P .e. R g) Q .ou. S
c) Q .e. S h) Q .ou. R
d) Q .e. R i) Não P
e) P .ou. S j) Não R
17) Dadas as expressões aritméticas abaixo, escreva-as de forma que o compilador de uma
linguagem de programação como o PASCAL, por exemplo, entenda:
a) 2 (A + B) – 7B
b)
2
3
3
3
2 BYX −
−
+
c)
Z
Y
C
W
BA
Y
X
4
)2(5
3
1
2
+−
+
+
−
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 35/115
2.3. TÉCNICA DE PROGRAMAÇÃO ESTRUTURADA
A seguir são apresentadas as estruturas que compõem a técnica de programação
estruturada e alguns exemplos.
2.3. 1. Estrutura Seqüencial
Esta estrutura permite a execução de um grupo de ações sequencialmente.
2.3.1.1. Sintaxe
A seguir é apresentada a sintaxe utilizada para elaborar o pseudocódigo e o fluxograma.
Pseudocódigo Fluxograma
Comando_1;
Comando_2;
. . .
Comando_n;
2.3.1.2. Exemplos
Os algoritmos ALG01 a ALG17, apresentados acima, são exemplos de algoritmos
elaborados utilizando a estrutura seqüencial. Além deles, observe também os algoritmos
apresentados a seguir, que realizam: soma de dois valores (ALG18); cálculo da hipotenusa
(ALG19), conversão de um valor em horas e em minutos para um valor em minutos (ALG20),
conversão da temperatura em graus Celsius para graus Fahreinheit (ALG21), aumento do salário
de um funcionário de acordo com certo percentual de aumento (ALG22) e cálculo da área do
círculo (ALG23).
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 36/115
ALG18 – Soma de dois números
Análise do problema Descrição narrativa
1 – O que tenho?
Dois valores (A e B)
2 – O que quero?
Soma dos dois valores (S)
3 – Como ?
Fornecer valores A e B;
S � A + B;
Mostra o resultado (S).
1 - Fornecer valores A e B;
2 - S � A + B;
3 - Mostra o resultado (S).
Pseudocódigo Fluxograma
Algoritmo SomaAB;
Var
A, B, S : inteiro;
Início
Leia (A, B);
S � A + B;
Escreva (S);
Fim
Codificação em PASCAL Aparece no monitor quando o programa é
executado
Program SomaAB;
Uses WinCrt;
Var
A, B, S : integer;
Begin
Writeln (‘Digite A:’);
Readln (A);
Writeln (‘Digite B’);
Readln (B);
S := A + B;
writeln (‘Soma = ‘, S);
End.
Nada
Nada
Nada
Nada
Nada
Digite A:
<Digitar o valor de A pelo teclado>
Digite B:
<Digitar o valor de B pelo teclado>
Nada
Soma = <valor armazenado em S>
Nada
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 37/115
ALG19 – Cálculo da hipotenusa
Análise do problema Descrição narrativa
1 – O que tenho?
Os catetos Oposto e Adjacente (A e B)
2 – O que quero?
Hipotenusa (H)
3 – Como ?
Fornece valores A e B;
H � raiz (A * A + B * B);
Mostra o resultado (H).
1 - Fornece valores A e B;
2 - H � raiz (A * A + B * B);
3 - Mostra o resultado (H).
Pseudocódigo Fluxograma
Algoritmo CalcHip;
Var
C1, C2, hip : inteiro;
Início
Leia (C1, C2);
hip � raiz (C1 * C1 + C2 * C2);
Escreva (hip);
Fim
Codificação em PASCAL Aparece no monitor quando o programa é
executado
Program CalcHip;
Uses WinCrt;
Var
A, B, H : integer;
Begin
Writeln (‘Cateto Oposto’);
Readln (A);
Writeln (‘Cateto Adjacente’);
Readln (B);
H := sqrt (A * A + B * B);
writeln (‘Hipotenusa = ‘, H:5:2);
End.
Nada
Nada
Nada
Nada
Nada
Cateto Oposto
<Digitar algum valor pelo teclado>
Cateto Adjacente
<Digitar algum valor pelo teclado>
Nada
Hipotenusa = <valor armazenado em H>
Nada
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 38/115
ALG20– Conversão de um valor em Horas e Minutos para apenas minutos
Análise do problema Descrição narrativa
1 – O que tenho?
Tempo em horas (H) e minutos (M)
2 – O que quero?
Tempo apenas em minutos (M)
3 – Como ?
Fornece os valores H e M;
Mt � H * 60 + M;
Mostra o resultado (Mt).
1 - Fornece valores de Horas (H) e Minutos
(M);
2 - Mt � H * 60 + M;
3 - Mostra oresultado (Mt).
Pseudocódigo Fluxograma
Algoritmo ConvHMin;
Var
H, M, Mt: inteiro;
Início
Leia (H, M);
Mt � H * 60 + M;
Escreva (Mt);
Fim
Codificação em PASCAL Aparece no monitor quando o programa é
executado
Program CalcHMin;
Uses WinCrt;
Var
H, M, Mt : integer;
Begin
Writeln (‘Horas’);
Readln (H);
Writeln (‘Minutos’);
Readln (M);
Mt := H * 60 + M;
writeln (‘Minutos = ‘, Mt);
End.
Nada
Nada
Nada
Nada
Nada
Horas
<Digitar algum valor pelo teclado>
Minutos
<Digitar algum valor pelo teclado>
Nada
Minutos = <valor armazenado em Mt>
Nada
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 39/115
ALG21 – Conversão de uma temperatura em graus Celsius para Fahrenheit
Análise do problema Descrição narrativa
1 – O que tenho?
Temperatura em graus Celsius (C)
2 – O que quero?
Temperatura em graus Fahreinheit (F)
3 – Como ?
Fornece a temperatura em Celsius;
F � 32 + 1.8 * C
Mostra o resultado (F).
1 - Fornece valor da temperatura em Celsius
(C)
2 - F � 32 + 1.8 * C;
3 - Mostra o resultado (F).
Pseudocódigo Fluxograma
Algoritmo ConvCF;
Var
C, F: real;
Início
Leia (C);
F � 32 + 1.8 * C;
Escreva (F);
Fim
Codificação em PASCAL Aparece no monitor quando o programa é
executado
Program CalcCF;
Uses WinCrt;
Var
C, F : real;
Begin
Write (‘Digite Graus Celsius: ’);
Readln (C);
F := 32 + 1.8 * C;
writeln (‘Fahrenheit = ‘, F);
End.
Nada
Nada
Nada
Nada
Nada
Digite graus Celsius:
<Digitar algum valor pelo teclado>
Nada
Fahrenheit = <valor armazenado em F>
Nada
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 40/115
ALG22 – Cálculo do novo salário de um funcionário segundo um percentual de aumento
Análise do problema Descrição narrativa
1 – O que tenho?
Salário atual (S) e percentual de aumento
(p)
2 – O que quero?
Novo salário (NS)
3 – Como ?
Fornece os valores do salário atual (s) e do
percentual de aumento (p);
NS � S + S * p/100;
Mostra o resultado (NS).
1 - Fornece valores de salário atual (S) e o
percentual de aumento (p);
2 - NS � S + S* p/100;
3 - Mostra o resultado (NS).
Pseudocódigo Fluxograma
Algoritmo ReajustaSal;
Var
S, NS, p: real;
Início
Leia (S, p);
NS � S + S * p/100;
Escreva (NS);
Fim
Codificação em PASCAL Aparece no monitor quando o programa é
executado
Program ReajustaSal;
Uses WinCrt;
Var
S, NS, p: real;
Begin
Writeln (‘Salário atual:’);
Readln (S);
Writeln (‘Reajuste em %’);
Readln (p);
NS := S + S* p/100;
writeln (‘Novo salário = ‘, NS);
End.
Nada
Nada
Nada
Nada
Nada
Salário atual:
<Digitar valor do salário pelo teclado>
Reajuste em %:
<Digitar percentual pelo teclado>
Nada
Novo salário = <valor armazenado em NS>
Nada
ALG23 – Cálculo da área do círculo
Análise do problema Descrição narrativa
1 – O que tenho? 1 - Fornecer valor do raio (R);
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 41/115
Raio do círculo (R) e valor do Pi
2 – O que quero?
Área do círculo (A)
3 – Como ?
Fornecer o valor do raio
Encontrar o valor do Pi (3,1415);
A � R * R * 3.1415;
Mostra o resultado (A).
2 - Encontrar o valor do pi (3.1415)
3 - A � R * R * 3.1415
4 - Mostrar o resultado (A).
Pseudocódigo Fluxograma
Algoritmo CalcAreaC;
Var
A, R: real;
Início
Leia (R);
A � R * R * 3.1415;
Escreva (A);
Fim
Codificação em PASCAL Aparece no monitor quando o programa é
executado
Program CalcAreaC;
Uses WinCrt;
Var
A, R: real;
Begin
Writeln (‘Raio do círculo:’);
Readln (R);
A := R * R * 3.1415;
writeln (‘Área do círculo = ‘, A:5:2);
End.
Nada
Nada
Nada
Nada
Nada
Raio do círculo
<Digitar valor do raio pelo teclado>
Nada
Área do círculo = <valor armazenado em A>
Nada
Quando fizer o fluxograma coloque alguns comentários do lado. Isto ajuda a lembrar o
que cada passo realiza. Veja os exemplos a seguir.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 42/115
ALG18 – Soma de dois números ALG20 – Conversão de um valor em Horas e
Minutos para apenas minutos
2.3.1.3. Exercícios propostos
1. Elabore um programa que leia um comprimento em polegadas, calcule e exiba o
comprimento em milímetros, considerando que 1 polegada equivale a 25,4 milímetros.
2. Elabore um programa que leia a massa de uma amostra de carbono, calcule e exiba o número
de moles de carbono na amostra. Considere que o mol C é igual a 12 e a fórmula é nº de
moles = massa da amostra / 12
3. Elabore um programa que leia a força F aplicada sobre um corpo e a velocidade V do corpo,
calcule e exiba a potência P. Considere P = F . V.
4. Numa loja existe um total mensal de vendas. Fazer a leitura do nome da loja e do total de
vendas mensal em um ano. Mostre o nome da loja e os totais de vendas por trimestre.
5. Ler o nome de um cliente de fast food e a quantidade de cada item do menu que ele vai pedir.
Exiba o nome do cliente e o total da compra.
ITEM PREÇO
Hot dog R$ 1,20
Hamburguer R$ 1,60
Cheeseburguer R$ 2,00
Refrigerante em lata R$ 1,20
Batatas fritas R$ 2,5
6. Ler a cotação do dólar no dia e a quantidade de dólares para trocar por real. Exiba a
quantidade em reais.
{ Início do algoritmo}
{Lê Horas e Minutos}
{Converte horas em
minutos e soma os minutos}
{Mostra minutos}
{Fim do algoritmo}
{ Início do algoritmo}
{Lê valores A e B}
{Calcula a soma de A e B}
{Mostra valor calculado}
{Fim do algoritmo}
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 43/115
7. Calcular o lucro obtido de um investimento, após um período de um ano, para uma taxa
anual. Todos os valores usados para o cálculo deverão ser escritos pelo programa.
8. A aceleração de um corpo em movimento é a mudança da velocidade do corpo em relação a
um intervalo de tempo. {a = (v2 –v1)/∆t}. Escrever um algoritmo que calcule a aceleração de
um corpo em movimento conhecendo-se as velocidades inicial e final, e o intervalo de tempo
medido.
9. Fazer o algoritmo que obtenha as duas notas de um aluno, que calcule e apresente a sua
média final (média aritmética).
10. Calcular e apresentar o valor do volume de uma lata de óleo. v = π*r2*h
11. Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer no plano,
P(x1,y1) e P(x2,y2), escreva a distância entre eles. A fórmula que efetua tal cálculo é:
( ) ( )( )22 1212 yyxxd −+−=
12. Escreva um algoritmo que leia três números inteiros e positivos (A, B, C) e calcule a
seguinte expressão:
2
SR
D
+
= onde ( )2BAR += e ( )2CBS += .
13. Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a
expressa apenas em dias.
14. Faça um algoritmo que leia as 3 notas de um aluno e calcule a média final deste aluno.
Considerar que a média é ponderada e que o peso das notas é: 2, 3 e 5, respectivamente.
15. Faça um algoritmo que leia o tempo de duração de um evento em uma fábrica expressa em
segundos e mostre-o expresso em horas, minutos e segundos.
16. Escrever um algoritmo que lê: a percentagem do IPI a ser acrescido no valor das peças, o
código da peça 1, valor unitário da peça 1, quantidade de peças 1, o código da peça 2, valor
unitário da peça 2, quantidade de peças 2. O algoritmo deve calcular o valor total a ser pago
e apresentar o resultado.Fórmula: valor_total = (valor1*quant1 + valor2*quant2)*(IPI/100 +
1)
17. Elabore um programa que leia um valor de temperatura em graus celsius, calcule e exiba a
temperatura equivalente em graus kelvin, sabendo que: K = C + 273.
18. Elabore um Algoritmo para converter um valor em minutos num formato com dias, horas e
minutos.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 44/115
19. Elabore um Algoritmo que dados dois lados de um triângulo rectângulo calcule a respectiva
hipotenusa
20. Elabore um Algoritmo que dados os litros gastos e os km percorridos por um automóvel,
calcule os gastos de combustível em R$/km e em l/100km (1l custa R$ 1.98).
21. Suponha que um quadrado cujo lado (L) mede 5 cm esteja inscrito em um círculo e um
círculo menor esteja inscrito no quadrado como ilustra a figura abaixo. Os círculos e o
quadrado possuem centro comum. Desenvolver um algoritmo para encontrar a área
hachurada. AC = raio2 * 3.14, AQ = L2
22. Escrever um algoritmo que converta segundos em minutos e segundos. Por exemplo, 252
segundos equivalem a 4 minutos e 12 segundos.
23. Escrever um algoritmo que calcule a taxa de consumo de um automóvel durante um período,
conhecendo-se os valores de quilômetros percorridos e a quantidade de gasolina consumida.
24. A aceleração de um corpo em movimento é a mudança da velocidade do corpo em relação a
um intervalo de tempo. (a = (v2 –v1)/∆t. Escrever um algoritmo que calcule a aceleração de
um corpo em movimento conhecendo-se as velocidades inicial e final, e o intervalo de tempo
medido.
25. Calcular o lucro obtido de um investimento de R$ 42.5000,00, após um período de um ano,
para uma taxa anual de remuneração de 17.55%. Todos os valores usados para o cálculo
deverão ser escritos pelo programa.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 45/115
26. O que o algoritmo abaixo faz? Faça o fluxograma correspondente.
Pseudocódigo Fluxograma
Algoritmo areas;
Var {declaração dos tipos de identificadores}
lr1, lr2, lt1, lt2, lt3, ht, rc: reais;
ar, pr, at, pt, ac, pc: reais;
ínicio
{Entrada de dados}
escreva (‘Insira valor do 1º lado do retângulo ‘);
leia (lr1);
escreva (‘Insira valor do 2º lado do retângulo ‘);
leia (lr2);
escreva (‘Insira valor do 1º lado do triângulo ‘);
leia (lt1);
escreva (‘Insira valor do 2º lado do triângulo ‘);
leia (lt2);
escreva (‘Insira valor do 3º lado do triângulo ‘);
leia (lt3);
escreva (‘Insira valor da altura do triângulo ‘);
leia (ht);
escreva (‘Insira valor do raio do círculo ‘);
leia (rc);
limpar a tela;
{calculo da área e do perímetro do retângulo}
ar ← lr1 * lr2;
pr ← 2 * (lr1 + lr2);
{calculo da área e do perímetro do triangulo}
at ← lt2 * ht / 2;
pt ← lt1 + lt2 + lt3;
{ calculo da area e do perímetro do círculo}
ac ← pi * rc * rc;
pt ← 2 * pi * rc;
{saída de dados}
escreva (‘ A área do retângulo é ‘, ar:5:2);
escreva (‘ O perímetro do retângulo é ‘, pr:5:2);
escreva (‘ A área do triângulo é ‘, at:5:2);
escreva (‘ O perímetro do triângulo é ‘, pt:5:2);
escreva (‘ A área do círculo é ‘, ac:5:2);
escreva (‘ O perímetro do círculo é ‘, pc:5:2);
{encerramento do programa}
escreva;
escreva (‘Digite qualquer tecla’)
leia especial;
fechar a tela do windows;
fim.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 46/115
27. Analise o algoritmo, responde as questões ao lado.
Pseudocódigo Análise do problema
Programa lanchonete;
Var
Iqtd1, qtd2, qtd3, qtd4, qtd5: inteiro;
Valortotal: real;
Nome : literal [20];
Início
{ Entrada de Dados}
Escreva (‘ Digite nome do cliente:’);
Leia (Nome);
Escreva (‘ Digite quantidade de Hot Dogs: ‘);
Leia (qtd1);
Escreva (‘Digite quantidade de Hamburguers: ‘);
Leia (qtd2);
Escreva (‘Digite quantidade de Cheeseburguer:”);
Leia (qtd3);
Escreva (‘Digite a quantidade de Refrigerante em Latas: ‘);
Leia (qtd4);
Escreva (‘Digite a quantidade de Batata Fritas: ‘);
Leia (qtd5);
{Cálculos}
valortotal← qtd1*1.2+qtd2*1,6+qtd3*2+qtd4*1.2+qtd5*2.5;
{ saída de dados}
Escreva (Nome,” gastou ...........R$ ‘,valortotal);
Fim.
1) o que tenho?
2) o que quero?
3) Como obtenho o que quero?
28. Crie algoritmos para solucionar os problemas abaixo nas três formas de representação
conhecidas (Descrição Narrativa, Fluxograma e Pseudocódigo):
a) Imprimir o seu nome.
b) Ler e imprimir o seu nome.
c) Ler seu nome e idade e imprimi-los.
d) Imprimir o produto de 12 e 43.
e) Imprimir a média aritmética entre 8, 9 e 7.
f) Ler três valores numéricos do tipo inteiro e imprimir a média aritmética entre eles.
g) Ler um número inteiro e imprimir seu sucessor e seu antecessor.
h) Ler o lado de um quadrado e calcular a área deste quadrado e mostrar o resultado.
29. Diga qual é o valor armazenado em cada variável (TESTE DE MESA) após a execução de
cada um dos comandos do algoritmo abaixo.
Algoritmo ALGXX;
Var
N, A, R, B, C : Inteiro;
V, X : real:
Início
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 47/115
A � 10;
R � 3;
V � 14.0;
B � 150;
C � V MOD 2;
X � B * R;
X � R / A;
X � X – 2 * A;
B � B + 3;
N � 30 + X;
B � B DIV N;
V � N – V + X * R;
Fim.
30. O algoritmo abaixo realiza o cálculo do determinante. Identifique Entrada, Saída e
Processamento.
Pseudocódigo Análise do problema
Algoritmo CalcDet;
Var
a, b, c, D: Inteiro;
Início
Leia (a, b,c);
D � b*b – 4*a*c;
Escreva (D);
Fim.
Entrada (O que tenho?):
Saída (O que quero?):
Processamento (Como?):
31) Dado o algoritmo abaixo (em pseudocódigo) que separa dia, mês e ano de uma data digitada
no formato ddmmaa e mostra estes valores.
Pseudocódigo Fluxograma
Programa A1;
Var
data, dia, mes, ano: Inteiro;
Inicio
Escreva(‘Digite uma data no formato ddmmaa:’);
Leia (data);
dia � data div 1000;
mes � data mod 100000 div 100;
ano � data mod 100;
escreva (‘dias: ‘, dia,
escreva (‘mes: ‘, mes);
escreva (‘ano: ‘, ano);
Fim.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 48/115
32) Dado o Fluxograma abaixo, indique o pseudocódigo correto
Pseudocódigo Fluxograma
( ) Algoritmo A2_v1;
Var a, b: Real;
Inicio
Escreva (“Digite um número :”); Leia (a);
a � a mod 100 div 10; Escreva (b);
Fim.
( ) Algoritmo A2_v2;
Var a, b: Inteiro;
Inicio
Escreva (“Digite um número :”); Leia (a);
b � a mod 100 div 10;
Fim.
( ) Algoritmo A2_v3;
Var A, B: Inteiro;
Inicio
Escreva (“Digite um número :”); Leia (A);
B � A mod 100 div 10; Escreva (B);
Fim.
33) Dado o fluxograma do exercício 2, qual seria o valor de saída se fosse digitado o valor 3200?
a) 2,2 b) 3,2 c) 32 d) 2,0 e) 22
34) Dado o fluxograma abaixo, faça apenas a declaração das variáveis em pseudocódigo.
Pseudocódigo (declaração variáveis) Fluxograma
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 49/115
35) Dado o enunciado abaixo, faça a análise do problema proposto.
Problema (enunciado) Análise do problema
Calcular a taxa de consumo de um automóvel
durante um período, conhecendo-se os valores
de quilômetros percorridos e a quantidade de
gasolina consumida.
O que tenho (entrada)?
O que quero (Saída)?
Como (processamento)?
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 50/115
2.3.2. Estrutura Condicional
Também conhecida como estrutura de tomada de decisão ou seleção, esta estrutura
permite a escolha do grupo de ações a ser executadas quando determinada condição
(expressãológica)é ou não satisfeita.
2.3.2.1. Sintaxe
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura condicional
simples, composta e aninhada.
Estrutura condicional simples
Pseudocódigo Fluxograma
Se (Condição) Então
Comando_1;
Comando_2;
. . .
Comando_n;
Fim_se;
Em Pascal
If (Condição) Then
begin
Comando_1;
Comando_2;
. . .
Comando_n;
end;
Se fosse um comando só:
If (Condição) Then
begin
Comando_1;
end;
---- Ou ------
If (Condição) Then
Comando_1;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 51/115
Estrutura condicional composta
Pseudocódigo Fluxograma
Se (Condição) Então
Comando_A1;
Comando_A2;
. . .
Comando_An
Senão
Comando_B1;
Comando_B2;
. . .
Comando_Bn;
Fim_se;
Em Pascal
If (Condição) Then
Begin
Comando_A1;
Comando_A2;
. . .
Comando_An;
End
Else
Begin
Comando_B1;
Comando_B2;
. . .
Comando_Bn;
End;
Se fosse um comando só:
If (Condição) Then
Begin
Comando_A1;
End
Else
Begin
Comando_B1;
End;
---- Ou ------
If (Condição) Then
Comando_A1
Else
Comando_B1;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 52/115
Estrutura condicional aninhada (ou encadeada)
Pseudocódigo Fluxograma
Se (Condição_1) Então
Comando_A1;
Comando_A2;
. . .
Comando_An
Senão
Se (Condição_2) Então
Comando_B1;
Comando_B2;
. . .
Comando_Bn;
Senão
Comando_C1;
Comando_C2;
. . .
Comando_Cn;
Fim_se;
Fim_se;
Em Pascal
If (Condição_1) Then
Begin
Comando_A1;
Comando_A2;
. . .
Comando_An;
End
Else
If (Condição_2) Then
Begin
Comando_B1;
Comando_B2;
. . .
Comando_Bn;
End
Else
Begin
Comando_C1;
Comando_C2;
. . .
Comando_Cn;
End;
Se fosse um único comando, ficaria:
If (Condição_1) Then
Begin
Comando_A1;
End
Else
If (Condição_2) Then
Begin
Comando_B1;
End
Else
Begin
Comando_C1;
End;
---- Ou ------
If (Condição_1) Then
Comando_A1;
Else
If (Condição_2) Then
Comando_B1;
Else
Comando_C1;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 53/115
Há também uma variação do condicional SE, que é utilizada quando uma situação de
igualdade é testada para uma mesma variável.
Caso/escolha
Pseudocódigo Fluxograma
Escolha (Variável)
Caso (valor_1) : Comando_1;
Caso (valor_2) : Comando_2;
Caso (valor_3) : Comando_3;
Fim_escolha;
Ou desta outra forma:
Caso <Variável>
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
<valor_3> : <Comando_3>;
Fim_caso;
Em Pascal
Case <Variável> of
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
<valor_3> : <Comando_3>;
End;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 54/115
Caso/escolha
Pseudocódigo Fluxograma
Escolha (Variável)
Caso (valor_1) : Comando1;
Caso (valor_2) : Comando2;
Senão
Comando3;
Fim_escolha;
Ou desta outra forma:
Caso <Variável>
<valor_1> : <Comando1>;
<valor_2> : <Comando2>;
Senão
<Comando3>;
Fim_caso;
Em Pascal
Case <Variável> of
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
Else
<valor_3> : <Comando_3>;
End;
2.3.2.2. Exemplos
A seguir são apresentados alguns exemplos, onde foram utilizadas as estruturas:
condicional simples, condicional composto, condicional encadeado e estrutura Escolha. No
primeiro (ALG24) tem-se o algoritmo do cálculo da média aritmética (M), onde são
consideradas apenas duas notas (P1 e P2) e é mostrada a média e uma mensagem de aprovação
caso M >= 5. Neste caso foi utilizada uma estrutura condicional simples.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 55/115
ALG24 – Cálculo da média aritmética de duas notas, mostrando média e mensagem “Aprovado”, caso a
média seja >= 5.
Análise do problema Descrição narrativa
1 – O que tenho? Notas (P1 e P2)
2 – O que quero?
Média (M) e situação “Aprovado”
3 – Como ?
Fornece o valor das notas (P1 e P2)
Calcula a média (M � (P1 + P2)/2;
Mostra resultado (M);
Verifica se aluno foi aprovado (M >= 5)
Mostra somente mensagem “Aprovado”.
1 - Fornece valor das notas (P1 e P2);
2 - Calcula a média aritmética (M)
3 - Verifica se M >= 5
4 - Se sim, mostra média (M) e mensagem
“Aprovado”.
Pseudocódigo Fluxograma
Algoritmo CalcMedia1;
Var P1, P2, M: real;
Início
Leia (P1, P2);
M �(P1 + P2)/2;
Escreva (M);
Se M >= 5 Então
Escreva (‘Aprovado’);
Fim_se;
Fim
Codificação em PASCAL Aparece no monitor (programa executado)
Program CalcMedia1;
Uses WinCrt;
Var
P1, P2, M: real;
Begin
Writeln (‘Digite P1:’);
Readln (P1);
Writeln (‘Digite P2:’);
Readln (P2);
M := (P1 + P2)/2;
Writeln (M):
If M >= 5 then
writeln (‘Aprovado’);
End.
Nada
Nada
Nada
Nada
Nada
Digite P1:
<Digitar valor de P1 pelo teclado>
Digite P2:
<Digitar valor de P2 pelo teclado>
Nada
<valor armazenado em M>
Nada
Aprovado
Nada
No segundo exemplo (ALG25), é utilizada uma estrutura condicional composta ao
realizar um refinamento no algoritmo acima acrescentando também a mensagem de reprovado.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 56/115
ALG25 – Cálculo da média aritmética de duas notas, mostrando a média e mensagem “Aprovado” ou
“Reprovado” (M >= 5; aprovação) .
Análise do problema Descrição narrativa
1 – O que tenho?
Notas (P1 e P2)
2 – O que quero?
Média (M) e “Aprovado” ou “Reprovado”
3 – Como ?
Fornece o valor das notas (P1 e P2)
Calcula a média (M � (P1 + P2)/2;
Mostra o resultado (M);
Verifica se aluno foi aprovado (M >= 5);
Mostra mensagem “Aprovado”ou “Reprovado”
1 - Fornecer valor das notas (P1 e P2);
2 - Calcular a média aritmética (M)
3 - Mostra o resultado (M)
4 - Verificar se M >= 5
5 - Se sim, mostra mensagem “Aprovado”.
6 - Senão mostra mensagem “Reprovado”.
Algoritmo CalcMedia1;
Var
P1, P2, M: real;
Início
Leia (P1, P2);
M �(P1 + P2)/2;
Escreva (M);
Se M >= 5 Então
Escreva (‘Aprovado’)
Senão
Escreva (‘Reprovado’);
Fim_se;
Fim
Codificação em PASCAL Aparece no monitor (programa executado)
Program CalçMedia1;
Uses WinCrt;
Var
P1, P2, M: real;
Begin
Writeln (‘Digite P1:’);
Readln (P1);
Writeln (‘Digite P2:’);
Readln (P2);
M := (P1 + P2)/2;
Writeln (M):
If M >= 5 then
writeln (‘Aprovado’)
Else
writeln (‘Reprovado’);
End.
Nada
Nada
Nada
Nada
Nada
Digite P1:
<Digitar valor de P1 pelo teclado>
Digite P2:
<Digitar valor de P2 pelo teclado>
Nada
<valor armazenado em M>
Nada
Aprovado
Nada
Reprovado
Nada
Em seguida, é considerado também que o aluno pode ter ficado para exame (ALG26).
Neste último caso foi utilizada a estrutura condicional encadeada.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 57/115
ALG26 – Cálculo da médiaaritmética de duas notas, mostrando a média e mensagem
“Aprovado”, “Reprovado” ou “Exame” (M >= 5 Aprovação; M >=3 Exame) .
Pseudocódigo Fluxograma
Algoritmo CalcMedia3;
Var
P1, P2, M: real;
Início
Leia (P1, P2);
M �(P1 + P2)/2;
Escreva (M);
Se M >= 5 Então
Escreva (‘ Aprovado’)
Senão
Se M >= 3 Então
Escreva (‘Exame’)
Senão
Escreva (‘Reprovado’);
Fim_se;
Fim_se;
Fim
Codificação em PASCAL Aparece no monitor quando o programa é executado
Program CalcMedia3;
Uses WinCrt;
Var
P1, P2, M: real;
Begin
Writeln (‘Digite P1:’);
Readln (P1);
Writeln (‘Digite P2:’);
Readln (P2);
M := (P1 + P2)/2;
Writeln (M);
If M >= 5 then
Writeln ( ‘Aprovado’)
Else
If M >= 3 then
Writeln (‘Exame’)
Else
Writeln (‘Reprovado’);
End.
Nada
Nada
Nada
Nada
Nada
Digite P1:
<Digitar valor de P1 pelo teclado>
Digite P2:
<Digitar valor de P2 pelo teclado>
Nada
<valor armazenado em M>
Nada
Aprovado
Nada
Nada
Exame
Nada
Reprovado
Nada
Dois outros exemplos de utilização de estrutura condicional simples (ALG27) e
encadeada (ALG28) podem ser vistos em seguida. Eles apresentam um algoritmo que lê um
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 58/115
número inteiro entre 1 e 7 e mostra no monitor do computador o dia da semana correspondente.
Caso o usuário digite um número fora desse intervalo, o algoritmo mostra uma mensagem
informando “Número inválido”.
ALG27 – Algoritmo elaborado com estrutura condicional simples e composta que lê um número
e imprime o dia da semana correspondente.
Pseudocódigo Fluxograma
programa DiaSemana_se;
Var
mes:inteiro;
inicio
Escreva ('Digite um numero de 1
a 7:');
Leia (Dia);
Se Dia = 1 então
escreva ('Domingo');
Fim_se;
Se Dia = 2 então
Escreva ('Segunda');
Fim_se;
Se Dia = 3 então
Escreva ('Terça');
Fim_Se;
Se Dia = 4 então
Escreva ('Quarta');
Fim_se;
Se Dia = 5 então
Escreva ('Quinta');
Fim_se;
Se Dia = 6 então
Escreva ('Sexta');
Fim_Se;
Se Dia = 7 então
Escreva ('Sábado');
Senão
Escreva ('Número inválido');
Fim_se;
Fim.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 59/115
ALG28 – Algoritmo elaborado com estrutura condicional encadeada que lê um número e
imprime o dia da semana correspondente.
Pseudocódigo
programa DiaSemana_se;
Var
mes:inteiro;
inicio
Escreva ('Digite um numero de 1 a 7:');
Leia (Dia);
se Dia = 1 então
escreva ('Domingo')
senão
se Dia = 2 então
Escreva ('Segunda')
senão
se Dia = 3 então
Escreva ('Terça')
senão
se Dia = 4 então
Escreva ('Quarta')
senão
se Dia = 5 então
Escreva ('Quinta')
senão
se Dia = 6 então
Escreva ('Sexta')
senão
se Dia = 7 então
Escreva ('Sábado')
senão
Escreva ('Numero inválido');
fim_se;
fim_se;
fim_se;
fim_se;
fim_se;
fim_se;
fim_se;
fim.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 60/115
ALG28 – Algoritmo elaborado com estrutura condicional encadeada que lê um número e
imprime o dia da semana correspondente.
Fluxograma
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 61/115
O exemplo a seguir mostra o algorimo acima elaborado utilizando a estrutura
Escolha/caso (ALG29) ao invés da estrutura condicional encadeada.
ALG29 – Algoritmo elaborado com estrutura ESCOLHA/CASO que lê um número e imprime o
dia da semana correspondente
Pseudocódigo Fluxograma
programa DiaSemana_se;
Var Dia : inteiro;
inicio
Escreva ('Digite um numero de 1 a 7:');
Leia (Dia);
Escolha (Dia)
Caso (1) : Escreva ('Domingo');
Caso (2) : Escreva ('Segunda')
Caso (3) : Escreva ('Terça')
Caso (4) : Escreva ('Quarta')
Caso (5) : Escreva ('Quinta')
Caso (6) : Escreva ('Sexta')
Caso (7) : Escreva ('Sábado'
Senão
Escreva ('Número inválido');
Fim_escolha;
fim.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 62/115
O exemplo seguinte apresenta apenas um trecho de algoritmo (elaborado com a estrutura
ESCOLHA/CASO), que mostra no monitor a mensagem “Um”, “Dois” ou “Três” caso o valor
digitado na variável A seja 1, 2 ou 3 respectivamente (ALG30).
ALG30 – Trecho de algoritmo elaborado com estrutura ESCOLHA/CASO que imprime a
mensagem “Um”, “Dois” e “Três”caso seja digitado 1, 2 ou 3 respectivamente.
Pseudocódigo Fluxograma
Escolha (A)
Caso (1): Escreva (‘Um’);
Caso (2): Escreva (‘Dois’);
Caso (3): Escreva (‘Três’);
Fim_escolha;
Escolha (A)
Caso (1): Escreva (‘Um’);
Caso (2): Escreva (‘Dois’);
Senão
Escreva (‘Três’);
Fim_escolha;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 63/115
2.3.2.3. Exercícios propostos
1.Indique a saída dos trechos de algoritmo (fluxograma) a seguir. Considere os seguintes valores:
A = 2, B = 3, C = 5, D = 9. Preste atenção na prioridade dos operadores.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 64/115
2. Faça um algoritmo que leia dois números e apresente-os em ordem crescente. Use estrutura
de desvio condicional simples.
3. Elabore um algoritmo que leia um número e diga se ele é divisível por 2 e por 3. Use
estrutura de desvio condicional simples.
4. Faça um algoritmo que leia um nº inteiro e mostre uma mensagem indicando se este número
é par ou ímpar e se é positivo ou negativo.
5. Elabore um algoritmo que leia um número e diga se ele é divisível por 5 ou por 7.
6. Elaborar um algoritmo que lê 3 valores (A, B e C), encontra o valor maior e o escreve
juntamente com a mensagem: "É o maior ".
7. Elaborar um algoritmo que lê 2 valores A e B, verifica e escreve uma mensagem informando
se “são múltiplos ou não são múltiplos”.
8. Escreva um algoritmo que leia 3 números inteiros e mostre o menor deles.
9. Calcule a média aritmética das 3 notas de um aluno e mostre, além do valor da média, uma
mensagem de "Aprovado", caso a média seja igual ou superior a 6, ou a mensagem
"Reprovado", caso contrário.
10. Elabore um algoritmo que dada a idade de um nadador, classifica-o em uma das seguintes
categorias:
CATEGORIA FAIXA ETÁRIA
infantil A 5 - 7 anos
infantil B 8 - 10 anos
juvenil A 11-13 anos
juvenil B 14-17 anos
Adulto maiores de 18 anos
11. Escreva um algoritmo que leia o código de um aluno e suas três notas. Calcule a média
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas
restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem
"APROVADO" se a média for maior ou igual a 5 e "REPROVADO" se a média for menor
que 5.
12. Um banco concederá um crédito especial aos seus clientes, variável com o saldo médio no
último ano. Faça um algoritmo que leia o saldo médio de um cliente e calcule o valor do
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 65/115
crédito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo médio e o
valor do crédito.
SALDO MÉDIO PERCENTUAL
de 0 a 200 nenhum crédito
de 201 a 400 20% do valor do saldo médio
de 401 a 600 30% do valor do saldo médio
acima de 601 40% do valor do saldo médio13. Escrever um algoritmo para automatizar o caixa da Lanchonete Bom Apetite. Este algoritmo
deve ler o código do item pedido, a quantidade e calcular o valor a ser pago por aquele
lanche. O cardápio da lanchonete é o seguinte:
CÓDIGO ESPECIFICAÇÃO
PREÇO UNITÁRIO
(R$)
100 Cachorro quente 1,10
101 Bauru simples 1.30
102 Bauru c/ovo 1,50
103 Hamburger 1.10
104 Cheeseburger 1.30
105 Refrigerante 1.00
14. Escreva um algoritmo que leia o código de um aluno e suas três notas. Calcule a média
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas
restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem
"APROVADO" se a média for maior ou igual a 5 e "REPROVADO" se a média for menor
que 5.
15. Um usuário deseja um algoritmo onde possa escolher que tipo de média deseja calcular a
partir de 3 notas. Faça um algoritmo que leia as notas, a opção de média escolhida pelo
usuário, calcule e mostre a média.
OPÇÃO TIPO DE M ÉDIA
1 aritmética
2 ponderada (3,3,4
3 harmônica
16. João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o
rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o
estabelecido pelo regulamento de pesca do estado de São Paulo (50 quilos) deve pagar um
multa de R$ 4,00 por quilo excedente. João precisa que você faça um diagrama de blocos
que leia a variável P (peso de peixes) e verifique se há excesso. Se houver, gravar na variável
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 66/115
E (Excesso) e na variável M o valor da multa que João deverá pagar. Caso contrário mostrar
tais variáveis com o conteúdo ZERO.
17. Elabore um diagrama de bloco que leia as variáveis C e N, respectivamente código e número
de horas trabalhadas de um operário. E calcule o salário sabendo-se que ele ganha R$ 10,00
por hora. Quando o número de horas exceder a 50 calcule o excesso de pagamento
armazenando-o na variável E, caso contrário zerar tal variável. A hora excedente de trabalho
vale R$ 20,00. No final do processamento imprimir o salário total e o salário excedente.
18. Desenvolva um diagrama que: leia 4 (quatro) números; calcule o quadrado de cada um; se o
valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize; caso contrário,
imprima os valores lidos e seus respectivos quadrados.
19. A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3 grupos de
indústrias que são altamente poluentes do meio ambiente. O índice de poluição aceitável
varia de 0,05 até 0,25. Se o índice sobe para 0,3 as indústrias do 1º grupo são intimadas a
suspenderem suas atividades, se o índice crescer para 0,4 as industrias do 1º e 2º grupo são
intimadas a suspenderem suas atividades, se o índice atingir 0,5 todos os grupos devem ser
notificados a paralisarem suas atividades. Faça um diagrama de bloco que leia o índice de
poluição medido e emita a notificação adequada aos diferentes grupos de empresas.
20. Construa um algoritmo que leia 3 valores inteiros e positivos, encontre o maior valor,
encontre o menor valor, calcule a média dos números lidos e mostre os resultados.
21. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que
calcule seu peso ideal, utilizando as seguintes fórmulas: Para homens: (72.7*h) – 58; Para
mulheres: (62.1*h) - 44.7 (h = altura).
22. Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o
peso e a altura da pessoa. O grau de obesidade é determinado pelo índice da massa corpórea
(Massa = Peso / Altura2 ) através da tabela abaixo:
MASSA CORPÓREA GRAU DE OBESIDADE
< 26 Normal
≥ 26 e < 30 Obeso
≥ 30 Obeso Mórbido
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 67/115
23. Faça um algoritmo que, dado as três notas de um aluno, determine e exiba a sua média final e
o seu conceito, sabendo-se que: a média final é calculada pela média aritmética das 3 notas; o
conceito é determinado de com base na tabela abaixo:
MÉDIA
FINAL
CONCEITO
≥ 8,0 A
≥ 5,0 e < 8,0 B
< 5,0 C
24. O Botafogo Futebol Clube deseja aumentar o salário de seus jogadores. O reajuste deve
obedecer a seguinte tabela:
SALÁRIO ATUAL (R$) AUMENTO
0,00 a 1.000,00 20%
1.000,01 a 5.000,00 10%
acima de 5.000,00 0%
Escrever um algoritmo que leia o nome e o salário atual de um jogador, e exiba o
nome, o salário atual e o salário reajustado.
25. Faça um algoritmo para calcular a conta final de um hóspede de um hotel fictício, contendo:
o nome do hóspede, o tipo do apartamento, o número de diárias utilizadas, o valor unitário da
diária, o valor total das diárias, o valor do consumo interno, o subtotal, o valor da taxa de
serviço e o total geral. Considere que:
a) Devem ser lidos o nome do hóspede, o tipo do apartamento utilizado (A, B, C ou D), o
número de diárias utilizadas pelo hóspede e o valor do consumo interno do hóspede;
b) O valor da diária é determinado pela seguinte tabela:
TIPO DO
APTO.
VALOR DA DIÁRIA (R$)
A 150,00
B 100,00
C 75,00
D 50,00
c) O valor total das diárias é calculado pela multiplicação do número de diárias utilizadas pelo
valor da diária;
d) O subtotal é calculado pela soma do valor total das diárias e o valor do consumo interno;
e) O valor da taxa de serviço equivale a 10% do subtotal;
f) A total geral resulta da soma do subtotal com a taxa de serviço.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 68/115
2.3.3. Estrutura Repetição
Também conhecida como LOOPING, esta estrutura permite repetir um grupo de ações
até que uma dada condição seja satisfeita.
2.3.3.1. Sintaxe
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura de repetição
com teste no início (ENQUANTO), com teste no final (REPITA) e laços contados (PARA).
Com teste no início
Na estrutura de repetição ENQUANTO uma seqüência de comandos é executada quando
o teste lógico resulta em verdadeiro e quando o teste lógico resulta em falso a seqüência de
comandos é encerrada.
Essa estrutura é usada quando não se sabe o número de vezes que deseja repetir um
determinado trecho de um programa. Embora ela também possa ser usada quando este número é
conhecido. Veja a sintaxe:
Pseudocódigo Fluxograma Em Pascal
Enquanto <condição> faça
Comando_1;
Comando_2;
Comando_n;
Fim_enquanto;
While <condição> do
Begin
Comando_1;
Comando_2;
Comando_n;
End;
Com variável de controle
A estrutura de repetição PARA (com variável de controle) é usada quando o número de vezes
que deseja repetir um trecho do programa for conhecido ou quando puder entrar com ele durante sua
execução. Veja a sintaxe
<Condição>
Comando 1
Comando 2
Comando n
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 69/115
Pseudocódigo Fluxograma
para <variável> de <inicio> até <fim> com
incremento de <passo> faça
Comando_1;
Comando_2;
Comando_n;
Fim_para;
Em Pascal
FOR <variável> := <inicio> TO <fim> DO
Begin
Comando_1;
Comando_2;
Comando_n;
End;
Com teste no fim (Repita Até que)
Na estrutura de repetição com teste no Fim a repetição do trecho do programa será
executado para a condição falsa, caso a condição passe a ser verdadeira, o repetição é finalizada.
Nesta estrutura, o trecho do programa é executado pelo menos uma vez.
<variável>� <inicial> ;
<fim>; <passo>
Comando_1
Comando 2
Comando n
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 70/115
Pseudocódigo Fluxograma
repita
Comando_1;
Comando_2;Comando_n;
Até que <condição>;
Em Pascal
REPEAT
Comando_1;
Comando_2;
Comando_n;
UNTIL <condição>;
2.3.3.2. Exemplos
Veja alguns exemplos de algoritmos elaborados com e sem a estrutura de repetição. O
primeiro exemplo (ALG31) mostra um algoritmo elaborado para ler nome e telefone.
O segundo exemplo (ALG32) refere-se a um algoritmo que calcula a média global de 10
alunos de uma determinada sala de aula. Veja como é a resolução com e sem a utilização da
estrutura de repetição.
O terceiro exemplo (ALG33) traz o algoritmo que imprime os números de 1 a 9 com
incremento de 1. Neste exemplo foram empregadas as três estruturas de repetição para
comparação das similaridades e diferenças.
Os dois primeiros exemplos (ALG31 e ALG32) demonstram a importância da estrutura
de repetição e o terceiro (ALG33) mostra as diferenças e semelhanças entre as estruturas de
<Condição>
Comando_1
Comando_2
Comando_n
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 71/115
repetição. Preste muita atenção nas diferenças. Por exemplo, na estrutura PARA não necessário
inicializar o contador (variável N) fora do laço de repetição nem incrementar N dentro deste laço
como ocorre com as estruturas ENQUANTO e REPITA. Na estrutura de repetição REPITA a
condição é o inverso do ENQUANTO. O REPITA só continua se a condição for falsa e o
ENQUANTO só continua se a condição for verdadeira. Além disso, no REPITA o bloco de
comandos dentro do laço de repetição é executado pelo menos uma vez antes de testar a
condição.
No segundo exemplo é utilizada uma variável para compor uma condição de parada para
o looping, isto é, para as repetições. Ela é conhecida por FLAG.
A
lg
or
it
m
os
p
ar
a
E
st
ru
tu
ra
s
S
im
pl
es
Ú
lt
im
a
at
ua
li
za
çã
o:
2
2/
4/
20
08
;
11
:5
1:
05
72
/1
15
A
L
G
31
–
A
lg
or
it
m
o
qu
e
en
tr
a
no
m
e
e
te
le
fo
ne
c
om
e
s
em
a
u
ti
li
za
çã
o
de
e
st
ru
tu
ra
d
e
re
pe
ti
çã
o
E
st
ru
tu
ra
R
ep
et
iç
ão
P
se
ud
oc
ód
ig
o
Fl
ux
og
ra
m
a
P
A
S
C
A
L
SE
M
A
lg
or
it
m
o
en
de
re
co
;
V
ar
N
om
e,
te
le
fo
ne
:
L
it
er
al
;
In
ic
io
L
ei
a(
no
m
e)
;
L
ei
a(
te
le
fo
ne
);
Fi
m
_a
lg
or
it
m
o.
P
ro
gr
am
e
nd
er
ec
o;
U
se
s
W
in
C
rt
;
V
ar
N
om
e,
te
le
fo
ne
: S
tr
in
g[
20
];
In
ic
io
W
ri
te
ln
(
‘D
ig
it
e
N
om
e:
’)
;
R
ea
dl
n
(
no
m
e)
;
W
ri
te
ln
(
‘D
ig
it
e
T
el
ef
on
e:
’)
;
R
ea
dl
n
(t
el
ef
on
e)
;
E
nd
.
C
O
M
A
lg
or
it
m
o
en
de
re
co
;
V
ar
N
om
e,
te
le
fo
ne
, r
es
p
: L
it
er
al
;
In
ic
io
R
es
p
�
’S
IM
’;
E
n
q
u
an
to
(
re
sp
=
’S
IM
’)
f
aç
a
L
ei
a(
no
m
e)
;
L
ei
a(
te
le
fo
ne
);
E
sc
re
va
(‘
D
es
ej
a
co
nt
in
ua
r?
(S
IM
/N
Ã
O
)’
);
L
ei
a(
re
sp
);
F
im
_e
n
qu
an
to
;
Fi
m
_a
lg
or
it
m
o.
P
ro
gr
am
e
nd
er
ec
o;
U
se
s
W
in
C
rt
;
V
ar
N
om
e,
te
le
fo
ne
: S
tr
in
g[
20
];
re
sp
:
S
tr
in
g[
3]
;
In
ic
io
R
es
p
:=
’S
IM
’;
W
h
il
e
(r
es
p=
’S
IM
’)
d
o
be
gi
n
W
ri
te
ln
(
‘D
ig
it
e
N
om
e:
’)
;
R
ea
dl
n
(
no
m
e)
;
W
ri
te
ln
(
‘D
ig
it
e
T
el
ef
on
e:
’)
;
R
ea
dl
n
(t
el
ef
on
e)
;
W
ri
te
ln
(
‘D
es
ej
a
co
nt
in
ua
r?
(
S
IM
/N
Ã
O
)’
);
R
ea
d
(r
es
p)
;
E
n
d
;
E
nd
.
in
ic
io
no
m
e
te
le
fo
ne
fi
m
in
ic
io
fi
m
re
sp
�
’S
IM
’
(r
es
p=
’S
IM
’
no
m
e
te
le
fo
ne
re
sp
‘D
es
ej
a
co
nt
in
ua
r?
(
S
IM
/N
Ã
O
)’
A
lg
or
it
m
os
p
ar
a
E
st
ru
tu
ra
s
S
im
pl
es
Ú
lt
im
a
at
ua
li
za
çã
o:
2
2/
4/
20
08
;
11
:5
1:
05
73
/1
15
A
L
G
32
–
A
lg
or
it
m
o
qu
e
ca
lc
ul
a
a
m
éd
ia
d
e
10
n
ot
as
c
om
e
s
em
a
u
ti
liz
aç
ão
d
e
es
tr
ut
ur
a
de
r
ep
et
iç
ão
E
st
ru
tu
ra
R
ep
et
iç
ão
P
se
ud
oc
ód
ig
o
Fl
ux
og
ra
m
a
P
A
S
C
A
L
S
E
M
A
lg
or
it
m
o
M
ed
ia
;
V
ar
N
1,
N
2,
N
3,
N
4,
N
5,
N
6,
N
7,
N
8,
N
9,
N
10
,
S
:
re
al
;
in
íc
io
l
ei
a
(N
1)
;
L
ei
a
(N
2)
;
L
ei
a
(N
3)
;
L
ei
a
(N
4)
;
L
ei
a
(N
5)
;
L
ei
a
(N
6)
;
L
ei
a
(N
7)
;
L
ei
a
(N
8)
;
L
ei
a
(N
9)
;
L
ei
a
(N
10
);
S
←
N
1+
N
2+
N
3+
N
4+
N
5+
N
6+
N
7+
N
8+
N
9+
N
10
;
M
E
D
IA
←
S
/1
0;
E
sc
re
va
(
M
E
D
IA
);
Fi
m
.
P
ro
gr
am
M
ed
ia
;
U
se
s
W
in
C
rt
;
va
r
N
1,
N
2,
N
3,
N
4,
N
5,
N
6,
N
7,
N
8,
N
9,
N
10
, S
: r
ea
l;
B
eg
in
R
ea
dl
n
(N
1)
;
R
ea
dl
n
(N
2)
;
R
ea
dl
n
(N
3)
;
R
ea
dl
n
(N
4)
;
R
ea
dl
n
(N
5)
;
R
ea
dl
n
(N
6)
;
R
ea
dl
n
(N
7)
;
R
ea
dl
n
(N
8)
;
R
ea
dl
n
(N
9)
;
R
ea
dl
n
(N
10
);
S
:=
N
1+
N
2+
N
3+
N
4+
N
5+
N
6+
N
7+
N
8+
N
9+
N
10
;
M
E
D
IA
:=
S
/1
0;
W
ri
te
ln
(
M
E
D
IA
:5
:2
);
E
nd
.
C
O
M
A
lg
or
it
m
o
M
ed
ia
;
va
r
N
, S
O
M
A
, M
E
D
IA
: r
ea
l;
I:
in
te
ir
o;
in
íc
io
S
O
M
A
�
0
;
p
ar
a
I
←
1
a
té
1
0
fa
ça
le
ia
(
N
)
;
S
O
M
A
←
S
O
M
A
+
N
;
f
im
p
ar
a;
M
E
D
IA
←
S
O
M
A
/1
0;
E
sc
re
va
(
M
E
D
IA
);
F
im
_a
lg
or
it
m
o.
P
ro
gr
am
M
ed
ia
;
U
se
s
W
in
C
rt
;
va
r
N
, S
O
M
A
, M
E
D
IA
: r
ea
l;
I:
I
nt
eg
er
;
B
eg
in
S
O
M
A
:=
0
;
F
or
I
:=
1
T
o
10
D
o
B
eg
in
R
ea
dl
n
(
N
)
;
S
O
M
A
:=
S
O
M
A
+
N
;
E
n
d
;
M
E
D
IA
:=
S
O
M
A
/1
0;
W
ri
te
ln
(
M
E
D
IA
:5
:2
);
E
n
d
.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 74/115
ALG33 – Algoritmo que imprime os números de 1 a 9 utilização as 3 estruturas de repetição
Pseudocódigo Fluxograma Codificação em PASCAL
Algoritmo valores_1;
Var N: Inteiro;
Início
N � 1;
Enquanto (N <=9 ) faça
Escreva (N);
N � N +1;
Fim_enquanto;
Fim_algoritmo.
Program valores_1;
Uses WinCrt;
Var N: Integer;
Begin
N := 1;
While (N <= 9) do
Begin
Writeln (N);
N := N +1;
End;
End.
Algoritmo valores_2;
Var N: Inteiro;
Início
Para N � 1 até 9 com
incremento de 1 faça
Escreva (N);
Fim_Para;
Fim_algoritmo.
Program valores_2a;
Uses WinCrt;
Var N: Integer;
Begin
For N := 1 to 9 do
Begin
Writeln (N);
End;
End.
Ou -----------
Program valores_2b;
Uses WinCrt;
Var N: Integer;
Begin
For N := 1 to 9 do
Writeln (N);
End.
Algoritmo valores_3;
Var N: Inteiro;
Início
N � 1;
Repita
Escreva (N);
N � N +1;
Até que N > 9;
Fim_algoritmo.
Program valores_3;
Uses WinCrt;
Var N: Integer;
Begin
N := 1;
Repeat
Writeln (N);
N := N +1;
Until N > 9;
End.
Algoritmospara Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 75/115
2.3.3.3. Exercícios propostos
1) Elaborar algoritmos para resolver os seguintes problemas:
1.1. Imprimir os N primeiros números pares.
1.2. Determinar e imprimir o maior número em N números diferentes dados.
1.3. Encontrar e imprimir o menor dentre N valores lidos.
1.4. Calcular e imprimir o somatório de N valores lidos.
1.5. Calcular e imprimir a média aritmética de N Valores lidos.
1.6. Ler um número inteiro e positivo e apresentar o seu fatorial (exemplo: o fatorial de 5! =
1*2*3*4*5 = 120).
1.7. Ler dois números inteiros e positivos e apresentar o resultado do primeiro número elevado
ao segundo número (exemplo: 24 = 2*2*2*2 = 16).
1.8. Simular o jogo de adivinhação: o jogador 1 escolhe um número entre 1 e 10; o jogador 2
insere números na tentativa de acertar o número escolhido pelo jogador 1. Quando ele
acertar, o algoritmo deve informar que ele acertou o número escolhido pelo jogador 1 em x
tentativas (quantidade de tentativas do jogador 2).
1.9. Supondo que a população de um país A seja da ordem de 98.000.000 de habitantes, com
uma taxa anual de crescimento de 3,5% e que um país B tenha uma população de
aproximadamente 200.000.000 habitantes com uma taxa anual de crescimento de 1,5%.
Escreva um algoritmo que calcule iterativamente, quantos anos serão necessários para que a
população do país A, ultrapasse ou iguale a população do país B, mantidas as taxas de
crescimento.
1.10. Uma fabrica tem uma linha de produção capaz de produzir 400 peças / dia. Um
funcionário controla a qualidade, cadastrando o número da peça e o seu estado (aprovado ou
reprovado). Criar um algoritmo para cadastrar o controle de qualidade, imprimir os números
das peças reprovadas, e o total de peças aprovadas e reprovadas no final do dia.
1.11. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de
um produto lançado no mercado. Para isso, forneceu o sexo do entrevistado e a resposta (Sim
ou Não). Sabendo-se que foram entrevistadas N pessoas, fazer um algoritmo que calcule e
exiba:
a) O número de pessoas que responderam sim.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 76/115
b) O número de pessoas que responderam não.
c) A porcentagem de pessoas do sexo feminino que responderam sim.
d) A porcentagem de pessoas do sexo masculino que responderam não.
1.12. Em uma fazenda existem N bois. Cada Boi traz preso ao seu pescoço um
cartão contendo seu número de identificação e seu peso. Desenvolva um
algoritmo que imprima o número e o peso do boi mais gordo e mais magro.
1.13. Determinar os valores de y, tal que y = (3+2x+6x²) / (1+9x+16x²) para x variando de 1,0
até 5,0 em intervalos de 0,1 unidades.
1.14. Dizer de N números inteiros, quantos são pares, quantos são impares, quantos são
positivos e quantos são negativos.
1.15. Calcular e imprimir o valor de: n<=30:
1.16. Resolver a série:
n
soma
1
.......
3
1
2
1
1
1
++++=
1.17. Uma empresa decidiu fazer um recrutamento para preencher algumas vagas. Os candidatos
serão cadastrados por computador. Faça um algoritmo para:
i. ler o número do candidato, a idade e o sexo, a experiência profissional
(SIM / NÃO);
ii. mostrar a idade média dos candidatos;
iii. mostrar o número total de candidatos e candidatas;
1.18. O cardápio da Lanchonete Bom Apetite é o seguinte:
Código do LancheEspecificação Preço Unitário(R$)
1. 100 Cachorro quente 1,10
2. 101 Bauru simples 1,30
3. 102 Bauru c/ovo 1,50
4. 103 Hamburger 1,10
5. 104 Cheeseburger 1,30
6. 105 Refrigerante 1,00
Escrever um algoritmo que vá lendo o código do item pedido, a quantidade e vá
calculando o valor total a ser pago pelo pedido. OBSERVAÇÃO: Use uma flag para continuar
no programa.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 77/115
1.19. Na declaração de imposto de renda devem constar os dados: nome do contribuinte, CPF,
renda anual e número de dependentes. Os cálculos são feitos da forma a seguir.
i. Desconto de R$ 110,00 por dependente.
ii. Com base na renda líquida (renda anual menos descontos) é calculada a
alíquota de contribuição de acordo com a tabela:
Renda Líquida Alíquota (%)
Até R$ 900,00 Isento
De R$ 901,00 até R$ 5.000,00 5
De R$ 5.001,00 até R$ 10.000,00 10
Acima de R$ 10.001,00 15
Faça um algoritmo para calcular os valores dos impostos a serem pagos por um número
indeterminado de contribuintes. Não se esqueça que, para facilitar seu trabalho, você deve adotar
um flag.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 78/115
2) Elaborar um algoritmo que calcule o dobro de números inteiros lidos até que um desses
números seja negativo.
Pseudocódigo Fluxograma
Programa dobro;
Var num : Inteiro;
Início
Escreva(‘Digite um numero:’);
Leia(num);
Enquanto (num>0) faça
Escreva(‘dobro: ‘, num*2);
Escreva(‘Digite um numero:’);
Leia(num);
Fim_enquanto;
Fim.
3) Dado o fluxograma abaixo de um algoritmo que calcula e imprimi o somatório de N valores,
faça o pseudocódigo correspondente.
pseudocódigo Fluxograma
inicio
fim
x � 1
soma � 0
Enquanto (x<=N) faça
N
soma
soma � soma + x
x � x + 1
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 79/115
4) Dado o fluxograma abaixo, faça o pseudocódigo.
Pseudocódigo Fluxograma
5) O que o algoritmo do exercício anterior faz, marque a alternativa CORRETA.
( ) Mostra os números inteiros de 30 a 55.
( ) Mostra números menores que 55.
( ) Mostra números reais de 30 a 55.
( ) Mostra os números de 30 a 55 com incremento de 1.
( ) Nenhuma das anteriores
6) Refaça o fluxograma do exercício 1 colocando a estrutura de repetição PARA.
7) Faça o fluxograma correspondente ao pseudocódigo dado abaixo.
Pseudocódigo Fluxograma
Algoritmo agenda;
Var
nome : literal [30];
telefone: literal [11];
resp: literal [1];
Inicio
Resp � ‘S’;
Enquanto (Resp= ‘S’) Faça
Escreva (‘Entre com o nome e o telefone: ‘);
Leia(nome, telefone);
Escreva(‘Deseja continuar? (S/N)’);
Leia (Resp);
Fim_Enquanto;
Fim_algoritmo.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 80/115
8) Indique o pseudocódigo que corresponde ao fluxograma abaixo. Marque a alternativa correta.
( ) Algoritmo Exe5_1;
Var
Num : inteiro;
Início
Escreva (“Digite um número: “);
Leia (Num);
Enquanto Num = 0 faça
Escreva (“Dobro = “, Num * 2);
Escreva (“Digite um número: “);
Leia (Num);
Fim_enquanto;
Fim.
( ) Algoritmo Exe5_2;
Var
Num : inteiro;
Início
Escreva (“Digite um número: “);
Leia (Num);
Enquanto Num > 0 faça
Escreva (“Dobro = “, Num * 2);
Escreva (“Digite um número: “);
Leia (Num);
Fim.
( ) Algoritmo Exe5_3;
Var
Num : inteiro;
Início
Escreva (“Digite um número: “);
Leia (Num);
Enquanto Num > 0 faça
Escreva (“Dobro = “, Num * 2);
Escreva (“Digite um número: “);
Fim_enquanto;
Fim.
( ) Algoritmo Exe5_4;
Var
Num : inteiro;
Início
Escreva (“Digite um número: “);
Leia (Num);
Enquanto Num > 0 faça
Escreva (“Dobro = “, Num * 2);
Escreva (“Digite um número: “);
Leia (Num);
Fim_enquanto;Fim.
9) Refaça o fluxograma do exercício anterior colocando a estrutura de repetição REPITA.
10) Execute o algoritmo do exercício anterior considerando os valores: 2, 5, -3, 0. (Teste de mesa)
11) Dado o fluxograma abaixo conserto os erros no pseudocódigo.
Pseudocódigo Fluxograma
Algoritmo valores;
Var N: Inteiro;
Início
num � 10;
Enquanto (N > 50) faça
Escreva (num);
Fim_enquanto;
Fim_algoritmo.
inicio
fim
N �10
N <= 50
N
N � N + 2
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 81/115
12) O que faz o algoritmo abaixo
Pseudocódigo Codificação em PASCAL
Algoritmo somatorio;
Var
N , Cont , Soma : inteiro;
resp: Literal [1];
início
resp � 'S';
Enquanto resp='S' faca
Limpa_tela;
Escreva ( 'Digite o valor de N...: ' ) ;
Leia ( N ) ;
Cont � 1;
Soma � 0;
Enquanto Cont <= N faça
Soma � Soma + cont ;
Cont � cont +1 ;
Fim_enquanto ;
Escreva ('Soma = 1 + 2 + 3 +.......+',N,' é ...');
Escreva ( 'Soma = ', Soma ) ;
Escreva ('Quer continuar "s" ou "n"? ');
Leia (resp);
Resp � Maiúscula (resp);
Enquanto (resp<> 'S' ) .e. (resp <> 'N') faça
Escreva ('Opção invalida digite "s" ou "n"
!!!!');
Leia (resp);
Resp � maiúscula (resp);
Fim_enquanto;
Fim_enquanto;
Limpa_tela;
Escreva ('Foi um prazer irreverssível programar
com voce!!!!!');
Pressione_uma tecla;
Fecha_janela;
Fim_algoritmo.
Program somatorio;
Uses wincrt;
Var
N , Cont , Soma : integer;
resp: char;
Begin
resp:= 'S';
while resp='S' do
begin
clrscr;
Write ( 'Digite o valor de N...: ' ) ;
Readln ( N ) ;
Cont := 1;
Soma := 0;
While Cont <= N do
Begin
Soma := Soma + cont ;
Cont := cont +1 ;
End;
gotoxy(10,5);writeln('Soma = 1 + 2 + 3 +.......+',N,' é
...');
gotoxy(10,10);Writeln ( 'Soma = ', Soma ) ;
gotoxy(5,20);write('Quer continuar "s" ou "n"? ');
readln(resp);
resp:= upcase(resp);
while (resp<>'S') and (resp<>'N') do
begin
gotoxy(5,22);write ('Opção invalida digite "s" ou
"n" !!!!');
readln(resp);
resp:=upcase(resp);
end;
end;
clrscr;
gotoxy(10,10);Writeln ('Foi um prazer irreverssível
programar com voce!!!!!');
readkey;
donewincrt;
End.
13) O que faz o algoritmo abaixo? Faça o pseudocódigo correspondente.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 82/115
14) Qual é a estrutura de repetição que foi utilizada para construir o fluxograma do exercício
anterior?
( ) ENQUANTO ( ) REPITA ( ) PARA
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 83/115
15) Faça o teste de mesa abaixo com base no fluxograma do exercício 13.
n1 n2 op r resp
2 4 + S
10 5 - S
200 1 a S
1 20 * N
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 84/115
2.4. EXERCÍCIOS PROPOSTOS COMPLEMENTARES
Neste item são propostos exercícios adicionais que complementam o conhecimento
adquirido até o presente momento.
1) Dados os algoritmos abaixo, dizer quais devem ser as saídas.
Algoritmos Saída na tela do microcomputador
programa Um;
inicio
escreva('meu primeiro programa');
fim_programa.
programa Um;
inicio
escreva (‘2+3’);
fim_programa.
programa Dois;
inicio
escreva (5+3);
fim_programa.
programa Três;
var
A, B : inteiro;
inicio
A � 2;
B � 3;
escreva (A+B);
fim_programa.
programa quatro;
A, B : inteiro;
inicio
leia (A);
leia (B);
escreva ('A+B');
fim_programa.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 85/115
2) Coloque Falso (F) ou Verdadeiro (V) para as sentenças abaixo.
( ) Podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão cabo
de uma meta específica.
( ) Para montar um algoritmo não precisamos responder as perguntas: Quais são os dados de
entrada? Qual será o processamento a ser utilizado? Quais serão os dados de saída?
( ) Exemplo de algoritmo: pegar a bala; retirar o papel; chupar a bala; jogar o papel no lixo.
( ) Algoritmos devem ser testados após sua elaboração. Este teste é chamado TESTE DE MESA
e significa seguir as instruções do algoritmo para verificar se está correto ou não.
( ) Algoritmo não é uma seqüência finita de passos que levam a execução de uma tarefa.
( ) Exemplo de algoritmo: receba a nota de cada uma das 4 provas; some todas as notas e divida
o resultado por 4; mostre o resultado da divisão.
( ) Teste de mesa não permite verificar se a lógica de programação está correta.
( ) Lógica de programação é a técnica de encadear pensamentos para atingir um determinado
objetivo ou executar uma dada tarefa.
( ) Na estrutura condicional simples a seqüência de comandos só será executada se a condição
dor verdadeira.
( ) A estrutura condicional permite a escolha do grupo de ações e estruturas a serem executados
quando determinadas condições (expressões lógicas) são ou não satisfeitas.
( ) X � a mod b; neste caso as variáveis devem ser declaradas como sendo do tipo real;
3) Dado o portugol (pseudocódigo) abaixo encontrar os erros que apresenta.
Algoritmo CEx3;
Var X: real;
Início
Se X > 0 então
P � X * X
Senão
P � 1/X
Fim_se
Escreva (P,X);
Fim_algoritmo
4) Complete os exercícios abaixo. Dado o fluxograma faça o pseudocódigo e vice-versa.
Coloque também o enunciado que falta.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 86/115
Enunciado:
Enunciado:
Programa algo_1;
Var data, dia, mes, ano: Inteiro;
Inicio
Escreva(‘Digite uma data no formato ddmmaa:’);
Leia (data);
dia � data div 1000;
mes � data mod 100000 div 100;
ano � data mod 100;
escreva (‘dia: ‘, dia, ‘ mes:’, mês, ‘ ano: ‘, ano);
Fim.
5) Responda as questões abaixo.
a) O que o enunciado de um exercício representa?
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 87/115
b) Qual a diferença entre algoritmo e programa?
c) O que você entende por Estruturas básicas de controle (seqüência, seleção e repetição)?
Dê exemplos dessas estruturas.
d) Já ouviu falar em técnica de programação estruturada?
e) Encontre em algum livro uma definição para lógica de programação?
6) Indique com (V) as afirmativas verdadeiras e com (F) as falsas.
( ) Em pseudocódigo o comando Escreva é usado para entrada de dados.
( )
X � a DIV b; neste exemplo as variáveis devem ser declaradas como sendo do tipo
inteiro;
( )
Podemos pensar em algoritmo como uma receita, uma seqüência de instruções que dão
cabo de uma meta específica.
( )
No algoritmo, para verificar se um número A é par usa-se o comando: Se A MOD 2 = 0
então
( ) Exemplo de algoritmo: pegar a bala; retirar o papel; chupar a bala; jogar o papel no lixo.
7) Indique o tipo da variável a ser declarada (I – inteiro, R – Real, B – Boleano (lógico), L –
Literal) para receber os conteúdos abaixo: (1.0 pt)
( ) verdade
( ) ‘falso’
( ) 8.5
( ) 34
( ) ‘F’
( ) A Div 2
( ) C / 3
( ) ‘R. Antônio de Pádua. 20’
8) Discutir a frase: Os computadores, infelizmente, só fazem aquilo que mandamos, e nãonecessariamente o que desejamos que eles façam.
9) Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e
imprima a idade dessa pessoa.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 88/115
10) Indique a saída do trecho do fluxograma a seguir considerando os seguintes valores:
A = 5 B = 8 C = 12 D = 2
11) Indique a saída do fluxograma a seguir considerando os valores: Sal = 300,00; Sal =
1000,00 e Sal = 0,0 .
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 89/115
12) Faça um algoritmo que receba o código correspondente ao cargo de um funcionário e
imprima seu cargo e o percentual de aumento de salário que este funcionário tem direito de
acordo com a tabela abaixo:
Código Cargo Percentual de aumento
1 Gestor 35%
2 Diretor 30%
3 Secretária 25%
4 Contador 25%
5 Professor 15%
6 Estagiário 10%
7 Pessoal limpeza 10%
.
13) Qual o enunciado que resultou no algoritmo representado pelo fluxograma abaixo?
14) Transcreva para o pseudocódigo o fluxograma do exercício anterior.
15) Teste o algoritmo do exercício anterior. Considere os valores 3, -1 e 0.
n n > 0 n < 0 Saída
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 90/115
16) Dado o pseudocódigo abaixo faça o fluxograma. Trata-se de um algoritmo que lê dois
números e imprime uma mensagem dizendo se são iguais ou diferentes.
Pseudocódigo Fluxograma
Algoritmo CEx16;
Var a,b : inteiro;
Início
Escreva (‘Digite o primeiro número’);
Leia (a);
Escreva (‘Digite o segundo número’);
Leia (b);
Se a = b então
Escreva (‘Iguais’)
Senão
Escreva (‘diferentes’)
Fim_se;
Fim_algoritmo.
17) relacione a coluna da direita com a da esquerda
a)
b)
d)
d)
( ) Se Condição Então
C1;
C2;
Senão
C3;
C4;
Fim_se;
( ) Se Condição então
C1
Senão
C2;
Fim_se;
( ) Se Condição
Então
C1;
C2;
Fim_se;
( )
Se Condição então
C1;
Fim_se;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 91/115
18) Dadas as declarações de variáveis abaixo, monte as tabelas de símbolos correspondentes.
VAR
x,y,z: inteiro
p: lógico;
No:
literal[20]
r, r2: real;
Nome
simbólico
Posição
inicial
Tipo
de dado
19) Converta as expressões aritméticas para uma forma que o computador entenda:
a) )).().(.( CXBAyPX +−−
b) cab ..42 −
c)
Ad
yx
.
−
d)
d
ba −
20) Elabore alguns exercícios englobando o conteúdo da disciplina. Seja criativo. Pode ser:
palavra-cruzada, relacione, falso ou verdadeiro, completar, teste de mesa, etc.
21) Preencha as lacunas com V para as alternativas verdadeiras e F para as falsas.
( ) Laços condições e laços contados podem ser aplicados às três estruturas de repetição
Para, Enquanto e Repita.
( ) A estrutura Escolha pode ser utilizada sempre que o número de opções for maior que
três.
( ) A estrutura Para pode ser utilizada em todas as situações.
( ) Dentro de uma estrutura de repetição é possível utilizar outras estruturas de repetição
ou decisão.
22) Responda as questões abaixo:
a) Quando declaro variáveis do tipo real e do tipo inteiro?
b) Por que o teste de mesa é importante?
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 92/115
c) Identação do código e comentários são importantes? Justifique.
d) Quando o algoritmo solicita a entrada de N números, o contador da estrutura de repetição
deve ser inicializado com zero (0) ou um (1)? Justifique sua resposta.
e) Em qual estrutura de repetição o contador é incrementado automaticamente?
f) O que o enunciado de um exercício representa?
23) Elabore alguns exercícios englobando o conteúdo da disciplina. Seja criativo. Pode ser:
palavra-cruzada; relacione colunas; falso ou verdadeiro; completar a sentença; teste de mesa; e
etc.
24) Dado o pseudocódigo abaixo, encontre 3 erros.
Algoritmo 24Ex;
Var
a, b, c, x1,x2 : real;
Início
Leia (a,c);
Se (a > 0) então
d � b * b – 4 * a * c;
Se (d ≥ 0) então
x1 � -b + raiz (d);
x2 � -b - raiz (d);
escreva (x1, ‘ ’,x2);
Fim_se;
Fim_se;
Fim_algoritmo;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 93/115
25) Dado o fluxograma abaixo, encontre os erros. Refaça o fluxograma ao lado.
26) Dado o fluxograma abaixo, faça o teste de mesa preenchendo a tabela de valores para N = 3.
Fluxograma Teste de mesa
N S P I I <= N
3
-----
-----
-----
-----
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 94/115
27) Refazer o fluxograma do exercício anterior empregando a estrutura de repetição com teste
lógico no final do looping (REPITA).
28) O fluxograma do exercício 25 pode ter sido elaborado a partir de qual enunciado?
29) Num frigorífico existem 90 bois. Eles têm prendido ao pescoço um cartão contendo a
identificação e o peso. Fazer um programa que escreva o número e o peso do boi mais gordo e
do boi mais magro.
30) Após a execução do programa codificado a partir do algoritmo abaixo qual (is) valor(es)
serão impressos se B = 10.
Algoritmo Ex30;
Var
B, A , X : Inteiro;
Início
Leia ( B);
A� 1;
X � 0;
Enquanto ( A < B ) faça
X � X+ I;
A � A + 2;
Fim_enquanto;
Escreva ( X );
Fim_algoritmo. X =
31) Dado o fluxograma abaixo, faça seu pseudocódigo.
Fluxograma Pseudocódigo
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 95/115
32) Elabore um programa para determinar o valor de K, que dado pela série abaixo:
100
50
8
4
6
3
4
2
2
1
+++++= LK
33) Dado o algoritmo abaixo, qual(is) valor(es) devem ser exibidos se o valor de entrada for A=
4 e X= 12, 15, 17 e 6
Algoritmo Ex33; A I P X
Var
A, I : Inteiro;
P, X: Real;
Início
Leia ( A ) ;
I � 0 ;
P � 0 ;
Repita
Leia ( X );
P � P – X ;
I � I + 1 ;
Até que ( I = A );
Escreva ( P );
Fim_Algoritmo.
34) Troque a estrutura de repetição PARA do código abaixo para a estrutura de repetição
ENQUANTO.
Para i de 1 até 5 faça ___________________________
Leia (X); ___________________________
S � X*X; ___________________________
Escreva (S); __________________________
Fim_para; ____________________________
35) O que faz o algoritmo abaixo? Faça o teste de mesa utilizando a tabela abaixo.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 96/115
J peso idade pesoM idadeM
1 76 18
2 65 21
3 68 23
4 73 19
36) Quais as estruturas de repetição utilizadas no exercício anterior?
37) Faça o pseudocódigo correspondente ao fluxograma do exercício 34.
38) Elaborar um algoritmo que efetue a leitura sucessiva de valores numéricos e apresentar no
final a soma de todos os valores lidos, a média e a quantidade de valores lidos. O programa
deverá fazer as leituras dos valores enquanto o usuário estiver fornecendo valores positivos, ou
inicio
fim
NE, NJ
somaPT � 0
somaIT � 0i � 1; NE; 1
somaP � 0
somaI � 0
cont � 1
cont <= NJ
Idade,peso
somaP � somaP + peso
somaI � somaI + idade
cont � cont + 1
pesoM � somaP/NJ
idadeM � somaI/NJ
somaPT� somaPT + somaP
somaIT� somaIT + somaI
QJ � NJ*NE;
pesoMT � somaPT / QJ
idadeMT � somaIT / QJ
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 97/115
seja, o programa deverá parar quando o usuário fornecer um valor negativo (menor ou igual a
zero).
39) Faça um algoritmo que receba como entrada o nome, a idade e a altura de várias pessoas.
Como saída o algoritmo deve imprimir os nomes das pessoas com mais de 40 anos. Para encerrar
a entrada de dados, o usuário deve digitar uma idade menor ou igual a zero.
40) Qual o enunciado para o pseudocódigo abaixo?
Algoritmo MenorValor;
Var A, B, C,M: real;
início
Leia ( A,B,C );
Se (A < B) .e. (A < C) então
M � A
Senão
Se (B < C) então
M � B
Senão
M � C;
Fim_se;
Fim_se;
Escreva (M);
Fim_algoritmo.
41) Acrescente a estrutura de repetição REPITA ao fluxograma abaixo. A repetição somente
terminará quando n = 999.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 98/115
42) Transcreva para o pseudocódigo o fluxograma do exercício anterior acrescentando a
estrutura de repetição ENQUANTO.
43) Dado o pseudocódigo abaixo faça o fluxograma. Trata-se de um algoritmo que lê dois
números e imprime uma mensagem dizendo se são iguais ou diferentes n vezes.
Algoritmo Ex43;
Var a,b : inteiro;
Resp : literal [1];
Início
Resp � ‘S’;
Enquanto Resp = ‘S’ faça
Escreva (‘Digite o primeiro número’);
Leia (a);
Escreva (‘Digite o segundo número’);
Leia (b);
Se a = b então
Escreva (‘Iguais’)
Senão
Escreva (‘diferentes’)
Fim_se;
Repita
Escreva (‘Outra verificação ? (S/N)’);
Leia (Resp);
Até (Resp = ‘S’) .ou. (resp = ‘N’);
Fim_enquanto;
Fim_algoritmo;
44) Indique com (V) as afirmativas verdadeiras e com (F) as falsas.
( ) O enunciado de um exercício não representa o problema a ser solucionado.
( )
Variável é uma parte da memória cujo conteúdo (valor) pode ser alterado durante a
execução do programa.
( )
Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de
uma tarefa. Podemos pensar em algoritmo como uma receita, uma seqüência de
instruções que dão cabo de uma meta específica. Como exemplos de algoritmos
podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e
subtração) de números reais decimais. Outros exemplos seriam os manuais de
aparelhos eletrônicos, como um videocassete, que explicam passo-a-passo como, por
exemplo, gravar um evento.
( )
No algoritmo as tarefas podem ser redundantes e subjetivas na sua definição, ou seja,
não devem ser claras e precisas.
( )
A lógica de programação é necessária para pessoas que desejam trabalhar com
desenvolvimento de sistemas e programas, ela permite definir a seqüência lógica para o
desenvolvimento. É a técnica de encadear pensamentos para atingir determinado
objetivo ou permitem executar uma dada tarefa.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 99/115
( )
Embora seja possível alterar o valor armazenado na memória (na variável), é possível
armazenar só um valor de cada vez.
( )
A variável é composta de dois elementos básicos: a) conteúdo – valor atual da variável
e b) identificador – nome dado à variável.
( ) Os dados necessários à resolução do problema são entrados apenas via teclado.
( )
C � A+B (O valor que está em C é somado ao valor em B, e o resultado é armazenado
na variável A.)
( )
TESTE DE MESA é utilizado para verificar se instruções do algoritmo estão ou não
corretas.
45) Converta as estruturas de repetição dos dois trechos de algoritmo abaixo. Ou seja, você
deverá acrescentar/retirar/modificar todas as linhas que sejam necessárias para fazer estas
conversões.
a) converta para a forma ENQUANTO/FAÇA
cont � 0;
Repita
X � Cont * 3;
Cont := Cont + 1;
Até (Cont > 10);
b) converta para a forma PARA
i � 1; y � 0; A � 1;
Enquanto (i <= 100) faça
y � y + i/A;
A � A * 2;
i � i + 1;
Fim_Enquanto;
c) converta para a forma REPITA/ATÉ
i � 0;
Enquanto (i < 30) faça
y � i + 5 ;
i := i + 1;
Fim_enquanto;
46) Faça o teste de mesa completo para o diagrama de blocos abaixo considerando N=3, X = (2,
-1 e 4) e Y = (3, 2 e -4)
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 100/115
47) Dado o pseudocódigo abaixo, complete o código.
Programa FATORIAL_D;
Var
Cont, ___, N : inteiro;
Resp: _________;
Inicio
Resp�’S’;
_________ (Resp = ’S’) faça
Fat� 1;
Escreva (‘Fatorial de que número:’);
Leia (____);
Para cont � _____ ate N com incremento de 1
faça
Fat �Fat * cont;
Fim_para;
Escreva (‘Fatorial de ‘, N , ‘ é igual a‘, _____);
Escreva (‘Deseja continuar? (S/N’);
Leia (Resp);
Fim_enquanto;
Fim_programa;
Programa POTENCIA;
Var
i, Pot, X,Y : _________;
R: caractere;
Inicio
R �’S’;
REPITA
Escreva (‘Base:’);
____________
Pot � 1;
Escreva (‘Expoente:’);
Leia (Y);
Para i � 1 ate _____ com incremento de ___ faça
Pot � ____* X;
Fim_para;
Escreva ( X , ‘ elevado a ‘, Y, ‘ = ‘, Pot);
Escreva (‘Continua? (S/N’));
Leia (R);
ATÉ (____ ‘N’);
Fim_programa;
48) Refaça o algoritmo abaixo de tal forma que o valor final seja digitado pelo usuário.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 101/115
com valor final especificado como 10 com valor final digitado pelo usuário
Algoritmo Media_V1;
var
N, SOMA, MEDIA: real;
I: inteiro;
início
SOMA � 0;
para I ← 1 até 10 faça
leia( N) ;
SOMA ← SOMA + N;
fim para;
MEDIA ← SOMA/10;
escreva(MEDIA);
fim.
49) Dados os identificadores abaixo, assinale somente os que são aceitos nas linguagens formais.
( ) VALOR ( ) SALÁRIO-LÍQUIDO ( ) B248 ( ) Nota_do_aluno
( ) X2 ( ) NOTA*DO*ALUNO ( ) A1B2C3 ( ) ‘N23’
( ) 3 x 4 ( ) MARIA ( ) KM/H ( ) Cad Clientes
( ) XYZ ( ) AH! ( ) SALA125 ( ) NomeDoCliente
( ) ‘NOTA’ ( ) NOME _DA_EMPRESA ( ) NoTa ( ) 3º_Ex
50) A biblioteca de uma universidade deseja fazer um algoritmo que leia o nome do livro que
será emprestado, o tipo de usuário (professor ou aluno), considerando que o professor tem dez
dias para devolver o livro e o aluno somente três dias, no final imprimir um recibo constando o
nome do livro, tipo de usuário e total de dias para devolução.
51) Elabore um algoritmo que dado o código do funcionário, e numero de horas trabalhadas,
calcule seu salário normal e salário extra, sabendo que ele ganha R$15,00 por hora normal e R$
30,00 por hora extra e que quando sua jornada for maior que 50 horas as horas excedentes serão
consideradas horas extras, no final imprimir o código do funcionário, seu salário normal e seu
salário extra.
52) Faça o pseudocódigo do fluxograma abaixo.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 102/115
53) Substitua a estrutura de repetição do exercício anterior pelo ENQUANTO. Reescreva
somente referente a repetição.
54) Dado o pseudocódigoabaixo, faça o teste de mesa considerando: A = 3, 2 e 1; B = 4, 3 e 0.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 103/115
Algoritmo Ex54;
Var Cont: inteiro;
A, B, S: real;
Inicio
Cont�1;
Repita
Leia (A, B);
S � A+B;
Escreva (S);
Cont � Cont + 1;
Até (Cont > 3);
Fim_algoritmo.
Teste de mesa
Cont A B S
55) Preencha as lacunas com V para as alternativas verdadeiras e F para as falsas.
Na estrutura de repetição PARA o contador deve ser declarado como inteiro.
ENQUANTO é uma estrutura de repetição com teste no final, e uma seqüência de
comandos só é executada quando o teste lógico resulta em verdadeiro.
Usa-se PARA normalmente quando o numero de repetições é previamente conhecido.
A estrutura CASO/ESCOLHA pode ser utilizada sempre que o número de opções for maior
que três.
Deve-se criar uma condição para executar comandos nas estruturas de repetição
ENQUANTO ou REPITA.
Na estrutura CASO/ESCOLHA a condição testa a igualdade entre duas variáveis.
Dentro de uma estrutura de repetição é possível utilizar outras estruturas de repetição e/ou
de decisão.
A estrutura condicional SE permite a escolha de uma seqüência de comandos caso uma
determinada condição (expressão lógica) é ou não verdadeira.
Na estrutura de repetição ENQUANTO o trecho de comandos é executado pelo menos uma
vez antes de testar a condição.
Na estrutura de repetição REPITA o trecho de comandos será executado para a condição
falsa.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 104/115
56) Complete o algoritmo abaixo.
Algoritmo Ex56;
Var i:____________;
Início
i � ______;
Enquanto (i ___15) faça
Escreva (i);
i � i - 0,5;
Fim_enquanto;
Fim_programa.
57) Transcreva o fluxograma abaixo para o pseudocódigo.
58) Dado o fluxograma acima, acrescente uma estrutura de repetição para seja executada a
verificação de idade para várias pessoas.
inicio
fim
‘Digite a idade’
idade
Idade<18
‘Menor de
idade’
‘Maior de
65 anos’
‘Maior de
idade’
idade<65
F
F
V
V
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 105/115
59) Refaça o fluxograma do exercício anterior substituindo a estrutura condicional pela estrutura
ESCOLHA/CASO.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 106/115
2.5. RESUMO
Fluxograma Pseudocódigo Pascal
Algoritmo NomeProg;
Variáveis
V1,V2: Tipo_de_dado;
Inicio
Program NomeProg;
Var
V1,V2:Tipo_de_dado;
Begin
Program Exemplo1;
Var
X, Y : real;
Begin
Fim End.
Leia ( X ) ; Read (X) ou Readln (X);
Write (‘Informe X: ’);
Readln (X);
Y� X + 2; Y:= X + 2;
ou
Escreva ( Y ) Write (Y) ou Writeln (Y) Writeln (‘O valor de Y é:’, Y);
Se Condição então
C1;
Fim_se;
Obs: C1 é igual a
Comando1
If Condição Then
C1;
Obs: O ponto e vírgula
indica o Fim_Se
If X > 0 then
Y := X * X;
Se Condição então
C1
Senão
C2;
Fim_se;
If Condição Then
C1
Else
C2;
Obs.: Antes de Else não
tem ponto e virgula.
If X > 0 then
Y:= X * X
Else
Y:= X – 4;
Se Condição Então
C1;
C2;
Fim_se;
If Condição Then
Begin
C1;
C2;
End;
Obs.: Quando tem mais
de um comando na
estrutura, ou seja, um
bloco de comandos, é
obrigatório o uso de
Begin e End para indicar
começo e fim do bloco de
comandos.
If X > 0 then
Begin
Y:= X * X;
X:= X – 4;
End;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 107/115
Fluxograma Pseudocódigo Pascal
Se Condição Então
C1;
C2;
Senão
C3;
C4;
Fim_se;
If Condição Then
Begin
C1;
C2;
End
Else
Begin
C3;
C4;
End;
Write ( ‘Informe X: ’ );
Readln ( X );
If X > 0 then
Begin
Y:= X * X;
X:= Y – 4 * Y;
End
Else
Begin
Y:= X * X*3;
X:= Y * (X– 4);
End;
para <variável> de
<inicio> até <fim> com
incremento de <passo>
faça
Comando_1;
Comando_2;
Comando_n;
Fim_para;
For <variável> :=
<inicio> To <fim>
Do begin
Comando_1;
Comando_2;
Comando_n;
End;;
No Pascal o contador é
incrementado
automaticamente de Vi a Vf
com passo unitário. Contagem
regressiva ocorre trocando-se
Vi e Vf de lugar e substituindo
TO por DOWNTO.
Write ( ‘Informe A: ’ );
Readln (A);
For I:= 1 to A do
Begin
Write (‘Informe X: ’);
Readln ( X );
P:= X * X;
K:= X – 4 * P;
y:= X * X*3;
Z:= X * (X– 4);
End;
Enquanto <condição>
faça
Comando 1;
Comando 2;
Comando n;
Fim_enquanto;
Obs.: Esta estrutura repete os
camandos enquanto a condição for
verdadeira. O contador deve ser
incrementado dentro da estrutura
de repetição.
While <condição> Do
Begin
Comando 1;
Comando 2;
Comando n;
End;
Write ( ‘Informe A: ’);
Readln (A);
I := 0;
While I < A Do
Begin
Write (‘Informe X: ’);
Readln ( X );
P:= X * X;
K:= X – 4 * P;
Y:= X * X*3;
I := I + 1;
End;
Repita
Comando_1;
Comando_2;
Comando_n;
Até que <condição>;
Obs.: Esta estrutura repete os
comandos até que a condição seja
verdadeira. A diferença entre esta
estrutura e a anterior é que esta
executará os comandos pelo
menos uma vez, enquanto a outra
pode não executar nenhuma vez
os comandos.
Repeat
Comando_1;
Comando_2;
Comando_n;
Until condição;
Write ( ‘Informe A: ’ );
Readln (A);
I := 0;
Repeat
Write ( ‘Informe X: ’ );
Readln ( X );
P:= X * X;
K:= X – 4 * P;
Y:= X * X*3;
Z:= X * (X– 4);
I := I + 1;
Until I > A;
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 108/115
Fluxograma Pseudocódigo Pascal
Escolha (Variável)
Caso (valor_1) : Comando_1;
Caso (valor_2) : Comando_2;
Caso (valor_3) : Comando_3;
Fim_escolha;
Ou desta outra forma:
Caso <Variável>
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
<valor_3> : <Comando_3>;
Fim_caso;
Case Variável of
Valor_1: Comando_1;
Valor_2: Comando_2;
Valor_3: Comando_3;
End;
Writeln (‘Digite número:’);
Readln (Num);
Case Num of
1: Writeln (‘Um’);
2: writeln (‘Dois’);
3: writeln (‘Três’);
End;
Escolha (Variável)
Caso (valor_1) : Comando1;
Caso (valor_2) : Comando2;
Senão
Comando3;
Fim_escolha;
Ou desta outra forma:
Caso <Variável>
<valor_1> : <Comando1>;
<valor_2> : <Comando2>;
Senão
<Comando3>;
Fim_caso;
Case Variável of
Valor_1: Comando_1;
Valor_2: Comando_2;
Else
Valor_3: Comando_3;
End;
Writeln (‘Digite número:’);
Readln (Num);
Case Num of
1: Writeln (‘Um’);
2: writeln (‘Dois’);
Else
writeln (‘Três’);
End;
Algoritmos para Estruturas SimplesÚltima atualização: 22/4/2008; 11:51:05 109/115
Operador Operação Exemplo Classificação
���� Atribuição A � 7 Atribuição
+ Adição 2 + 5 = 7
- Subtração 20 – 10 = 10
* Multiplicação 3 * 5 = 15
/
Divisão (onde o resultado será um
número real)
5 / 2 = 2,5
DIV
Divisão (onde o resultado será um
número inteiro)
10 div 2 = 5
7 div 2 = 3
MOD Resto de uma divisão 7 mod 2 = 1
** ou exp(a,
b)
Exponenciação 5 ** 2 ou exp(5, 2)
Sqrt (x) Raiz quadrada Sqrt(5)
Exp(ln(x)*n) Exponenciação xn Exp(ln(5)*3)
Aritmético
E (And) Conjunção (as duas ao mesmo tempo )
(Media > 5) .E. (Freq >
75)
Ou (Or) Disjunção Inclusiva
(Flag = .V.) .Ou. (Cont
> 50)
Não (Not) Negação Não (Sei_nada)
Ou-X (Xor) Ou ‘Exclusivo’
(Sal < 500) Ou-X
(N_dep > 2)
Lógico
= Igualdade Nome = ‘João da Silva’
≠≠≠≠ ou <> Diferente Saldo ≠ 100,00
> Maior que Salário > 3000,00
Idade > 18
≥≥≥≥ ou >= Maior ou igual que Média ≥ 5,0
< Menor que Renda < 10000
≤≤≤≤ ou <= Menor ou igual que Aluguel ≤ 400
Relacional
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lógicos,
onde P e Q são variáveis do tipo lógico.
P Q P.e. Q P .ou. Q P .ou-X. Q Não (P .e. Q) Não (P .ou. Q) Não (P .ou-X. Q)
F F F F F V V V
F V F V V V F F
V F F V V V F F
V V V V F F F V
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 110/115
3. RESPOSTAS
Procure as respostas para as questões formuladas no arquivo de respostas.
<<EM CONSTRUÇÃO, estará disponível antes da prova com certeza>>
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 111/115
REFERÊNCIAS BIBLIOGRÁFICAS
MANZANO, J.A.N.G., OLIVEIRA, J.F., Algoritmos – Estudo Dirigido, Coleção P.D., Editora
Érica, São Paulo, 1997.
MANZANO, J.A.N.G., OLIVEIRA, J.F., Algoritmos – Lógica para desenvolvimento de
Programação de Computadores, Editora Érica, 15a Ed., São Paulo, 2004.
FARRER, H, BECKER, C.G., FARIA, E.C., Algoritmos Estruturados, Editora LTC, 3a Ed.,
1999.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 112/115
ANEXOS
A.1. Como ser reprovado em Algoritmos e/ou Laboratório de
Programação
Por João Batista (oliveira @ inf. pucrs.br) e Marcelo (flash @ inf. pucrs.br).
http://www.inf.pucrs.br/~flash/manual/
Siga pelo menos uma das instruções abaixo e sua reprovação estará praticamente garantida nas
disciplinas Algoritmos e Técnicas de programação! A reprovação ocorrerá facilmente e com
tranqüilidade!
1. Baixe todas as apostilas da disciplina, e depois carregue na pasta o tempo todo, pois elas
criam um campo magnético onde você aprende por osmose. NÃO LEIA nenhuma delas, pois
isso desfaz imediatamente o campo e você não vai aprender nada!
2. Quando fizer trabalho em grupo, pendure-se em um grupo qualquer e não levante
um dedo pra fazer o trabalho. Lembre-se de que mais tarde você vai ter de fazer
prova, e não deve estar esgotado de tanto pensar em algoritmos!
3. Não entre nunca na biblioteca, nem pra devolver livro dos outros. Você pode achar algo
interessante pra ler, e isso arruinaria o seu final de semana.
4. O laboratório de programação deve ser evitado a todo o custo! Além do desgastante
contato direto com o computador, você ainda corre o risco de aprender a programar de
verdade, portanto proteja-se!
5. Listas de exercícios são para os incompetentes, por isso você pode
ignorá-las. Dê risada quando encontrar alguém fazendo.
6. Use a aula pra colocar a conversa em dia, afinal você nunca sabe quando vai ver seus amigos outra
vez.
6. Se você for menino, não anote nada e copie o caderno de uma guria. Se você for guria, não
anote nada e copie de outra guria. Afinal, para ir bem nas provas basta decorar a matéria!
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 113/115
8. Apostilas não são para ler, apenas colocar embaixo do travesseiro já produz um
enorme efeito mental. Mais que isso é exagero...
9. Entregar qualquer coisa com uma capinha legal e espaçamento duplo é certeza de boa
nota. Junte suas páginas preferidas da Internet e não esqueça de usar um clips colorido.
Afinal, na Internet sempre tem o trabalho que você precisa, e o professor não vai nem
olhar mesmo...
10. Só os incompetentes estudam muitos dias antes da prova. Os feras de verdade nem
estudam, e evitam ficar com olheiras.
11. Se recuse a ler qualquer coisa que esteja escrita em inglês! Afinal, você só vê filme
estrangeiro se tiver legenda, e com livros deveria ser a mesma coisa... Até mesmo porque tudo
que você precisa pode ser encontrado nos livros em português.
12. Lembre-se sempre da
poesia:
Se der sol vá pro shopping,
Se chover fique na cama,
Ou então vá para o bar,
Não tem jeito de passar.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 114/115
A.2. Sobre os autores
- Marcia A. S. Bissaco
Interesses:
Processamento de Imagens Médicas;
Controle de Qualidade de Sistemas de Imagens;
Informática Aplicada à Saúde;
Modelagem e Simulação.
Informática na Educação
Formação Acadêmica:
Tecnologia em Processamento de Dados
UNESP - Universidade Estadual Paulista
Bauru - SP – Brasil
Período: 1991 – 1993
Mestrado em Engenharia Elétrica
Universidade de São Paulo – USP
Escola de Engenharia de São Carlos - Depto. de Engenharia Elétrica
São Carlos – SP – Brasil
Trabalho: "Simulação Computacional da Nitidez de Imagens Radiológicas para Controle de Qualidade
em Sistemas de Registro de Imagem" (Engenharia Biomédica)
Período: 1995 -1997
Bolsa CNPq
Doutorado em Física Aplicada
Instituto de Física de São Carlos – IFSC
Universidade de São Paulo – USP
Trabalho: "Simulação do Desempenho das Combinações Écran-Filme em Função do Feixe de Raios
X Incidente" (Engenharia Biomédica)
Período: 1997 – 2001
Bolsa FAPESP
Pós-Doutorado
Núcleo de Pesquisas Tecnológicas - NPT
Universidade de Mogi das Cruzes - UMC
Trabalho: "Simulação"
Período: 2001 – 2003
Bolsa FAPESP
Atualmente:
Professor assistente doutor e pesquisadora no Mestrado e Doutorado da Universidade de Mogi das
Cruzes.
Algoritmos para Estruturas Simples
Última atualização: 22/4/2008; 11:51:05 115/115