Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

Documentos relacionados
Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Algoritmos e Programação

Introdução a programação Comandos de repetição

Python - Comandos de Repetição

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

Universidade Veiga de Almeida Algoritmos e Linguagem I

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Programação de Computadores I. Linguagem C Estruturas de Repetição

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

INFORMÁTICA APLICADA AULA 05 ALGORITMOS

Programação I Estruturas de Repetição

3. Linguagem de Programação C

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Estruturas de Repetição. for() while() do-while() break; continue;

Laços de repetição for, while, do-while

... contador = contador + 1; //contador++; ... <fim_da_estrutura_de_repetição> soma = 0; <estrutura_de_repetição_com_variável_x> soma = soma + x;

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Programação II. Victor Amorim dos Santos

INSTRUÇÕES DE REPETIÇÃO

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

9. Comando de repetição com variável de controle (para.. de.. até.. faça)

Linguagem C (repetição)

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Algoritmos: Estruturas de Controle

Computação eletrônica: Estruturas de repetição

Programação de Computadores:

LINGUAGEM DE PROGRAMAÇÃO

Algoritmos e Programação (While Do While - Do) Prof. Me. Adelson Felipe Dias Nogueira

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

05/11/2018. Linguagem de Programação e Estruturada

Linguagem C ESTRUTURA DE CONTROLE

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

Programação científica C++

Programação de Computadores III

Aula 4 Oficina de Programação Algoritmos - Parte 3. Profa. Elaine Faria UFU

Aula 4 Estruturas de Controle

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

Linguagem C estruturas de repetição

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Repetição. Prof. César Melo

Aula 7 Oficina de Programação Estruturas de Repetição no C. Profa. Elaine Faria UFU

Estrutura Condicional

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Programação de Computadores III

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Fundamentos de programação

ECT1203 Linguagem de Programação

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Seleção Múltipla Laços (while, do-while, for) AULA 05

Estruturas de Controle

Algoritmos Estruturas de Controle

Linguagem de Programação C

para / for (com teste numérico) enquanto / while (com teste lógico no início) repita até que / do...while (com teste lógico no fim)

Algoritmos Estruturas de Controle

ESTRUTURAS DE CONTROLE

Aula 4. Comandos de Repetição. Prof. Filipe Mutz.

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

Estruturas de Repetição

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Programação de Computadores. Professor Ilaim Costa Junior

Estruturas de Repetição

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I)

ESTRUTURAS DE CONTROLE

Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM

C Comandos de Controle

Introdução à Ciência da Computação

Estruturas de Repetição Parte I ENQUANTO-FAÇA

Exercícios de Fixação Conteúdo das aulas 03 a 06

Exercícios Repetição

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Python 3.x Estrutura de Repetição while

Aula 4 Objetivos if/else while

Linguagem C Estruturas de Repetição

C Comandos de Controle

PROCESSAMENTO DA INFORMAÇÃO LAÇOS E REPETIÇÕES. Prof. Dr. Francisco Isidro Massetto

Estruturas de repetição

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Programação em C. Victor Amorim dos Santos

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

Introdução à Ciência da Computação

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Programação de Computadores IV. Estruturas de repetição Slides cedidos por Bruno Augusto Dorta Marques

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

Oficina de Python Prof. Me. José Carlos Perini

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

Introdução à Programação. Estruturas de Repetição

Estruturas de Repetição. João Medeiros FATERN

Algoritmos e Programação

Transcrição:

Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: estruturas de repetição While / Do While / For Prof. Renato Pimentel 1 Estruturas de repetição O real poder dos computadores está na sua habilidade em repetir uma operação, ou uma série de operações, muitas vezes. Esta repetição, denominada laço (loop), é um dos conceitos básicos da programação estruturada. 2 Prof. Renato Pimentel 1

Estruturas de repetição Utilização: trecho de um algoritmo precisa ser executado mais de uma vez: O número de repetições (ou iterações) pode ser fixo; O número de repetições pode estar atrelado a uma condição. 3 Estruturas de repetição Três tipos estruturas de repetição: 1. repetições ou iterações; Estrutura de repetição para número indefinido de repetições ou iterações: 2. Com teste (condição) no início. 3. Com teste (condição) no final. 4 Prof. Renato Pimentel 2

Estrutura de repetição com teste no início Análise de uma condição (variável ou expressão relacional / lógica) no início do laço. Repetição é feita enquanto tal condição for verdadeira. Situações em que condição é falsa no início da estrutura, antes que a primeira repetição seja executada: comandos não serão executados nenhuma vez. 5 Estrutura de repetição com teste no início Fluxograma... Laço Condição V Instrução(ões) F Fim... 6 Prof. Renato Pimentel 3

Estrutura de repetição com teste no início: Comando while em C Repete a sequência de comandos enquanto a condição for verdadeira. Forma geral: while (condição) instrução; Mais de um comando: usar chaves while (condição) { } sequência de instruções; Estrutura de repetição Estrutura de repetição 7 Estrutura de repetição com teste no início: Comando while em C Na execução do comando while, condição é avaliada e: Se for considerada verdadeira (possuir valor diferente de zero), a sequência de instruções será executada. Ao final da sequência, é feito novo teste da condição; Se condição for considerada falsa (valor igual a zero), sequência não é executada. 8 Prof. Renato Pimentel 4

Estrutura de repetição com teste no início: Comando while em C Comando while:...... while (condição) { sequência de instruções; }... Laço Enquanto (condição) V Instrução(ões) Fim... F 9 Estrutura de repetição com teste no início: Comando while em C Exemplo: mostrar na tela a sequência de inteiros de 1 a 100 Inviável: fazendo na mão : 10 Prof. Renato Pimentel 5

Estrutura de repetição com teste no início: Comando while em C Exemplo: mostrar na tela sequência de inteiros de 1 a 100 Usando while: 11 Estrutura de repetição com teste no início: Comando while em C num: contador (vai contar quantas vezes o laço será executado) 12 Prof. Renato Pimentel 6

Estrutura de repetição com teste no início: Comando while em C Inicializa o contador 13 Estrutura de repetição com teste no início: Comando while em C Incrementa o contador 14 Prof. Renato Pimentel 7

Estrutura de repetição com teste no início: Comando while em C Exemplo: criar um programa para ler 5 números e mostrar o resultado de sua soma 15 Estrutura de repetição com teste no início: Comando while em C Exemplo: criar um programa para ler 5 números e mostrar o resultado da soma de tais números E quando quisermos somar 100 números? Usar 100 variáveis? 16 Prof. Renato Pimentel 8

Estrutura de repetição com teste no início: Comando while em C Pequena melhoria: acumulador Uma só variável, val, para leitura dos dados Devo somar o valor de val à variável soma; val será reescrita no próximo scanf Variável soma é usada como acumulador, ou seja, armazenará o valor da soma a cada passo 17 Estrutura de repetição com teste no início: Comando while em C Versão correta, usando comando while 18 Prof. Renato Pimentel 9

Estrutura de repetição com teste no início: Comando while em C Versão correta, usando comando while Mantenho variável val para leitura dos dados Crio variável contagem para funcionar como contador Mantenho variável soma para atuar como acumulador Acumulo soma a cada repetição Incremento contagem a cada repetição 19 Estrutura de repetição com teste no início: Comando while em C Exemplo: imprimir inteiros entre dois valores a e b 20 Prof. Renato Pimentel 10

Estrutura de repetição com teste no início: Comando while em C Exemplo: imprimir inteiros entre dois valores a e b Neste exemplo, não há um número determinado de repetições em que o laço é executado, como nos casos anteriores. Quem define isto são os valores de a e b. 21 Estrutura de repetição com teste no início: Comando while em C Verdadeiro Falso 22 Prof. Renato Pimentel 11

Estrutura de repetição com teste no início: Comando while em C Exercício: escreva um programa onde, dados N inteiros, calcule a média destes números. O valor de N é dado pelo usuário. Imprima os valores lidos e a média calculada: 23 Estrutura de repetição com teste no final: Comando do-while em C Análise de uma condição (variável ou expressão relacional / lógica) ao final do laço. Repetição é feita enquanto tal condição for verdadeira. Diferença entre while e do-while: Comando while: é utilizado para repetir um conjunto de comandos zero ou mais vezes. Comando do-while: é utilizado sempre que o bloco de comandos deve ser executado ao menos uma vez. 24 Prof. Renato Pimentel 12

Estrutura de repetição com teste no final: Comando do-while em C Forma geral (obs.: sempre termina com ponto e vírgula - ;): do instrução; while (condição); Mais de uma instrução: usar chaves do { sequência de instruções; } while (condição); Estrutura de repetição Estrutura de repetição 25 Estrutura de repetição com teste no final: Comando do-while em C Comando do-while...... do { sequência de instruções; Laço } while (condição);... V Faça Instrução(ões) Enquanto (Condição)... F 26 Prof. Renato Pimentel 13

Estrutura de repetição com teste no final: Comando do-while em C Exemplo: menu de opções (exigindo opção válida): 27 Estrutura de repetição com teste no final: Comando do-while em C Exemplo: menu de opções (exigindo opção válida): enquanto valor digitado for diferente de 1, 2 ou 3, usuário do programa é forçado a entrar com novo valor 28 Prof. Renato Pimentel 14

Estrutura de repetição com teste no final: Comando do-while em C Verdadeiro Falso 29 Estrutura de repetição com teste no final: Comando do-while em C Exercício: escreva um programa que conta e mostra na tela o número de vezes em que o número 7 é digitado pelo usuário. O programa lê números inteiros até que o número -1 seja digitado. 30 Prof. Renato Pimentel 15

Relembrando: Estrutura de repetição para número definido de repetições Uso: quando número de vezes que um trecho de algoritmo deve ser repetido é conhecido. Pseudocódigo: Para <variável> de <ValorInicial> até <ValorFinal> [com passo n] faça <sequência de comandos> Fim Para 31 repetições Para utilizar o comando para é preciso ter 1)Uma variável para realizar a contagem; 2)Inicializar a variável de contagem com um valor; 3)Especificar uma condição para continuar no laço de repetição; 4)Incrementar a variável usada para contagem. 1 2 Para <variável> de <ValorInicial> até <ValorFinal> [com passo n] faça 3 <sequência de comandos> 4 Fim Para 32 Prof. Renato Pimentel 16

repetições Comandos no interior da estrutura são executados repetidamente enquanto ValorInicial <= variável <= ValorFinal Ao final de cada repetição, variável variável + n. n: passo ou incremento da estrutura. 33 repetições Fluxograma variável ValorInicial Laço <= ValorFinal? V Comando(s) F variável variável + passo... 34 Prof. Renato Pimentel 17

O loop ou laço for é usado para repetir um comando, ou bloco de comandos, diversas vezes: Sua forma geral em C é um pouco distinta do pseudocódigo, mas possui os mesmos elementos. Forma geral: for (inicialização; condição; incremento) comando; Mais de um comando: usar chaves for (inicialização; condição; incremento) { } sequência de comandos; 35 Exemplo: contagem de 1 a 10 36 Prof. Renato Pimentel 18

Exemplo: contagem de 1 a 10 Inicialização 37 Exemplo: contagem de 1 a 10 Condição 38 Prof. Renato Pimentel 19

Exemplo: contagem de 1 a 10 Incremento 39 Comparativo entre while e for: Comando while: repete uma sequência de comandos enquanto uma condição for verdadeira. Comando for: repete uma sequência de comandos n vezes. 40 Prof. Renato Pimentel 20

Comparativo entre while e for. 41 Comparativo entre while e for. Inicialização 42 Prof. Renato Pimentel 21

Comparativo entre while e for. Condição 43 Comparativo entre while e for. Incremento 44 Prof. Renato Pimentel 22

Ordem de execução dos comandos em estrutura de repetição for. Declaração: valor de i: lixo 45 Ordem de execução dos comandos em estrutura de repetição for. valor de i: 1 46 Prof. Renato Pimentel 23

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 1 Este é um comando de inicialização do contador. Executado somente uma vez dentro do laço 47 Ordem de execução dos comandos em estrutura de repetição for. valor de i: 1 Testa se i é menor ou igual a 10 (V) 48 Prof. Renato Pimentel 24

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 1 Mostra 1 na tela 49 Ordem de execução dos comandos em estrutura de repetição for. valor de i: 2 Incrementa o valor de i 50 Prof. Renato Pimentel 25

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 2 Incrementa o valor de i Observe que i=i+1 ocorreu somente após o fim da execução do comando dentro do laço. Ou seja, a variável somente é incrementada após cada repetição da sequência de comandos 51 Ordem de execução dos comandos em estrutura de repetição for. valor de i: 2 Testa se i é menor ou igual a 10 (V) 52 Prof. Renato Pimentel 26

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 2 Mostra 2 na tela 53 Ordem de execução dos comandos em estrutura de repetição for. valor de i: 3 Incrementa o valor de i 54 Prof. Renato Pimentel 27

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 3 Testa se i é menor ou igual a 10 (V) 55 Ordem de execução dos comandos em estrutura de repetição for. Após algumas etapas... valor de i: 10 Mostra 10 na tela 56 Prof. Renato Pimentel 28

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 11 Incrementa o valor de i 57 Ordem de execução dos comandos em estrutura de repetição for. valor de i: 11 Testa se i é menor ou igual a 10 (F) 58 Prof. Renato Pimentel 29

Ordem de execução dos comandos em estrutura de repetição for. valor de i: 11 Fim do laço. O valor de i permanece 11, caso não seja alterado. 59 Exemplo: imprimir valores entre a e b, incluindo a e b. 60 Prof. Renato Pimentel 30

Verdadeiro Falso 61 Exercício: escreva, usando for, um programa para calcular a soma dos números de 1 a 10. 62 Prof. Renato Pimentel 31

Omitindo parâmetros: no comando for, podemos omitir qualquer um de seus parâmetros: Inicialização; Condição; Incremento. 63 Omitindo parâmetros: no comando for, podemos omitir qualquer um de seus parâmetros. Exemplo: for sem inicialização. 64 Prof. Renato Pimentel 32

Omitindo parâmetros: no comando for, podemos omitir qualquer um de seus parâmetros. Cuidado: for sem condição: Omitir a condição cria um laço infinito (sempre verdadeiro) 65 Omitindo parâmetros: no comando for, podemos omitir qualquer um de seus parâmetros. Cuidado: for sem incremento: Omitir o incremento cria um laço infinito (porém, incremento pode ser feito dentro do laço). 66 Prof. Renato Pimentel 33

Aninhamento de estruturas de repetição Um comando de repetição utilizado dentro de outro; Semelhante ao visto para o comando if. Forma geral: repetição (condição 1) { [sequência de instruções 1]; repetição (condição 2) { } [sequência de instruções 2] repetição... 67 Aninhamento de estruturas de repetição Na forma geral vista na página anterior, repetição representa um dos três comandos de repetição (while, do while ou for). O programa começa os testes de condição pela condição 1. Caso condição seja não-nula (verdadeira), executa-se bloco de comandos a ela associado, e testa-se a condição 2. Assim, a sequência 2 somente será executada caso ambas as condições 1 e 2 sejam verdadeiras. Exemplo de aplicação prática: percorrer 2 conjuntos de valores em um programa. 68 Prof. Renato Pimentel 34

Aninhamento de estruturas de repetição Exemplo: escrever matriz identidade de tamanho 4 x 4. Usando for. 69 Aninhamento de estruturas de repetição Exemplo: escrever matriz identidade de tamanho 4 x 4. Usando while. 70 Prof. Renato Pimentel 35

Aninhamento de estruturas de repetição Observação: é possível o emprego de diferentes comandos de repetição em aninhamentos. 71 Estrutura de repetição: comando break em C Vimos que o comando break interrompe o comando switch, assim que uma das sequências de comandos de uma cláusula case é executada: Sem tal comando, as sequências de comandos de todas as cláusulas case posteriores também seriam executadas; Na realidade, break quebra a execução de qualquer bloco de comandos (definido pelas { }), interrompendo comando while, do-while ou for. 72 Prof. Renato Pimentel 36

Estrutura de repetição: comando break em C Exemplo: for sem condição visto anteriormente: 73 Estrutura de repetição: comando break em C Exemplo 2: valores de a até b, interrompendo se a=5. 74 Prof. Renato Pimentel 37

Estrutura de repetição: comando break em C Exemplo 2: valores de a até b, interrompendo se a=5. V F F V 75 Estrutura de repetição: comando continue em C O comando continue é semelhante ao break, uma vez que quebra a execução da sequência de comandos. Porém, o comando continue não interrompe comando while, do-while ou for, apenas quebra a sequência da repetição atual. 76 Prof. Renato Pimentel 38

Estrutura de repetição: comando continue em C Exemplo: escrever todos os números de 1 a 100 que não sejam múltiplos de 5. 77 Estrutura de repetição: comando continue em C Exemplo 2: valores de a até b, ignorando o valor 5. 78 Prof. Renato Pimentel 39

Estrutura de repetição: comando break em C Exemplo 2: valores de a até b, ignorando o valor 5. V F F V 79 Exercícios 1. Usando estruturas de repetição, escreva um programa em C que receba, para 6 alunos, 2 notas. Deve-se calcular a média aritmética destas duas notas, para cada aluno, além de mostrar a mensagem: Reprovado, se média for menor que 3; Exame, se média estiver entre 3 e 7; Aprovado, se média for maior ou igual a 7. 2. Escreva um programa que receba um número inteiro maior que 1, verifique e escreva se o número é primo ou não. Dica: utilize o resto de inteiros (operador %). Continua... 80 Prof. Renato Pimentel 40

Exercícios 3. Escreva um programa que calcule a área de um triângulo, dada sua base e altura. Use do-while, de maneira que a área só seja calculada quando ambas as medidas forem válidas (valores reais maiores que 0). 4. Escreva um programa em C que mostre os N primeiros números da sequência de Fibonacci, sendo os dois primeiros valores, f 1 = 0, e f 2 = 1, e termo geral F i = F i-1 + F i-2, i =2,..., N. O usuário deve entrar com o valor N. Continua... 81 Exercícios 5. Faça um programa que mostre as tabuadas dos números 1 a 10, usando estruturas de repetição aninhadas (assim como visto para os comandos if...else em C, é possível o aninhamento de laços de repetição usando for, while, ou do-while, em qualquer ordem). 82 Prof. Renato Pimentel 41

Referências ASCENCIO, A. F. G., CAMPOS, E. A. V. Fundamentos da Programação de Computadores. São Paulo: Prentice Hall, 2007. BACKES, A. Linguagem C: completa e descomplicada. Rio de Janeiro: Elsevier, 2013. TRAVENÇOLO, B. A. N. Notas de aula de Introdução à Programação e Computadores. 83 Prof. Renato Pimentel 42