lógica de programação e algoritmos - kusumoto.com.br · de cima para baixo. • estes comandos...

22
Lógica de Programação e Algoritmos Prof. André Y. Kusumoto [email protected]

Upload: doanh

Post on 21-Nov-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Lógica de Programação e Algoritmos

Prof. André Y. Kusumoto

[email protected]

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/