INF1005: Programação 1. Repetições. 08/03/10 (c) Paula Rodrigues 1

Documentos relacionados
Capítulo 3: Repetições. Pontifícia Universidade Católica Departamento de Informática

Capítulo 5: Repetições

INF 1005 Programação I

Waldemar Celes e Roberto Ierusalimschy. 29 de Fevereiro de 2012

controle de fluxo repetições iterativas

Introdução à Engenharia ENG1000

Introdução à Algoritmos INF 1005 e INF Programação I

MC102 Algoritmos e Programação de Computadores

INF1005: Programação 1. Condicionais. 08/03/10 (c) Rogério Rodrigues 1

Introdução à Programação

INF1005: Programação 1. Arquivos. 02/05/10 (c) Paula Rodrigues 1

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

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

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

Aula 14: Repetição (Parte 2)

Cap. 3 Entrada e Saída e Controle de Fluxo

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Laboratório 3 Comandos de repetição while, do-while e for

Introdução a Programação de Jogos

SSC300- Linguagens de Programação e Aplicações Profa Vânia de Oliveira Neves. ICMC/USP São Carlos

Estruturas de repetição

MC-102 Aula 06 Comandos Repetitivos

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

Linguagem C (repetição)

Algoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição

Introdução à Programação

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

Estruturas de Repetição

Capítulo 4: Condicionais

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Estruturas de Repetição

Algoritmos e Ciclo de Desenvolvimento Aula 02: 01/03/2012

Estruturas de Repetição

Módulo 3 Controle de Fluxo

Vejamos agora mais alguns exemplos de problemas envolvendo seqüência de números.

Laboratório de 13 de maio de 2019

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

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

Exercícios Repetição

Aula 15: Repetição (Parte 3)

INF1005: Programação 1. Vetores. 02/05/10 (c) Paula Rodrigues 1

Lógica de Programação I

Fundamentos de Programação 1

Programação de Computadores II. Cap. 4 Funções

CCO 016 / COM 110 Fundamentos de Programação

Introdução a Programação de Jogos

Capítulo 2: Condicionais. Pontifícia Universidade Católica Departamento de Informática

Estruturas de Repetição

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

Lógica de Programação I

Introdução à Ciência da Computação SCC0120 Prof. Zhao Liang. Aula de Laboratório 1: Operadores, comandos básicos e comando IF 27/03/2012

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

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

Referências. Arquivos. Tópicos Principais. Programação de Computadores II. Motivação. Motivação. Abertura de arquivo. Slides da profa.

Métodos Computacionais em Física

Lógica de Programação I

Aula 3: Algoritmos: Formalização e Construção

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 05 de abril de 2010

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

Lógica de Programação I

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Controle de Fluxo Utilizando C

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

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

LP II Estrutura de Dados

Programação de Computadores II. Cap. 5 Vetores

Jogos Eletrônicos. Aula 07 Estruturas de Repetição e Imagens. Edirlei Soares de Lima

ESTRUTURAS DE REPETIÇÃO - PARTE 2

Lógica de Programação I

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

Tópicos Cap. 3 Entrada e Saída e Controle de Fluxo Livro printf e scanf if e? while for switch break continue Entrada e Saída Entrada e Saída

1ª Lista de Exercícios

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

Programação: Vetores

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Programação estruturada

Introdução a Computação

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

Programação de Computadores I BCC 701 Lista de Exercícios Módulo

Linguagem C ESTRUTURA DE CONTROLE

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

Estrutura de controle repetitiva: Para (for)

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

Aula 16: Laços aninhados e desvios

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

1ª Avaliação Oficial Noturno

Linguagem C: Elementos fundamentais

Prova 1 QUESTÃO 1. (1) nusp % 3 == 1. MAC2166 Introdução à Computação para a Engenharia. # include <stdio.h>

Capítulo 4: Programando com Funções. Pontifícia Universidade Católica Departamento de Informática

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

MAC2166 Introdução à Computação

Introdução à Programação

Sintaxe Básica de Java Parte 2

Sub-rotinas. 2014/2 Programação Básica de Computadores (INF 09325) Freddy Brasileiro

Solucionário de. Programação

Recursão David Déharbe

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003

Transcrição:

INF1005: Programação 1 Repetições 08/03/10 (c) Paula Rodrigues 1

Tópicos Principais Construção de Laços com while Algoritmos com Repetição Construção de Laços com for Repetição com Teste no Final 08/03/10 (c) Paula Rodrigues 2

Construção de Laços Repetição: Diversos problemas de difícil solução podem ser resolvidos numericamente por um computador se dividido em partes. Acumulando o resultado de pequenas computações, podemos chegar à solução do problema como um todo. Precisamos de mecanismos de programação que nos permitam requisitar que um conjunto de instruções seja repetidamente executado, até que uma determinada condição seja alcançada. REPETIÇÕES SÃO PROGRAMADAS ATRAVÉS DA CONSTRUÇÃO DE LAÇOS (OU CICLOS).

Construção de Laços Em C, uma das formas de se trabalhar com repetições é através do comando while. Enquanto uma determinada _expressão_booleana_ for verdadeira, o _bloco de comandos_ é executado! Depois, a execução procede nos comandos subsequentes ao bloco while.

Imprimir 100 números: 0 a 99 #include <stdio.h> int main(void) { int x = 0; while(x < 100){ printf("%d\n", x); x++; return 0;

Computar nota de n alunos float maior_valor(float a, float b) { if (a>=b) return a; else return b; float media_nums(float a, float b) { return (a+b)/2.0; int main(void) { int n_alunos; float P1, P2, P3; float media; int i=1; printf("entre com o numero de alunos:"); scanf("%d", &n_alunos); while(i<=n_alunos) { printf("entre com a nota da P1 do aluno %d:", i); scanf("%f", &P1); printf("entre com a nota da P2 do aluno %d:", i); scanf("%f", &P2); media = media_nums(p1, P2); if ((media >=5.0) && (P1>=3) && (P2>=3.0)){ printf("aluno %d aprovado por media com media = %.2f\n", i, media); else { printf("entre com a nota da P3 do aluno %d:", i); scanf("%f", &P3); P1 = maior_valor(p1,p2); media = media_nums(p1, P3); if (media >=5.0) printf("aluno %d aprovado por P3 com media = %.2f", i, media); else printf("aluno %d reprovado com media = %.2f", i, media); i++;

Fatorial de um número não-negativo Exemplo: Fatorial de um número não-negativo.

Algoritmos com Repetição Exemplo: MDC (máximo divisor comum entre dois números inteiros positivos usando o algoritmo de Euclides) MDC entre 42 e 24: MDC entre 42 e 23: x = 42, y = 24 Na etapa seguinte o y passa a ser x e o resto passa a ser y. O processo se repete até que o resto da divisão seja 0. e o valor em y é o MDC desejado

Algoritmos com Repetição

Número Primo Exemplo: determinar se um dado número inteiro positivo é ou não primo. Como se sabe, um número é dito primo se for divisível apenas pelo número 1 e pelo próprio número, sendo que 1 não é primo (2 é o primeiro número primo) /* retorna 0 se n nao for primo, 1 se for)*/ int primo(int n) { int i; if (n<2) return 0; i=2; while(i<n) { if (n%i == 0) return 0; i++; return 1;

Série de Fibonacci /* retorna o n-esimo termo da serie de fibonacci */ int fibonacci(int n) { if (n <=2) { return (n-1); else { int a = 1; /* primeiro termo */ int b = 1; /* segundo termo */ int c; /* termo atual */ int cont = 3; while(cont <=n) { c = a+b; a = b; b = c; cont++; return c;

Avaliação de Séries Exemplo: algoritmo adicional avaliar o valor de pi. O número pi pode ser dado a partir do calculo da serie:

Avaliação de Séries float pow_1(int n) { if (n%2 ==0) return 1.0; else return -1.0; float valor_pi(int n) { int i; float soma = 0.0; i = 0; while(i<n) { soma = soma + (pow_1(i)/(2*i+1)); i++; return 4*soma;

Exercícios Escreva um programa em C que calcule e imprima o produto dos inteiros mpares de 1 a 15. Escreva um programa em C que recebe um numero n como entrada, com n > 0. Seu programa deve imprimir, como sada, os divisores de n. Escreva um programa em C para calcular a media de n valores reais entrados via teclado. Inicialmente, deve-se capturar o numero de valores n que serão fornecido. Em seguida, usando um comando de repeticão, o programa deve capturar os valores reais e exibir, ao final, a media calculada.

Construção de Laços (cont.) Usando o comando for que é equivalente ao comando while sendo que com uma sintaxe mais compacta. Sintaxe:

Construção de Laços Exemplo: imprimir na tela os valores de 0 a 99:

Construção de Laços Na prática, uma das vantagens do comando for é que escrevemos a expressão de atualização logo no início da construção. Com o comando while, muitas vezes o programadores acabam esquecendo de escrever a expressão de atualização, criando um laço infinito. Exercício: escrever o fatorial usando for:

MDC usando FOR int mdc(int x, int y) { int r; for(r = x%y; r!=0; r = x%y) { x=y; y=r; return y;

Número Primo usando FOR Exemplo: determinar se um dado número inteiro positivo é ou não primo. Como se sabe, um número é dito primo se for divisível apenas pelo número 1 e pelo próprio número, sendo que 1 não é primo. #include <stdio.h> int primo(int n){ int i; if (n <2) return 0; for (i=2;i<n;i++) { if (n%i == 0) return 0; return 1;

Série de Fibonacci usando FOR

Avaliação de Séries Exemplo: algoritmo adicional avaliar o valor de pi. O número pi pode ser dado a partir do calculo da serie:

Avaliação de Séries Nossa função pode receber como parâmetro o número de termos da série, n, que se deseja usar na avaliação. Para melhor visualizar a implementação da função, podemos reescrever a serie acima como um somatório:

Avaliação de Séries

Repetição com Teste no Final while e for: avaliam a expressão booleana que controla a execução do bloco de comandos no início do laço. A linguagem C oferece uma terceira construção de laços através do comando do-while: A expressão booleana é avaliada no final do laço. Isso significa que o bloco de comandos é avaliado pelo menos uma vez!

Repetição com Teste no Final

Referências Waldemar Celes e Roberto Ierusalimschy, Apostila de Programação (disponível para download no site da disciplina) Capítulo 5 Repetições 26