Curso C: Controle de Fluxo



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

Linguagem de Programação C

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

compreender a importância de cada estrutura de controle disponível na Linguagem C;

INTRODUÇÃO À LINGUAGEM C++

Analise o código abaixo:

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

RESUMO DE CONCEITOS BÁSICOS DE C

José Romildo Malaquias

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem de Programação C

LINGUAGEM C: DESCOMPLICADA. Prof. André R. Backes

9 Comandos condicionais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

7. Estrutura de Decisão

Curso C: Funções e Macros

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

Estruturas de repetição (Ciclos)

LINGUAGEM C. Estrutura básica de um programa

Programação: Estruturas de seleção

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

A linguagem C oferece quatro estruturas de decisão: if, if-else, switch e o operador condicional.

Apresentar os conceitos básicos e as estruturas de linguagem relacionadas à tomada de decisão ofertadas pela linguagem C, tais como:

Estruturas de Controle

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Elementos de programação em C

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Estruturas de entrada e saída

Convertendo Algoritmos para a Linguagem C

Estruturas (Registros)

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

Programação científica C++

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.

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Estruturas de Controle - Seleção. Prof. César Melo

Estruturas de Controle em PHP

Programação Estruturada e Orientada a Objetos REVISÃO

Comandos de Controle do Programa

Variáveis e Comandos de Atribuição

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

14.1 Vetor - Problemas

Algoritmos e Programação Estruturada

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Comando de Seleção: Switch

Programação WEB I Estruturas de controle e repetição

Linguagem C: for. Introdução à linguagem C(++) Profs. Anilton, Lasaro e Paulo Coelho. Faculdade de Computação Universidade Federal de Uberlândia

Desenvolvimento OO com Java 3 Estruturas de Controle e Programação Básica

20 Caracteres - Tipo char

ATENÇÃO!!! Rui Morgado - TLP 2

Introdução à Linguagem C

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Algoritmos e Programação

9.1.2 Laços Controlados por Entrada: Contador

INF 1005 Programação I lista 12

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias

Exercício de Revisão Linguagem C

Python Condicionais e Loops. Introdução à Programação SI1

Utilizem a classe Aula.java da aula passada:

Programando em C++ Histórico da Linguagem C

Exercícios de Revisão Java Básico

Python: Comandos Básicos. Claudio Esperança

2 echo "PHP e outros.";

Introdução à Programação

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Variáveis e estruturas de controlo. Introdução à Programação André L. Santos

Introdução à Programação

Prof Evandro Manara Miletto. parte 2

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

Estruturas de Repetição

Programação Básica em Arduino Aula 2

Solucionário de. Programação

ESTRUTURA CONDICIONAL

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

e à Linguagem de Programação Python

Estrutura Condicional em Java

Estruturas de Repetição

Operadores unários de incremento/decremento. Ciclo for

Equivale a um conjunto de if 's encadeados, porém mais estruturado.

Curso C: Ponteiros e Arrays

3. Linguagem de Programação C

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Comandos Sequenciais if else, e Switch

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

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

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Estruturas de controle no nível de sentença

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Linguagem C (repetição)

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

Resumo da Matéria de Linguagem de Programação. Linguagem C

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

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Transcrição:

Universidade de Brasília Departamento de Ciência da Computação Curso C: Controle de Fluxo Prof. Ricardo Pezzuol Jacobi rjacobi@cic.unb.br O comando if if ( express o Ž verdadeira ) execute comando ou bloco de comandos ; else /* se express o Ž falsa */ execute comando ou bloco de comandos ; Ex: if ( count > 9 ) count = 0; else count++; 1

Aninhamento de if é possível aninhar contruções do tipo if-else em diversos níveis if (cond1) /* if1 */ if (cond2) /* if2 */ comando if2; else /* else2 */ comando else2; else /* else1 */ if (cond3) /* if3 */ if (cond4) /* if4 */ comando if4; else /* else4 */ comando else4; else /* else3 */ comando else3; Aninhamento de if cuidado com a correspondência entre if s e else s: if (cond1) if (cond2) comando if2; else /* atenção: else2! */ comando if1; /* erro: comando do if2 */ modo correto: if (cond1) { if (cond2) comando if2; else comando if1; 2

Exemplo Converter um string tipo Ò10Ó para um valor inteiro... char str[] = 10 ; if (str[0]== 0 ) if (str[1]== 0 ) printf( Zero ); else printf( Um ); else /* str[0] == 1 */ if (str[1]== 0 ) printf( Dois ); else printf( Tres ); Encadeamento if-else-if if (teste_1) <comando_1>; else if (teste _2) <comando _2>; else if (teste _3) <comando _3>;... else <comando _n>; No encadeamento apenas um dos n comandos ser executado: o primeiro cujo teste for verdadeiro 3

Encadeamento if-else-if Ex: escrever o nome de um d gito Ô0Õ -> ÒzeroÓ, Ô1Õ -> ÒumÓ, etc.... if (ch == 0 ) printf( Zero ); else if (ch== 1 ) printf( Um ); else if (ch== 2 ) printf( Dois ); else if... else if (ch== 0 ) printf( Nove ); else printf( Nao era um digito! ); Expressão Condicional? A express o condicional Ò? :Ó Ž uma simplifica o do if-else utilizada tipicamente para atribui es condicionais: exp1?exp2:exp3 if (exp1)?exp2; else exp3; Ex: implementando z = max(x, y) com: if: if (x > y) z=x; else z=y;?: z = (x > y)? x : y; 4

Exemplo O que faz o trecho de c digo abaixo?... conta = 0; for (index=0; index < 1000; index++) { printf( %d, conta); conta = (conta==8)? 0 : conta+1; O comando switch switch ( valor ) { case valor1: comandos1; case valork: comandosk; default: comandos default; switch case: case: case: 5

O comando switch a express o valor Ž avaliada e o valor obtido Ž comparado com os valores associados ˆs cl usulas case em sequ ncia. quando o valor associado a uma cl usula Ž igual ao valor do switch os respectivos comandos s o executados atž encontrar um break. se n o existir um break na cl usula selecionada, os comandos das cl usulas seguintes s o executados em ordem atž encontrar um break ou esgotarem-se as cl usulas do switch se nenhuma das cl usulas contžm o valor de sele o, a cl usula default, se existir, Ž executada Exemplo switch switch( char_in ) { case '.': printf( Ponto.\n" ); case ',': printf( Virgula.\n" ); case :': printf( Dois pontos.\n" ); case ;': printf( Ponto e virgula.\n"); default : printf( Nao eh pontuacao.\n" ); 6

Exemplo switch switch( char_in ) { case 0 : putchar( 0 ); /* 0123456789 */ case 1 : putchar( 1 ); /* 123456789 */ case 2 : putchar( 2 ); /* 23456789 */ case 3 : putchar( 3 ); /* 3456789 */ case 4 : putchar( 4 ); /* 456789 */ case 5 : putchar( 5 ); /* 56789 */ case 6 : putchar( 6 ); /* 6789 */ case 7 : putchar( 7 ); /* 789 */ case 8 : putchar( 8 ); /* 89 */ case 9 : putchar( 9 ); /* 9 */ Exercício switch Contar o nœmero de ocorr ncias de d gitos decimais em uma sequ ncia de caracteres digitados pelo usu rio utilizando o comando switch main() { char ch; int ch_count = 0; printf("- Entre caracteres ('F' para terminar) -\n" ); do { ch = getchar(); /* usar switch para contar os digitos */ while (ch!= F ); printf ( \n\lidos: %d\n, ch_count); 7

Comando while while (condi o) { comandos; while f v 1¼ avalia condi o se condi o Ž verdadeira, executa comandos do bloco ao tžrmino do bloco, volta a avaliar condi o repete o processo atž que condi o seja falsa Exemplo while void pula_brancos () { int ch; while ((ch = getchar()) == /* brancos */ ch == \n /* newline */ ch == \t ) /* tabs */ ; /* não faz nada */ função que pula brancos \n 8

Comando for for (prž_cmd; teste; p s_cmd) { comandos; em termos de while, equivale a: prž_cmd; while (teste) { comandos; p s_cmd; for f v pré_cmd teste bloco pós_cmd Comando for 1¼ executa prž_cmd, que permite iniciar vari veis 2¼ avalia teste: se verdadeiro, executa comandos do bloco, sen o encerra la o ao tžrmino do bloco, executa p s_cmd reavalia teste repete o processo atž que teste seja falso 9

Exemplo for Ex: imprimir o conteœdo de um array: void main() { int i; for ( i=0; i < size_array; i++) printf ( %d, array[i]); Exemplo for Ex: convers o de string para inteiro int atoi (char s[]) { /* asc to integer */ int i, n; for (n=0, i=0; s[i] >= 0 && s[i] <= 9 ; ++i) n = 10 * n + s[i] - 0 ; return (n); n = 10*0 + 1-0 = 1 n = 10*1 + 2-0 = 12 n = 10*12 + 8-0 = 128 n = 10*128 + 0-0 = 1280 1280\0 (s[i] >= 0 && s[i] <= 9 ) == 0 10

Comando do-while do-while Ž utilizado sempre que o bloco de comandos deve ser executado ao menos uma vez do do { comandos; v f while (condição); bloco teste Comando do-while 1¼ executa comandos 2¼ avalia condi o: Ð se verdadeiro, reexecuta comandos do bloco Ð sen o encerra la o 11

Exemplo do-while void itoa (int num, char s[]) { int i = 0; int sinal; if ((sinal = num) < 0) /* armazena sinal */ num = - num; /* faz num positivo */ do { s[i] = num % 10 + '0'; /* unidades */ ++i; while ((num /= 10) > 0); /* quociente */ if (sinal < 0) s[i] = '-'; ++i; s[i] = '\0'; reverse(s); Comando break o comando break permite interromper a execu o de um la o ou de um switch Ex: main () { int i, j; for (i = 0; i < 4; i++) for (j = 0; j < 2; j++) if (i == 1) else printf("i: %d j: %d\n", i, j); i: 0 j: 0 i: 0 j: 1 i: 2 j: 0 i: 2 j: 1 i: 3 j: 0 i: 3 j: 1 12

Comando continue o comando continue leva a execu o do pr ximo passo de uma itera o. Os comandos que sucedem continue no bloco n o s o executados Ex: main() { int i; for (i = 0; i < 5; i++) if (i == 1) continue; else printf("i: %d \n", i); i: 0 i: 2 i: 3 i: 4 Goto s e labels C suporta os comandos goto, que permitem o desvio do fluxo de execu o do programa para uma posi o indicada por um r tulo (label) apesar de banido da pr tica de programa o estrutura, gotoõs podem ser œteis em determinadas circunst ncias, como sair de dentro de la os aninhados 13

Exemplo goto for (... ) for (... ) {... if ( desastre ) goto erro;... /* o label deve estar na mesm função */ erro: dah_um_jeitinho(); Exemplo com goto /* usando goto */ for ( i=0; i < n; i++ ) for ( j=0; j < m; j++ ) if ( A[i] == B[j] ) goto achei; /* trata outro caso: não achou */ achei: /* tratamento do achado */ 14

Exemplo sem goto /* sem goto */ int achei = 0; for ( i=0; i < n; i++ ) for ( j=0; j < m; j++ ) if ( A[i] == B[j] ) achei = 1; if (achei) /* tratamento do achado */ else /* trata outro caso: não achou */ Exercícios 1. Usando o comando for, fa a um algoritmo que conte o nœmero de 1Õs que aparecem em um string ex: 0011001 => 3 2. Usando o comando while, escreva um programa que substitui as ocorr ncias de um caracter ch0 em um string por um outro caracter ch1 3. Utilizando o comando do-while, implemente um programa que converte um string contendo um nœmero bin rio positivo em um inteiro. ex: Ò001101Ó => 13 15