• Nenhum resultado encontrado

Working 04 : Conceitos Básicos III

N/A
N/A
Protected

Academic year: 2021

Share "Working 04 : Conceitos Básicos III"

Copied!
8
0
0

Texto

(1)

Centro 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;

(2)

1

INTRODUÇÃO

Finalizando os conceitos básicos, neste Working apresentaremos outras três estruturas de repetição: for, while e do-while. Além destes, vamos compreender algumas práticas de programação em processamento de textos e jogos. Por fim, vamos praticar e dominar todos os 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ção de uma variável, o incremento desta variável e o teste de parada. Seu uso mais comum em situações nas quais o número de repetições da sequência de comandos conhecido antes mesmo 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 >; <e x p r e s s a o l o g i c a >; <i n c r e m e n t o >){

<S e q u e n c i a de comandos>

3 }

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

1 #i n c l u d e < s t d i o . h>

i n t main ( ) // e s t e programa imprime numeros de 1 a ’ n ’ .

3 {

i n t n ;

5 i n t i ;

7

s c a n f ("%d",&n ) ; // D i g i t a r um numero i n t e i r o m aio r que z e r o

9

f o r ( i =1 ; i <=n ; i ++) // o b s e r v e que e u t i l i z a d o ’ ; ’ ! !

11 p r i n t f ("%d\n", i ) ; 13 r e t u r n 0 ;

}

Observe que a variável contadora foi inicializada com o valor 1 e é incrimentada com o valor 1 (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 que há 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 do comando:

(3)

w h i l e (< e x p r e s s a o l o g i c a >)

2 {

<s e q u e n c i a de comandos>

4 }

A expressão lógica presente entre parênteses definirá a condição de parada do comando, ou seja, enquanto a expressão lógica for verdadeira, a sequência de comandos que estiver entre as chaves continuará a ser repetida.

Vejamos um exemplo de utilização do comando:

#i n c l u d e < s t d i o . h> 2 i n t main ( ) { 4 i n t num = 2 ; w h i l e (num%2 == 0 ) 6 { s c a n f ("%d", &num) ; 8 p r i n t f ("%d\n", num) ; } 10 r e t u r n 0 ; }

O trecho de código acima permite que o usuário imprima números enquanto esses números forem 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 com pós-condição, do while, só efetua o teste da expressão lógica (condição de parada) após a primeira execução da sequência de comandos. Logo, a sequência de comandos é executada pelo menos uma vez, independente da expressão lógica. A própria sintaxe do comando sugere essa diferença:

1 do{

<s e q u e n c i a de comandos>

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

Um exemplo para entender sua utilidade:

1 #i n c l u d e < s t d i o . h> i n t main ( ) 3 { i n t c a n d i d a t o ; 5 i n t c o n f i r m a ; 7 do{ p r i n t f (" D i g i t e o numero do s e u c a n d i d a t o : ") ; 9 s c a n f ("%d",& c a n d i d a t o ) ; s w i t c h ( c a n d i d a t o )

(4)

11 { c a s e 1 3 : 13 p r i n t f (" Voce v o t o u na I r i n y Lopes ! \ n") ; b r e a k; 15 c a s e 2 3 : p r i n t f (" Voce v o t o u no Rezende ! \ n") ; 17 b r e a k; c a s e 4 3 : 19 p r i n t f (" Voce v o t o u no L u i z Paulo ! \ n") ; b r e a k; 21 d e f a u l t: p r i n t f (" Voce v o t o u n u l o ! \ n") ; 23 } p r i n t f (" D i g i t e 1 ( c o n f i r m a r ) ou 0 ( v o t a r novamente ) : ") ; 25 s c a n f ("%d",& c o n f i r m a ) ; }w h i l e( ! c o n f i r m a ) ; 27 r e t u r n 0 ; 29 }

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

5

DESVIO INCONDICIONAL BREAK

1 w h i l e (< c o n d i c a o >) { 3 f o r ( i n i c i a l i z a c a o ; c o n d i c a o ; i n c r e m e n t o ) { 5 w h i l e (< c o n d i c a o >) { 7 i f (< c o n d i c a o >) b r e a k; // O c o r r e a i n t e r r u p c a o da e s t r t u r a de r e p e t i c a o , s e g u i n d o com o d e c o r r e r do c o d i g o . 9 . . . . . . 11 . . . } 13 . . . . . . 15 . . . 17 } }

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

(5)

w h i l e (< c o n d i c a o >) 2 { f o r ( i n i c i a l i z a c a o ; c o n d i c a o ; i n c r e m e n t o ) 4 { w h i l e (< c o n d i c a o >) 6 { i f (< c o n d i c a o >) 8 c o n t i n u e; . . . 10 . . . . . . 12 } . . . 14 . . . } 16 }

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

(6)

Praticando

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

1. Considere o código abaixo:

#i n c l u d e < s t d i o . h> 2 i n t main ( ) { 4 i n t i , j , c o n t ; f o r( i =0; i <10; i ++) 6 { i f( i ==10){ 8 b r e a k; } 10 f o r( j =0; j <20; j ++) 12 { i f( i >=9) 14 { b r e a k; 16 } } 18 c o n t = c o n t + 2 ; } 20 r e t u r n 0 ; } 22

(a) Para que linha do código acima, o comando break da linha 15 desviará o fluxo de execuçã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 // C o d i g o s. . . } 5 (b) i =0; 2 w h i l e( i <100) { 4 // C o d i g o s . . i = i + 2 ; 6 }

(7)

(c)

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

2 {

// C o d i g o s

4 }

Transcreva os códigos de cada letra por alguma outra estrutura de repetição dentre as possí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. O programa em C deve permitir que o usuário digite uma quantidade não determinada de números. E que encerre quando o usuário digita 0. Use as estruturas que achar apropriado.

Exemplo de Entrada Exemplo de Saida

2 5 10

0

5 5 25

2 5 10

0

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. O usuário irá digitar diversos números até acertar o número definido. O programa deverá informar a quantidades de números digitados até acertar o número pré-definido.

Exemplo de Entrada Exemplo de Saida

77 3

4 5 77

13 5

1 2 3 4 13

5. Exiba a tabuada de multiplicação de ‘n’. Ex:

(8)

Exemplo de Entrada Exemplo de Saida 1 1*1 = 1 1*2 = 2 1*3 = 3 1*4 = 4 1*5 = 5 1*6 = 6 1*7 = 7 1*8 = 8 1*9 = 9 1*10 = 10

Desafios

1. 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.

Exemplo de Entrada Exemplo de Saida

25 10 5

54 182 2

NO PRÓXIMO ENCONTRO...

Referências

Documentos relacionados

O Processo Seletivo Interno (PSI) mostra-se como uma das várias ações e medidas que vêm sendo implementadas pela atual gestão da Secretaria de Estado.. Importante

O fortalecimento da escola pública requer a criação de uma cultura de participação para todos os seus segmentos, e a melhoria das condições efetivas para

Fonte: elaborado pelo autor. Como se pode ver no Quadro 7, acima, as fragilidades observadas após a coleta e a análise de dados da pesquisa nos levaram a elaborar

Declaro meu voto contrário ao Parecer referente à Base Nacional Comum Curricular (BNCC) apresentado pelos Conselheiros Relatores da Comissão Bicameral da BNCC,

Apart from the two nuclear energy companies that were strongly hit by the earthquake effects (the Tokyo and Tohoku electric power companies), the remaining nine recorded a

Todas as outras estações registaram valores muito abaixo dos registados no Instituto Geofísico de Coimbra e de Paços de Ferreira e a totalidade dos registos

Neste estágio, assisti a diversas consultas de cariz mais subespecializado, como as que elenquei anteriormente, bem como Imunoalergologia e Pneumologia; frequentei o berçário

Super identificou e definiu construtos e a respectiva interacção no desenvolvimento da carreira e no processo de tomada de decisão, usando uma série de hipóteses: o trabalho não