You are on page 1of 11

TUTORIAL CIRO E VIZINE

Como vimos em aula, existem ferramentas que podem nos ajudar a


desenvolver algoritmos em programas em C.

se seno/ if - else
para/ for
caso/switch case
enquanto/while
repita enquanto/do while.

Estrutura de seleo simples se-ento- seno


Sintaxe
Algoritmo
se(condio verdadeira) ento{
comandos;
}
seno{
comandos;
}
Linguagem C
if (condio verdadeira){
comandos;
}
else{
comandos;
}
se (condio) ento{
Executa tudo que esta entre chaves caso a condio seja verdadeira e pode
ser inserido dentro de um enquanto/while, switch case/caso ou for/para.
Obs.:Dependendo do problema no se usa o seno.
}

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


Exemplo que usa o if else dentro de duas estruturas de repetio.
printf(Digite um nmero: );
scanf(%d, &nro);
for (i = 1; i <=10; i++){

// i usado como contador que vai de 1 at 10

while (nro != 0){


if (nro > 2){
printf(O nmero diferente de zero e maior que dois);
}
else{
printf(O nmero no diferente de zero e maior que dois);
}
printf(Digite um nmero: );
scanf(%d, &nro);
} // fim do while
} //fim do for
Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo.

Estrutura de repetio
Existem trs estruturas de repetio for, while, do while em linguagem C e para,
enquanto e repita enquanto em algoritmo.

Estrutura for ou para


Sintaxe
Algoritmo
para contador incio at fim {
comando1
comando2
comandon
}
Contador pode ser i, cont, aux qualquer nome de varivel no se prenda s no
i.

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE

Linguagem C
for (i = 1; i <= 10; i++){
comando1
comando2
comandon
}
Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo.
Todas as estruturas de repetio tm a mesma funcionalidade. A estrutura de
repetio for ou para mais usada quando voc j sabe o nmero de vezes
que vai ter o loop (quantidade de vezes que a instruo repetida) como no
exemplo acima, j foi determinado que o loop vai rodar 10 vezes, quando
chegar no nmero 11 ser encerrada a estrutura de repetio.
Voc tambm pode determinar que o usurio entre com o nmero de parada,
por exemplo:
Algoritmo
calcular_media(){
inteiro nro_aluno, cont; // cont vai ser o contador
real nota;
imprima(Entre com a quantidade de alunos: );
leia(nro_aluno);
para cont <- 1 at nro_aluno passo1{
imprima(Entre com as notas do alunos: );
leia(nota);
comando1;
comando2;
comandon;
}

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


Liguagem C
#include<stdio.h>
#include<stdlib.h> // Essa biblioteca s usada no DEV C++ do Windows
no VI do Linux no se usa.
Int main(){
int nro_aluno, cont; // cont vai ser o contador
float nota;
printf(Entre com a quantidade de alunos: );
scanf(%d, &nro_aluno);
for (cont = 1; cont <= nro_aluno; i++){
printf(Entre com as notas do alunos: );
scanf(%f,&nota);
comando1;
comando2;
comandon;
}
Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo

Estrutura while ou enquanto


Como vimos anteriormente todas as estruturas de repetio tm a mesma
funcionalidade. A estrutura de repetio while ou enquanto mais usada
quando voc no sabe o nmero de vezes que o loop (quantidade de vezes
que a instruo repetida) vai ser executado. Uma das questes mais clssica
Determine a soma de n nmeros inteiros, n quer dizer que no se sabe o
nmero de vezes que vai rodar o loop.
Exemplo:
Determine a soma de n inteiros nmeros
Sintaxe
Algoritmo
Calculo(){
inteiro nro, soma;
soma = 0;

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


imprima (Entre com os nmeros: );
leia(nro);
enquanto (nro != 0){
soma = soma + nro; // essa instruo esta somando os nmeros digitados
pelo usurio.
imprima (Entre com os nmeros: );
leia(nro);
}//fim do enquanto
Imprima (Resultado =, soma);
}// fim do programa
Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo
Linguagem C
#include<stdio.h>
#include<stdlib.h>
int main(){
int nro, soma;
soma = 0;
printf (Entre com os nmeros: );
scanf(%d, &nro);
while (nro != 0){
soma = soma + nro; // essa instruo esta somando os nmeros digitados
pelo usurio.
printf (Entre com os nmeros: );
scanf(%d, &nro);
}//fim do while
printf (Resultado = %d, soma);
system("pause");
return 0;
}// fim do programa
Rafael Lucas de O. Santos
Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo.
Perceba que colocado mais um leia no final do while e enquanto, isso serve
para que continue a calcular os valores digitados pelo usurio. Caso no
coloque mais um leia no final da estrutura de repetio o programa ser
executado uma nica vez, e no isso que pretendemos. Isso serve para
todas as estruturas de repetio. Preste ateno.

Estrutura do while ou repita enquanto


A estrutura repetio do while ou repita enquanto muito semelhante
estrutura while a nica diferena que ele executa o cdigo pelo uma vez.
Exemplo
Determine a soma de n inteiros nmeros
Sintaxe
Algoritmo
Calculo(){
inteiro nro, soma;
soma = 0;
repita {
imprima (Entre com os nmeros: );
leia(nro);
soma = soma + nro; // essa instruo esta somando os nmeros
digitados pelo usurio.
}//fim do repita
enquanto (nro != 0);
Imprima (Resultado =, soma);
}// fim do programa
Linguagem C
#include<stdio.h>
#include<stdlib.h>
Rafael Lucas de O. Santos
Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


int main(){
int nro, soma;
soma = 0;
do{
printf ("Entre com os nmeros: ");
scanf("%d",&nro);
soma = soma + nro; // essa instruo esta somando os nmeros
digitados pelo usurio.
}//fim do do
while (nro != 0);
printf("Resultado = %d\n", soma);
system("pause");
return 0;
}
Se a condio for falsa pelo uma vez vai ser executado o cdigo.
Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo

Estrutura de Seleo Mltipla


A estrutura de seleo mltipla (caso em algoritmo e case em C) fcil de ser
identificada, veja o exemplo.
Desenvolva um programa em C que dado o cdigo cliente determine o seu tipo.
Tipo 1 Adulto
Tipo 2 criana
Tipo 3 Adolescente
Tipo 4 Idoso
Exemplo:
Algoritmo
Tipo_cliente(){
Inteiro cod;
Imprima(Entre com o cdigo do cliente: );
leia(cod);
caso (cod){

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


1: {imprima (Adulto);}
2: {imprima (Criana);}
3: {imprima (Adolescente);}
4: {imprima (Idoso);}
}//fim do caso
}
Linguagem C
#include<stdio.h>
#include<stdlib.h>
int main(){
int cod;
printf(Entre com o cdigo do cliente: );
scanf(%d, &cd);
switch(cod){
case 1: printf(Adulto);
break;
case 2: printf(Criana);
break;
case 3: printf(Adolescente);
break;
case 4: printf(Idoso);
break;
}//fim do caso
system(pause);
return 0;
}
Dentro dessa estrutura pode ser inserido qualquer estrutura como while, for, if,
else dependente do problema a ser resolvido. Ela ajuda voc diminuir seu
cdigo, imagine que voc tenha 20 tipos de clientes para fazer com if e else,
seu cdigo ficaria enorme. Para isso que serve a estrutura de seleo mltipla.
Obs.: Nunca se esquea de abrir e fechar chaves e usar ponto e vrgula
no final de cada instruo.

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


Como analisar o problema
Vamos desenvolver todos os programas em Linguagem C
Antes de sair desenvolvendo o programa, analise qual o propsito dele, por
exemplo:
1-) Desenvolva um programa em C que mostre a tabuada desejada pelo
usurio.
Em primeiro lugar analisamos como funciona uma tabuada, em qual estrutura
ela se adequaria melhor.
(
(
(
(
(

) for/para
) do while / repita enquanto
) while / enquanto
) if else / se-seno
) switch case / caso
#include<stdio.h>
#include<stdlib.h>
Int main(){
Int nro, i;
printf(Entre com a tabuada desejada: );
scanf(%d, &nro);
(escreva o cdigo eu j dei dica demais){
cdigo;
}
printf();
system(pause);
return 0;

}
SADA
2X1=2
2X2=4
2X3=6
Assim por diante.

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

TUTORIAL CIRO E VIZINE


2-) Uma locadora de vdeos pediu que voc desenvolve-se um programa que
tenha as seguintes caractersticas.
- Mostre o nmero de locaes por gnero;
- O valor total a pagar;
Gnero

Valores

1 Suspense
2 Terror
3 Ao

R$ 2.00
R$ 3.00
R$ 4.00

Dica
Foram usadas as seguintes estruturas de repetio.
(X) for/para
( ) do while/repita enquanto
(X) while
(X) if else somente o if
(X) switch case; caso
Se conseguir desenvolver esse programa, voc estar apto a resolver os
problemas da prova.
O cdigo fonte do programa estar anexo a este tutorial, mas, por favor,
tente resolver se no vai ser pior para voc mesmo.
Perguntas freqentes
Porque iniciar a varivel com zero?
Para garantir que no haver nenhuma sujeira na varivel. Imagine se fosse
colocado somente soma = soma + nro; sem iniciar a varivel com zero. A
varivel nro no iria somar porque no existe valor na varivel soma.
Geralmente inicia-se com zero contadores.
Porque usar um contador?
A mdia no a soma das notas divido pelo nmero de alunos. O cont++ ou
cont = cont + 1 serve para contar o numero de alunos. Lembrando que while
voc no sabe o nmero de notas que sero digitadas.
Determina a mdia de n alunos.
float nota;
cont = 0;// lembre da sujeira.
soma = 0;
Rafael Lucas de O. Santos
Sistemas de Informao - Unisantos

10

TUTORIAL CIRO E VIZINE


printf(entre com a nota: );
scanf(%f, &nota);
while (nota != 0){
soma = soma + nota;
cont = cont + 1; ou cont ++;
printf(entre com a nota: );
scanf(%f, &nota);
}
media = soma / cont;

Rafael Lucas de O. Santos


Sistemas de Informao - Unisantos

11