Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales...

23
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez

Transcript of Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales...

Page 1: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo

Profa. Mercedes Gonzales Márquez

Page 2: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

AlgoritmoFormato, adoptado pela disciplina, de um algoritmo sem módulos

Algoritmo <nome>declarações de variáveis e constantesInicio

comandosFim

Page 3: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

AlgoritmoQuando precisar realizar um detalhamento progressivo (conforme aula de refinamento sucessivos) pode-se usar o seguinte formato:Algoritmo <semrefinam-nome>Inicio

comandos em linguagem naturalFim

Page 4: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

Estruturas de controle de fluxoEstrutura Sequencial: Execução dos comandos

em uma seqüência linear (na mesma ordem em que foram escritas)

Estrutura Condicional : Verifica-se uma condição lógica antes de executar um bloco de comandos.

Estrutura de Repetição: Execução de uma seqüência de comandos repetidas vezes. O computador abandona o fluxo natural da execução (de cima para baixo) e volta a executar a seqüência de ações desejada.

Page 5: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

Estrutura SequencialOs comandos deverão ser executados numa sequência linear, seguindo-se o texto em que estão escritos, de cima para baixo.Exemplo:

Algoritmo <exemplo1>inteiro: a,b,cInicio

leia (a,b)c ← (a + b)*bescreva (a,b,c)

Fim

Page 6: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

1. Escreva um algoritmo que leia um número e exiba o dobro do mesmo.Algoritmo <semrefin-dobro>

1. leitura do número2. calculo do dobro3. saída de dobro

Estrutura Sequencial

Page 7: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

1. Leitura do numeroleia (num)

2. Calculo do dobrodobro ← 2*num

3. saída do dobroescreva (dobro)

Estrutura Sequencial

Page 8: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

Juntando tudo temos o algoritmo completo.

Algoritmo <dobro>inteiro: num,dobroInicio

leia (num)dobro ← 2*numescreva (dobro)

Fim

Estrutura Sequencial

A memóriaA memória

A telaA tela

num dobro 4 8

48

TESTE DE MESA

Page 9: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

2. Escreva um algoritmo que dado um número inteiro obtenha o último algarismo desse número. Exemplo: dado o número 7663, deve-se obter o número 3; e dado o número 779, deve-se obter o número 9.

Algoritmo <semrefin-ultimoalgarismo>1. leitura número inteiro2. obtenção do ultimo algarismo3. saída do ultimo algarismo

Estrutura Sequencial

Page 10: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

1. Leitura do numeroleia (num)

2. Calculo do dobroultimo_algarismo ← MOD(num,10)

3. saída do último algarismoescreva (ultimo_algarismo)

Estrutura Sequencial

Page 11: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

E juntando tudo, temos:Algoritmo <ultimo_algarismo>inteiro: num, ultimo_algInicio

leia (num)ultimo_alg← MOD(num,10)escreva (ultimo_alg)

Fim

Estrutura Sequencial

A memóriaA memória

A telaA tela

num ultimo_alg

487

7 487 7

TESTE DE MESA

Page 12: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

3. Escreva um algoritmo que leia duas variáveis, troque o conteúdo entre elas e exiba elas trocadas.

Algoritmo <semrefin-troca>1. leitura números2. troca de números3. saída dos números trocados

Estrutura Seqüencial

Page 13: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

1. Leitura dos numerosleia (numero1,numero2)

2. Troca dos númerosaux ← numero1numero1← numero2numero2← aux

3. saída dos números trocadosescreva (numero1,numero2)

Estrutura Sequencial

Page 14: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

Algoritmo <troca>inteiro: numero1, numero2,auxInicio

leia (numero1,numero2)aux← numero1numero1 ← numero2numero2 ← auxescreva (numero1,numero2)

Fim

Estrutura Sequencial

A memóriaA memória

A telaA tela

numero1

numero2

aux

487 56 487 56 487

487 56 56 487

TESTE DE MESA

Page 15: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

4. Faça um algoritmo que dado um número inteiro que representa um número binário de cinco dígitos, determine o seu equivalente decimal.

Estrutura Seqüencial

Page 16: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

4. Faça um algoritmo que dado um número inteiro que representa um número binário de cinco dígitos, determine o seu equivalente decimal.Algoritmo <binario5digitos>inteiro: binario, primeiro,segundo,terceiro,quarto,quinto,decimalInicio

leia (binario)primeiro ←MOD(binario,10)segundo ←MOD(DIV(binario,10),10)terceiro ←MOD(DIV(binario,100),10)quarto ←MOD(DIV(binario,1000),10)quinto ←DIV(binario,10000)decimal←quinto*2**4+quarto*2**3+terceiro*2**2+segundo*2

+primeiroFim

Estrutura Seqüencial

Page 17: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

5. Faça um algoritmo que dado um número inteiro que representa um número binário de cinco dígitos, determine o seu equivalente decimal (outra solução).Algoritmo <binario5digitos>inteiro: binario, primeiro,segundo,terceiro,quarto,quinto,decimalInicio

leia (binario)primeiro ←MOD(binario,10)segundo ←DIV(MOD(binario,100),10)terceiro ←DIV(MOD(binario,1000),100)quarto ← DIV(MOD(binario,10000),1000) quinto ← DIV(binario,10000)decimal←quinto*2**4+quarto*2**3+terceiro*2**2+segundo*2

+primeiroFim

Estrutura Seqüencial

Page 18: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

6. Faça o algoritmo para calcular qual foi a porcentagem de desconto dada em um determinado produto, sabendo-se o preço original do produto e o preço que foi cobrado por ele depois do desconto.

Estrutura Sequencial

Page 19: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

6. Faça o algoritmo para calcular qual foi a porcentagem de desconto dada em um determinado produto, sabendo-se o preço original do produto e o preço que foi cobrado por ele depois do desconto.Algoritmo<porcentagem>real: pre_orig,pre_cob,porc_dsctoInicio

leia (pre_orig,pre_cob)porc_dscto ←((pre_orig-pre_cob)/pre_orig)*100escreva (porc_dscto)

Fim

Estrutura Sequencial

Page 20: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

7. Dado um número inteiro de segundos determinar o seu valor equivalente em graus, minutos e segundos. Se a quantidade de segundos for insuficiente para dar o valor em graus, o valor em graus deve ser zero. A mesma observação continua válida em relação a minutos e segundos. Por exemplo: 3600 segundos = 1 grau, 0 minutos, 0 segundos; 3500 segundos = 0 graus, 58 minutos, 20 segundos.

Estrutura Sequencial

Page 21: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

8. Dado um número de 3 algarismos construir outro número de quatro algarismos de acordo com a seguinte regra: a) os três primeiros algarismos, contados da esquerda para a direita são iguais aos do número dado; b) o quarto algarismo é um dígito de controle calculado da seguinte forma: primeiro algarismo + segundo algarismo x 3 + terceiro algarismo x 5; o dígito de controle é igual ao resto da divisão dessa soma por 7.

Estrutura Sequencial

Page 22: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

8. Algoritmo<3-4algarismos>inteiro: num, novonum,primer,segun,terc,digitocontInicio

leia (num)prim ←DIV(num,100)segun ←DIV(MOD(num,100),10)terc ←MOD(num,10)digitocont ←MOD(prim+segun*3+terc*5,7)novonum ←num*10+digitocont

Fim

Estrutura Sequencial

Page 23: Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo Profa. Mercedes Gonzales Márquez.

9. Dado um número inteiro de 3 algarismos, inverter a ordem de seus algarismos. Os três algarismos do número dado são diferentes de zero.

Estrutura Seqüencial