Apostila C UFU
85 pág.

Apostila C UFU


DisciplinaIntrodução à Tecnologia da Computação26 materiais155 seguidores
Pré-visualização19 páginas
do contador, geralmente é um 
comando de atribuição que é usado para colocar um valor inicial na variável de controle 
do laço. A condição é uma expressão relacional que determina quando o laço termina. O 
incremento define como a variável de controle do laço varia cada vez que o laço é 
repetido. Estas três seções devem ser separadas por ponto-e-vírgula (;). O bloco é 
executado enquanto a condição for verdadeira, ou seja, uma vez que a condição se torne 
falsa, o laço é encerrado. 
 
#include <conio.h> 
#include <stdio.h> 
#include <stdlib.h> 
 
void funcao1(); // função para conversão de temperatura 
void funcao2(); // função para calculo de fatorial 
 
void main() 
{ 
 int opcao; 
 printf(&quot;1: Conversao de Temperatura&quot;); 
 printf(&quot;\n2: Calcular Fatorial&quot;); 
 printf(&quot;\nEscolha uma opcao e tecle ENTER: &quot;); 
 scanf(&quot;%d&quot;,&opcao); // entrada de variavel 
 
 switch(opcao) // analisa a opcao do usuario 
 { 
 case 1: // caso seja 1... 
 funcao1(); // ... executa função 1 
 break; 
 
 case 2: // caso seja 2... 
 funcao2(); // ... executa função 2 
 break; 
 
 default: // caso não seja nenhuma... 
 exit(0); // ...o programa é encerrado 
 break; 
 } 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 19
 Por exemplo, o programa abaixo imprime, na tela, os números de 1 a 100: 
 
 
 
 
 
 
 
 
 
 
Podem existir mais de uma expressão de inicialização e de incremento na 
estrutura for. Estas expressões devem ser separadas por vírgulas (,). Mas não pode 
haver mais de uma expressão de condição. Por exemplo: 
 
for(i = 0, j = 10; i < 10; i++, j--) { ... } 
 
Laço while 
 
 Outra estrutura de repetição disponível no C é o laço while. Sua forma geral é: 
 
 While(condição){ 
 bloco 
 } 
 
 A condição pode ser qualquer expressão. Este laço se repete quando a condição 
for verdadeira, ou seja, qualquer valor diferente de zero. Quando a condição for falsa, o 
programa pula este laço e o bloco não é executado. 
 
 O fluxograma desta estrutura é mostrado abaixo: 
 
 
 
 
 
 
 
 
Exemplo, o programa abaixo imprime, na tela, os números de 1 a 100: 
 
 
 Condição? 
 bloco 
V 
F 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 for(int i = 1; i<=100; i++) 
 printf(&quot;%d &quot;,i); 
 
 _getch(); 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 20
 
 
 
 
 
 
 
 
 
 
 
Laço do-while 
 
 Ao contrário dos laços for e while, que testam a condição do laço no começo, o 
laço do-while sempre será executado ao menos uma vez. Sua forma geral é: 
 
 do{ 
 bloco 
 }while(condição); 
 
 A condição é qualquer expressão relacional e/ou lógica. O bloco será executado 
uma vez, se a condição for falsa, ou seja, igual a zero, o programa encerra o laço. 
Porém, se a condição for verdadeira, ou seja, qualquer número diferente de zero, o bloco 
é executado novamente. 
 
 O fluxograma desta estrutura é mostrado abaixo: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 bloco 
 Condição? 
V 
F 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 int i = 1; 
 while(i<=100) 
 { 
 printf(&quot;%d &quot;, i); 
 i++; 
 } 
 
 _getch(); 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 21
Exemplo, o programa abaixo imprime, na tela, os números de 1 a 100: 
 
 
 
 
 
 
 
 
 
 
 
 
 
O comando do-while é uma boa escolha na construção de menus, porque sempre 
se deseja que as opções do menu execute ao menos uma vez. Depois que as opções 
forem mostradas, o programa será executado até que uma opção válida seja selecionada. 
 
 Abaixo se encontra o exemplo utilizado na seção do switch, agora utilizando os 
conceitos de do-while: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#include <conio.h> 
#include <stdio.h> 
#include <stdlib.h> 
 
void funcao1(); //função para conversão de temperatura 
void funcao2(); //função para calculo de fatorial 
 
void main() 
{ 
 int opcao; 
 do{ 
 
 printf(&quot;1: Conversao de Temperatura&quot;); 
 printf(&quot;\n2: Calcular Fatorial&quot;); 
 printf(&quot;\n3: sair&quot;); 
 printf(&quot;\nEscolha uma opcao e tecle ENTER: &quot;); 
 scanf(&quot;%d&quot;,&opcao); // entrada de variavel 
 
 }while(opcao!=1 && opcao!=2); 
 /*este bloco será executado sempre que opcao for 
diferente de 1 e de 2*/ 
 
 switch(opcao) // analisa a opcao do usuario 
 { 
 case 1: // caso seja 1... 
 funcao1(); // ... executa função 1 
 break; 
 
 case 2: // caso seja 2... 
 funcao2(); // ... executa função 2 
 break; 
 
 case 3: // caso seja 3... 
 exit(0); // ...o programa é encerrado 
 break; 
 } 
} 
 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 int i = 1; 
 do{ 
 printf(&quot;%d &quot;, i); 
 i++; 
 }while(i<=100); 
 
 _getch(); 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 22
Comandos de Desvios 
 
 A linguagem C possui quatro comandos que realizam um desvio incondicional: 
return, goto, break e continue. 
 
Comando return 
 
 O comando return é utilizado para retornar de uma função. Ele é um comando 
de desvio, pois faz com que a execução retorne ao ponto em que a função foi chamada. 
A sua forma geral é 
 
 return expressão; 
 
 A expressão é opcional, se houver alguma expressão contendo algum valor 
associado ao return, este é retornado da função para onde ela foi chamada. Se nenhum 
valor de retorno for especificado, assume-se que apenas lixo é retornado. 
 Você pode usar quantos comandos return quiser dentro de uma função. 
Entretanto, a função deixará de executar tão logo ela encontre o primeiro return. 
 Uma função do tipo void não pode ter um comando return. 
 
 
Comando goto 
 
 No C, devido ao seu rico conjunto de estruturas de controle, há pouca 
necessidade da utilização do goto. A grande preocupação da maioria dos programadores 
sobre o goto é sua tendência de tornar os programas ilegíveis, mas se este for utilizado 
prudentemente, pode ser uma vantagem em certas situações na programação. 
 O comando goto requer um rótulo para sua operação, o qual rótulo é um 
identificador válido em C seguido de dois pontos. O rótulo deve estar na mesma função 
do goto que o utiliza, senão você não poderá efetuar o desvio. A forma geral do goto é 
 
 goto rótulo; 
 ... 
 rótulo: 
 ... 
 
 Por exemplo, o programa abaixo imprime, na tela, os números de 1 a 100: 
 
 
 
 
 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 int i = 1; 
 
 repetir: // rótulo 
 printf(&quot;%d &quot;,i); 
 i++; // incremento 
 if(i <= 100) 
 goto repetir; // chamada do rótulo 
 
 _getch(); 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 23
Comando break 
 
 O comando break pode ser usado de duas formas. Ele pode ser usado em 
conjunto com switch...case como visto anteriormente, ou pode também ser usado em 
conjunto com um laço de repetição (for, do-while, while) que força a interrupção deste 
laço independentemente da condição de controle. 
 
 Por exemplo, o programa abaixo imprime, na tela, os números de 1 a 10: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Porém, o comando break força a saída apenas do laço mais interno de onde ele 
se encontra. Por exemplo, o programa abaixo imprime, na tela, os números de 1 a 10, 10 
vezes. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 for(int i = 1; i <= 100; i++) 
 { 
 printf(&quot;%d &quot;,i); 
 if(i == 10) 
 break; // sai do laço quando i = 10 
 } 
 _getch(); 
} 
#include <conio.h> 
#include <stdio.h> 
 
void main() 
{ 
 for(int i = 1; i <= 10; i++) 
 { 
 for(int j = 1; j <= 100; j++) 
 { 
 printf(&quot;%d &quot;,j); 
 if(j == 10) 
 break; // sai do laço mais interno quando i=10 
 } 
 printf(&quot;\n&quot;); 
 } 
 _getch(); 
} 
Universidade Federal De Uberlândia 
Faculdade de Engenharia Elétrica e Biomédica 
 24
Função exit() 
 
 A função exit() provoca uma terminação