A maior rede de estudos do Brasil

Grátis
120 pág.
ApostilaANSI-C

Pré-visualização | Página 15 de 27

e imprime na tela todos os números da série de 
Fibonacci,menores ou igual ao parâmetro. O número deve ser introduzido através 
do teclado pelo usuário. 
7.4 Escreva um programa que declare uma variável inteira global e atribua o valor 
15 a ela. Declare outras 5 variáveis inteiras locais no programa principal e atribua 
os valores 25, 35, ..., 65 a elas. Declare 5 variáveis tipo caractere e atribua a elas 
as letras t, i, g, r, e. Finalmente, o programa deverá imprimir, usando todas as 
variáveis declaradas: 
� O número 15 foi armazenado em uma variável global e os números 25, 
35, 45, 55 e 65 foram armazenados em variáveis locais; 
� Todas as variáveis do tipo caractere impressas, consecutivamente, 
formam a palavra “tigre”. 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
67 
AULA PRÁTICA 08 
 
 
OBJETIVO: 
 
� Estudar os comandos de desvio: continue, break, goto. 
 
 
INTRODUÇÃO 
 
Acabamos de estudar as regras de programação estruturadas, compostas pelas 
estruturas condicionais if e swtch e as estruturas de repetição for, while e do-
while. Estas regras produzem algoritmos e programas que são mais fáceis de 
entender, portanto mais fáceis de testar, depurar, modificar e, até mesmo, de 
demonstrar que são matematicamente corretos. Às vezes, é necessário quebrar 
essas estruturas, então usaremos os comandos continue, break e goto, que 
veremos a seguir. 
 
 
ALGORÍTMOS NÃO ESTRUTURADOS 
 
Dê uma olhadinha nos fluxogramas a seguir: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Relacionando os arranjos desses fluxogramas com as estruturas de dados já 
estudadas, podemos dizer que o arranjo número 1 corresponde a uma estrutura if, 
Início
Fim
N
S1
2
N
S
Fluxograma estruturado
Início
Fim
S
N
S
3
Fluxograma não-
estruturado
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
68 
enquanto que o número 2 corresponde à estrutura do-while. O que você diria do 
arranjo número 3? 
 
Embora temidos em programação estruturada os comandos de desvio nos 
permitem a finalização ou interrupção de etapas de execução de uma estrutura ou 
seqüência. 
 
break 
Nós já vimos dois usos para o comando break: interrompendo os comandos 
switch e for. Na verdade, estes são os dois usos do comando break: ele pode 
quebrar a execução de um comando (como no caso do switch) ou interromper a 
execução de qualquer loop (como no caso dos comandos for, while ou do-while). 
O break faz com que a execução do programa continue na primeira linha seguinte 
ao loop ou bloco que está sendo interrompido. 
O comando break causará uma saída somente do laço corrente. Observe o 
programa a seguir: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
/***************************************************************************** 
 Programa 27 
Este programa imprime os números de 1 a 10 cinco vezes na tela. 
 
******************************************************************************/ 
int main () 
{ 
 int ind; 
 for(ind=0; ind<5; ++ind) 
 { 
 count=1; 
 for(;;) 
 { 
 printf("%d", count); 
 count++; 
 if(count==10) break; 
 } 
 printf("\n\n"); 
 } 
 system("PAUSE"); 
 return(0); 
} 
Neste programa o break quebrou apenas o laço for mais interno. Toda vez que o 
break é encontrado, o controle é devolvido para o laço for externo. 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
69 
Outra observação é o fato que um break usado dentro de uma declaração switch 
afetará somente os dados relacionados com o switch e não afetará qualquer outro 
laço em que o comando swtch estiver. 
 
Continue 
 
O comando continue pode ser visto como o oposto do comando break. Ele só 
funciona dentro do loop. Quando o comando continue é encontrado, o loop pula 
para a próxima iteração sem o abandono do loop, ao contrário do que acontece 
com o comando break. Veja exemplo a seguir: 
 
#include <stdio.h> 
#include <stdlib.h> 
 
/***************************************************************************** 
 Programa 28 
Este programa solicita ao usuário que introduza uma constante 
Inteira através do teclado. Se a constante não estiver no intervalo 
pré determinado, o programa usa o comando continue para 
retornar ao inicio do loop do-while,repetindo a solicitação, Caso 
contrário o programa segue normalmente. 
 
******************************************************************************/ 
int main () 
{ 
 int mes; 
 do 
 { 
 printf("\n Digite o numero correspondente ao mês do seu\n”); 
 printf(“aniversario (1 a 12) e descubra o seu horóscopo.\n"); 
 printf(“\t Ou digite 0 (zero) para sair: "); 
 
 scanf("%d", &mes); 
 if ((mes < 0) || (mes >12)) 
 continue; /* Opcao inválida: volta ao inicio do loop */ 
 switch (mes) 
 { 
 case 1: 
 printf("\n\t – Capricórnio (22/12 a 19/01) \n"); 
 break; 
 case 2: 
 printf("\n\t – Aquários (20/01 a 18/02) \n"); 
 break; 
 case 3: 
 printf("\n\t – Peixes (19/02 a 20/03) \n"); 
 break; 
 case 4: 
 printf("\n\t – Áries (21/03 a 19/04) \n"); 
 break; 
 case 5: 
 printf("\n\t – Touro (20/04 a 20/05) \n"); 
 break; 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento de Ensino do 2o grau - Coordenação de Eletrônica 
Disciplina: Laboratório de Introdução a Programação 
Professora: Rosângela Fátima da Silva 
 
 
70 
 case 6: 
 printf("\n\t – Gêmeos (21/05 a 21/06) \n"); 
 break; 
 case 7: 
 printf("\n\t – Câncer (22/06 a 22/07) \n"); 
 break; 
 case 8: 
 printf("\n\t – Leão (23/07 a 22/08) \n"); 
 break; 
 case 9: 
 printf("\n\t – Vírgem (23/08 a 22/09) \n"); 
 break; 
 case 10: 
 printf("\n\t – Libra (23/09 a 22/10) \n"); 
 break; 
 case 11: 
 printf("\n\t – Escorpião (23/10 a 21/11) \n"); 
 break; 
 case 12: 
 printf("\n\t – Sagitário (22/11 a 21/12) \n"); 
 break; 
 } 
 } while (mes != 0); 
printf("\n\n"); 
system("PAUSE"); 
return(0); 
} 
 
goto 
O goto é o último comando de controle de fluxo. Ele pertence a uma classe à 
parte: a dos comandos de salto incondicional. O goto realiza um salto para um 
local especificado. Este local é determinado por um rótulo ou label. Um rótulo, na 
linguagem C, é uma marca no programa que na realidade corresponde ao 
endereço para o qual o programa vai se desviar. Você dá o nome que quiser a 
esta marca. O comando goto apresenta a seguinte forma geral: 
nome_do_rótulo: 
.... 
 
goto nome_do_rótulo; 
O nome do rótulo deve ser colocado na posição para a qual o programa deve 
saltar seguido de “:”. Essa posição pode ser antes ou depois do goto, desde que 
ambos, rótulo e goto, estejam na mesma função. 
O comando goto deve ser utilizado com parcimônia, pois o abuso do seu uso 
tende a tornar o código confuso. O goto não é um comando necessário, podendo 
sempre ser substituído por outras estruturas de controle. Recomendamos que o 
goto nunca seja usado. Mas em casos onde haja vários loops e ifs aninhados e 
 
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS 
Departamento