Fundamentos1-SlidesA10-29082008
-
Upload
alan-roberto -
Category
Documents
-
view
217 -
download
0
Transcript of Fundamentos1-SlidesA10-29082008
![Page 1: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/1.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 1/26
Computação – Informática
Slide 10
Prof. SIMÃO
Jean Marcelo SIMÃO
Estrutura de Repetição“repita até”ou
“faça enquanto”
![Page 2: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/2.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 2/26
Estrutura de Repetição“repita até”
repita
conjunto de comandos
até ( condição ser Verdadeira )
Obs. : Formato padrão utilizado em algoritmos e suportado pelo Visualg.
![Page 3: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/3.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 3/26
Exemplo de Algoritmo – 1A
algoritmo “ Imprimir os números de 1 a 1000 ”var
num : inteiro
inicio
num← 1
repita
escreval ( “Número: ”, num )
num←
num + 1ate ( num > 1000 )
fimalgoritmoObs. O conjunto de comandossempre executa pelo menosuma vez... diferentemente doenquanto-faça
![Page 4: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/4.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 4/26
Estrutura de Repetição“enquanto - faça”
faça
conjunto de comandos
enquanto ( condição for verdadeira )
Obs. : Formato NÃO utilizado em algoritmos e NÃO suportado pelo Visualg.Entretanto, é o formato utilizado pela linguagem C...
![Page 5: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/5.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 5/26
Exemplo de Algoritmo – 1B
algoritmo “ Imprimir os números de 1 a 1000”var
num : inteiro
inicio
num <- 1
faca
escreval ( “Número: ”, num )
num <- num + 1
enquanto ( num <= 1000 )
fimalgoritmo
![Page 6: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/6.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 6/26
repita até X faça enquantoalgoritmo “Imprimir os números de 1 a 1000”
varnum : inteiro
inicio
num <- 1
faca
escreval ( “Número: ”, num )
num <- num + 1
enquanto ( num <= 1000 )
fimalgoritmo
algoritmo “Imprimir os números de 1 a 1000”var
num : inteiro
inicio
num <- 1
repita
escreval ( “Número: ”, num )
num <- num + 1
ate ( num > 1000 )
fimalgoritmo
As condições são diferentes porque a semântica (ou significado)
do repita-até é diferente da semântica do enquanto-faça .
![Page 7: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/7.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 7/26
Exemplo de Algoritmo - 2
algoritmo “Somar todo os números de 1 a 1000 ”var
soma, num : inteiro
iniciosoma <- 0num <- 1
repita
soma <- soma + numnum <- num + 1
ate ( num > 1000 )
escreval ( “O somatório dos números entre 1 e 1000 é:”, soma )
fimalgoritmo
![Page 8: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/8.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 8/26
.........
3698
2887
2176
1565
1054
643
332121
Soma Num Passo
Explicando o Exemplo
algoritmo “ Somar todo os números de 1 a 1000 ”var
soma, num : inteiroinicio
soma <- 0num <- 1
repita
soma <- soma + numnum <- num + 1
ate ( num > 1000 )
escreval ( “O somatório dos números entre 1 e 1000 é:”, soma )
fimalgoritmo
![Page 9: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/9.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 9/26
Exercício 1
• Algoritmo para somar todos osnúmeros de uma seqüência quecomeça por um e finaliza em umnúmero dado pelo usuário.
• Obs.: Usar a estrutura repita-até .
![Page 10: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/10.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 10/26
Solução Exercício 1
algoritmo “ Somar todo os números de 1 a n ”var
soma, num, numdado : inteiro
iniciosoma <- 0num <- 1
escreval ( “Soma de números de zero até um número dado.” )escreval ( “Informe um número” )
leia ( numdado )
repita
soma <- soma + num
num <- num + 1
ate ( num > numdado )
escreval ( “O somatório dos números entre 1 e ”, numdado, “ é ”, soma )
fimalgoritmo
![Page 11: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/11.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 11/26
Exercício 2
• Algoritmo para somar os números imparesentre 5 e 500 (inclusive).
•Obs. Utilizar a estrutura repita ate .
![Page 12: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/12.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 12/26
Solução Ex.2 - V.1
algoritmo “Somar os impares entre 5 e 500”var
soma, num, resto : inteiroinicio
soma← 0
num← 5
escreval ( “Soma de números impares entre 5 e 500.” )
repita
resto <- num % 2
se ( resto = 1 ) entaosoma <- soma + num
fimse
num <- num + 1ate ( num > 500 )
escreval ( “O soma dos números impares entre 5 e 500 é:”, soma )
fimalgoritmo
![Page 13: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/13.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 13/26
Solução Ex. 2 - V.2algoritmo “Somar os impares entre 5 e 500 V2”.var
soma, num : inteiro
inicio
soma <- 0num <- 5
escreval ( “Soma de números impares entre 5 e 500.” )
repita
soma← soma + num
num← num + 2
ate ( num > 500 )
escreval ( “O soma dos números impares entre 5 e 500 é:”, soma )
fimalgoritmo
6
5
43
2
1
0Passo
1760
1545
13321121
912
75
50numsoma
![Page 14: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/14.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 14/26
Exercício 3
• Elaborar um algoritmo para o cálculo da soma,subtração, multiplicação ou divisão de dois númerosreais fornecidos pelo usuário, segundo sua opção.
• O usuário poderá realizar quantas operações desejarenquanto não optar por sair do programa.
Obs. Utilizar a estrutura repita-até .
![Page 15: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/15.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 15/26
Solução exercício.algoritmo “ Operações elementares sobre dois
números cf. opção do usuário ”// Parte Principalvar
result, prim_num, seg_num : realopcao : inteiro
inicio
repita
escreval ( “ Operações sobre 2 números reais.” )escreval ( “ Digite 1 para soma,” )escreval ( “ 2 para subtração, ” )escreval ( “ 3 para multiplicação ou” )escreval ( “ 4 para divisão.” )escreval ( “ 5 para sair do programa .” )leia ( opcao )
se ( ( opcao > 0 ) e ( opcao < 5 ) ) entao
escreval ( “Digite o primeiro número: ” )leia ( prim_num )
escreval ( “Digite o segundo número: ” )
leia ( seg_num )escolha ( opcao )
caso 1result <- prim_num + seg_numescreval ( “O resultado da soma é: ”, result )
caso 2result <- prim_num - seg_numescreval ( “O resultado da subtração é: ”, result )
caso 3result← prim_num * seg_num
escreval ( “O resultado da multiplic. é: ”, result )
caso 4
se ( seg_num <> 0 ) entao
result← prim_num / seg_numescreval ( “O resultado da divisão é: ”, result )
senao
escreval ( “Divisão por zero impossível” )
fimse
fimescolha
senao
se ( opcao <> 5 ) entaoescreval ( “Opção inválida” )
fimse
fimseate ( opcao = 5 )
fimalgoritmo
![Page 16: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/16.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 16/26
Exercício 4
4.1 - Elaborar um algoritmo para receber as notas de 150alunos e calcular/apresentar a média das notas.
4.2 - Elaborar um algoritmo para receber as 4 notas decada um dos 150 alunos, calculando/apresentando amédia de cada um, bem como a média geral da turma.
Obs.: Em ambos, utilizar repita-até .
![Page 17: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/17.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 17/26
Solução 4.1algoritmo “Média de notas de 150 alunos”var
soma, media, nota : realcont : nteiro
iniciosoma <- 0
cont <- 1escreval ( “Média de notas de 150 alunos.” )
repitaescreval ( “Digite ”, cont, “ª. nota:” )
leia ( nota )se ( ( nota <= 10 ) e ( nota >= 0 ) ) entao
soma <- soma + notacont <- cont + 1
senao
escreval ( “Nota inválida.” )fimse
ate ( cont >150 )
media <- soma / 150
escreval ( “A média das notas é: ”, media )fimalgoritmo
![Page 18: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/18.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 18/26
algoritmo “Média de notas de 150 alunos”var
soma, media, nota : real
cont : inteiro
iniciosoma <- 0cont <- 1escreval ( “Média de notas de 150 alunos.” )
repitaescreval ( “Digite ”, cont, “ª. nota:” )
repita
leia ( nota )
se ( ( nota > 10 ) ou ( nota < 0 ) ) entaoescreval ( “Nota inválida.” )
fimseate ( ( nota <= 10 ) e ( nota >= 0 ) )
soma <- soma + nota
cont <- cont + 1
ate ( cont >150 )
media <- soma / 150escreval ( “A média das notas é: ”, media )
fimalgoritmo
![Page 19: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/19.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 19/26
Exercícios 5.
• Algoritmo para permitir ao usuário escolher entre o cálculo do cubo,do quadrado ou da raiz quadrada de um número dado por ele. Ousuário também pode escolher como opção ‘sair do programa’.
– Obs. 1: Uma primeira versão usando apenas estrutura de decisão se fim- se para tratar a opção do usuário.
– Obs. 2: Uma segunda versão usando apenas estrutura de decisão sesenão para tratar a opção do usuário.
– Obs. 3: Uma terceira versão usando apenas estrutura de decisãoescolha caso para tratar a opção do usuário.
– Obs. 4: Para cada uma das versões anteriores usar a estrutura repita-
até , comparando com as soluções realizadas anteriomente com aestrutura equanto-faça .
![Page 20: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/20.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 20/26
Exercícios 6• 6.1 Algoritmo para permitir o cálculo da área ou do perímetro de
uma circuferência. – Obs.1: Raio fornecido pelo usuário. – Obs.2: Depois de cada cálculo o algoritmo deve permitir ao usuário
escolher a mesma ou outra opção.
– Obs.3: Utilizar a estrutura escolha-caso. – Obs.4. Utilizar uma variável tipo caracter para tratar a opção do usuário. – Obs.5: O algoritmo só terminará quando o usuário escolher uma opção
de término. – Obs.6: Utilizar a estrura repita-até .
• 6.2 Algoritmo para cálculo da área de um quadrado, de umtriângulo retângulo ou de uma circuferência dependendo daescolha do usuário. – Obs.1: Parâmetros (e.g. lado ou raio) fornecidos pelo usuário. – Obs.2: Utilizar a estrutura escolha-caso.
– Obs.3. Utilizar uma variável tipo caracter para tratar a opção do usuário. – Obs.4: Depois de cada cálculo o algoritmo deve permitir ao usuário
escolher a mesma ou outra opção. – Obs.5: O algoritmo só terminará quando o usuário escolher uma opção
de término. – Obs.6: Utilizar a estrutura repita-até .
![Page 21: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/21.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 21/26
Exercícios - 7
• 7.1 - Algoritmo para o cálculo do quadrado e daraiz da raiz quadrada de um número dado pelousuário.
• 7.2 Algoritmo para o cálculo do fatorial de um
número dado pelo usuário. – Obs.: Usar a estrutura de repetição repita - até .
![Page 22: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/22.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 22/26
Algoritmo Fatorialalgoritmo “Fatorial”var
numero, resultado : Inteiroinicio
escreval ( “Informe um número decimal inteiro: ” )leia ( numero )
se ( numero > 1 ) entaoresultado <- numerorepita
resultado <- resultado * (numero – 1)numero <- numero - 1
ate ( numero = 1 )escreval ( “O fatorial é:”, resultado )senao
se ( (numero = 0) ou ( numero = 1) ) entaoescreval ( “O fatorial é: 1.” )
senão
escreval ( “Número invalido.” )fimse
fimsefimalgoritmo
Obs. O algoritmo da aula passada (usando equanto-faça ) está certo?E este, está certo?
550
1120*1=1204
260*2=1203
320*3=602
45*4=201
numeroresultado
Numero = 5
![Page 23: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/23.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 23/26
Algoritmo Fatorial
algoritmo “Fatorial”varnumero, resultado : inteiro
inicio
escreval ( “Informe um número decimal inteiro: ” )leia ( numero )se ( numero > 1 ) entao
resultado <- numerorepita
numero <- numero - 1
resultado <- resultado * (numero)ate ( numero = 1 )escreval ( “O fatorial é:”, resultado )
senaose ( (numero = 0) ou ( numero = 1) ) entao
escreval ( “O fatorial é: 1.” )senaoescreval ( “Número invalido.” )
fimsefimse
fimalgoritmo
![Page 24: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/24.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 24/26
algoritmo “Fatorial”varnumero, resultado : inteiro
inicioescreval ( “Informe um número decimal inteiro: ” )leia ( numero )
se ( numero > 1 ) entaoresultado <- numerorepita
numero <- numero - 1resultado <- resultado * (numero)
ate ( numero = 1 )escreval ( “O fatorial é:”, resultado )
senaose ( ( numero = 0) ou ( numero = 1 ) ) entao
escreval ( “O fatorial é: 1.” )senão
escreval ( “Número invalido.” )
fimsefimse
fimalgoritmo
algoritmo “Fatorial”varnumero, resultado : inteiro
inicio
escreval ( “Informe um número decimal inteiro: ” )leia ( numero )
se ( numero > 0 ) entaoresultado <- numeroenquanto ( numero <> 1 ) faca
numero <- numero - 1resultado <- resultado * numero
fimenquantoescreval ( “O fatorial é:”, resultado )
senaose ( numero = 0 ) entao
escreval ( “O fatorial é: 1.” )senao
escreval ( “Número invalido.” )fimse
fimalgoritmo
![Page 25: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/25.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 25/26
Algoritmo Fatorial V.2algoritmo “Fatorial”var
numero, resultado : inteiroinicio
escreval ( “Informe um número decimal inteiro: ” )leia ( numero )
se ( numero > 0 ) entaoresultado <- 1
repitaresultado <- resultado * numeronumero <- numero - 1
ate ( numero = 1 )escreval ( “O fatorial é:”, resultado )
senaose ( numero = 0 ) entao
escreval ( “O fatorial é: 1.” )senao
escreval ( “Número invalido.” )fimse
fimsefimalgoritmo
510
160*2=1204
220*3=603
35*4=202
41*5=51
numeroresultado
Numero = 5Resultado = 5
![Page 26: Fundamentos1-SlidesA10-29082008](https://reader036.fdocumentos.com/reader036/viewer/2022062401/5695cefc1a28ab9b028c1531/html5/thumbnails/26.jpg)
7/23/2019 Fundamentos1-SlidesA10-29082008
http://slidepdf.com/reader/full/fundamentos1-slidesa10-29082008 26/26
Exercício 8
• Refazer todos os exercícios anteriores,desta aula, usando a estrutura faça-enquanto.