Apostila básica de C - Informática 2

download Apostila básica de C - Informática 2

of 25

Transcript of Apostila básica de C - Informática 2

  • 8/9/2019 Apostila bsica de C - Informtica 2

    1/25

    Material de Apoio

    Introduo

    linguagem C

    Material de apoio para a Disciplina Informtica 2

  • 8/9/2019 Apostila bsica de C - Informtica 2

    2/25

    2

    ndice

    ContedoIntroduo ..................................................................................................................................... 3

    Exemplo de um Programa ......................................................................................................... 3Identificadores .......................................................................................................................... 3Variveis ................................................................................................................................... 3Tipos de Variveis .................................................................................................................... 4Declarao de Variveis ........................................................................................................... 4Inicializao de Variveis na Declarao ................................................................................. 4Constantes ................................................................................................................................. 5

    Strings ........................................................................................................................................... 6

    A funo printf.................................................................................................................... 6Incluso de Texto na String de Formato ................................................................................... 7Constantes do tipo String .......................................................................................................... 7Impresso de Inteiros com "printf" ........................................................................................... 7Impresso de Expresses aritmticas ........................................................................................ 8Impresso de Nmeros reais ..................................................................................................... 8Formato de Impresso dos Nmeros Reais ............................................................................... 8Variveis do Tipo String ......................................................................................................... 10Atribuio com strings ............................................................................................................ 10Operadores Aritmticos .......................................................................................................... 11

    Condies ou Expresses Lgicas .............................................................................................. 12Operadores Relacionais .......................................................................................................... 12Operadores Lgicos ................................................................................................................ 12

    Precedncia de Operadores ................................................................................................. 12

    Comando IF ................................................................................................................................. 13

    Comando IF com BLOCOS .................................................................................................... 13Aninhamento de Ifs ................................................................................................................. 14Comando SWITCH ................................................................................................................. 15Atribuio Condicional ........................................................................................................... 16

    Comando while ........................................................................................................................... 17

    Exemplos ............................................................................................................................ 18

    Observao: ........................................................................................................................ 19

    Comando do-while ...................................................................................................................... 20

    Exemplos ............................................................................................................................ 20

    Comando for ................................................................................................................................ 22

    Exemplos ............................................................................................................................ 23

    Observaes:....................................................................................................................... 23

    Comandos de Desvios ................................................................................................................. 23

  • 8/9/2019 Apostila bsica de C - Informtica 2

    3/25

    3

    Introduo Programao C

    Introduo

    Exemplo de um Programa// Exemplo de programa em C// Isto uma linha de comentriomain(){

    int a; // declara a varivel "a"a = 3 + 2; // soma 3 com 2

    }

    Um programa em C composto por um conjunto de Funes. A funo pela qual oprograma comea a ser executado chama-semain.

    Aps cada cada comando em C deve-se colocar um ; (ponto-e-vrgula). Um programa em C deve ser Identado para que possa ser lido com mais facilidade.

    Identificadores

    So os nomes que podem ser dados para variveis e funes.

    Para a escolha destes nomes necessrio seguir alguams regras:

    Um identificador deve iniciar por uma letra ou por um "_" (underscore); A partir do segundo caracter pode conter letras, nmeros e underscore; Deve-se usar nomes significativos dentro do contexto do programa; C uma linguagem case-sensitive, ou seja, faz diferena entre nomes com letras

    maisculas e nomes com letras minsculas. Peso e peso so diferentes; Costuma-se usar maisculas e minsculas para separar palavras: "PesoDoCarro"; Deve ser diferente dos comandos da linguagem; Deve ter no mximo 31 caracteres (no caso do TurboC); Pode conter nmeros a partir do segundo caracter;Exemplos:

    Idade, Contador, PesoDoCarro,Usuario_1, CorDaPagina, RaioDoCirculo

    Variveis

    Uma varivel uma posio de memria que pode ser identificada atravs de um nome.

    Podem ter seu contedo alterado por umcomando de atribuio.

  • 8/9/2019 Apostila bsica de C - Informtica 2

    4/25

    4

    Aps a atribuio mudam de valor.

    int a,b, SomaGeral;a = 3; // a recebe o valor 3b = a * 2; // b recebe o dobro do valor de ac = a + b + 2; // c recebe 11

    Tipos de Variveis

    Todas as variveis em C tem umtipo; Cada tipo define os valores que a varivel pode armazenar; Cada tipo ocupa uma certa quantidade de nemria.

    Tipo Tamanho Valores Vlidos

    char 1 byte letras e smbolos: 'a', 'b', 'H', '^', '*','1','0'int 2 bytes de -32767 at 32767 (apenas nmeros inteiros)float 4 bytes de -3.4 x 1038 at +3.4 x 10+38com at 6 dgitos de precisodouble 8 bytess de -1.7 x 10308 at +1.7 x 10+308com at 10 dgitos de preciso

    Declarao de Variveis

    Todas as variveis tm que ser declaradasantes de serem usadas; No h uma inicializao implcita na declarao

    // Exemplo de programa em C

    #include // Arquivo de cabealho (header)main(){

    int contador; // declaraes simplesfloat PrecoDoQuilo;double TaxaDeCambio;char LetraDigitada;int IdadeManoel, IdadeJoao, IdadeMaria; // Pode colocar mais de

    uma varivel na

    // na mesma linhadouble TaxaDoDolar,

    TaxaDoMarco,TaxaDoPeso, // Tambm pode trocar de linha no meioTaxaDoFranco;

    .......}

    Inicializao de Variveis na Declarao

    // Exemplo de programa em C

    #include // Arquivo de cabealho (header)

  • 8/9/2019 Apostila bsica de C - Informtica 2

    5/25

    5

    main(){

    int NroDeHoras = 0; // declara e inicializa com Zerofloat PrecoDoQuilo = 10.53; // declara e inicializa com 10.53double TaxaDoDolar = 1.8,

    TaxaDoMarco = 1.956,

    TaxaDoPeso = 1.75,TaxaDoFranco = 0.2;

    .......}

    Constantes

    Constantes so identificadores que no podem ter seus valores alterados durante aexecuo do programa.

    Para criar uma constante existe o comando #define que, em geral colocado noincio do programa-fonte.

    Exemplos

    #define LARGURA_MAXIMA 50 // No se coloca ponto-e-vrgulaaps o valor#define NRO_DE_DIAS_DA_SEMANA 7#define NRO_DE_HORAS_DO_DIA 24#define VALOR_DE_PI 3.1415

    main (){int TotalDeHoras;

    TotalDeHoras = 10 * NRO_DE_DIAS_DA_SEMANA * NRO_DE_HORAS_DO_DIA;......}

  • 8/9/2019 Apostila bsica de C - Informtica 2

    6/25

    6

    Strings

    Uma String uma seqncia de caracteres entre aspas duplas: "exemplo de uma stringem C".

    A funoprintf

    A funo printf exibe um ou mais dados na tela. Para tanto ele deve receber pelomenos dois parmetros, separados por vrgula:

    um string de formato que define, atravs de caracteres especiais, os tipos dos dados aserem impressos e suas posies na linha de impresso;

    um dado a ser impresso. Este dado pode ser qualquer um dos dados visto anteriormente.Por exemplo:

    printf("%s","teste");

    "%s" : a string de formato"teste" : o dado a ser impresso.

    Astring de formato define quais os tipos dos dados a serem impressos. O smbolo %sser substitudo pelo dado que vem aps a vrgula.Os dados definem quais os valores a serem impressos.

    Se for necessrio, um string de formato pode definir que mais de um dado serimpresso. Para tanto, dentro da string de formato deve haver mais de um %, um paracada dado a ser impresso.Neste caso, os dados devem vir aps a string de formato separados por vrgulas.

    Por exemplo:

    printf("%s %s","teste1", "outra string");

    Isto ir imprimir o string teste1 deixar 1 espao em branco e imprimir ao lado ostring outra string, assim :

    teste1 outra string

    #include // Necessrio para usar a funo printf// A funo printf exibe um ou mais dados na

    telamain (){

    printf("%s","Isto uma string ....\n"); // note o '\n' no final dastring;

    printf("%s","Outra string ....");printf("%s","Terceira string\n");

    //Depois de Executar o programa, tecle ALT-F5 para ver o resultado natela

  • 8/9/2019 Apostila bsica de C - Informtica 2

    7/25

    7

    }

    Exerccio

    Experimente colocar um '\n' entre os %s na string de formato.

    printf("%s\n%s","teste1", "outra string");

    Incluso de Texto na String de Formato

    possvel incluir um texto dentro da string de formato. Este texto ir aparecerexatamente como for digitado no programa-fonte.

    O exemploprintf("A aluna %s ficou doente","Maria");

    gerariaA aluna Maria ficou doente

    como resultado.

    Constantes do tipo String#define UNIVERSIDADE "Pontifcia Universidade Catlica do Rio Grandedo Sul"

    // deve-se colocar entre aspas#include #include // necessrio para as funes getchmain (){

    printf("%s", UNIVERSIDADE); // Imprime o nome representado pelaconstante

    getch(); // espera que o usurio pressione uma tecla}

    Impresso de Inteiros com "printf"

    Para imprimir um inteiro comprintfusa-se o smbolo %d

    // Impresso de Variveis Inteiras#include #include // necessrio para as funes getchmain (){

    int Contador;int NroDeFilhos;

    Contador = 10;printf("Valor da Varivel: %d\n", Contador); // No momento da

    execuo sinal %d vai // ser substitudo pelo

  • 8/9/2019 Apostila bsica de C - Informtica 2

    8/25

    8

    valor da// varivel Contador

    NroDeFilhos = 3;printf("Maria tem %d filhos", NroDeFilhos); // o inteiro pode

    ficar no meio da stringgetch(); // espera que o usurio pressione uma tecla

    }

    Impresso de Expresses aritmticas// Impresso de Expresses aritmticas#include #include // necessrio para as funes getchmain (){

    int NroDeAndares;

    int AlturaPorAndar;

    NroDeAndares = 7;AlturaPorAndar = 3;

    printf("Altura Total do Prdio: %d metros",NroDeAndares*AlturaPorAndar);

    // No momento da execuo sinal %d vai ser substitudo// pelo valor da multiplicao

    getch(); // espera que o usurio pressione uma tecla}

    Impresso de Nmeros reais// Impresso de nmeros reais#include #include // necessrio para as funes getchmain (){

    float NotaDaP1, NotaDaP2;float Media;

    NotaDaP1 = 6.6; // Atribuio do Valores das mdiasNotaDaP2 = 8.2;

    Media = (NotaDaP1 + NotaDaP2) / 2.0;

    printf("Mdia Final : %f", Media);// No momento da execuo sinal %f vai ser substitudo// pelo valor da varivel Media com SEIS casas decimais// Mdia Final : 7.400000

    getch(); // espera que o usurio pressione uma tecla}

    Formato de Impresso dos Nmeros Reais

    No exemplo acima o resultado da mdia (7.4) foi impresso com 6 casas decimais(7.400000).

  • 8/9/2019 Apostila bsica de C - Informtica 2

    9/25

    9

    Isto sempre acontece quando se manda imprimir umfloat da forma como foi feito noexemplo acima. Isto acontece pois o padro da funoprintf completar o nmero comzeros direita, at que fique com seis casas decimais.

    Para formatar de maneira diferente usar-se, junto com o %fuma especificao de

    quantas casas decimais se deseja que o nmero tenha. Especifica-se tambm o nmerototal de caracteres do nmero a ser impresso.

    Por exemplo: %6.3f especifica que se quer imprimir um float com 3casas decimaise com um tamanho total de 6 caracteres no total.

    #include #include main(){

    float NotaDaP1, NotaDaP2;float Media;

    NotaDaP1 = 6.6; // Atribuio do Valores das mdiasNotaDaP2 = 8.2;

    Media = (NotaDaP1 + NotaDaP2) / 2.0;

    printf("Mdia Final : %6.3f", Media);// No momento da execuo sinal %6.3f vai ser substitudo// pelo valor da varivel Media// Mdia Final : 7.400

    getch(); // espera que o usurio pressione uma tecla

    }

    Regras para impresso de um nmero real

    o nmero de casas decimais sempre respeitado. Se for preciso, zeros seroacrescetados direita do nmero

    o tamanho total significa o nmero de caracteres do nmero inclundo o ponto decimale um eventual sinal demenos (-), se for o caso;

    Se a soma do nmero de caracteres da parte inteira, mais o ponto decimal, mais aparte fracionria, mais um eventual sinal de menos ainda for menordo que o

    tamanho total especificado no formato, ento, espaos em branco sero acrescentados esquerda da parte real do nmero.

    Se a soma do nmero de caracteres da parte inteira, mais o ponto decimal, mais aparte fracionria, mais um eventual sinal de menos for maior do que o tamanho totalespecificado no formato, ento, apenas o nmero de casas decimais respeitado

    Por exemplo:

    #include #include main()

    {float Numero;

  • 8/9/2019 Apostila bsica de C - Informtica 2

    10/25

    10

    Numero = -2.5;printf("1234567890\n");printf("%7f\n", Numero);printf("%7.0f\n", Numero);printf("%7.3f\n", Numero);printf("%8.3f\n", Numero);

    printf("%9.3f\n", Numero);printf("\n");printf("%8.4f\n", Numero);printf("%8.1f\n", Numero);printf("%6.12f\n", Numero);

    getch();}

    // Resultados1234567890-2.500000

    -2

    -2.500-2.500-2.500

    -2.5000-2.5

    -2.500000000000

    Alinhamento de nmeros DIREITA

    Nos exemplos anteriores os nmeros ficavam sempre alinhados a partir da esquerda.Experimente colocar um sinal de menos logo depois do sinal de % e veja o que

    acontece.

    printf("%-7.3f\n", Numero);

    Variveis do Tipo String

    Uma varivel capaz de arrmazenar uma string deve ser declarada informando-se qual onmero mximo de caracteres que ela poder armazenar.

    Exemplo:

    char Nome[30]; // isto define que a varivel poder armazenaruma

    // string de at 29 caracteres.

    Ao trabalharmos com strings deve-se incluir o arquivo de cabealho string.h

    Atribuio com strings

    As atribuies de valores a strings devem ser feitas atravs da funo strcpy

    // Exemplo com strings

  • 8/9/2019 Apostila bsica de C - Informtica 2

    11/25

    11

    #include #include #include // arquivo de cabealho para trabalhar comstrings

    main()

    {char Nome[30]; // declara uma string que poder armazenar at 29

    caracteres !!clsrscr();strcpy(Nome, "Jose da Silva"); // atribui "Jose da Silva" para a

    varivel Nomeprintf("O funcionrio %s foi tranferido", Nome); // no lugar de %s

    aparecer o// contedo da

    varivel Nomegetch();

    }

    Operadores Aritmticos

    - sinal de menos (unrio) Maior precedncia (avaliado antes)

    * , / multiplicao e diviso

    % mdulo (reto da diviso)

    + , - soma e subtrao Menor precedncia (avaliado depois)

    Pode-se usar parnteses para alterar a precedncia.

    Exerccio

    Crie um progama que organize os dados em uma tabela conforme o exemplo a seguir.Os dados das clulas em amarelo deve ser informados atravs de atribuies dentro doprograma.

    Procure usar somente os %f para definir o formato e a posio dos dados.No tente preencher os espaos com brancos. Por exemplo, use

    printf ("%10d, QuantidadeDeBananas);

    ao invs de

    printf(" %d", QuantidadeDeBananas);

    Produto Preo Unitrio Quantidade Preo TotalBanana R$ 2.50 2 R$ 5.00Uva R$ 6.50 6 R$ 39.00Pessego R$ 10.22 10 R$ 102.20

    Sub-Total R$ 146.20Imposto (5%) R$ 7.31

    Total R$ 153.51

  • 8/9/2019 Apostila bsica de C - Informtica 2

    12/25

    12

    Condies ou Expresses Lgicas

    A condio na linguagem C definida como uma expresso que pode ser verdadeira ou falsa.

    este tipo de expresso d-se o nome de expresso lgica.

    Por exemplo, (3 > 2) uma expresso lgica que possui valor verdadeiro. Por outro lado,(4 < 1) uma expresso lgica que possui valor falso.

    Os operadores (< e >) usados nos exemplos acima so chamados de operadores relacionaispois possibilitam saber qual a relao existente entre seus dois operandos. Alm destes doisexistem mais 4 operadores relacionais, que podem ser vistos na tabela seguir:

    Operadores Relacionais== Igual a!= Diferente>= Maior ou igual> Maior que

    1): resultado VERDADEIRO

    !(1 < 0): resultado FALSO

    Precedncia de Operadores! Operador de negao Executado

    Antes- menos unrio (sinal)* / % Operadores Multiplicativos

  • 8/9/2019 Apostila bsica de C - Informtica 2

    13/25

    13

    + - Operadores aditivos< > = ==

    !=Relacionais

    && AND lgico ExecutadoDepois|| OR lgico

    Comando IF

    O comando IF serve para alterar o fluxo de execuo de um programa em C baseado novalor, verdadeiro ou falso, de uma expresso lgica.

    Formato 1:

    if (expr_log)

    comando1; // executado se "expr_log" for verdadeira

    comando2; // executado sempre independente da condio

    Formato 2:

    if (expr_log)

    comando1; // executado se "expr_log" for verdadeira

    else comando2; // executado se "expr_log" for falsa

    comando3; // executado sempre, independente

    // do resultado do teste

    Comando IF com BLOCOS

    Formato 3:

    if (expr_log)

    {

    comando1; // executados se "expr_log" for verdadeira

    comando2;

    comando3;

    }

    else

    {

    comando4; // executado se "expr_log" for falsa

    comando5;

    comando6;

    }

    comando7; // executado sempre independente da condio

    comando8; // executado sempre independente da condio

  • 8/9/2019 Apostila bsica de C - Informtica 2

    14/25

    14

    Aninhamento de Ifs

    Exemplo 1: sem blocos e sem ELSE

    if (expr_log)

    if (expr_log2)comando2; // executado se "expr_log" e

    // "expr_log2" forem AMBAS verdadeiras

    comando3; // executado sempre

    Exemplo 2: sem blocos, o ELSE sempre do IF anterior

    if (expr_log)

    if (expr_log2)

    comando2; // executado se "expr_log" e

    // "expr_log2" forem AMBAS verdadeiras

    else comando3; // executado se "expr_log" for VERD

    // e se "expr_log2" for FALSA

    comando4; // executado sempre

    Exemplo 3: O ELSE sempre do IF anterior dentro do BLOCO

    if (expr_log)

    {

    if (expr_log2)

    comando2;

    }

    else comando3; // executado se "expr_log" for FALSO

    // pertence ao primeiro IF

    comando4; // executado sempre

    Exemplo 4:

    if (expr_log)

    {

    comando1; // executado se expr_log for VERDADEIRA

    comando11;

    if (expr_log2)

    {comando2; // executado se expr_log e expr_log2

    comando21; // forem ambas VERDADEIRAS

    }

    else

    {

    comando3; // executado se expr_log for VERDADEIRA

    comando31; // e expr_log2 for FALSA

    }

    comando4; // executado se expr_log for VERDADEIRA

    }

    else{

  • 8/9/2019 Apostila bsica de C - Informtica 2

    15/25

    15

    comando5; // executado se expr_log for FALSA

    comando51;

    if (expr_log3)

    {

    comando6; // executado se expr_log for FALSA

    comando61; // e expr_log3 for VERDADEIRA

    }

    else

    {

    comando7; // executado se expr_log for FALSA

    comando71; // e expr_log3 for FALSA

    }

    comando8; // executado sempre que expr_log for FALSA

    }

    comando9; // executado sempre

    Comando SWITCH

    int op;

    printf("Digite a sua opo\n");

    scanf ("%d",&op);

    switch (op)

    {

    case VALOR1:

    comando1; // executa estes comandos secomando11; // op for igual a VALOR1

    comando111;

    break;

    case VALOR2:

    comando2; // executa estes comandos se

    comando22; // op for igual a VALOR2

    comando222;

    break;

    default:

    comando3; // executa estes comandos se

    comando33; // op for diferente de VALOR1 ecomando333; // de VALOR2

    }

    Observaes

    O parmetro do switch deve ser int ou char O valor aps o case dever ser uma CONSTANTE Muito Cuidado: A falta do break faz o controle passar ao prximo case

  • 8/9/2019 Apostila bsica de C - Informtica 2

    16/25

    16

    Atribuio Condicional

    a = (a>5)? 10 : 50;

    Este comando equivalente a

    if(a>5)

    a = 10;

    else a = 50;

  • 8/9/2019 Apostila bsica de C - Informtica 2

    17/25

    17

    Comando whileO comando while permite que um certo trecho de programa seja executado ENQUANTO umacerta condio for verdadeira. A forma do comando while a seguinte:

    while (condio)

    {// comandos a serem repetidos// comandos a serem repetidos

    }// comandos aps o 'while'

    Repetindo, enquanto acondio for verdadeira (diferente de 0), comando executado.

    Quando o programa chega na linha que contm o teste do comando while, ele verifica se aexpresso de teste verdadeira. Se for, o programa executa o comando uma vez e torna a testara expresso, at que a expresso seja falsa. Somente quando isso ocorrer, o controle doprograma passa para a linha seguinte ao lao.

    Se, na primeira vez que o programa testar a expresso, ela for falsa, o controle do programapassa para a linha seguinte ao lao, sem executar o comando nenhuma vez.

    O corpo de um lao while pode ter um nico comando terminado por ponto-e-vrgula,vrioscomandos entre chaves ou ainda nenhuma instruo, mantendo o ponto-e-vrgula.

    O funcionamento passo a passo o seguinte:

    1. Testa a condio;2. Se a condio for falsa ento pula todos os comandos do bloco subordinado ao while e

    passa a executar os comandos aps o bloco do while.3. Se condio for verdadeira ento executa cada um dos comandos do bloco

    subordinado ao while.4. Aps executar o ltimo comando do bloco do while volta ao passo 1.

    O comando while deve ser usado sempre que:

    no soubermos exatamente quantas vezes o lao deve ser repetido ; o teste deva ser feito antes de iniciar a execuo de um bloco de comandos; houver casos em que o lao no deva ser repetido nenhuma vez.

  • 8/9/2019 Apostila bsica de C - Informtica 2

    18/25

    18

    Exemplos

    main(){

    int contador;char continua;

    contador = 0;continua = 's';while (continua == 's') // enquanto for igual a 's'{// comandos a serem repetidos

    printf("Repentindo....\n");contador = contador + 1;printf("Tecle 's' se deseja continuar\n");continua = getch();

    }if (contador == 0)printf("O bloco NAO foi repetido.");

    else printf("O bloco foi repetido %d vezes", contador);

    getch();

    }

    // Programa que calcula a idade mdia de um grupo de pessoas.// A finalizao da entrada de nmeros dada por um -1

    int soma, quantidade, idade;

    float media;

    soma = 0;quantidade = 0;idade = 0;

    while (idade != -1){// comandos a serem repetidos

    printf("Idade da pessoa %d. (tecle -1 se quiser encerrar).\n",quantidade+1);

    scanf("%d", &idade);

    if (idade >=0){

    soma = soma + idade;quantidade = quantidade + 1;

    }}

    // Faz o calculo da media de idade

  • 8/9/2019 Apostila bsica de C - Informtica 2

    19/25

    19

    if (quantidade >0){

    media = (float) soma / quantidade;printf("A media de idade das %d pessoas eh: %5.2f", quantidade,

    media);

    }else printf("Nenhum dado foi informado.");

    Observao:Tenha ateno especial com o teste do comando while. As variveis usadas no teste devem tersido inicializadas antes do teste.

  • 8/9/2019 Apostila bsica de C - Informtica 2

    20/25

    20

    Comando do-whileO comando do-while permite que um certo trecho de programa seja executado ENQUANTOuma certa condio for verdadeira. A forma do comando do-while a seguinte:

    do

    {// comandos a serem repetidos// comandos a serem repetidos

    } while (condio);

    // comandos aps o 'do-while'

    O lao do-while bastante parecido com o lao while. A diferena que no lao do-while oteste da condio executado somente depois do lao ser processado. Isso garante que o laoser executado pelo menos uma vez.

    O funcionamento passo a passo o seguinte:

    1. Executa os comandos dentro do bloco do-while;2. Testa a condio;3. Se a condio for falsa ento executa o comando que est logo aps o bloco

    subordinado ao do-while .4. Se condio for verdadeira ento volta ao passo 1.

    O comando do-while deve ser usado sempre que:

    que no soubermos exatamente quantas vezes o lao deve ser repetido; o teste deva ser feito depois da execuo de um bloco de comandos; o bloco de comandos deve se executado pelo menos 1 vez;

    Exemplos

    int continua, contador;

    contador = 0;

    // nao precisamos inicializar a varivel 'continua'pois o teste feito

  • 8/9/2019 Apostila bsica de C - Informtica 2

    21/25

    21

    // depoisdo{// comandos a serem repetidos

    printf("Repentindo....\n");contador = contador + 1;

    printf("Tecle 's' se deseja continuar\n");continua = getch();

    } while (continua == 's')printf("O bloco foi repetido %d vezes", contador);

    // Programa que calcula a idade mdia de um grupo de pessoas.// A finalizao da entrada de nmeros dada por um -1main(){int soma, quantidade, idade;float media;

    soma = 0;quantidade = 0;

    do {printf("Idade da pessoa %d. (tecle -1 se quiser encerrar).\n",

    quantidade+1);scanf("%d", &idade);if (idade >=0){

    soma = soma + idade;quantidade = quantidade + 1;

    }} while (idade != -1);

    // Faz o calculo da media de idadeif (quantidade > 0){

    media = (float) soma / quantidade;printf("A media de idade das %d pessoas eh: %5.2f", quantidade,

    media);}else printf("Nenhum dado foi informado.");getch();}

  • 8/9/2019 Apostila bsica de C - Informtica 2

    22/25

    22

    Comando forO comando for permite que um certo trecho de programa seja executado um determinadonmero de vezes.A forma do comando for a seguinte:

    for (comandos de inicializao;condio deteste;incremento/decremento){

    // comandos a serem repetidos// comandos a serem repetidos

    }

    // comandos aps o 'for'

    Observe a estrutura:

    O funcionamento o seguinte:

    1. Executa os comandos de inicializao;2. Testa a condio;3. Se a condio for falsa ento executa o comando que est logo aps o bloco

    subordinado ao for .4. Se condio for verdadeira ento executa os comandos que esto subordinados ao for;5. Executa os comandos de incremento/decremento;6. Volta ao passo 2.

    O comando for deve ser usado sempre que:

    soubermos exatamente quantas vezes o lao deve ser repetido ; o teste deva ser feito antes da execuo de um bloco de comandos; houver casos em que o lao no deva ser repetido nenhuma vez.

    for (contador = 1; contador

  • 8/9/2019 Apostila bsica de C - Informtica 2

    23/25

    23

    Exemplos

    int contador;

    for (contador = 0; contador < 10; contador = contador+1){printf("Contador : %d\n",contador);

    }

    printf("Valor do Contador aps o lao: %d\n",contador);

    int contador;

    for (contador = 10; contador > 0; contador = contador-1){

    printf("Valor do Contador aps o lao: %d\n",contador);}

    printf("Valor do Contador aps o lao: %d\n",contador);

    Observaes:

    1. Os comandos de inicializao so executados apenas 1 vez;2. O contador incrementado/decrementado sempre ao final da execuo do bloco;3. O teste feito sempre antes do incio da execuo do bloco de comandos.

    Comandos de DesviosOs laos em C possuem dois comandos de desvios: break e continue. Estes comandosfuncionam com todos os comandos de repetio.

    O comando break encerra o lao no ponto em que for executado.

    // Este programa le NO MAXIMO 3 nmeros positivos

    // Caso um nmero negativo seja digitado no meio da

    seqncia o lao

    // encerrado de imediato

    #include #include

    main(){

    int contador, numero;for (contador = 1; contador

  • 8/9/2019 Apostila bsica de C - Informtica 2

    24/25

    24

    }printf ("Foram digitados %d numeros validos",

    contador-1);getch();

    }

    O comando continue desvia o fluxo para o incio do lao.

    #include

    #include

    main(){

    int contador, numero;

    for (contador = 1; contador

  • 8/9/2019 Apostila bsica de C - Informtica 2

    25/25

    BibliografiaSCHILDT, Herbert. C Completo e Total. Makron Books, So Paulo, 1996. WIENER, Richard.

    PINHO, Mrcio Sarroglia. Material de consulta de Linguagem C.http://www.inf.pucrs.br/~pinho/LaproI/

    MIZRAHI, V.V., Treinamento em linguagem C - Curso completo. Mdulos 1 e 2. So Paulo:McGraw Hill, 1990

    http://www.inf.pucrs.br/~pinho/LaproI/http://www.inf.pucrs.br/~pinho/LaproI/http://www.inf.pucrs.br/~pinho/LaproI/