Aula1_-_Revisão (1).pdf

download Aula1_-_Revisão (1).pdf

of 97

Transcript of Aula1_-_Revisão (1).pdf

  • Fundamentos de Programao II

    (

    UnigranrioEscola de Cincia e Tecnologia

    Prof Ana Lusa Duboc

    [email protected]

  • Ementa do Curso

    Implementar programas na linguagem C utilizando-

    se dos seguintes recursos:

    Variveis, operadores e estruturas de controle (aprendidosem Fundamentos de Programao I)

    Vetores

    Matrizes

    Strings

    Ponteiros

    Funes

    Arquivos

  • Ambiente de ProgramaoECLIPSE

  • Eclipse

    http://www.eclipse.org/downloads/

    Buscar por Eclipse IDE for C/C++ Developers

    Eclipse Mars (4.5) a verso mais nova.

    Faa o download da verso que desejar e instale emc:\bin\eclipse.

    Crie um atalho na rea de Trabalho apontando parac:\bin\eclipse\eclipse.exe.

    Para verificar se as configuraes esto corretas, bastaexecutar o Eclipse.

  • Eclipse

    Caso j tenha o Eclipse instalado em sua mquina mas notenha o plugin de C/C++ instalado, faa:

    V em Help, Install New Software

    Escolha no Combo "Work With" o update site de sua verso de eclipse: http://download.eclipse.org/releases/Mars

    Marque o checkbox Programming Languages, C/C++Development Tools.

    Clique em Next, Next, concorde com os termos e cliqueem Finish.

  • Compilador C / C++

    Aps o download do Eclipse necessrioinstalar algum compilador de C e ou C++.

    Windows: http://sourceforge.net/projects/mingw-w64/

    Linux: $sudo apt-get install g++ gcc

  • Variveis de Ambiente

    Para que o Sistema Operacional consiga acessar oscompiladores instalados pelo MinGW (se esse for ocompilador escolhido), preciso definir o caminho da pastaque contm os binrios dos compiladores na varivel deambiente PATH. Ir em [Painel de Controle], cone [Sistema], guia

    [Avanado], boto [Variveis de Ambiente]. Para as configuraes possam valer para qualquer usurio

    do computador, trabalhe com o painel [Variveis doSistema].

    Procure a varivel PATH e a selecione. Clique no boto[Editar].

    No valor da varivel, acrescente o seguinte contedo:;C:\MinGW\bin (se voc no modificou o caminho

    padro na instalao).

  • Introduo ao Eclipse

    Ambiente extensvel, portvel e aberto que permite a integrao devrias ferramentas de desenvolvimento (no somente codificao!).

    Plug-in: Mdulos que permitem a extenso das funcionalidades do Eclipse

    Perspectiva : Conjunto de vises e editores organizados para apoiar umcerto tipo de atividade. Principais perspectivas: C/C++, Java, Debug, Resources, CVS (Sistema

    de Controle de Verses). Ao instalar novos plug-ins, novas perspectivas podem ficar

    disponveis. Workspace: Pasta que contm um ou mais projetos

    Projeto: Pasta dentro do workspace que representa um programa ou ummdulo. Pode conter cdigo e outros recursos.

  • Primeiro Exemplo Projeto no Eclipse

    Crie um workspace em seu computador e abra o eclipse paraeste workspace.

    Habilite a perspectiva C/C++.

    Criando um projeto: [File][New][Project] e no assistente marcar [C Project] e

    [Next] Project Name: ProjetoC Project Type: Empty Project ToolChains: MinGW GCC Clique em [Finish]

  • Primeiro Exemplo Projeto no Eclipse

  • Primeiro Exemplo Projeto no Eclipse

    Criando um programa em C: Crie uma pasta de cdigo fonte clicando com o boto direito sobre o projeto

    e acessando [New] [Source Folder] . Folder Name: src

    Agora, crie um arquivo fonte chamado main.c clicando com o boto direitodo mouse sobre a pasta src e selecionando [New] [Source File]. Noesqueam de colocar a extenso na definio do nome do arquivo.

    Escreva o cdigo abaixo e salve:

  • Primeiro Exemplo Projeto no Eclipse

    Executando um programa em C: Primeiramente compile o seu programa clicando no cone do martelo:

    A seguir, clique no cone abaixo para executar:

    A entrada/sada da execuo se d atravs da [View][Console]

  • Reviso de Fundamentos de Programao I

  • Algoritmos

  • Formas de Expresso de um Algoritmo

    Linguagem natural: clculo do zero da equaoax+b=0

    1. Incio de programa2. ler a, b3. se a diferente de 0 ento

    calcula o valor de x (ax+b=0)imprimir valor de x

    senoimprimir No h zero

    4. Fim de programa

  • Formas de Expresso de um Algoritmo

    Linguagem de Programao C: clculo do zeroda equao ax+b=0

  • Estrutura Bsica de Programa C

    #include

    definio de constantes e declarao de variveis

    funes

    int main(){declarao de variveis....sentenas....}

  • Sintaxe

    Incio do programa -> main()

    Identificadores -> utilizados para referenciarvariveis, funes e outros objetos

    Declaraes -> expressam partes de umprograma, podendo dar significado a umidentificador

    Tipos -> definem as propriedades dos dados(atributos)

    Funes -> especificam as aes de umprograma (mtodos)

  • Exemplo de Programa Simples

    #include

    int main(){

    printf(Bem-vindo ao C!!!\n");return 0;

    }

    Definies de bibliotecas

    de entrada e sada

    Comando para

    pr-processador

    Definio de

    uma funo

    Nome da

    funo mainFuno main

    retorna um

    inteiro

    Chamada

    funo printf

    Parmetro

    para printf

    Termina a funo

    main e retorna

    valor 0

    Incio de

    bloco

    Final de

    bloco

  • IdentificadoresPrimeiro caractere -> uma letra ou sublinhado.

    Caracteres subsequentes -> letras, nmeros ousublinhados.

    Exemplos:

    Correto Incorretotest23 1count

    _num hi!herenome teste...1

    Case sensitive -> maisculas se diferem deminsculas . (count, Count e COUNT so diferentes)

    As instrues terminam com ;.

  • Variveis

    Espao na memria do computador paraarmazenar um determinado tipo de dado;

    Todas as variveis devem ser declaradas;

    Associao a um determinado tipo dedados;

    Declarao -> definio de valor inicial.

    tipo lista_de_variaveis;

  • Tipos de Dados Bsicos

    Caracteres: char (1 byte)

    char letra = a;

    Numricos:

    Inteiros: int (2 bytes)

    longos: long (4 bytes)

    curtos: short (2 bytes)

    no-negativos: unsigned (int, long, short, char) aumentaa faixa de representao. O inteiro com sinal que vai de -32768 a 32768, passa a ir de 0 a 65535.

    Ponto Flutuante:

    - simples: float (6 dgitos de preciso) (4 bytes)

    - duplo: double (12 dgitos de preciso) (8 bytes)

  • Exemplos de tipos numricos:

    int a; float x;

    double y; int b = 0;

    unsigned int m = 100;

    long N = 1000000; short rodas = 4; double pi_aprox = 3.14;

    float e_aprox1 = 2.7;

    double c_aprox = 3e8;

    unsigned long degrau = 1;

  • Declarao de Variveis

    Neste exemplo, as declaraes:

    char ch, letra;long count;float pi;

    declaram duas variveis do tipo char (ch e letra),uma variavel long int (count) e um float. pi.

  • Declarao de Variveis

    As variveis so declaradas em trs lugares:

    Fora de todas as funes -> variveis globais

    Na definio dos parmetros das funes

    Dentro de uma funo -> variveis locais

  • Declarao de Variveis

    Exemplo:

    #include int contador;int func1(int j) { ...}int main() { char condicao; int i;for (i=0; ...){ /* Bloco do for */

    float f2; ...func1(i);}

    ...return 0;

    }

    Global

    Definio de Parmetro de funo

    Local

  • Declarao de VariveisVariveis Locais

    S podem ser referenciadas por comandos queesto dentro do bloco no qual as variveis foramdeclaradas.

    Estas variveis existem apenas enquanto o blocode cdigo em que foram declaradas est sendoexecutado.

    Void func1(void){ void func2(void){int x; int x;x=10; x=-199;

    } }

    A varivel x em func1() no tem nenhuma relaocom a varivel x em func2().

  • Declarao de Variveis

    Parmetros Formais

    So variveis que recebero os valores dosargumentos de uma funo.

    Essas variveis se comportam como qualqueroutra varivel local dentro da funo.

    O tipo de varivel dos parmetros formais devemser informados e deve-se lembrar desses tipos aochamar a funo em outras partes do programa.

  • Declarao de Variveis

    Variveis Globais

    So reconhecidas pelo programa inteiro e podemser utilizadas por qualquer pedao de cdigo.

    Armazenam seus valores durante toda a execuodo programa.

    Para serem reconhecidas como globais devem serdeclaradas fora de qualquer funo.

    So teis quando o mesmo dado utilizado emmuitas funes do programa. Deve-se evitarutiliz-las desnecessariamente, j que ocupammemria durante todo o tempo de execuo doprograma.

  • Declarao de Variveis

    Variveis Globais

    Exemplo:

    #include int count; /* count global */void func1(void){

    int temp;temp=count;func2();printf(Count %d, count); /* imprimir 100 */

    }void func2(){

    int count;for(count=1; count

  • Constantes

    O valor permanece o mesmo durante toda a execuo

    Definio por duas formas:

    Comando

    #define do pr-processador

    Palavra-chave

    const na declarao

  • Constantes

    Exemplo:

    #define PI 3.1416const float pi = 3.1416;

    int main(){double r = 2.5;double area1, area2;

    area1 = PI * r * r;area2 = pi * r * r;return 0;

    }

  • Operadores Operador de AtribuioForma geral:

    nome_da_variavel = expresso

    Atribuio Mltiplax = y = z= 0;

    Operadores Aritmticos

    O menos unrio multiplica seu nico operando por -1.

    No h operadores de potenciao.

    Operador Ao- Subtrao, menos unrio+ Adio* Multiplicao/ Diviso

    % Mdulo da Diviso (resto)-- Decremento

  • Operadores

    Operadores Aritmticos

    Incremento e Decremento

    x= x+1 o mesmo que x++; ou ++x; x = x-1 o mesmo que x--;

    Porm,x= 10;y = ++x; ento y = 11

    Mas, se y= x++ ento y = 10.

    Em ambos os casos, x recebe 11. A diferena est em quandoisso acontece.

  • Operadores

    - Incremento e Decremento

    Quando numa expresso, o operador ps-fixado indicaque a varivel ser incrementada ao final da expresso.

    m = 1;c= 2 * m++; // c = 2, m=2

    m = 1;m = 2 * m++; // m = 3

    O pr-fixado sempre feito antes da expresso.

  • Operadores

    Operadores Aritmticos

    Incremento e Decremento

    int n = 0, m = 0, a, b, c, d;

    n++; /* n = 1 */++m; /* m = 1 */n--; --n; /* n = -1 */a = n++; /* a = -1; n = 0 */b = ++m; /* b = 2; m = 2 */c = 2*(m++); /* c = 4; m = 3 */d = 3*(++n); /* d = 3; n = 1 */

  • Operadores

    Operadores Aritmticos

    Exemplos:

    int n = 10, d = 7;

    double x, y=10, z;/* declaraes do mesmo tipo */

    int i, j, k;

    i = 25; /* atribuio */

    j = d + i ; /* j = 32 */

    k = i / n ; /* k = 2 (diviso inteira) */

    i = n % d; /* i = 3 (resto)*/

    z = x / y; /* z = 2.5 */

    j = z + y; /* j = 12 (converso) */

  • Operadores

    Operadores Aritmticos

    Precedncia das operaes

    Operadores do mesmo nvel de precedncia so avaliadospelo compilador da esquerda para a direita. Porm,parnteses podem ser utilizados para alterar a ordem deavaliao. Parnteses foram uma operao, ou um conjunto deoperaes a ter um nvel de precedncia maior.

    Mais alta ++ --- (menos unrio)* / %

    Mais baixa + -

  • Exemplos de Precedncia

    a = b + c; /* atribuio < soma */

    d = (a + b) * c; /* determinada por parntesis */

    e = a + b * c; /* multiplicao > soma */

    f = a + b c; /* esquerda para direita*/

    g = f/e*g; /* (f/e)*g - esquerda para direita*/

    f = a + b * c d / e; /* (a + (b*c)) (d/e) */

  • Operadores

    Operadores Aritmticos

    Atribuio e Operao

    Operao combinada com atribuio em um mesmo operador

    +=, -=, *=, /=, %=, entre outros

    a += b; /* a = a + b */c -= b*a; /* c = c (b*a) */d *= a - b; /* d = d * (a - b) */

  • Operadores

    Operadores Relacionais e Lgicos

    Operador Ao> Maior que< Menor que>= Maior ou igual a

  • Operadores

    Operadores Relacionais e Lgicos

    Exemplo de utilizao:

    if (x >= 0 && x < 5)printf("dentro \n");

    else if (x < 0)

    printf("muito pequeno \n");else

    printf("muito grande \n");

  • Operadores

    Operadores Relacionais e Lgicos

    Precedncia dos Operadores

    Assim como no caso das expresses aritmticas, possvel utilizar parnteses para alterar a ordemnatural de avaliao de uma expresso relacionale/ou lgica.

    Maior !> >= <

  • ENTRADA E SADA DE DADOS

  • Impresso de Valores

    Baixar esta verso

    Funo printf -> insero de comandos que indiquem ostipos dos valores e o formato da impresso.

    Formato geral: printf(expresso de controle,arg1,arg2);

    Arg: pode ser varivel, const, expresses, chamadas de funes,...

    Principais cdigos de formato de impresso

    %d -> varivel inteira com sinal

    %u inteiro sem sinal

    %f -> varivel ponto flutuante

    %e -> ponto flutuante em notao cientfica

    %c -> caractere

    %s -> String de caracteres

    %p -> Apresenta um ponteiro

  • Impresso de Valores

    #include

    int main()

    {

    int a=1;

    a++;

    printf("Valor de a: %d,a);

    return 0;

    }

  • Preciso e tamanhoNo caso geral temos: %[-] [tamanho] [.precisao] { tipos de dados}printf("123456789012345678901234567890\n");printf("%10s%10c%10s\n", "Ano", ' ', "Valor");printf("%9d%11c%10d\n", 1, ' ', 1000);printf("%9d%11c%10d\n", 2, ' ', 2560);printf("%9d%11c%10d\n", 3, ' ', 6553);

  • Preciso e tamanho

    No caso em que o numero real, o parmetro de preciso define com quantas casas decimais o nmero deve ser escrito:

  • Leitura de Valores

    }

    Utiliza-se freqentemente a funo scanf.

    Insero de tipos de valores e formato.

    scanf(expresso de controle, end1, end2,...);

    Especificadores de Formato: %d inteiros %f ponto flutuante %c caractere %s string

    As variveis de leitura devem ser precedidas pelo operador& na chamada funo scanf, pois representam endereos.

    O especificador %s l caracteres at que seja encontradoum espao em branco. Logo, a string isto um teste nopode ser lida pelo mesmo. Na leitura de variveis desse tipo,no usa-se & antes do nome da varivel.

  • Leitura de Valores

    }

    Exemplo:int main() {

    setbuf(stdout, NULL);int a;int b;int soma;printf(Digite dois nmeros:\n);scanf("%d %d", &a, &b);soma = a + b;printf("Soma = %d\n", soma);return 0;

    }

    Os nmeros podem ser separados por um ou mais espaosem branco,tabs, ou enters . O primeiro nmero lido atribudo varivel a, e o segundo varivel b.

  • Leitura de Valores

    }

    Observe o comando setbuf(stdout, NULL) no incio do programa.

    Este comando necessrio para que o programa em C funcione corretamente no Eclipse.

    Este comando responsvel por desabilitar o buffer de sada.

    Outra opo colocar o comando fflush(stdout) depois de cada printf.

  • Exemplo de Leitura de Valores

    }

    #include

    int main() {

    int idade, matr;char sexo;setbuf(stdout, NULL);printf(Matrcula: );scanf(%d,&matr);printf(Idade: );scanf(%d,&idade);printf(Sexo: (f ou m));scanf(%c,&sexo);printf(Matrcula: %d\n,matr);printf(Idade: %d\n,idade);printf(Sexo %c,sexo);return 0;

    }

  • Bibliotecas do C

    }

    stdio.h - funes padronizadas de entrada e sada.

    fclose fgetc fgets fopen fprintf fputcfputs fread fseek fwrite printf scanf sprintf

    string.h - operaes com strings.strcat strcmp strcpy strdup strlen strstr

    math.h - trigonometria e exponenciao.

    cos exp fabs log pow sin sqrt tan

    time.h gerenciamento de data e hora.

    ctime gmtime mktime

  • Exemplos de Funes Matemticas

    }Funes matemticas de math.h

    Trigonomtricas

    sin, cos, tan, asin, acos, atan, atan2

    Relacionadas a exponenciao

    exp, pow, sqrt, log, log10, sinh, cosh, tanh

  • Exemplos de Funes Matemticas

    }

    #include #include

    int main() {

    float x = 10.0, y = 2.0, z;z = sqrt(pow(y,y)*pow(x,y));printf(O valor de z : %f,z);

    return 0;}

  • Exerccios

    1) Faa um programa que leia a base e altura de umtringulo e calcule a rea do mesmo.

    2) Faa um programa que efetue o clculo do salrio lquidode um professor. Os dados fornecidos sero: valor dahora/aula, nmero de aulas dadas no ms e percentual dedesconto do INSS.

  • ESTRUTURAS DE CONTROLE

  • Estruturas de Controle

    Controlam o fluxo de execuo doprograma;

    Duas categorias principais:

    Seleo

    If, operador ternrio, switch.

    Iterao

    While, do-while, for.

  • Seleo

    If/else atravs dessa estrutura, oscomandos podem ser executadoscondicionalmente.

    Se a condio for verdadeira ento o comandoou bloco de comandos executado.

    Em C, verdadeiro qualquer valor diferente de0 (zero).

    Um bloco de comandos a serem executadosficam delimitados entre { }

    Cada comando termina com ;

  • Seleo

    Exemplo:

    if (saldo > 0)printf("credor");

    elseprintf("devedor");

    Condio

    Comando a executar se condio for verdadeira

    Comando a executar se condio for falsa

    Parntesis so

    necessrios

  • Seleo Exemplo:

    #include

    int main(){int a,b;float div;setbuf(stdout, NULL);printf("Digite dois numeros: ");scanf("%d %d",&a, &b);if (b) { //testa apenas o valor de bdiv = (float)a/b;printf("A diviso d: %f\n", div);}

    else printf("diviso por 0 no permitida\n");return 0;

    }

  • Blocos

    Utilizados para execuo de uma sequncia decomandos.

    Delimitadores: { e }

    Exemplo:

    if (saldo > 0) {total_credores += saldo;printf("credor=%d \n,total_credores);

    } //no tem ; else {total_devedores += saldo;printf("devedor=%d \n,total_devedores);

    } //no tem ;

  • Condicional if/else

    Pode-se utilizar o comando if sem usar oelse correspondente.

    Neste caso, se a condio for falsa, nadaser executado.

    Exemplo:

    if (x

  • Escada if-else-if

    Forma Geral:

    if (expresso) comando;elseif (expresso) comando;elseif (expresso) comando;else comando;

    Se a expresso for verdadeira, executa comando e desvia do resto da escada.

    Se nenhuma condio for verdadeira, esse else executado

    Se no tiver o else, nenhuma ao ocorre se todas as condies forem falsas.

  • Escada if-else-if

    Geralmente recuada da forma:

    if (expresso)comando;

    else if (expresso)Comando;

    else if (expresso)Comando;

    elsecomando;

  • Exemplo Escada if-else-if#include

    int main(){int magic;int guess;setbuf(stdout, NULL);magic = rand();printf("Adivinhe o nmero mgico: ");scanf("%d",&guess);if (guess == magic) {

    printf("Certo\n");printf("%d o nmero mgico\n",magic);}

    else if (guess > magic)printf("Errado, muito alto\n");

    else printf("Errado, muito baixo\n");return 0;

    }

    Cuidado para no usar o = de atribuio

  • Operador Ternrio

    Modo compacto de expressar if/else.

    condio ? expresso1 : expresso2

    Exemplo:

    max = (a>b) ? 1 : 0

    max receber 1 se (a>b) for verdadeiro ereceber 0 se (a>b) for falso.

  • Exemplo

    int main() { int x,y,max;

    setbuf(stdout, NULL);printf("Entre com dois nmeros: ");scanf(%d %d \n,&x,&y);max=(x > y)?1:0; printf("max = %d \n",max);return 0;

    }

  • EXERCCIOS1. Construa um programa em C que leia um nmero e

    imprima se o nmero mltiplo de 3 ou no.

    2. Faa um programa em C que leia a idade de uma pessoae informe se a mesma:

    Est entre 18 e 65;

    menor de idade; ou

    maior de 65 anos.

  • Switch

    Comando de seleo mltipla que testasucessivamente o valor de uma expresso sobreuma lista de constantes inteiras ou de caracteres;

    Caso haja uma coincidncia entre a expresso eum valor, a sequncia de comandos associadaquele case ser executada.

    Caso contrrio, o comando default executado.

    O comando switch frequentemente utilizado paraprocessar uma entrada via teclado, como em umaseleo por menu.

  • Switch

    Sintaxe:

    switch (varivel) {case constante 1:

    seqncia de comandosbreak;

    case constante 2:seqncia de comandosbreak;

    .

    .

    .default:

    seqncia de comandos}

    opcional

    Seqncia de comandos executada

    at que o comando break

    seja encontrado.

  • SwitchExemplo:

    int main(){ char x; setbuf(stdout, NULL);printf("1. incluso\n"); printf("2. alterao\n"); printf("3. excluso\n"); printf(" Digite sua opo:"); scanf("%c",&x);switch(x) {

    case '1': printf ("escolheu incluso \n");break;

    case '2': printf ("escolheu alterao \n");break;

    case '3': printf ("escolheu excluso \n");break;

    default: printf("opo invlida\n"); }return 0;}

    Se no tivesse o break e fosse digitado o '1', imprimiria a frase do segundo case tambm.

  • Posso ter cases sem comandos associados.int main()

    {

    int x;

    setbuf(stdout, NULL);printf(" Digite um numero:");

    scanf("%d",&x);

    switch(x) {

    case 1:

    case 2:

    case 3: printf("teste");

    break;

    }

    return 0;

    }

    - Se o x for 1,2 ou 3, vai fazer o que est no case 3.

  • Voc pode ter um switch como parte da sequnciade comandos de outro switch. Mesmo se asconstantes dos cases dos switchs interno e externopossurem valores comuns, no d conflito.

    int main(){ int x,y; setbuf(stdout, NULL);printf(" Digite um numero:"); scanf(%d,&x);switch(x) {

    case 1: printf(" Digite um numero:"); scanf(%d,&y);switch(y) {

    case 1: printf(teste1);break;

    default: printf(outro);}

    case 2: printf(teste2);break;

    Default: ...}

    }

    Esse break no impede de entrar no case 2 do switch externo

  • Exerccio switch

    1. Faa um programa que leia dois nmeros, apresente um menucom as opes de operao (soma, subtrao, multiplicao ediviso), e execute a operao escolhida, mostrando na tela oresultado.

  • Iterao

    1. Estrutura de Repetio While

    Permite repetir um comando enquanto a condiofor verdadeira.

    Comando pode ser vazio, simples ou bloco;

    Executado desde que a condio seja verdadeira;

    A condio pode ser qualquer expresso, everdadeiro qualquer valor no-zero.

    Testa a condio antes de executar o lao

    Sintaxe:

    while (condio) { bloco de comandos;

    }

  • Iterao Exemplo:

    #include int main() {

    int valor = 1; while (valor

  • Iterao

    Estrutura de Repetio Do .. While

    Tambm executa comandos repetitivos.

    Comando pode ser vazio, simples ou bloco.

    Repete o bloco de comandos at que a

    condio seja falsa.

    Testa a condio depois de executar o lao

    Sintaxe:

    do {

    bloco de comandos;

    }

    while (condio);

  • Iterao Exemplo:

    #include int main() {

    int valor = 1; do{

    printf("%d ", valor); valor++;

    }while(valor

  • Iteraowhile ou do..while ?

    Ex: escrever um programa que leia valoresinteiros a partir do teclado e calcule a mdia dosnmeros quer forem mpares. O programa deveterminar a leitura se o usurio digitar um nmeronegativo. Imprima a mdia pedida e o total denmeros mpares digitados (desconsiderando onegativo)

    Qual das duas estruturas melhor usar nestecaso?

  • Iterao#include int main(){

    setbuf(stdout, NULL);int total=0,num;float media=0;printf("Digite um numero: \n");scanf("%d",&num);while (num >=0) {if (num%2) {

    media += num;total++;

    } printf("Digite um numero: \n");scanf("%d",&num);

    }if (total) {media = media/total;printf("media: %0.1f, Total: %d",media, total);

    }else printf("nenhum numero impar foi digitado");return 0;

    }

  • Iterao#include

    main(){setbuf(stdout, NULL);int total=0,num,t=0;float media=0;do {printf("Digite um numero: \n");scanf("%d",&num); if (num%2) {

    media += num;total++;

    } t++;

    } while (num >=0);if (total) {media = media/total;printf("media: %0.1f",media);

    }else printf("nenhum numero impar foi digitado\n");

    printf("total de numeros digitados: %d",t);return 0;}

    Vai fazer os comandos antes de testar se o nmero positivo. Vai incrementar o t.

  • Exerccios1) Faa um programa que imprima a soma de dois nmeros lidos da tela at que ocorra de uma soma ser mpar.

    2) Faa um programa que leia um nmero pelo teclado e repita a operao de multiplicar ele por trs (imprimindo o novo valor) at que ele seja maior do que 100. Ex.: se o usurio digita 5, deveremos observar na tela a seguinte sequncia: 5 15 45 135.

  • Iterao

    1. Estrutura de Repetio For

    Comando de repetio com condio pr-definida.

    Sintaxe:

    for (inicializao;condio;incremento){

    bloco de comandos;

    }

    Uma vez que a condio se torne falsa, a execuo do programa continua no comando seguinte ao for.

  • Iterao

    Exemplo:

    #include int main() { int x;for (x = 1; x

  • Iterao

    O lao pode ser executado de forma inversa:

    #include int main() { int x;float z;for (x = 100; x !=65; x-=5){z = x*x;printf ("O quadrado de %d, %f \n ", x,z);

    }return 0;

    }

  • Iterao

    Laos FOR aninhados:

    int main() {int i,j;

    for (i=1; i

  • Iterao

    Variaes do lao FOR

    Qualquer expresso do comando FOR pode ficarem branco.

    for (x = 0; x != 123;) scanf("%d",&x);

    - Cada vez que o lao se repetir x ser testado para verificar se igual a 123, mas nenhuma atitude adicional ser tomada. Se voc digitar 123 no teclado, o lao termina.

  • Exerccios

    1) Faa um programa que conte de 1 a 100 e acada mltiplo de 5, emita uma mensagem:Mltiplo de 5.

    2) Faa um programa que leia os catetos de 10tringulos, calcule a hipotenusa de cada umdeles e imprima esses valores.

  • Desvios

    Break

    O comando break pode ser tanto usadopara terminar um teste case dentro deum comando switch quanto parainterromper a execuo de um lao.

    Quando for encontrado no corpo docomando: trmino imediato; controle do programa muda o fluxopara o cdigo imediatamente aps oloop.

  • Desvios

    Exemplo:

    for (i = 0; i < 100; i++){

    scanf("%d", &num );if (num < 0)

    break;printf ("%d\n", num );

    }

  • Desvios

    Continue

    O comando continue parecido com o comandobreak.

    A diferena que o comando continuesimplesmente interrompe a execuo daiterao corrente, passando para a prximaiterao do lao, se houver uma.

  • Desvios

    Exemplo:

    for (i = 0; i < 10; i++){

    scanf("%d", &num );if (num < 0)

    continue ;printf("%d\n", num );}

  • Exercicios

    1) Faa um programa que verifique se um dado nmero digitadopelo usurio ou no potncia de 2. A sada do programa deveser assim(imagine que o numero digitado foi 44):

    44 divisivel por 2

    22 divisivel por 2

    11 no divisvel por 2

    No potncia de 2

  • Mais Exerccios

    1.Escreva um programa em C que leia trs valores, a, b,c e calcula:

    a rea do tringulo que tem a como base e b comoaltura;

    a rea do crculo de raio c; a rea do trapzio de bases a e b e altura c; a rea do quadrado de lado b; a rea do retngulo de lados a e b.

    2. Faa um programa em C que leia a idade de umapessoa em anos, calcule e escreva essa idade em:

    Meses; Dias; Horas; segundos.

  • Exerccios

    3. Dados trs valores X,Y e Z, verificar se eles podem ser oscomprimentos dos lados de um tringulo, e se forem,verificar se um tringulo equiltero, isceles ouescaleno. Se eles no formarem um tringulo, escreveruma mensagem.

    Obs.: O comprimento de cada lado de um tringulo menor do que a soma dos comprimentos dos outros doislados.

    4. Faa um programa em C que calcula as razes de umaequao do 2 grau, sendo que os valores A, B e C sofornecidos pelo usurio.

  • Exercicios

    5. Escreva um programa que exiba uma mensagem com as opes"1-multiplicar" ,"2-somar" "3-Subtrair", "4-Dividir", "5-Sair".Leia a opo desejada (1, 2, 3, 4,5), leia dois valores, executea operao escolhida e exiba o resultado. O programa deveficar repetindo sua execuo, at que seja escolhida a oposair.

    6. Escreva um algoritmo que leia um conjunto de 10 nmerosinteiros e mostre qual foi o maior e o menor nmero fornecido.