Técnicas de
Desenvolvimento de
Algoritmos
Aula 8
Professor:
Ms. Douglas Almendro
Agrupando comandos
• Agora que já conhecemos os comandos de decisão e os
comandos de repetição, podemos interagir um com o
outro de forma que nossos algoritmos alcancem os
objetivos.
• Vamos trabalhar com alguns exemplos
Comandos de Repetição Aninhados
• Criar um algoritmo que calcule a soma de todos os
números inteiros de um intervalo dado pelo usuário.
Quando mostrar a resposta, perguntar ao usuário se
deseja começar novamente
Comandos de Repetição Aninhados
Algoritmo Soma de um Intervalo
inteiro inicio, fim, soma, i
caracter continua
início
faça
escreva(“Início do intervalo”)
leia(inicio)
escreva(“Fim do intervalo”)
leia(fim)
soma=0
para(i=inicio; i<=fim; i++)
Repetição
soma = soma + i
Interna
fim para
escreva(“A soma deu “ + soma)
escreva(“Quer continuar (S/N)”);
leia(continua)
enquanto(continua==‘s’ ou continua == ‘S’)
fim
Repetição
Externa
Comandos de Repetição e Decisão
• Uma escola quer saber qual o aluno mais alto da turma.
Para isso, desenvolva um programa que leia a altura
dos 50 alunos de uma turma e imprima qual a maior
altura cadastrada.
Comandos de Repetição e Decisão
Algoritmo Maior Altura
real altura, maior
inteiro i
início
maior=0
para(i=1; i<=50; i++)
escreva(“Qual a altura do aluno “ + i)
leia(altura)
se(altura > maior)
maior = altura
fim se
fim para
escreva(“A maior altura digitada foi “ + maior)
fim
Usando Métodos
• Criar um método de nome fatorial que recebe um
número inteiro e retorna o seu fatorial. O fatorial de um
número é definido como o produto de todos os seus
antecessores inteiros positivos não nulos.
• 5! = 5.4.3.2.1 = 120
• 4! = 4.3.2.1 = 24
Usando Métodos
função fatorial(inteiro valor)
inteiro resp, i
resp=1
para(i=valor; i>=1; i=i-1)
resp = resp * i
fim para
retornar resp
Algoritmo Fatorial
fim função
inteiro numero
início
escreva(“Entre com um valor”)
leia(numero)
escreva(“O fatorial vale “ + fatorial(numero)
fim
Métodos com repetição
• Criar um método de nome ehPrimo que receba como
parâmetro um número inteiro e retorna true se o mesmo
for primo ou false se não for
Obs: Números primos são aqueles que são divisíveis
apenas por 1 e por ele mesmo (não tendo outros
divisores)
Métodos com repetição
função ehPrimo(inteiro num)
cont = 0;
para(i=1; i<=num; i=i+1)
se(num % i == 0)
cont = cont + 1
fim se
fim para
se(cont<=2)
retornar true
senão
retornar false
fim se
fim função
Algoritmo: Calcula se um número é primo
inteiro num
início
escreva(“Entre com o número: “)
leia(num)
se( ehPrimo(num) )
escreva(“O número é primo”)
senão
escreva(“O número não é primo”);
fim se
fim
Exercícios
1) Escreva um método que receba um número inteiro positivo e
retorne a soma dos N primeiros números pares maiores do que
zero (Por exemplo, se for informado N = 4, o algoritmo deve
retornar o valor 20, pois 2 + 4 + 6 + 8 = 20).
2) Desenvolva um método de nome potencia que receba como
parâmetro um número real como base e um número inteiro como
expoente e implemente a potência de base por expoente.
Exemplo: base = 2, expoente = 3 [2³] = 2.2.2 = 8
3) Criar um programa que leia o nome e salário de 10 empregados e
ao final da leitura, imprima o nome e salário do funcionário que
ganha mais. Em seguida, pergunte se o usuário quer recomeçar a
pesquisa.
Download

exercicios 29/09