Capítulo 5: Repetições



Documentos relacionados
PHP Estruturas de repetição

Estruturas de Repetição

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

MC Teste de Mesa e Comandos Repetitivos

INF1005: Programação I. Algoritmos e Pseudocódigo

Análise de Algoritmos

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Exercícios: Recursão

MC102 Algoritmos e Programação de Computadores

Programação. Folha Prática 4. Lab. 4. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

Simulado de Linguagem de Programação Java

Estrutura de repetição para número indefinido de repetições com teste no inicio (Enquanto - while)

a) 2 b) 3 c) 4 d) 5 e) 6

CAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA. Introdução à Programação em C. Algoritmos: Estruturas de Repetição. Prof. Dr. Galeno.J.

Lógica de Programação I

Linguagem C (repetição)

Exercícios de Fixação Aulas 05 e 06

Programação de Computadores I. Linguagem C Função

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

Aula 11: Desvios e Laços

AV1 - MA (1,0) (a) Determine o maior número natural que divide todos os produtos de três números naturais consecutivos.

Comandos de Desvio 1

FACULDADE DE ENGENHARIA SÃO PAULO PROCESSAMENTO DE DADOS - BP1 LINGUAGEM C++ BUILDER PARTE II

Estruturas de Repetição

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

Análise de algoritmos. Parte II

MATEMÁTICA ENSINO FUNDAMENTAL

Gabarito de Matemática do 6º ano do E.F.

Projetando um Computador

LINGUAGEM JAVA - RESUMO

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

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

Programação WEB I Funções

Projetando um Computador Parte II Arquitetura do Processador BIP

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Aula 14: Repetição (Parte 2)

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

Programação Dinâmica. Aplicação directa - Fibonacci

PUC-Rio Desafio em Matemática 23 de outubro de 2010

C A P I T U L O 6 E S T R U T U R A S D E C O N T R O L E D E R E P E T I Ç Ã O

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

Apontamentos de matemática 5.º ano - Múltiplos e divisores

Projecto Delfos: Escola de Matemática Para Jovens 1 TEORIA DOS NÚMEROS

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

Resolução de sistemas de equações lineares: Método de eliminação de Gauss

Estruturas de repetição (Ciclos)

Matemática Régis Cortes MÚLTIPLOS E DIVISORES

Roteiro Prático Nº 13 Recursividade

Recursividade. Estrutura de Dados. Prof. Kleber Rezende

Teste de Funções por Cobertura do Grafo de Fluxo de Controle

Avaliação e Desempenho Aula 1 - Simulação

Programação Estruturada

Estrutura de repetição do/while

Exercícios: comandos de repetição

Capítulo 4: Condicionais

Estruturas de Repetição

Programação para Computação

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

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

ATENÇÃO!!! Rui Morgado - TLP 2

Divisibilidade Básica

Algoritmos e Programação

Polos Olímpicos de Treinamento. Aula 1. Curso de Teoria dos Números - Nível 3. Divisibilidade 1. Carlos Gustavo Moreira e Samuel Barbosa Feitosa

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

1 Cálculo do valor à vista

Programação em C/C++ Anexo III

Resolução: P(i) = 2. (i) 4 (i) 3 3(i) 2 + (i) + 5 = 2 + i i + 5 = i. Resolução: Resolução:

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

Introdução à Algoritmos. Aula 11

Linguagens de Programação:

Introdução à Programação

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

18 - Funções e Procedimentos em C Programação Modular

Algoritmos. Prof. Jonatas Bastos

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

Metodologias de Programação

Transcrição:

Capítulo 5: Repetições INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática 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). 1

Construção de Laços: o comando while Em C, uma das formas de se trabalhar com repetições é através do comando while. while(_expressao_booleana) { _bloco_de_comandos_ 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++; 2

Fatorial de um número não-negativo Fatorial de um número não-negativo. int fatorial(int n) { int f = 1; while(n > 1){ f = f * n; n = n 1; return f; Cálculo do MDC entre dois números inteiros positivos 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 3

Cálculo do MDC entre dois números inteiros positivos int mdc(int x, int y) { int r = x%y; while(r!= 0){ x = y; y = r; r = x%y; return y; Verificar se um Número é Primo 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) i=2; while(i<n) { if (n%i == 0) i++; return 1; 4

Imprimir o n-ésimo termo da 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; Construção de Laços: o comando for Usando o comando for que é equivalente ao comando while sendo que com uma sintaxe mais compacta. Sintaxe: for(_expr_inicial; _expr_booleana; _expr_atualizacao) { _bloco_de_comandos_ 5

Imprimir 100 números: 0 a 99 imprimir na tela os valores de 0 a 99: #include <stdio.h> int main(void) { int x = 0; while(x < 100){ printf("%d\n", x); x++; #include <stdio.h> int main(void) { int x; for(x=0;x<100;x++){ printf("%d\n", x); Fatorial de um número não-negativo 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: int fatorial (int n) { int i; int f = 1; for(i=2; i<=n; i++) { f = f * i; return f; 6

Cálculo do MDC entre dois números inteiros positivos int mdc(int x, int y) { int r; for(r=x%y; r!=0; r = x%y) { x=y; y=r; return y; Verificar se um Número é Primo 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) for (i=2;i<n;i++) { if (n%i == 0) return 1; 7

Imprimir o n-ésimo termo da Série de Fibonacci 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! 8