20
Programa Programa çã çã o I o I Aula 2 Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Matemática, Estatística e Computação Bacharelado em Ciência da Computação Prof. José Luís Güntzel [email protected] www.ufpel.edu.br/~guntzel

C - GUIA RAPIDO

  • Upload
    william

  • View
    226

  • Download
    1

Embed Size (px)

DESCRIPTION

Linguagem C

Citation preview

Page 1: C - GUIA RAPIDO

ProgramaProgramaçãção Io IAula 2

Universidade Federal de PelotasInstituto de Física e MatemáticaDepartamento de Matemática, Estatística e ComputaçãoBacharelado em Ciência da Computação

Prof. José Luís Güntzel

[email protected]

www.ufpel.edu.br/~guntzel

Page 2: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 2 Prof. José Luís Güntzel

Estruturas de Controle de Fluxo

Comandos de Seleção: if

• Se condicao for verdadeira (qualquer valor diferente dezero), o programa executará o comando1; caso contrário(condicao for falsa), o programa executará o comando2.

• No lugar de um comando, pode haver uma seqüênciade comandos (ou seja, um bloco).

• Em C, um bloco incia com um abre chaves e terminacom um fecha chaves

• Então…

Sintaxe: if(condicao) comando1; else comando2;

Page 3: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 3 Prof. José Luís Güntzel

Comandos de Seleção: if

Sintaxe: if(condicao) { comando1; comando3; … } else { comando2; comando4; … }

Estruturas de Controle de Fluxo

Page 4: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 4 Prof. José Luís Güntzel

Comandos de Seleção: ifs aninhadosSintaxe: if( x > 0 ) if( y > 0 ) printf(“ponto no 1o quadrante”); else printf(“ponto no 4o quadrante”); else if( y > 0 ) printf(“ponto no 2o quadrante”); else printf(“ponto no 3o quadrante”);

Não há limite para o número de níveis

Estruturas de Controle de Fluxo

Page 5: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 5 Prof. José Luís Güntzel

A expressão condicional

#include <stdio.h>

main(){ int a, b;

printf(“digite dois numeros\n”); scanf(“%d%d”, &a, &b );

if(b) printf(“%d\n”, a/b ); else printf(“nao pode dividir por zero”);}

Estruturas de Controle de Fluxo

Page 6: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 6 Prof. José Luís Güntzel

Seleção múltipla: switch

Sintaxe: switch(expressao){ case constante1: sequencia_de_comandos1; break; case constante2: sequencia_de_comandos2; break; case constante3: sequencia_de_comandos3; break; … default: break;}

Estruturas de Controle de Fluxo

Page 7: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 7 Prof. José Luís Güntzel

Seleção múltipla: switch

Exemplo:

ch=getchar();switch(ch){ case ‘C’: case ‘c’: clio++; break; case ‘S’: scenic++; break; case ‘K’: kangoo++; break; case ‘M’: meganec++; break; default: break;}

Também é permitido:• uso de switchs aninhados• uso de ifs dentro de switchs

Estruturas de Controle de Fluxo

Page 8: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 8 Prof. José Luís Güntzel

Comandos de Iteração: laço for

Sintaxe 1: for( inicializacoes; testes; atualizacoes) comando;

Sintaxe 2: for( inicializacoes; testes; atualizacoes){ comando1; comando2; comando3; …}

Estruturas de Controle de Fluxo

Page 9: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 9 Prof. José Luís Güntzel

Comandos de Iteração: laço for

funcionamento:

for( inicializacoes; testes; atualizacoes){ comando1; comando2; comando3; …}

1 4

3

2

fimF

1

3

4

2

início

V

Estruturas de Controle de Fluxo

Page 10: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 10 Prof. José Luís Güntzel

Comandos de Iteração: laço for

Exemplo : #include <stdio.h>

main(){ int i, n; float valor, media; media = 0; printf(“entre com o numero de valores\n”); scanf(“%d”, &n ); for( i=0; i<n; i++ ) { printf(“entre com o %d valor\n”, i+1 ); scanf(“%f”, &valor); media+=valor; } media/=n; printf(“A media destes valores eh:%f\n”, media);}

Estruturas de Controle de Fluxo

Page 11: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 11 Prof. José Luís Güntzel

Comandos de Iteração: laço for

O Laço infinito:

Estruturas de Controle de Fluxo

for( ; ; ) printf(“Este laco serah executado forever\n”);

char ch;ch=‘\0’;for( ; ; ){ ch = getchar(); //obtem um caractere if(ch==‘A’) break; //sai do laco} printf(“tu digitaste um A, tche!\n”);

Exemplo1 :

Exemplo2 :

Page 12: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 12 Prof. José Luís Güntzel

Comandos de Iteração: laço for

Laços for sem corpo:

Estruturas de Controle de Fluxo

for( i=0 ; i<tam ; i++ );Exemplo:

• Este trecho serve para posicionar um indexador (i,neste caso) numa dada posição, que pode ser o finalde um vetor

• Repare no ponto-e-vírgula logo após o parêntesis

Page 13: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 13 Prof. José Luís Güntzel

Comandos de Iteração: laço while

Sintaxe 1: while( condicao ) comando;

Sintaxe 2: while( condicao ){ comando1; comando2; comando3; …}

Estruturas de Controle de Fluxo

Page 14: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 14 Prof. José Luís Güntzel

Sintaxe 1: do comando;while( condicao );

Sintaxe 2: do{ comando1; comando2; comando3; …} while( condicao );

Estruturas de Controle de Fluxo

Comandos de Iteração: laço do while

Page 15: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 15 Prof. José Luís Güntzel

Exemplo: do scanf(“%d”, &num);while( num > 100 );

O Que faz este trecho de código?

Lê números do teclado até que encontre um númeromenor ou igual a 100.

Estruturas de Controle de Fluxo

Comandos de Iteração: laço do while

Page 16: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 16 Prof. José Luís Güntzel

Comandos de Desvio: return

• É usado para retornar de uma função

• É considerado um comando de desvio porque faz com quea execução retorne ao ponto em que a chamada à funçãofoi feita

• Se return tem um valor associado a ele, este valor é ovalor de retorno da função

• Se não houver valor associado ao return, assume-se quesomente lixo é retornado

Forma Geral:return expressao;

Estruturas de Controle de Fluxo

Page 17: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 17 Prof. José Luís Güntzel

Comandos de Desvio: break

Tem dois usos:

• Terminar um case do comando switch;

• Forçar uma terminação imediata de um laço,

Estruturas de Controle de Fluxo

Page 18: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 18 Prof. José Luís Güntzel

Comandos de Desvio: break

Quando o comando break é encontrado dentro de um laço, olaço é imediatamente terminado e o controle do programaretorna no comando seguinte ao laço.

Exemplo:for( i=0; i<100; i++ ){ printf(“%d”, i); if( i==10 ) break;}

Estruturas de Controle de Fluxo

Page 19: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 19 Prof. José Luís Güntzel

Comandos de Desvio: função exit()

• Da mesma forma que se pode sair de um laço, pode-se sairde um programa usando a função exit() da bibliotecapadrão.

• Esta função provoca uma terminação imediata doprograma inteiro, forçando um retorno ao sistemaoperacional

Estruturas de Controle de Fluxo

Page 20: C - GUIA RAPIDO

ComputaçãoUFPelProgramação I

slide 20 Prof. José Luís Güntzel

void exit(int codigo_de_retorno);

Forma Geral:

• O valor de codigo_de_retorno é retornado ao processochamador, que é normalmente o sistema operacional

• O zero é geralmente usado como código de retorno queindica uma terminação normal do programa

• Outros valores são usados para indicar algum tipo de erro

Estruturas de Controle de Fluxo

Comandos de Desvio: função exit()