lógica de programação e algoritmos - kusumoto.com.br · de cima para baixo. • estes comandos...
TRANSCRIPT
Prof. André Y. Kusumoto – [email protected]
Estruturas de Controle
2
Blocos
• Delimitam um conjunto de comandos com uma função bem
definida.
início
<comandos>
fim
Prof. André Y. Kusumoto – [email protected]
Estruturas de Controle
3
Sequências Simples
• Conjunto de comandos que serão executados numa seqüência linear
de cima para baixo.
• Estes comandos podem aparecer em qualquer estrutura de controle,
agrupados ou não por blocos.
• Ao final de cada comando é obrigatório a colocação de um ponto-e-
vírgula( ; )
• Mais de um comando pode ser colocado por linha, mas isso não é
aconselhável.
Prof. André Y. Kusumoto – [email protected]
Estruturas de Controle
4
• Um comando pode ocupar mais de uma linha. Nesse caso, o ponto-
e-vírgula só vai aparecer no final da última linha.
Veja a sintaxe: comando 1;
comando 2;
início comando 3 ...
meio comando 3 ...
fim comando 3;
...
comando n;
Prof. André Y. Kusumoto – [email protected]
Estruturas de Controle
5
Algoritmo SomaNumerosInteiros
declare
num1, num2, soma : numerico;
inicio
ler(num1, num2);
soma ← num1 + num2;
escrever('A soma dos números é : ', soma);
fim
Exemplo 1
• Faça um algoritmo que leia dois números inteiros e mostre a soma
deles.
Prof. André Y. Kusumoto – [email protected]
Estruturas de Controle
6
Algoritmo LeituraNomes
declare
nome1, nome2, nome3 : alfanumerico;
inicio
escrever('Entre com primeiro nome : ');
ler(nome1);
escrever('Entre com segundo nome : ');
ler(nome2);
escrever('Entre com terceiro nome : ');
ler(nome3);
escrever('A ordem inversa dos nomes é ');
escrever(nome3);
escrever(nome2);
escrever(nome1);
fim
Exemplo 2
• Faça um algoritmo que leia 3 nomes e mostre-os na ordem inversa de leitura.
Veja como este algoritmo já apresenta mais detalhes.
Prof. André Y. Kusumoto – [email protected]
Estruturas Condicionais
7
Execução caso condição seja verdadeira
• Quando uma ação para ser executada depender de uma inspeção ou teste, teremos
uma alternativa simples ou composta.
Sintaxe da Alternativa Simples:
se <condição> então
<comando 1>;
<comando 2>;
<comando n>;
fim-se;
Prof. André Y. Kusumoto – [email protected]
• Imagine um algoritmo que determinado aluno somente estará aprovado se sua
média for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.
se (media >= 5.0) então
escrever(‘Aluno Aprovado’);
fim-se;
Diagrama de blocos →
Estruturas Condicionais
8
Media >= 5.0
Aluno
Aprovado
V
F
Prof. André Y. Kusumoto – [email protected]
Sintaxe da Alternativa Composta:
se <condição> então
<comando 1>;
<comando 2>;
<comando n>;
senão
<comando 1>;
<comando 2>;
<comando m>;
fim-se;
Onde: <condição> é qualquer expressão cujo resultado seja Falso ou Verdadeiro.
Estruturas Condicionais
9
Execução caso condição seja verdadeira
Execução caso condição seja falsa
Prof. André Y. Kusumoto – [email protected]
Exemplo:
se (media >= 5.0) então
situacao ← ‘Aprovado’;
senão
situacao ← ‘Reprovado’;
fim-se;
Diagrama de blocos →
Estruturas Condicionais
10
Media >= 5.0
situacao ←“Aprovado”
V F
situacao ← “Reprovado”
Prof. André Y. Kusumoto – [email protected]
Exercícios
11
1) Faça um algoritmo que fornecido três números inteiros e positivos, apresente
(exiba) o maior deles.
2) Escreva um algoritmo que leia três valores inteiros diferentes e mostre-os em
ordem crescente.
3) Faça um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre
sua idade e, também, verifique e mostre se ela já tem idade para votar (16 anos ou
mais) e para conseguir a carteira de habilitação (18 anos ou mais).
4) Construa um algoritmo que calcule a média ponderada entre 5 números quaisquer,
sendo que os pesos a serem aplicados são: 1, 2, 3, 4 e 5 respectivamente.
Prof. André Y. Kusumoto – [email protected]
Exercícios
5) 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 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.
6) 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.
Prof. André Y. Kusumoto – [email protected]
Exercícios
13
7) 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.
8) 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.
Prof. André Y. Kusumoto – [email protected]
Exercícios
14
9) Elabore um algoritmo que, a partir de um mês e ano fornecidos, valide se eles
compõem uma data válida.
10) Elabore um algoritmo que gera e escreve os números ímpares dos números lidos
entre 100 e 200.
11) Construa um algoritmo que leia 500 valores inteiros e positivos e:
• Encontre o maior valor
• Encontre o menor valor
• Calcule a média dos números lidos
Prof. André Y. Kusumoto – [email protected]
Exercícios
15
12) Faça um algoritmo que determine o maior entre N números. A condição de
parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior
até que a entrada seja igual a 0 (ZERO).
13) Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer
preço. O monge, necessitando de alimentos, indagou à rainha sobre o pagamento, se
poderia ser feito com grãos de trigo dispostos em um tabuleiro de xadrez, de tal
forma que o primeiro quadro deveria conter apenas um grão e os quadros
subseqüentes, o dobro do quadro anterior. A rainha achou o trabalho barato e pediu
que o serviço fosse executado, sem se dar conta de que seria impossível efetuar o
pagamento. Faça um algoritmo para calcular o número de grãos que o monge
esperava receber.
14) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10 emita uma
mensagem: “Múltiplo de 10”.
Prof. André Y. Kusumoto – [email protected]
Exercícios
16
quociente 2 2
números 160 64 32
restos 32 0 15) Faça um algoritmo que leia um número na base 10 e converta-o para a base 2.
16) Faça um algoritmo que leia dois números inteiros e positivos e calcule o mdc.
Regra:
1) dividimos o número maior pelo menor
2) como não deu resto zero, dividimos o divisor pelo resto da divisão anterior.
3) prosseguimos com as divisões sucessivas até obter resto zero.
Exemplo: mdc(160,64)=32
Prof. André Y. Kusumoto – [email protected]
• Utilizada quando temos muitas possibilidades para uma determinada situação,
onde a aplicação da estrutura se...então...senão...fim-se, tornaria o algoritmo
muito complexo.
Sintaxe da Alternativa Simples:
escolha <expressão>
caso valor1 : <comando 1>;
caso valor2 : <comando2>;
...
senão <comando n>;
fim-escolha;
Estrutura de Múltipla Escolha
17
As opções podem apresentar valores
individuais ou uma faixa de valores.
Prof. André Y. Kusumoto – [email protected]
Estrutura de Múltipla Escolha
18
Exemplo:
ler(Numero);
escolha Numero
caso 1: Extenso ←‘Um’;
caso 2: Extenso ← ‘Dois’;
caso 3: Extenso ← ‘Três’;
caso 4: Extenso ← ‘Quatro’;
caso 5: Extenso ← ‘Cinco’;
caso 6: Extenso ← ‘Seis’;
caso 7: Extenso ← ‘Sete’;
caso 8: Extenso ← ‘Oito’;
caso 9: Extenso ← ‘Nove’;
senão: Extenso ← ‘Erro’;
fim-escolha;
• No exemplo do diagrama de blocos abaixo, é recebido uma variável “Op” e testado seu
conteúdo, caso uma das condições seja satisfeita, é atribuído para a variável Titulo a string
“Opção X”, caso contrário é atribuído a string “Opção Errada”
Prof. André Y. Kusumoto – [email protected]
Estrutura de Múltipla Escolha
19
inicio
op
op=1
op=2
op=3
Titulo ← “Opção 1”
Titulo ← “Opção 2”
Titulo ← “Opção 3”
Titulo ← “Opção Errada”
Titulo
fim
Prof. André Y. Kusumoto – [email protected]
Exercícios
20
1) O IMC – Índice de Massa Corporal é em critério da Organização Mundial de
Saúde para dar uma indicação sobre a condição de peso de uma pessoa adulta. A
fórmula é IMC= peso/(altura)². Elabore um algoritmo que leia o peso e altura de um
adulto e mostre sua condição:
IMC
Abaixo de 18,5 – abaixo do peso
Entre 18,5 e 25 – peso normal
Entre 25 e 30 - acima do peso
Acima de 30 – obeso
2) Elabore um algoritmo que leia o valor de dois números inteiros e a operação
aritmética desejada; calcule, então, a resposta adequada. Utilize os símbolos da
tabela a seguir para ler qual a operação aritmética escolhida:
+ : Adição;
- : Subtração
* : Multiplicação
/ : Divisão
Prof. André Y. Kusumoto – [email protected]
3) Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das
seguintes categorias:
Infantil A = 5 a 7 anos
Infantil B = 8 a 11 anos
Juvenil A = 12 a 13 anos
Juvenil B = 14 a 17 anos
Adultos = Maiores de 18 anos
4) Escreva um algoritmo que, a partir de um mês fornecido (número inteiro de 1 a
12), apresente o nome dele por extenso.
5) Escreva o signo do zodíaco correspondente ao dia e mês fornecido.
Prof. André Y. Kusumoto – [email protected]
Referências
22
• Algoritmos Estruturados.
FARRER, Harry, BECKER, Christiano G., FARIA, Eduardo C., MATOS, Helton Fábio de, SANTOS,
Marcos Augusto dos, MAIA, Miriam Lourenço. Rio de Janeiro: Editora Guanabara, 1989.
• Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados
Forbellone, André Luiz Villar . São Paulo, Prentice Hall, 2005:
• Algoritmos e estruturas de dados.
GUIMARÃES, Angelo de Moura, LAGES, Newton A de Castilho. Rio de Janeiro: LTC – Livros
Técnicos e Científicos Editora, 1985.
• Programação e lógica com Turbo Pascal.
MECLER, Ian, MAIA, Luiz Paulo. Rio de Paulo Janeiro: Campus, 1989. Unicamp - Centro de
Computação – DSC. Sérgio de Moraes, abril 2000.
• Algoritmos.
SALVETTI, Dirceu Douglas, BARBOSA, Lisbete Madsen. São Paulo: Makron Books, 1998.
• Concursos Públicos – Raciocínio Lógico.
SILVA, Joselias Santos da. São Paulo: R&A Editora Cursos e Materiais Didáticos, 1999.
• Algoritmos e Estruturas de Dados.
WIRTH, Niklaus. Rio de Janeiro: Editora Prentice-Hall do Brasil, 1986.
• Sites na Web: http://www.inf.pucrs.br/~egidio/algo1/