working 04 : conceitos básicos iii

8

Click here to load reader

Upload: dinhkhanh

Post on 10-Jan-2017

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Working 04 : Conceitos Básicos III

Universidade Federal do Espirito SantoCentro Tecnologico

Working 04 : Conceitos Básicos III

Objetivos:

• Dominar a construção de estruturas de repetição em C;

• Aperfeiçoar-se na resolução de problemas;

Prazo de Envio: sexta-feira, 09/09, 23:55.

PETEngenharia de Computação

Page 2: Working 04 : Conceitos Básicos III

Introcomp 2016

1 INTRODUÇÃO

Finalizando os conceitos básicos, neste Working apresentaremos outras três estruturas derepetição: for, while e do-while. Além destes, vamos compreender algumas práticas deprogramação em processamento de textos e jogos. Por fim, vamos praticar e dominar todosos conceitos básicos que permeiam o alicerce da programação de computadores!

2 A ESTRUTURA DE REPETIÇÃO FOR

O comando de repetição condensado permite agrupar, em um único comando, a inicializaçãode uma variável, o incremento desta variável e o teste de parada. Seu uso mais comumem situações nas quais o número de repetições da sequência de comandos conhecido antesmesmo do início do for. A estrutura do comando é exibida a seguir:

1 f o r (< i n i c i a l i z a c a o >; <expres sao l og i c a >; <incremento >){<Sequencia de comandos>

3 }

Inicialização é um comando de atribuição usado para colocar um valor na variável de controleutilizada na expressão lógica. Assim como os demais comandos de repetição, a expressãológica representa a condição de parada das iterações. Incremento define como a variável decontrole será modificada a cada iteração. Um exemplo para entendermos:

1 #inc lude <s td i o . h>in t main ( ) // e s t e programa imprime numeros de 1 a ’n ’ .

3 {i n t n ;

5 i n t i ;

7 p r i n t f ( " D ig i t e um numero i n t e i r o e maior que zero : " ) ;s can f ( "%d",&n) ;

9

f o r ( i=1 ; i<=n ; i++) // observe que e u t i l i z a d o ’ ; ’ ! !11 p r i n t f ( "%d\n" , i ) ;

13 r e turn 0 ;}

Observe que a variável contadora foi inicializada com o valor 1 e é incrimentada com o valor1 (i++). Além disso, haverá a parada quando i for maior que n.

3 A ESTRUTURA DE REPETIÇÃO WHILE

O comando de repetição while é utilizado para repetições de trechos de códigos em quehá a necessidade de se fazer um teste antes da execução de determinado trecho de código.Por isso, é conhecido como comando de repetição com pré-condição. Vejamos a sintaxe docomando:

PET - Engenharia de Computação 2

Page 3: Working 04 : Conceitos Básicos III

Introcomp 2016

whi le (<expres sao l og i c a >)2 {

<sequenc ia de comandos>4 }

A expressão lógica presente entre parênteses definirá a condição de parada do comando, ouseja, enquanto a expressão lógica for verdadeira, a sequência de comandos que estiver entreas chaves continuará a ser repetida.Vejamos um exemplo de utilização do comando:

#inc lude <s td i o . h>2 i n t main ( )

{4 i n t num = 2 ;

whi l e (num%2 == 0)6 {

scan f ( "%d" , &num) ;8 p r i n t f ( "%d\n" , num) ;

}10 r e turn 0 ;

}

O trecho de código acima permite que o usuário imprima números enquanto esses númerosforem pares, e os imprime na tela.

4 A ESTRUTURA DE REPETIÇÃO DO-WHILE

Em contraste com o comando de repetição com pré-condição, o comando de repetição compós-condição, do while, só efetua o teste da expressão lógica (condição de parada) após aprimeira execução da sequência de comandos. Logo, a sequência de comandos é executadapelo menos uma vez, independente da expressão lógica. A própria sintaxe do comando sugereessa diferença:

1 do{<sequenc ia de comandos>

3 } whi l e (< e x p r e s s o l g i c a >) ;

Um exemplo para entender sua utilidade:

1 #inc lude <s td i o . h>in t main ( )

3 {i n t candidato ;

5 i n t conf i rma ;

7 do{p r i n t f ( " D ig i t e o numero do seu candidato : " ) ;

9 s can f ( "%d",&candidato ) ;switch ( candidato )

PET - Engenharia de Computação 3

Page 4: Working 04 : Conceitos Básicos III

Introcomp 2016

11 {case 13 :

13 p r i n t f ( "Voce votou na I r i n y Lopes ! \ n" ) ;break ;

15 case 23 :p r i n t f ( "Voce votou no Rezende ! \ n" ) ;

17 break ;case 43 :

19 p r i n t f ( "Voce votou no Luiz Paulo ! \ n" ) ;break ;

21 de f au l t :p r i n t f ( "Voce votou nulo ! \ n" ) ;

23 }p r i n t f ( " D ig i t e 1 ( conf i rmar ) ou 0 ( votar novamente ) : " ) ;

25 s can f ( "%d",&conf irma ) ;} whi l e ( ! conf i rma ) ;

27

r e turn 0 ;29 }

O programa acima permite ao usuário escolher um candidato a partir da digitação de seunúmero, e finaliza a repetição quando o usuário decide confirmar seu voto, ou seja, digitar1 após a escolha do candidato. Caso o usuário deseje modificar seu voto, basta escolher 0para votar novamente, e desta maneira a repetição continua por pelo menos mais um ciclo.

5 DESVIO INCONDICIONAL BREAK

1 whi le (<condicao >){

3 f o r ( i n i c i a l i z a c a o ; condicao ; incremento ){

5 whi le (<condicao >){

7 i f (<condicao >)break ; // Ocorre a in t e r rupcao da e s t r t u r a de r epe t i cao , seguindo com o deco r r e r

do codigo .9 . . .

. . .11 . . .

}13 . . .

. . .15 . . .

17 }}

O comando break desvia o fluxo do programa de forma que a execução do mesmo continuano bloco de código do loop exterior. Caso não haja um loop exterior, o programa é desviadopara o bloco de código exterior.

6 DESVIO INCONDICIONAL CONTINUE

PET - Engenharia de Computação 4

Page 5: Working 04 : Conceitos Básicos III

Introcomp 2016

whi le (<condicao >)2 {

f o r ( i n i c i a l i z a c a o ; condicao ; incremento )4 {

whi le (<condicao >)6 {

i f (<condicao >)8 cont inue ;

. . .10 . . .

. . .12 }

. . .14 . . .

}16 }

O comando continue desvia o fluxo do programa de forma que a execução do mesmo continuaao final do bloco de código do loop atual.

PET - Engenharia de Computação 5

Page 6: Working 04 : Conceitos Básicos III

Introcomp 2016

Praticando

Agora vamos praticar! Para todos os praticando em que é pedido que se escreva umprograma, escreva o código do seu programa e nos envie o .c (código fonte) correspondente.

1. Considere o código abaixo:#inc lude <s td i o . h>

2 i n t main ( ){

4 i n t i , j , cont ;f o r ( i =0; i <10; i++)

6 {i f ( i ==10){

8 break ;}

10

f o r ( j =0; j <20; j++)12 {

i f ( i >=9)14 {

break ;16 }

}18 cont = cont + 2 ;

}20 r e turn 0 ;

}22

(a) Para que linha do código acima, o comando break da linha 15 desviará o fluxo deexecução do programa?

(b) O comando break da linha 8 é inútil. Explique por quê.(c) Descreva brevemente o funcionamento do comando break.

2. Considere os códigos a seguir:

(a)1 f o r ( i =0; i <20; i++)

{3 //Codigos . . .

}5

(b)i =0;

2 whi le ( i <100){

4 //Codigos . .i = i + 2 ;

6 }

PET - Engenharia de Computação 6

Page 7: Working 04 : Conceitos Básicos III

Introcomp 2016

(c)f o r ( i =0, j =2; i <8 | | j <16; i++, j+=2)

2 {//Codigos

4 }

Transcreva os códigos de cada letra por alguma outra estrutura de repetição dentre aspossíveis (do-while, while e for), que não esteja já sendo utilizada pela letra.

3. Faça um programa em C que calcula o produto dos números digitados pelo usuário. Oprograma em C deve permitir que o usuário digite uma quantidade não determinadade números. E que encerre quando o usuário digita 0. Use as estruturas que acharapropriado.

4. Faça um programa que simule um jogo de loteria: deverá ser pré estabelecido um nú-mero vencedor pelo programador, e o usuário deverá tentar adivinhá-lo. A cada erroo programa deverá indicar se o número tentado pelo usuário é maior ou menor do queo número premiado. O programa só deverá encerrar quando o usuário acertar o número.

5. Exiba a tabuada de multiplicação de 1 a ‘n’ números sendo 0<n<=10.Ex:Entrada:1Saída:1*1 = 11*2 = 21*3 = 31*4 = 41*5 = 51*6 = 61*7 = 71*8 = 81*9 = 91*10 = 10

PET - Engenharia de Computação 7

Page 8: Working 04 : Conceitos Básicos III

Introcomp 2016

Desafios1. Faça um programa em C que, dado dois números inteiros lidos pelo teclado imprima o

MDC (Máximo Divisor Comum) desses dois números.

NO PRÓXIMO ENCONTRO...No próximo encontro vamos iniciar os estudos em modularização na linguagem C!

PET - Engenharia de Computação 8