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

Documentos relacionados
Laços. - receba o dinheiro - Pergunte qual refrigerante o cliente deseja - forneça o refrigerante - devolva o troco

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

Aula 14: Repetição (Parte 2)

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

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

Linguagem C Estruturas de Repetição

Aula 15: Repetição (Parte 3)

Aula 16: Laços aninhados e desvios

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

Algoritmos e Programação

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

Estruturas de repetição

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

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

LINGUAGEM C: COMANDOS DE REPETIÇÃO

O laço for é geralmente usado quando queremos repetir algo por um número fixo de vezes

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

Computação eletrônica: Operadores, expressões e funções

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

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

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

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

Aula 14: Estruturas de Seleção e Controle em C

Linguagem C. Prof.ª Márcia Jani Cícero

1ª Lista de Exercícios

MC-102 Aula 06 Comandos Repetitivos

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973.

Computação eletrônica: Funções

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Técnicas de Programação: Comandos de Controle de DEE UFPB

Estruturas de Repetição

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

LP II Estrutura de Dados

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

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Linguagem C ESTRUTURA DE CONTROLE

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

Computação eletrônica:

SSC304 Introdução à Programação Para Engenharias. Controle de Fluxo. GE4 Bio

C Comandos de Controle

C Comandos de Controle

3. Linguagem de Programação C

Aula 10: Manipulação do fluxo de laços

Aula 05: Condicionais (if / else)

Aula 10 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

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

Linguagem C (repetição)

Aula 5 - Mais C e repetição

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

Working 04 : Conceitos Básicos III

Linguagem C Controle de Fluxo

PCI- Estrutura de Repetição II. Profa. Mercedes Gonzales Márquez

3.1 - Funções para manipular dados de entrada e saída padrão

Aula 9 Oficina de Programação Matrizes. Profa. Elaine Faria UFU

MC102 Algoritmos e Programação de Computadores

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Estruturas de Repetição

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

Estruturas de Controle

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

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Aula 2 Comandos de Decisão

Sintaxe Básica de Java Parte 2

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

Exercícios Repetição

ESTRUTURAS DE CONTROLE

Linguagem C Estruturas de Repetição

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

Estrutura Condicional

Disciplina de Algoritmos e Programação

Programação Estruturada

Estruturas de repetição. Objetivos: - Compreender diversos tipos de comandos de repetições disponíveis na linguagem C.

Algoritmos e Programação

Linguagens de programação. Introdução ao C (continuação)

Aula 8: Estruturas de Repetição: O comando while

ECT1203 Linguagem de Programação

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

Introdução à Programação. Ciclos 1ª parte

Controle de Fluxo Comandos de repetição: while e do-while

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Linguagem C estruturas de repetição

Comandos de Repetição -Laços

Estruturas de Controle de Fluxo Estruturas de Repetição. Givanaldo Rocha

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

Linguagem C vetores. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Aula 15 Variáveis Indexadas (vetores)

Estruturas de Repetição

Comando Switch. Embora a escada if else-if possa executar testes de várias maneiras, ela não é de maneira nenhuma elegante.

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

Apresentar os comandos de controle associados com as estruturas de repetição.

Algoritmos e Programação

Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva

Python 3.x Estrutura de Repetição while

Abaixo vemos um programa que coloca os primeiros 100 números inteiros na tela:

Transcrição:

Computação eletrônica: Estruturas de repetição Gurvan Huiban ghuiban@cin.ufpe.br

Plano de aula 1 2 A estrutura while 3 A estrutura do-while 4 Observações

Estruturas de repetição Repetir a execução de um conjunto de instruções por um número de vezes: Fixo; Variável. Na linguagem C: for, while, do-while. Exemplos Somar os n primeiros números ímpares; Repetir um menu até o usuário digitar x.

1 2 A estrutura while 3 A estrutura do-while 4 Observações

Exemplo: n i=1 i Soma de 1 até 10 Mostrar a soma dos n primeiros inteiros, para n de 1 até 10. De que precisamos? Realizar um grande número de operações

Soma de 1 até 10: Solução força bruta main() printf("valor da soma ate 1: %d\n", 1); printf("valor da soma ate 2: %d\n", 1+2); printf("valor da soma ate 3: %d\n", 1+2+3); printf("valor da soma ate 4: %d\n", 1+2+3+4); printf("valor da soma ate 5: %d\n", 1+2+3+4+5); printf("valor da soma ate 6: %d\n", 1+2+3+4+5+6); printf("valor da soma ate 7: %d\n", 1+2+3+4+5+6+7); printf("valor da soma ate 8: %d\n", 1+2+3+4+5+6+7+8); printf("valor da soma ate 9: %d\n", 1+2+3+4+5+6+7+8+9); printf("valor da soma ate 10: %d\n",1+2+3+4+5+6+7+8+9+10); Problemas Realizamos varias vezes as mesmas somas (1+2+3...) Código muito extenso Código difícil copiar-colar

Soma de 1 até 10: Variável acumulando a soma main() int soma = 0; soma = soma + 1; printf("valor da soma ate 1: %d\n", soma); soma = soma + 2; printf("valor da soma ate 2: %d\n", soma); soma = soma + 3; printf("valor da soma ate 3: %d\n", soma);... soma = soma + 8; printf("valor da soma ate 8: %d\n", soma); soma = soma + 9; printf("valor da soma ate 9: %d\n", soma); soma = soma + 10; printf("valor da soma ate 10: %d\n", soma); Problemas Código muito extenso Código difícil copiar-colar

Soma de 1 até 10: Código copiável int main(void) int soma = 0; int i = 1; i = i+1; i = i+1; i = i+1; i = i+1; i = i+1;... Problemas Código muito extenso

Soma de 1 até 10: Com estrutura for Programa: Mostrar a soma dos n primeiros inteiros, para n de 1 até 10 int main(void) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) return 0;

Sintaxe da estrutura de repetição for Sintaxe for (inicializacoes; condicoes; incrementos) sequencia de comandos Inicializações: valores iniciais das variáveis; Condições: condições para continuar a execução do laço (expressão lógica); Incrementos: incrementação das variáveis; Sequência de comandos: comandos a serem repetidos.

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela soma 0 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela soma 0 i Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela soma 0 i Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Execucao da inicializacao printf("fim do programa"); Tela soma 0 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Verdadeiro => Execucao dos comandos printf("fim do programa"); Tela soma 0 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela soma 0 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela soma 01 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela Valor da soma ate 1: 1 soma 01 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Fim dos comandos associados ao for. Voltando no for printf("fim do programa"); Tela Valor da soma ate 1: 1 soma 01 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela Valor da soma ate 1: 1 soma 01 i 1 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Execucao do incremento printf("fim do programa"); Tela Valor da soma ate 1: 1 soma 01 i 12 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Verdadeiro => Execucao dos comandos printf("fim do programa"); Tela Valor da soma ate 1: 1 soma 01 i 12 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Fim dos comandos associados ao for. Voltando no for printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 soma 01 3 i 12 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Execucao do incremento printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 soma 01 3 i 12 3 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Verdadeiro => Execucao dos comandos printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 soma 01 3 i 12 3 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Fim dos comandos associados ao for. Voltando no for printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 soma 01 36 i 12 3 Memória

Soma de 1 até 10: Passo a passo (início) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Etc. printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 soma 01 36 i 12 34 Memória

Soma de 1 até 10: Passo a passo (fim) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 Valor da soma ate 4: 10 Valor da soma ate 5: 15 Valor da soma ate 6: 21 Valor da soma ate 7: 28 Valor da soma ate 8: 36 Valor da soma ate 9: 45 soma 55 i 10 Memória

Soma de 1 até 10: Passo a passo (fim) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 Valor da soma ate 4: 10 Valor da soma ate 5: 15 Valor da soma ate 6: 21 Valor da soma ate 7: 28 Valor da soma ate 8: 36 Valor da soma ate 9: 45 Valor da soma ate 10: 55 soma 55 i 10 Memória

Soma de 1 até 10: Passo a passo (fim) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Fim dos comandos associados ao for. Voltando no for printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 Valor da soma ate 4: 10 Valor da soma ate 5: 15 Valor da soma ate 6: 21 Valor da soma ate 7: 28 Valor da soma ate 8: 36 Valor da soma ate 9: 45 Valor da soma ate 10: 55 soma 55 i 10 Memória

Soma de 1 até 10: Passo a passo (fim) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // Execucao do incremento printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 Valor da soma ate 4: 10 Valor da soma ate 5: 15 Valor da soma ate 6: 21 Valor da soma ate 7: 28 Valor da soma ate 8: 36 Valor da soma ate 9: 45 Valor da soma ate 10: 55 soma 55 i 11 10 Memória

Soma de 1 até 10: Passo a passo (fim) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) // False => Pular os comandos e continuar printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 Valor da soma ate 4: 10 Valor da soma ate 5: 15 Valor da soma ate 6: 21 Valor da soma ate 7: 28 Valor da soma ate 8: 36 Valor da soma ate 9: 45 Valor da soma ate 10: 55 soma 55 i 11 10 Memória

Soma de 1 até 10: Passo a passo (fim) int soma = 0; int i; for (i = 1; i <= 10; i = i+1) printf("fim do programa"); Tela Valor da soma ate 1: 1 Valor da soma ate 2: 3 Valor da soma ate 3: 6 Valor da soma ate 4: 10 Valor da soma ate 5: 15 Valor da soma ate 6: 21 Valor da soma ate 7: 28 Valor da soma ate 8: 36 Valor da soma ate 9: 45 Valor da soma ate 10: 55 Fim do programa soma 55 i 11 10 Memória

for: Passos de execução for (inicializacoes; condicoes; incrementos) sequencia de comandos 1 Inicializações; 2 Verificação das condições; 3 Se verdadeiras: sequência de comandos; 4 Incrementos; 5 Verificação das condições; 6 Se verdadeiras: sequência de comandos; 7...

Exercícios Entrar com um inteiro n, e imprimir na tela os números ímpares menores ou iguais a n; Faça um programa que imprima em ordem decrescente todos os valores inteiros maiores que zero a partir de um número fornecido pelo usuário;

Observação: for Observações Não tem ; no fim da linha do for; Se tiver uma instrução só, as chaves e são opcionais; É possível usar caracteres no lugar de inteiros: for(c= a ; c <= z ; c++) printf("o valor ASCII de %c e:%d\n",c,c);

Recomendação: for Usar a estrutura for quando a quantidade de laços é previsível no momento da execução; Nos outros casos, usar uma estrutura while ou do-while.

A estrutura while 1 2 A estrutura while 3 A estrutura do-while 4 Observações

A estrutura while Estrutura while Sintaxe while (expressao_de_teste) sequencia de comandos Repetição com a estrutura while Usa apenas uma expressão de teste; Se tiver uma instrução só, as chaves são opcionais; Mais apropriado que a estrutura for em situações em que o laço pode ser terminado inesperadamente, em consequência das operações do corpo do laço; O corpo do laço será executado sempre que a expressão for verdadeira.

A estrutura while while: Passos de execução while (expressao_de_teste) sequencia de comandos 1 Verificação da expressão_de_teste; 2 Se verdadeira: sequência de comandos; 3 Verificação da expressão_de_teste; 4 Se verdadeira: sequência de comandos; 5...

A estrutura while while: Exemplo Programa: Imprimir a tecla digitada até o usuário digitar x: printf("entre com um caracter (x para sair): "); scanf(" %c", &c); while(c!= x ) printf("digitou o caracter %c\n",c); printf("entre com outro caracter (x para sair): "); scanf(" %c", &c);

A estrutura while while: Exercícios Exercício: simular um for Faça um programa usando a estrutura while que imprima em ordem decrescente todos os valores inteiros maiores que zero a partir de um número fornecido pelo usuário. Exercício: Algarismos Escreva um programa para determinar o número de algarismos de um número inteiro positivo dado.

A estrutura do-while 1 2 A estrutura while 3 A estrutura do-while 4 Observações

A estrutura do-while Estrutura do-while Sintaxe do sequencia de comandos while (expressao de teste)

A estrutura do-while do-while: Descrição Repetição com a estrutura do-while Como a estrutura while, é usado quando a quantidade de repetições não é previsível no momento da execução; Se tiver uma instrução só, as chaves são opcionais; Diferente do while, a expressão de teste fica no fim da estrutura; Repetição da sequência de comandos até a expressão_de_teste ser false; Consequentemente, o laço é sempre executado pelo menos uma vez.

A estrutura do-while do-while: Passos de execução do sequencia de comandos while (expressao de teste) 1 Sequência de comandos; 2 Verificação da expressão_de_teste; 3 Se verdadeira: sequência de comandos; 4 Verificação da expressão_de_teste; 5...

A estrutura do-while Exercício: Jogo de sorte Escrever um programa em C que peça ao jogador para adivinhar o número da sorte (entre 0 e 100) gerado aleatoriamente pelo programa. O jogador vai entrando com números, e o programa vai informando se o número do jogador é maior ou menor que o número da sorte. Quando o jogador acertar o número, o programa deve imprimir ACERTOU e informar o número de tentativas do jogador. Para gerar um número entre 0 e 100, use o comando: num = rand()%100;

Observações 1 2 A estrutura while 3 A estrutura do-while 4 Observações

Observações Estruturas aninhadas Obviamente, estas estruturas podem ser aninhadas... Por exemplo: do sequencia de comandos (1) for (i=n1; i <= n2; i++) sequencia de comandos (1.1) sequencia de comandos (2) while (expressao_de_teste);

Observações Repetições aninhadas: ordem de execução do sequencia de comandos (1) for (i=n1; i <= n2; i++) sequencia de comandos (1.1) sequencia de comandos (2) while (expressao_de_teste); 1 Sequência de comandos (1); 2 Execução da estrutura for: 1 i = n1 2 Verificação se i n2; 3 Se verdadeira: sequência de comandos (1.1); 4... 3 Sequência de comandos (2); 4 Verificação da expressão_de_teste; 5 Se verdadeira: sequência de comandos(1); 6 Execução da estrutura for:

Observações Exercício: Desenho Exercício: Estrelas Usando apenas uma vez os comandos printf("."), printf("*") e printf("\n") e usando laços aninhados, faça o seguinte aparecer na tela. *****.****..***...**...*...

Observações Exercício: Tabuada Tabuadas de 1 até 5 Imprimir na tela as tabuadas de 1 até 5 da forma seguinte:

Observações break e continue O comando break O comando break causa a saída imediata do laço. O comando continue Pula o código que estiver abaixo e força a próxima iteração do laço. Observações Podem ser usado no corpo de qualquer estrutura (for, while, do-while); Se o break ou o continue estiver em laços aninhados, afetará somente o laço mais interno onde ele está.

Observações break e continue: Recomendação Evitar o uso dos comandos break e continue Deve ser evitado, pois pode causar dificuldade de leitura e confusão na manutenção o programa. Exemplo while (1) printf("digite um numero maior que zero: "); scanf("%d",&num); if(num<0) printf("numero errado\n"); continue; printf("numero correto\n");