universidade federal de uberlândia engenharia civil

26
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL Introdução à Algoritmos Professora: Fabíola Gonçalves.

Upload: oksana

Post on 12-Jan-2016

16 views

Category:

Documents


0 download

DESCRIPTION

Universidade Federal de Uberlândia Engenharia Civil. Introdução à Algoritmos. Professora: Fabíola Gonçalves. Agenda. Estruturas de repetição: Introdução; Comando enquanto ... faça ; Comando faça ... enquanto ; Comando repita ; Comando para. Estruturas de Repetição. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Universidade Federal de Uberlândia Engenharia Civil

UNIVERSIDADE FEDERAL DE UBERLÂNDIA

ENGENHARIA CIVIL

Introdução à Algoritmos

Professora: Fabíola Gonçalves.

Page 2: Universidade Federal de Uberlândia Engenharia Civil

AGENDA

Estruturas de repetição: Introdução; Comando enquanto ... faça; Comando faça ... enquanto; Comando repita; Comando para.

2

Page 3: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃO

Permite que uma sequência de comandos seja executada repetidamente, enquanto uma determinada condição seja satisfeita.

Existem 2 tipos:

Condicional – repetição ocorre enquanto a condição for verdadeira; Ex.: ENQUANTO e REPITA.

Incondicional – tem um número pré-determinado de repetições. Ex.: PARA.

Page 4: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃO - COMANDO ENQUANTO

Comando enquanto. Linguagem Algorítmica:

enquanto condição faça

comando-A1;comando-A2;......comando-An;

fim-enquanto

Page 5: Universidade Federal de Uberlândia Engenharia Civil

A condição é testada no início da repetição; Enquanto a condição for Verdadeira, o bloco de

comandos é executado; O bloco de comandos pode ser executado 0 ou +

vezes; Para a execução quando a condição se tornar Falsa.

5ESTRUTURAS DE REPETIÇÃO - COMANDO ENQUANTO

Page 6: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃO - COMANDO ENQUANTO

Exemplo 1:...leia (SENHA);enquanto (SENHA # “XYZ”) faça escreva (“Senha inválida”); escreva (“Digite a senha novamente”); leia (SENHA);fim-enquanto...

Como o teste da condição é realizado no início do laço, a sequência de comandos será executada zero ou mais vezes, dependendo da avaliação da condição.

Page 7: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃO - COMANDO ENQUANTO

Exemplo 2:Algoritmo EXEMPLO_DE_ENQUANTO {escrever os números inteiros de 1 a 100}

N : inteiroinício N <-1; enquanto N ≤ 100 faça escreva (N); N <-(N + 1); fim-enquantofim

O comando escreva será executado repetidas vezes enquanto a variável N possuir um valor igual ou inferior a 100.

O algoritmo terá como saída a sequência dos números inteiros de 1 a 100.

Page 8: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃO COMANDO ENQUANTO

Exemplo 3:Algoritmo EXEMPLO_ENQUANTO {calculo do quadrado de um número}numero : inteiro

inicio numero ← 1; enquanto numero # 0 faça

escreva(“o quadrado de”, numero, “ é: “ );escreva(numero^2);leia(numero);

fim-enquanto escreva(“FIM DO PROGRAMA”);fim

8

Page 9: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃO COMANDO ENQUANTO

Exemplo 4:Algoritmo EXEMPLO_ENQUANTO {soma valores}

valor, soma: inteiro;

iniciosoma <- 0; leia (valor);enquanto valor # -1 faça

soma <- (soma + valor);leia(valor);

fim-enquanto escreva(“O valor da soma é: ”, soma );

fim

9

Page 10: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃOCOMANDO ENQUANTO

Exercício:

1.Elabore um algoritmo para determinar o menor número inteiro fornecido pelo usuário. Considere que o número zero indica o fim da entrada de dados.

2.Achar o maior e o menor número de uma série de números positivos fornecidos pelo usuário.

10

Page 11: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃOCOMANDO FAÇA ... ENQUANTO

Sintaxe: faça

comando-A1;comando-A2;......comando-An;

enquanto <condição>;

Exemplo:numero ← 1;faça

escreva(“o quadrado de “, numero, “ é: “);escreva(numero^2);leia(numero);

enquanto numero ≠ 0;escreva(“FIM DO PROGRAMA”);

11

Page 12: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃOCOMANDO REPITA

A condição é testada no final da repetição; Enquanto a condição for Falsa, o bloco de

comandos é executado;

Lembrando que condição é uma expressão lógica sempre testada ao final de cada interação!

O bloco de comandos é executado pelo menos 1 vez.

Para a execução quando a condição se tornar Verdadeira.

12

Page 13: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃOCOMANDO REPITA-ATE Sintaxe:

repitacomando-A1;comando-A2;......comando-An;

ate <condição>

A1, A2, A3, ... , A4 serão executados pelo menos uma vez. Até que a condição seja testada e se torne ??

13

Page 14: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃOCOMANDO REPITA-ATE

Exemplo:numero ← 1;repita

escreva(“o quadrado de “, numero, “ é: “);

escreva(numero^2);leia(numero);

ate numero = 0escreva(“FIM DO PROGRAMA”);

Neste caso calcularemos o quadrado do número enquanto o usuário não entrar com um valor 0. Mas se ele entrar com 0 o que a algoritmo

imprimirá?

14

Page 15: Universidade Federal de Uberlândia Engenharia Civil

ESTRUTURAS DE REPETIÇÃOCOMANDO REPITA-ATE

O comando repita-até é equivalente ao comando enquanto-faça, vejam: 15

Page 16: Universidade Federal de Uberlândia Engenharia Civil

REPETIÇÃO POR VARIÁVEL DE CONTROLE

Número de repetições for previamente conhecido. Uso de contador para controlar o número de repetições.

Contador: uma variável do tipo inteiro.

Sintaxe do Comando:

para i de valor até l passo p façacomando-C1;comando-C2;......comando-An;

fim-para

OBS: Quando o passo p for =1 não é necessário colocar essa esta especificação

Page 17: Universidade Federal de Uberlândia Engenharia Civil

REPETIÇÃO POR VARIÁVEL DE CONTROLE

Exemplo:

Algoritmo LAÇO_CONTADORNUM,SOMA,CONT : inteiro;

início SOMA <-0; para CONT de 1 até 100 faça leia (NUM); SOMA <- (SOMA + NUM); fim-para escreva (SOMA);

fim

Fim_Algoritmo

Page 18: Universidade Federal de Uberlândia Engenharia Civil

REPETIÇÃO POR VARIÁVEL DE CONTROLE

Também conhecido como Controle por Contador o comando para é, na verdade, o comando enquanto utilizando uma variável de controle em uma notação compacta.

Neste caso sempre existirá uma inicialização de variável de controle

Um teste para verificar se a variável atingiu o limite E, ainda, um acréscimo na variável de controle

Page 19: Universidade Federal de Uberlândia Engenharia Civil

REPETIÇÃO POR VARIÁVEL DE CONTROLECOMANDO PARA

Exemplos:

para cont = 1 ate 9 passo 2 façaescreva(“O valor de cont é”, cont);

fim-paraPergunta: O que será impresso??

/* O que será impresso?*/para cont = 10 ate 1 passo -1 faça

escreva(“O valor de cont é”, cont );fim-para

19

Page 20: Universidade Federal de Uberlândia Engenharia Civil

REPETIÇÃO POR VARIÁVEL DE CONTROLECOMANDO PARA

Exercício:

-- Construa um algoritmo que calcule e imprima a somatória de N números (sendo N > 0). Considere como dados de entrada a quantidade de números a serem lidos e os valores dos respectivos números.

--Faça um algoritmo que, sem utilizar o operador de exponenciação, realize a operação X^Y, para qualquer X e Y fornecido pelo usuário.

Reescreva o algoritmo acima, utilizando as demais estruturas de repetição.

20

Page 21: Universidade Federal de Uberlândia Engenharia Civil

CONTROLE POR ENTRADA (FLAG)

Quando não conhecemos o número de repetições e este for determinado por um valor que será lido (flag); devemos utilizar um controle de repetições por entrada,

também conhecido como controle por sentinela.

Exemplo: este algoritmo lê um conjunto de números inteiros e exibe o valor médio dos mesmos. Obs: a condição de saída do laço será a leitura do

valor 0 (flag).

Page 22: Universidade Federal de Uberlândia Engenharia Civil

CONTROLE POR ENTRADA (FLAG)Algoritmo LAÇO_COM_FLAG

NUM,CONT,SOMA,MEDIA : inteiro;

início

SOMA <-0;

CONT <-0;

leia (NUM);

enquanto (NUM # 0) faça

SOMA <- (SOMA + NUM);

CONT <- (CONT + 1);

escreva(Entre com um valor ou entre com o sair e visualizar a media)

leia (NUM);

fim-enquanto

MEDIA <- (SOMA div CONT);

escreva (MEDIA);

fim

Fim_Algoritmo

Sentinela

Flag

Page 23: Universidade Federal de Uberlândia Engenharia Civil

EXERCÍCIOS

Qual a utilidade da estrutura de repetição? Em que consiste o controle de repetições por

contador? Em que consiste o controle de repetições por flag? Faça um algoritmo que mostre todos os números

inteiros de 1 a 50. Faça um algoritmo que mostre todos os números

inteiros pares de 2 a 100. Faça um algoritmo que gere a seguinte série: 10,

20, 30, 40, ..., 990, 1000. Escreva um algoritmo que leia três números e

imprima o maior deles.

Page 24: Universidade Federal de Uberlândia Engenharia Civil

EXERCÍCIOS

Faça o acompanhamento da execução do algoritmo abaixo e preencha a Tabela de Variáveis:

Page 25: Universidade Federal de Uberlândia Engenharia Civil

EXERCÍCIOS

Escreva um algoritmo que leia 10 números e imprima o maior deles.

Escreva um algoritmo que leia três números e os imprima em ordem crescente.

Escreva um algoritmo que leia uma certa quantidade de números e imprima o maior deles e quantas vezes o maior número foi lido. A quantidade de números a serem lidos deve ser fornecida pelo usuário. Assuma que o usuário sempre fornecerá um número positivo.

Page 26: Universidade Federal de Uberlândia Engenharia Civil