Upload
william
View
226
Download
1
Embed Size (px)
DESCRIPTION
Linguagem C
Citation preview
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
www.ufpel.edu.br/~guntzel
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;
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
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
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
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
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
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
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
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
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 :
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
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
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
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
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
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
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
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
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()