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.