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

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

COMANDOS DE DECISÕES. O COMANDO if. O comando if instrui o computador a tomar uma decisão simples. Forma Geral: if (expressão de teste) instrução;

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

Comandos de Repetição Parte II

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

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

Linguagem C. Comandos de Decisão

Estruturas de repetição

Estruturas de Controle

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.

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

Estruturas de Repetição

ESTRUTURAS DE CONTROLE

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

Aula 14: Repetição (Parte 2)

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

Algoritmos e Programação

Algoritmos e Programação

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

ESTRUTURAS DE CONTROLE E REPETIÇÃO NA LINGUAGEM C

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

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

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

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

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

Métodos Computacionais. Comandos Condicionais e de Repetição em C

Estrutura do programa

Introdução à Linguagem C

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

C Comandos de Controle

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

O comando for permite que um certo trecho de programa seja executado um determinado número de vezes. A forma do comando for é a seguinte:

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Estruturas de Repetição

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

CICLOS DE REPETIÇÃO. Luís Charneca.

Linguagem de Programação I. Aula 07 Linguagem C: Estruturas de Controle

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Revisão. Profa Marina Gomes

Aula 11 - Repetições Encaixadas

Introdução à Programação SCC-121

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

Algoritmos: Conceitos Fundamentais

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

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS

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

Capítulo 2 Operadores. A função scanf()

Algoritmos RESUMO - LINGUAGEM C

MC-102 Aula 06 Comandos Repetitivos

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

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Programação Básica. Estrutura de um algoritmo

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

Controle de Fluxo Utilizando C

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

Aula 5 - Mais C e repetição

Introdução à Programação C

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

Comandos de Repetição -Laços

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

Aula 15: Repetição (Parte 3)

imprimir seus quadrados.

ESTRUTURAS COMPOSTAS

Linguagem C (estruturas condicionais)

Aula 2 Comandos de Decisão

SCC120 - Capítulo 5 Funções em C

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

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

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

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

Métodos Computacionais em Física

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

Instrução de ciclo do... while

Aula 16: Laços aninhados e desvios

Introdução à Programação em C Input / Output

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

C Comandos de Controle

Comandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

LP II Estrutura de Dados

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

Linguagens de Programação I

Terminal. Entrada de dados via teclado. Processamento de dados (cálculos) Tomada de decisão (condição) Saída de dados (via vídeo) Ponto de conexão

Estruturas de Repetição

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

ICMC USP. 1.semestre/2011 SCC120 - ICC. Aula: Comandos em C. Profa. Roseli Ap. Francelin Romero

Repetição. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Introdução à Programação em C (II)

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

Puca Huachi Vaz Penna / José Américo T. Messias

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Linguagem C (repetição)

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

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

Algoritmos e Programação

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

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

Transcrição:

Linguagem C Laços

Laços Laços são comandos usados sempre que uma ou mais instruções tiverem de ser repetidas enquanto uma certa condição estiver sendo satisfeita Em C existem três comandos de laços for while do-while

O Laço for O laço for é geralmente usado quando queremos repetir algo por um número fixo de vezes Utilizamos quando sabemos de antemão o número de vezes a repetir /* ForDemo.c */ /* Mostra um uso simples do laço for */ int i; for( i=0 ; i < 20 ; i++ ) /* Imprime 20 * */ printf("%c", '*'); printf("\n");

O Laço for /* ForDemo.c */ /* Mostra um uso simples do laço for */ int i; for( i=0 ; i < 20 ; i++ ) /* Imprime 20 * */ printf("%c", '*'); printf("\n");

Sintaxe do for Ponto-e-vírgula Inicialização Teste Incremento for( i=0 ; i < 20 ; i++ ) printf("%c", '*'); Corpo Não há ponto-e-vírgula aqui

Exemplo Tabuada de 6 /* Tabuada6.c */ /* Imprime a tabuada do 6 */ int i; for( i=1 ; i < 10 ; i++ ) printf("\n%4d x 6 = %4d", i,i*6); printf("\n");

Exemplo Tabuada de 6

Exemplo Modificado Tabuada Invertida /* Tabuada6I.c */ /* Imprime a tabuada do 6 invertida */ int i; for( i=9 ; i > 0 ; i-- ) printf("\n%4d x 6 = %4d", i,i*6); printf("\n");

Exemplo Modificado Tabuada Invertida

Exemplo Múltiplos de 3 Imprimir os múltiplos de 3 entre 3 e 100 /* Multipl3.c */ /* Imprime os múltiplos de 3 entre 3 e 100 */ int i; for( i=3 ; i <= 100 ; i += 3) printf("%d\t", i ); printf("\n");

Exemplo Múltiplos de 3 /* Multipl3.c */ /* Imprime os múltiplos de 3 entre 3 e 100 */ int i; for( i=3 ; i <= 100 ; i += 3) printf("%d\t", i ); printf("\n");

O Operador Vírgula Qualquer uma das expressões de um laço for pode conter várias instruções separadas por vírgulas Um par de expressões separadas por vírgula é avaliado da esquerda para a direita /* Virgula.c */ /* Mostra o uso do operador vírgula no laço for */ /* Imprime os números de 0 a 98 de 2 em 2 */ int i,j; for(i=0, j=i; (i+j) < 100 ; i++, j++) printf("%d ", i +j); printf("\n");

O Operador Vírgula /* Virgula.c */ /* Mostra o uso do operador vírgula no laço for */ /* Imprime os números de 0 a 98 de 2 em 2 */ int i,j; for(i=0, j=i; (i+j) < 100 ; i++, j++) printf("%d ", i +j); printf("\n");

Usando Caracteres A variável do laço pode ser do tipo char /* CharFor.c */ /* Mostra o uso de uma variável do tipo char para controle do laço for * Imprime as letras minúsculas e seus correspondentes valores * em decimal na tabela ASCII */ char ch; for(ch='a'; ch <= 'z'; ch++ ) printf("\no valor ASCII de %c \xdd82 %d", ch, ch); printf("\n");

Usando Caracteres

Múltiplas Instruções Se um laço for deve executar várias instruções a cada iteração, elas precisam estar entre chaves Sintaxe for(i=0; i<10; i++) instrução; instrução; instrução; Em C, um bloco de código é uma série de instruções entre chaves é tratado como um grupo de instruções numa única unidade

Exemplo /* MEDIA.C * Imprime a média aritmética de 10 notas */ float soma = 0.0; const int max = 10; int i; for( i=0; i < max ; i++) float nota; printf("\ndigite a nota %d : ", i+1); scanf("%f", &nota); soma += nota; printf("\nm\xdd82\dia = %.2f\n", soma/max);

Exemplo

Criando Blocos Dentro de Blocos Em todo lugar onde é possível colocar uma instrução C, é também possível inserir um bloco de código /* Bloco.C */ /* Mostra o uso de um bloco dentro de outro bloco */ int i=5; /* Inicio do bloco */ int i=150; printf("%d\n", i); /* Imprime 150 */ /* Fim do bloco */ printf("%d\n", i); /* Imprime 5 */

Criando Blocos Dentro de Blocos /* Bloco.C */ /* Mostra o uso de um bloco dentro de outro bloco */ int i=5; /* Inicio do bloco */ int i=150; printf("%d\n", i); /* Imprime 150 */ /* Fim do bloco */ printf("%d\n", i); /* Imprime 5 */

Laços for Aninhados Quando um laço for faz parte de um corpo de outro laço for, dizemos que o laço interno está aninhado

Laços for Aninhados /* Tabuada.C */ /* Imprime a tabuada do 2 ao 9 */ int i,j,k; for(k=0; k<=1 ; k++) printf("\n"); for(i=1 ; i <= 4 ; i++) printf("tabuada DO %3d printf("\n"); ", i+4*k+1); for( i = 1; i <= 9 ; i++) for( j=2+4*k; j <= 5+4*k; j++) printf("%3d x%3d = %3d printf("\n"); ", j,i,j*i);

Laços for Aninhados

Cartão de Natal /* Natal.C */ /* Imprime uma árvore de natal */ #include <conio.h> /* para getche() */ char sd, se; int i,k, j; system("cls");/* Limpa a tela */ printf("\nsinal interno direito : "); sd = getche();/* caractere de desenho da árvore */ printf("\nsinal interno esquerdo: "); se = getche();/* caractere de desenho da árvore */ printf("\n\n");/* Pula 2 linhas antes do início do desenho */ */ for(i=0; i < 4; i++) for(k=1; k < 5; k++) for(j=1;j<=40-(2*i+k);j++) printf(" ");/* Imprime brancos printf("/");/* delimitador inicial da linha */ for( j=1 ; j < (2*i+k) ; j++) printf("%c",se); /* até o meio */ for( j=1 ; j < (2*i+k) ; j++) printf("%c",sd);/* meio ao fim */ printf("\\\n"); /* delimitador final da linha */ /* Desenha o pé da árvore */ for(i=0; i < 2; i++) for(j=0;j < 38; j++) printf(" "); printf(" \n"); printf("\n");; /* Imprime mensagem centralizada */ for(j=0; j < 35; j++) printf(" "); printf("feliz NATAL\n"); for(j=0; j < 31; j++) printf(" "); printf("e UM PROSPERO 2007!\n");

Cartão de Natal

O Laço while Utilizamos o while quando o laço pode ser terminado inesperadamente, por condições desenvolvidas dentro do corpo /* Contachar.C */ /* Conta caracteres de uma frase */ #include <conio.h> /* para getche() */ int cont=0; /* Contador */ while(getche()!= '\r') /* Enquanto não [Enter] */ cont++; /* Corpo do laço */ /* Fora do laço */ printf("\n\no n\xdda3\mero de caracteres \xdd82 %d\n", cont);

O Laço while /* Contachar.C */ /* Conta caracteres de uma frase */ #include <conio.h> /* para getche() */ int cont=0; /* Contador */ while(getche()!= '\r') /* Enquanto não [Enter] */ cont++; /* Corpo do laço */ /* Fora do laço */ printf("\n\no n\xdda3\mero de caracteres \xdd82 %d\n", cont);

Sintaxe do while Consiste na palavra-chave while seguida de uma expressão de teste entre parênteses Se a expressão de teste for verdadeira, o corpo do laço é executado de uma vez e a expressão de teste é avaliada novamente Esse ciclo de teste e execução é repetido até que a expressão de teste torne falsa Então o laço termina e o controle do programa passa para a linha seguinte Inicialização; while(teste).. Incremento;.

Exemplo /* WhileDemo.C */ /* Mostra um uso simples do laço while no lugar de um laço for */ int i=0; /* Inicialização */ while( i < 20 ) /* Teste */ printf("%c", '*'); i++; printf("\n");

Exemplo /* WhileDemo.C */ /* Mostra um uso simples do laço while no lugar de um laço for */ int i=0; /* Inicialização */ while( i < 20 ) /* Teste */ printf("%c", '*'); i++; printf("\n");

Laços while aninhados Uma das instruções de um bloco de código que compõe o corpo de um laço while pode ser outro laço while Função rand() Necessita da inclusão do arquivo stdlib.h Retorna um número inteiro aleatório (sorteado) rand() % 26 + a ;

Exemplo /* Adivinha.C */ /* Testa a sua capacidade de adivinhar uma letra */ /* para system() e rand() */ #include <conio.h> /* para getch() */ char ch='s'; /* s de sim */ char resp; /* resposta do usuário */ char secreto; int tentativas; while(ch=='s') secreto = rand() % 26 + 'a'; tentativas = 1; printf("\n\ndigite uma letra entre 'a' e 'z':\n"); while((resp=getch())!= secreto) printf("%c e incorreto. Tente novamente\n",resp); tentativas++; printf("%c e CORRETO!!\n", resp); printf("voce acertou em %d tentativas\n", tentativas); printf("\nquer jogar novamente? (s/n): "); ch=getche(); printf("\nate logo e boa sorte!\n");

O Laço do-while É utilizado em situações em que é necessário executar o corpo do laço uma primeira vez Logo após, avaliar a expressão de teste e criar um ciclo repetido do instrução; instrução; while(teste); Primeiramente, o bloco do código é executado Em seguida, a expressão de teste entre parênteses é avaliada Se verdadeira, o corpo do laço é mais uma vez executado e a expressão de teste é avaliada novamente Repete-se até que a expressão de teste torne falsa

Exemplo /* Adivinha1.C */ /* Testa a sua capacidade de adivinhar uma letra */ /* Agora com o laço do-while */ /* para system() e rand() */ #include <conio.h> /* para getch() */ char resp; /* resposta do usuário */ char secreto; int tentativas; do /*inicio do laço */ secreto = rand() % 26 + 'a'; tentativas = 1; printf("\n\ndigite uma letra entre 'a' e 'z':\n"); while((resp=getch())!= secreto) printf("%c e incorreto. Tente novamente\n",resp); tentativas++; printf("%c e CORRETO!!\n", resp); printf("voce acertou em %d tentativas\n", tentativas); printf("\nquer jogar novamente? (s/n): "); while(getche() == 's'); printf("\nate logo e boa sorte!\n");