Prévia do material em texto
1
Algoritmos Computacionais
Prof. Doutorando Leandro Kravczuk
leandrokv@gmail.com
www.facebook.com/profleandrokv
@leandrokv
2
Avaliações
1º AV: 03/Abril
Assunto da prova: Verificar nos slides
2º Chamada da 1ºAV: 10/Abril
______________________________________________________________________________________________________________________________________
2º AV: 12/Junho
Assunto da prova: verificar nos slides
2ºChamada da 2ºAV: 19/Junho
_______________________________________________________________________________________________________________________________________
3º AV (AF): 19/Junho (ATENÇÃO PARA ESSA DATA)
Assunto: TUDO
3
BIBLIOGRAFIA BÁSICA
1. ARAÚJO Everton C. Algoritmos: Fundamento e Prática. 3 ed. São Paulo, Visual
Books, 2007.
2. BENEDUZZI, Humberto Martins. Lógica e Linguagem de Programação. 1 ed. Ed.
LT, 2012.
3. MEDINA Marco, Cristina Fertig. Algoritmos e Programação: Teoria e Prática. 1 ed,
São Paulo, Novatec, 2005.
BIBLIOGRAFIA COMPLEMENTAR
1. DEITEL, H. M.; DEITEL, P.J. Java: como Programar. 8. ed. Porto Alegre:
Bookman, 2009.
2. ZIVIANI, N. Projeto de algoritmos com implementação em pascal e C. 3. ed. São
Paulo : Guazelli, 2010.
3. TUCKER, Allen B. Linguagens de Programação. São Paulo: McGraw-Hill, 2009.
4. SCHILDT, Herbert. C Completo e Total. Makron Books, McGraw-Hill. 3.ed. 1997
5. MELO A. C. V.; SILVA, F. S. C. Princípios de Linguagem de Programação. Edgard
Biúcher Ltda. 2003.
4
Livros Adotados
5
O computador
“Um computador é uma máquina que
manipula dados a partir de uma lista de
instruções.”
6
7
8
9
10
11
12
13
14
Conceitos de Algoritmos
“Um algoritmo é uma sequência finita de passos
(instruções) para resolver um determinado
problema.”
Algoritmo é a descrição de um padrão de
comportamento, expressado em termos de um
repertório bem definido e finito de ações
"primitivas", das quais damos por certo que elas
podem ser executadas.
15
16
17
18
A descrição narrativa é uma forma de algoritmo que utiliza linguagem estruturada e,
embora sua estrutura e simbologia apresentem pequenas diferenças em relação à
língua portuguesa, também é chamada de português estruturado.
19
20
Mas onde estão os Algoritmos?
21
Facebook, Twitter, Instagram...
22
23
Como criar um Algoritmo
Computacional?
24
Para representar a
Lógica de
Programação
utilizamos um
Pseudocódigo.
No nosso caso,
utilizaremos o
Portugol.
25
Para especificar os passos de um algoritmo, o pseudocódigo utiliza uma
linguagem natural com característica pouco formal, o que pode causar
ambiguidade e propiciar interpretações errôneas.
26
27
Ferramenta para auxiliar no aprendizado de Lógica de
Programação e na construção de Algoritmos
28
29
Tela Visualg
30
Se a tela do Visualg aparecer Vazia é só digitar ! e apertar as teclas Ctrl + espaço
31
Áreas do Visualg
Tela de Código
32
Áreas do Visualg
Representação da memória do computador,
suas variáveis e o Escopo.
33
Áreas do Visualg
Tela de terminal, onde aparecerão todas
saídas de dados
34
35
Nosso primeiro Algoritmo
Pratiquem!
Coloquem dois Escreva no código...
36
37
Melhorando nosso Algoritmo
Pratiquem...
38
Var (Variáveis)
“Variáveis são espaços reservados na
memória ram do computador para guardar
informações que serão utilizadas durante o
código do programa. Podem ter valores de
diversos tamanhos e tipos.”
39
40
41
42
Regras
43
Palavras Reservadas?
tom de azul ou sublinhadas
44
Exemplos de Identificadores
Válido ou Não????
Nota1
45
46
Exemplos de Identificadores
Válido ou Não????
Média
47
48
Exemplos de Identificadores
Válido ou Não????
Salário Bruto
49
50
Exemplos de Identificadores
Válido ou Não????
9idade
51
52
Exemplos de Identificadores
Válido ou Não????
Algoritmo
53
54
Exemplos de Identificadores
Válido ou Não????
Inicio_Algoritmo
55
56
57
58
No Visualg
59
60
Idade <- 30
61
Pratiquem...
Tudo Certo?
Algum Problema?
62
Agora sim :D
Pratiquem...
63
64
Pratiquem...
65
Comandos de Entrada
Vamos ver agora como funcionam os comandos
de entrada no Visualg.
Observe o seguinte código no próximo slide e
vamos realizar a análise do código...
66
Qual o “problema” desse código?
Pratiquem...
67
Ele sempre vai mostrar na tela “Muito prazer Gustavo” e
não o nome do usuário que está usando o programa.
Não seria bacana se o nome de cada usuário aparecesse
na tela?
Mas como fazer isso?
Através dos Comandos de Entrada!!
68
69
Como funciona?
70
E como seria o código utilizando os Comandos de Entrada
para obter o nome do usuário?
Abram o Visualg e vamos praticar
71
Vamos Praticar
Escreva um algoritmo que receba seu nome
e escreva na tela!
72
73
Resposta:
74
Ou de forma mais completa, teremos:
Pratiquem...
75
Vamos ver agora os
Obs: Exponenciação = ao quadrado Módulo (mod) = Resto da Divisão
76
Ordem de Precedência
Sempre que tivermos uma expressão aritmética, a ordem que iremos
seguir é:
77
Exemplo / Exercício:
Como calcular a média entre dois números?
78
Algoritmo “valores”
Var
N1, N2: Inteiro
M: real
Inicio
Escreva (“Informe um numero: ”)
Leia (N1)
Escreva (“Informe o segundo numero: ”)
Leia (N2)
M <- (N1 + N2) / 2
Escreva (“A media entre “, N1, “ e “, N2, “ e “, M)
FimAlgoritmo
79
Mas e se eu tirasse os parênteses da linha
onde é calculada a média, o que
aconteceria?
80
Algoritmo “valores”
Var
N1, N2: Inteiro
M: Real
Inicio
Escreva (“Informe um numero: ”)
Leia (N1)
Escreva (“Informe o segundo numero: ”)
Leia (N2)
M <- N1 + N2 / 2
Escreva (“A media entre “, N1, “ e “, N2, “ e “, M)
FimAlgoritmo
81
Se colocarmos os valores 7 e 3, o resultado será 8.5
Explicando: 3/2 = 1.5+7 = 8.5
Isso acontece devido a Ordem de
Precedência, conforme visto anteriormente
82
O Visualg possui algumas Funções Aritméticas.
Vamos conhecê-las...
83
Funções Aritméticas
Explicando cada uma delas:
Valor absoluto = valor sem o sinal...
No Exemplo acima o valor retornado seria 10
84
Vamos Praticar....
Façam um algoritmo utilizando Abs
85
Exemplo Abs
86
No exemplo, três expoente dois é igual a 9
32 = 9
obs: pode usar a função Exp ou o operador ^ (ex:
3^2) conforme visto anteriormente
Façam um exemplo utilizando Exp
Funções Aritméticas
87
Exemplo Exp
88
Funções Aritméticas
Int irá me retornar apenas a parte inteira de um número.
Perceba que no exemplo colocamos 3.9
Qual sua parte Inteira?
3
Obs: não é arredondamento. Falamos apenas em Parte Inteira.
89
Qual a Raiz Quadrada de 25?
5
Funções Aritméticas
90
Exemplo
91
Façam um algoritmo que me retorna a
parte Inteira da Raiz Quadrada de 90.
92
Exemplo
93
Funções Aritméticas
Sempre que utilizar PI sem parênteses terei o retorno do
valor de PI = 3.14...
94
As funções seno, cosseno e tangente são
as mesmas utilizadas pela matemática.
0.523 é aproximadamente em radianos o
que nos temos em 30º.
Sendo assim:
Funções Aritméticas
95
Se você quer saberquanto da em Radianos
uma determinada medida em graus, você
pode utilizar:
Funções Aritméticas
96
Exemplo
97
Escreva um algoritmo que me retorne o
Seno de 90º
98Lembre-se: Sen só aceita valores em radianos
99
Escreva um algoritmo que recebe o valor de
um ângulo, converte esse ângulo para
radianos e calcula os valores de Seno,
Cosseno e Tangente.
100
101
Exercícios
1) Mostrar o resultado da divisão de dois
números
2) Mostrar a média entre três números
102
Respostas Exercícios
1)
algoritmo "multiplicacaoDoisNumeros"
var
resultado, n1, n2: real
inicio
Escreva("Digite o primeiro valor: ")
Leia(n1)
Escreva("Digite o segundo valor: ")
Leia(n2)
resultado <- n1 / n2
Escreva("A divisão entre", n1, " e", n2, " é", resultado)
fimalgoritmo
103
Resposta Exercícios
2)
algoritmo "mediaTresNumeros"
var
resultado, n1, n2, n3: real
inicio
Escreva("Digite o primeiro valor: ")
Leia(n1)
Escreva("Digite o segundo valor: ")
Leia(n2)
Escreva("Digite o terceiro valor: ")
Leia(n3)
resultado <- (n1 + n2 + n3) / 3
Escreva ("A media entre ", n1, ",", n2, " e", n3, " é", resultado)
fimalgoritmo
104
Operadores Relacionais
Operadores relacionais são utilizados para comparar valores, o
resultado de uma expressão relacional é um valor booleano
(VERDADEIRO ou FALSO).
Os operadores relacionais são: igual, diferente, maior, menor, maior
ou igual, menor ou igual.
Não é necessário explicar cada um, pois eles são auto-explicativos.
105
106
107
108
Pratiquem ex: a=b
109
Pratiquem
Ex:a<>b
110
Pratiquem
Ex: A>2
111
Pratiquem
A>=2
112
Pratiquem
Ex: C=A+B
113
Pratiquem
Ex: (C>=B^A)
114
Pratiquem
(C<=B^A)
115
Pratiquem
B<=C%2
116
Pratiquem
1=C%2
117
Exemplo:
Mostrar o funcionamento dos operadores
relacionais com 3 possibilidades de valores:
um número menor que o outro, dois
números iguais e um número maior que
outro.
118
algoritmo "TesteOperadoresRelacionais"
var
numero1, numero2: INTEIRO
resultado : LOGICO
inicio
numero1 <- 5
numero2 <- 3
resultado <- numero1 = numero2
ESCREVAL (numero1, " = ", numero2, "? ", resultado)
resultado <- numero1 <> numero2
ESCREVAL (numero1, " <> ", numero2, "? ", resultado)
resultado <- numero1 > numero2
ESCREVAL (numero1, " > ", numero2, "? ", resultado)
resultado <- numero1 < numero2
ESCREVAL (numero1, " < ", numero2, "? ", resultado)
resultado <- numero1 >= numero2
ESCREVAL (numero1, " >= ", numero2, "? ", resultado)
resultado <- numero1 <= numero2
ESCREVAL (numero1, " <= ", numero2, "? ", resultado)
numero1 <- 5
numero2 <- 5
resultado <- numero1 = numero2
ESCREVAL (numero1, " = ", numero2, "? ", resultado)
resultado <- numero1 <> numero2
ESCREVAL (numero1, " <> ", numero2, "? ", resultado)
resultado <- numero1 > numero2
ESCREVAL (numero1, " > ", numero2, "? ", resultado)
resultado <- numero1 < numero2
ESCREVAL (numero1, " < ", numero2, "? ", resultado)
resultado <- numero1 >= numero2
ESCREVAL (numero1, " >= ", numero2, "? ", resultado)
resultado <- numero1 <= numero2
ESCREVAL (numero1, " <= ", numero2, "? ", resultado)
numero1 <- 5
numero2 <- 8
resultado <- numero1 = numero2
ESCREVAL (numero1, " = ", numero2, "? ", resultado)
resultado <- numero1 <> numero2
ESCREVAL (numero1, " <> ", numero2, "? ", resultado)
resultado <- numero1 > numero2
ESCREVAL (numero1, " > ", numero2, "? ", resultado)
resultado <- numero1 < numero2
ESCREVAL (numero1, " < ", numero2, "? ", resultado)
resultado <- numero1 >= numero2
ESCREVAL (numero1, " >= ", numero2, "? ", resultado)
resultado <- numero1 <= numero2
ESCREVAL (numero1, " <= ", numero2, "? ", resultado)
fimalgoritmo
119
Resultado
120
121
122
Operadores Lógicos
Ex: Eu quero que Paula E Quezia Sejam Felizes
123
Operadores Lógicos
Ex: Eu quero que Paula ou Quezia sejam Felizes
124
Tabela Verdade
E OU
125
Pratiquem
Verdadeiro e falso
126
Pratiquem
((A=B) ou (C>A))
127
Pratiquem
(não((A=B) ou (C>A)))
128
Ordem de Execução de todos Operadores que
podem ser utilizados dentro de um algoritmo
129
Primeira Lista de Exercícios
Vale 2,0 para NP1.
Individual.
Entregar impresso ou manuscrito até a última
aula ANTES da NP1
ATENÇÃO
• Prazo de entrega: última aula antes da
NP1.
• Após essa data nenhum trabalho será
aceito pois as respostas dos exercícios
serão divulgadas.
130
Escreva um algoritmo que leia as medidas dos lados de
um triângulo e escreva se ele é EQUILÁTERO ou
ESCALENO.
Obs: Faça um teste lógico para saber se o triangulo é
equilátero ou Escaleno
Observação:
• Triângulo Equilátero: Possui 3 lados iguais.
• Triângulo Escaleno: Possui 3 lados diferentes.
131
Lembre-se
Triângulo Equilátero: é todo triângulo que apresenta os três lados com a
mesma medida. Nesse caso dizemos que os três lados são congruentes.
Triângulo Escaleno: é todo triângulo que apresenta os três lados com medidas
diferentes, ou seja, três lados de tamanhos diferentes.
132
algoritmo “triângulos”
var
L1, L2, L3: Real
133
Um detalhe que foi negligenciado no algoritmo anterior é se
os valores digitados podem ou não ser um triangulo.
Qual a regra???
Só irá existir um triângulo se, somente se, os seus lados obedeceram à seguinte regra: um de
seus lados deve ser maior que o valor absoluto (módulo) da diferença dos outros dois lados e
menor que a soma dos outros dois lados. Veja o resumo da regra abaixo:
| b - c | < a < b + c
| a - c | < b < a + c
| a - b | < c < a + b
Exemplo:
Com os três segmentos de reta medindo 5cm, 10cm e 9cm, podemos formar um triângulo?
Vamos aplicar a regra da condição de existência de um triângulo para todos os lados.
|10 – 9| < 5 < 10 + 9
1 < 5 <19 (VERDADEIRO)
|9 – 5| < 10 < 9 + 5
4 < 10 < 14 (VERDADEIRO)
|5 – 10| < 9 < 10 + 5
5 < 9 < 15 (VERDADEIRO)
Quando um lado não obedece à regra não é possível existir um triângulo.
134
Escreva um algoritmo que leia as medidas dos lados de
um triângulo e escreva se ele é EQUILÁTERO ou
ESCALENO.
Obs: Faça um teste lógico para saber se os valores
digitados podem formar um triangulo e se o triangulo é
equilátero ou Escaleno
135
algoritmo “triangulos”
var
L1, L2, L3: Real
+ L2)
fimalgoritmo
136
Exemplos do algoritmo anterior
137
Escreva um algoritmo que calcule a idade
de determinada pessoa
138
139
Escreva um algoritmo que converta
determinada quantidade de Reais em
Doláres
140
141
Você viajou para os EUA e comprou
diversos produtos. Ao retornar para o Brasil
a Receita Federal cobrou imposto de 60%
sobre tudo que você gastou nesses
produtos. Escreva um algoritmo que informe
quanto você vai pagar de imposto.
142
143
Exercício para Casa
Escreva um algoritmo onde você informa o valor que será
obtido de empréstimo e em quantas parcelas quer pagar. No final,
retorne o valor de cada parcela (inclindo o valor dos juros do
banco)
144
145
A Estrutura Condicional é empregada em
situações em que é preciso tomar uma
decisão a respeito de determinado resultado
que será obtido em duas situações diversas.
146
Vamos primeiro entender o que é uma
condição
Comando , Expressão, Ação
Condicional
Simples
147
Escreva um algoritmo que calcule a idadede determinada pessoa
148
algoritmo "calculoidade"
var
ano, nasc, idade: Inteiro
inicio
Escreval ("Em que ano estamos?“)
Leia (ano)
EscrevaL ("Em que ano voce nasceu?")
Leia (nasc)
idade <- ano-nasc
Escreva ("Em ", ano, " voce tera ", idade, " anos ")
Se (idade >= 18) entao
EscrevaL ("e ja sera maior de idade")
FimSe
fimalgoritmo
149
Condicional Composta
150
Escreva um algoritmo que leia um número
inteiro e diga se ele é par ou impar.
151
Como saber se um número é par ou impar?
Através do seu resto
Exemplo:
152
153
Faça um Algoritmo que leia o peso de uma
pessoa (em Kg) e a altura (em metros).
Calcule o IMC dessa pessoa e verifique se
esta pessoa esta dentro de sua faixa de
peso ideal.
154
155
156
Exercício para casa
Aproveitando o algoritmo de Calculo do IMC, faça um
algoritmo que leve em consideração a tabela abaixo:
157
Exercício para Casa
Escreva um algoritmo para saber se uma pessoa
pode ou não tirar carteira de motorista
158
Exercício para Casa
Faça um algoritmo que receba as notas da
NP1 e NP2 e mostre se o Aluno foi Aprovado
ou Reprovado.
159
160
Mas como isso ficaria no Visualg???
161
162
Note que nós temos duas estruturas condicionais
163
Em formato de algoritmo teríamos:
Chamamos isso de Condicional Aninhada
164
Condicional Aninhada
Existem situações nas quais é necessário verificar condições de teste sucessivas, onde
uma ação será executada caso um conjunto anterior de ações seja satisfeito.
Podemos usar para resolver esse tipo de problemas uma estrutura denominada Desvio
Condicional Aninhado, que nada mais é do que o encadeamento de estruturas de
decisão compostas em um algoritmo.
Também chamamos a esse tipo de estrutura de Desvio Condicional Encadeado, por
este motivo.
Sintaxe:
se (condição 1) então
instruções caso condição 1 retorne verdadeiro
senão
se (condição 2) então
instruções caso condição 2 retorne verdadeiro
senão
instruções caso condição 2 retorne falso
fimse
fimse
165
Exemplo
O programa deve solicitar duas notas de uma aluno, e calcular a média dessas notas.
Caso a média calculada seja maior ou igual a 7, o programa deve emitir a mensagem
"Aprovado"; se a média for menor do que 5, a mensagem a ser exibida é "Reprovado".
Porém, se a média do aluno ficar entre 5 e 7, deve ser exibida a mensagem
"Recuperação". Em todos os casos deve ser ecoada na tela a média calculada.
166
Algoritmo “notaAluno”
var
N1, N2 : inteiro
MEDIA : real
inicio
escreval ("Entre com a primeira nota:")
leia (N1)
escreval ("Entre com a segunda nota:")
leia (N2)
MEDIA <- (N1 + N2) / 2
se (media >= 7) entao
escreval ("Aprovado")
senao
se (media >= 5) entao
escreval ("Recuperação")
senao
escreval ("Reprovado")
fimse
fimse
escreva ("Sua média é ", MEDIA)
fimalgoritmo
167
Exercício
168
algoritmo "IMC"
var
M, A, IMC: REal
inicio
EscrevaL ("Massa (em Kg): ")
Leia (M)
EscrevaL ("Altura (m): ")
Leia (A)
IMC <- M / (A ^ 2)
EscrevaL ("IMC: ", IMC:5:2)
Se (IMC < 17) entao
EscrevaL ("Muito abaixo do peso ")
senao
Se (IMC >= 17) e (IMC < 18.5) entao
EscrevaL ("Abaixo do Peso ")
senao
Se (IMC >= 18.5) e (IMC < 25) entao
EscrevaL ("Peso ideal ")
senao
Se (IMC >= 25) e (IMC < 30) entao
EscrevaL ("Sobrepeso")
senao
Se (IMC >= 30) e (IMC < 35) entao
EscrevaL ("Obesidade ")
senao
Se (IMC >= 35) e (IMC < 40) entao
EscrevaL ("Obesidade severa ")
senao
EscrevaL ("Obesidade Morbida")
FimSe
FimSE
FimSe
FimSe
FimSe
FimSe
fimalgoritmo
169
Assunto da NP1 vai até este Slide
170
Escolha Caso
Como Funciona?
171
Escreva um algoritmo utilizando “Escolha Caso” onde você ira criar um
Menu de 5 opções, conforme abaixo:
1 – Para doar R$10,00
2 – Para doar R$ 25,00
3 - Para doar R$ 50,00
4 – Para doar outros valores (é necessário receber esse valor)
5 – Para Cancelar
172
Valor: Real
173
174
A Estrutura Escolha não serve para testar
faixas de valores, isto é, maior ou igual,
menor que..., e ela só funciona para valores
inteiros.
175
Em uma empresa existe uma política de acréscimo na remuneração dos
funcionários de acordo com a quantidade de dependentes. Ela funciona da
seguinte forma:
• Caso o funcionário não tenha nenhum dependente, seu salário final terá
um acréscimo de 5%;
• Caso o funcionário tenha 1, 2 ou 3 dependentes, o salário final terá um
acréscimo de 10%;
• Caso o funcionário tenha 4, 5 ou 6 dependentes, o seu salário final terá um
acréscimo de 15%;
• Caso o Funcionário tenha mais de 6 dependentes, o salário final terá um
acréscimo de 18%.
Escreva um algoritmo que receba o nome do funcionário, qual seu salário,
qual sua quantidade de dependentes e qual o seu novo salário.
176
Algoritmo “dependentes”
Var
fimalgoritmo
177
Escreva um algoritmo que receba a NP1 e NP2, calcule a média
do aluno e de acordo com sua nota, mostre qual a sua
classificação.
Lembre-se: Como estamos trabalhando com números reais, não
poderemos usar o “escolha caso”
178
Escreva um algoritmo que receba a quantidade de gols de uma
partida. Após, calcule a diferença da quantidade de gols que
ocorreram na partida e classifique o tipo de partida de acordo
com a tabela abaixo:
• Caso a diferença seja de 1, 2 ou 3 gols, tivemos uma partida
normal;
• Caso a diferença seja 0, tivemos um empate;
• Caso a diferença for 4 gols ou mais, tivemos uma goleada.
Escreva o código utilizando a estrutura “se” e depois utilizando a
estrutura “escolha”.
179
algoritmo "semnome"
var ti1, ti2, diferenca: inteiro
inicio
Escreval ("Quantidade de gols do time 1")
leia(ti1)
Escreval ("Quantidade de gols do time 2")
leia(ti2)
diferenca <- abs(ti1 - ti2)
escolha diferenca
caso 0
escreval("empate")
caso 1,2,3
escreval("Partida Normal")
outrocaso
escreval("Goleada")
fimescolha
fimalgoritmo
180
181
Estruturas de repetição são usadas para que determinado
bloco de comandos seja executado diversas vezes. A
garantia de parada da repetição ocorre por meio de uma
condição que é verificada a cada nova iteração.
Dependendo do tipo de estrutura de repetição utilizado, o
bloco de comandos é executado pelo menos uma vez.
A estrutura de repetição para utiliza variáveis de controle
que definem exatamente o número máximo de vezes que a
sequência de instruções será executada.
182
Vamos começar com um exemplo de um algoritmo
genérico
183
Estrutura do Enquanto
184
Escreva um algoritmo que conte de 0 até 10. Utilize o
“Enquanto”.
Obs: Execute com o Timer para você ver o Enquanto em
funcionamento
185
186
187
188
189
190
191
Prática 04
Escreva um algoritmo que mostre na tela
todos números pares de 10 até 0.
Utilize o “Enquanto”.
Obs: Execute com o Timer para você ver o
Enquanto em funcionamento
192
193
Escreva um algoritmo onde o usuário entre
com o valor e escreva na tela em ordem
decrescente os números pares.
194
Algoritmo “exerc”
Var
Cont: inteiro
Inicio
Escreval (“digite um num)
Leia (num)
Enquanto cont >=0 faca
Se (cont%2=0)
Escreval (cont)
Fimse
Cont <- cont -1
Fimenquanto
fimalgoritmo
195
Prática 05
Escreva um algoritmo que conte de 0 até
um número que o usuário queira. Detalhe, o
usuário também escolherá a forma de como
irá ocorrer o salto.
Utilize o“Enquanto”.
Obs: Execute com o Timer para você ver o
Enquanto em funcionamento
196
fimalgoritmo
197
Pratica 06
Utilize o Enquanto
198
199
Mas e se eu quisesse que o programa execute de
forma indeterminada e não apenas 5 vezes?
Nesse caso, o usuário deve ser consultado
quando o algoritmo deve finalizar.
Escreva esse algoritmo agora
200
Tela de execução no prox slide
201
202
Agora vamos incrementar a
prática 06
203
Algoritmo “ex”
fimalgoritmo
204
Prática 07
Aproveitando o último algoritmo
feito, ache o menor valor
digitado
205
Prática 08
206
FimEnquanto
FimAlgoritmo
207
Existe um problema quando se aprende
estrutura de repetição.
Chamamos de Looping Infinito
Vamos ver como solucioná-lo
208
Vamos utilizar o exemplo que já vimos
anteriormente. Agora retire a linha sublinha e
execute o programa. Veja o que acontece.
209
Para parar o looping, Clique em :
210
Exercício Contagem Inteligente
A contagem inteligente vai funcionar da seguinte maneira:
Exemplo: Se eu colocar de 1 a 6, o programa ira contar de
1 a 6...
Continua...
211
Continuando...
Exemplo: Se eu colocar de 8 a 0, ele vai detectar que o
primeiro número inserido é maior que o segundo e por isso vai
mostrar uma contagem regressiva
Por isso o seu programa fará uma contagem inteligente. Se o
menor valor estiver no início, será feito uma contagem
progressiva. Caso contrário, será feito uma contagem
regressiva.
212
Exercício O melhor aluno da Turma
Escreva um algoritmo que receba a quantidade de alunos
de uma turma. Depois, receba o nome e a média de cada
aluno. No final, exiba na tela qual o melhor aluno e sua
média.
Exemplo:
213
214
215
Escreva um algoritmo que some os 5
primeiros números digitados:
Utilizando o Enquanto, teríamos
216
217
Escreva um algoritmo que some n números digitados pelo
usuário de forma que a execução do programa somente
será encerrada quando o usuário quiser. Ao final,
apresente a soma de todos valores digitados.
Utilize o Repita
Observe como o programa irá executar na próxima tela...
218
219
220
Escreva um algoritmo que conte de 1 até
10.
Utilize a estrutura REPITA
221
222
Escreva um algoritmo que mostre a tabuada
de um número.
Utilize o REPITA
223
Tela de execução no prox slide...
224
225
Escreva um algoritmo que mostre a
Quantidade de números negativos de 05
números digitados pelo usuário.
Utilize o REPITA
226
)
227
Calcule o Fatorial de um número.
Lembre-se: Utilize o REPITA
Algumas definições são:
• 1! = 1
• 0! = 1
Exemplos:
• 3! = 3 x 2 x 1 = 6
• 4! = 4 x 3 x 2 x 1 = 24
• 6! = 6 x 5 x 4 x 3 x 2 x 1 = 720
228
Tela de execução no prox slide...
229
230
Agora vamos aproveitar o código já escrito e
Incrementa-lo de forma que o programa não
encerre após o calculo do primeiro Fatorial.
O usuário deve ser consultado se deseja ou
não encerrar a execução.
231
Algoritmo “fatorial”
fimalgoritmo
232
Escreva um Algoritmo que faça uma contagem inteligente
que vai funcionar da seguinte maneira:
Exemplo: Se eu colocar de 1 a 6, o programa ira contar de
1 a 6...
Utilize o REPITA
233
Algoritmo “contagemprogressiva”
234
Escreva um algoritmo para verificar se determinado
número é um número primo ou não. Utilize o REPITA
Relembrando:
Números primos são os números naturais que têm apenas dois divisores diferentes:
o 1 e ele mesmo.
Exemplos:
1) 2 tem apenas os divisores 1 e 2, portanto 2 é um número primo.
2) 17 tem apenas os divisores 1 e 17, portanto 17 é um número primo.
3) 10 tem os divisores 1, 2, 5 e 10, portanto 10 não é um número primo.
Observações:
=> 1 não é um número primo, porque ele tem apenas um divisor que é ele
mesmo.
=> 2 é o único número primo que é par.
235
236
Construa um algoritmo onde o programa escrito funcione como
descrito abaixo:
Se pressionar 1, o programa irá contar de 1 até 10;
Se pressionar 2, o programa irá contar de 10 até 1;
Se pressionar 3, o programa será encerrado.
Veja um Exemplo de tela no próximo slide...
237
238
239
Faça um programa que receba as informações descritas no
menu abaixo. O programa deve ser executado até que o
usuário diga que não quer mais executar. Ao final, ele deve
informar quantos homens com mais de 18 anos e cabelos
castanhos existem e quantas mulheres são loiras e estão
entre 25 e 30 anos.
No prox slide temos a tela final do programa...
240
241
242
Antes de iniciarmos a terceira parte de Estruturas
de repetição, vamos relembrar o que já foi visto...
No prox slide veremos dois exemplos de um programa que
conta de 1 até 10. Um utilizando enquanto e outro
utilizando repita.
243
Relembrando...
244
A última estrutura de repetição que iremos ver é a estrutura
PARA.
Para compararmos, vamos aproveitar o a estrutura do programa
que conta de 1 até 10, só que agora utilizaremos o PARA.
245
Escreva um algoritmo que conte de 1 até 10.
Lembre-se, como o passo utilizado vai ser 1, é sua
opção declará-lo ou não.
Utilize a estrutura PARA
246
247
Escreva um algoritmo que mostre apenas
os números impares contidos entre 1 e 10.
Utilize a estrutura PARA
248
249
Escreva um algoritmo que conte de 10 até 1
Utilize a estrutura PARA.
250
251
Agora vamos comparar um algoritmo feito
com o ENQUANTO e outro com o PARA.
Façam um algoritmo que some o conteúdo
dos 5 primeiros números digitados.
252
Utilizando o Enquanto
253
Utilizando o PARA
254
Percebemos que a Estrutura PARA
substituiu a Estrutura ENQUANTO sem
nenhum problema.
Entretanto, existe uma situação que ela não
pode ser utilizada...
Vamos ver o exemplo do próximo slide...
255
Faça um algoritmo que some diversos
valores digitados pelo usuário.
Obs: o usuário deve ser consultado
perguntando se o programa deve encerrar o
recebimento dos valores ou se deve
continuar
Utilize a estrutura Repita
256
257
Nesses casos onde não sabemos a
quantidade de vezes que o algoritmo será
executado, não podemos utilizar a estrutura
PARA.
258
Escreva um algoritmo que conte de 0 até
um número digitado, mostrando para o
usuário apenas os números pares!
Utilize o PARA
259
260
Escreva um algoritmo que conte de um
número digitado até 0, mostrando para o
usuário apenas os números pares!
Utilize o PARA
261
262
Escreva um algoritmo que receba 6 valores
e mostre na tela quantos valores digitados
estão entre 0 e 10
263
)
264
Utilize o PARA
265
266
E se você quiser somar os impares mesmo
fora do intervalo de 0 a 10?
Faça esse algoritmo
267
Faça um algoritmo que irá fazer a combinação de
3 números digitados, de dois dígitos, conforme
exemplo acima. Utilize o PARA
268
269
O que é ?
É uma sucessão de números que, misteriosamente,
aparece em muitos fenômenos da natureza.
Descrita no final do século 12 pelo italiano Leonardo
Fibonacci, ela é infinita e começa com 0 e 1.
Os números seguintes são sempre a soma dos dois
números anteriores. Portanto, depois de 0 e 1, vêm 1, 2, 3,
5, 8, 13, 21, 34…
270
Faça um algoritmo que mostre os 15
primeiros valores da série de Fibonacci
Lembre-se, cada termo é calculadopela
soma dos dois anteriores.
271
Faça um algoritmo que receba 5 valores e no final mostre a
soma dos valores, a média entre os valores, quantos são
divisíveis por 5, quantos são nulos e a soma apenas dos
números pares.
Veja a tela de execução do programa no próximo slide
272
273
Avaliações
________________________________________________________________________________________________________________________________
2º AV: 12/Junho
Assunto da prova: verificar nos slides
2ºChamada da 2ºAV: 19/Junho
_______________________________________________________________________________________________________________________________________
3º AV (AF): 19/Junho (ATENÇÃO PARA ESSA DATA)
Assunto: TUDO