TUTORIAL CIRO E VIZINE
Como vimos em aula, existem ferramentas que podem nos ajudar a desenvolver algoritmos em programas em C.
se – senão/ if - else para/ for caso/switch case enquanto/while repita enquanto/do while.
Estrutura de seleção simples se-então- senão
Sintaxe
Algoritmo
se(condição verdadeira) então{
comandos;}senão{
comandos;}
Linguagem C
if (condição verdadeira){
comandos;}else{
comandos;}
se (condição) então{
Executa tudo que esta entre chaves caso a condição seja verdadeira e pode ser inserido dentro de um enquanto/while, switch case/caso ou for/para.
Obs.:Dependendo do problema não se usa o “senão”.}
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
1
TUTORIAL CIRO E VIZINE
Exemplo que usa o if else dentro de duas estruturas de repetição.
printf(“Digite um número: “);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 número é diferente de zero e maior que dois”); }
else{printf(“O número não é diferente de zero e é maior que dois”);
} printf(“Digite um número: “);
scanf(“%d”, &nro);
} // fim do while} //fim do for
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução.
Estrutura de repetição
Existem três estruturas de repetição for, while, do while em linguagem C e para, enquanto e repita enquanto em algoritmo.
Estrutura for ou para
Sintaxe
Algoritmo
para contador ¬ início até fim { comando1 comando2 comandon }
Contador pode ser i, cont, aux qualquer nome de variável não se prenda só no i.
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
2
TUTORIAL CIRO E VIZINE
Linguagem C
for (i = 1; i <= 10; i++){
comando1 comando2 comandon }
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução.
Todas as estruturas de repetição têm a mesma funcionalidade. A estrutura de repetição for ou para é mais usada quando você já sabe o número de vezes que vai ter o loop (quantidade de vezes que a instrução é repetida) como no exemplo acima, já foi determinado que o loop vai rodar 10 vezes, quando chegar no número 11 será encerrada a estrutura de repetição.Você também pode determinar que o usuário entre com o número de parada, por exemplo:
Algoritmo
calcular_media(){
inteiro nro_aluno, cont; // cont vai ser o contadorreal 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. SantosSistemas de Informação - Unisantos
3
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 não se usa.
Int main(){
int nro_aluno, cont; // cont vai ser o contadorfloat 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”,¬a);
comando1;comando2;comandon;
}
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução
Estrutura while ou enquanto
Como vimos anteriormente todas as estruturas de repetição têm a mesma funcionalidade. A estrutura de repetição while ou enquanto é mais usada quando você não sabe o número de vezes que o loop (quantidade de vezes que a instrução é repetida) vai ser executado. Uma das questões mais clássica é “Determine a soma de n números inteiros”, n quer dizer que não se sabe o número de vezes que vai rodar o loop.
Exemplo:
Determine a soma de n inteiros números
Sintaxe
Algoritmo
Calculo(){
inteiro nro, soma;
soma = 0;
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
4
TUTORIAL CIRO E VIZINE
imprima (“Entre com os números: “);leia(nro);
enquanto (nro != 0){
soma = soma + nro; // essa instrução esta somando os números digitados pelo usuário.
imprima (“Entre com os números: “);leia(nro);
}//fim do enquanto
Imprima (“Resultado =”, soma);
}// fim do programa
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução
Linguagem C
#include<stdio.h>#include<stdlib.h>
int main(){
int nro, soma;
soma = 0;
printf (“Entre com os números: “);scanf(“%d”, &nro);
while (nro != 0){
soma = soma + nro; // essa instrução esta somando os números digitados pelo usuário.
printf (“Entre com os números: “);scanf(“%d”, &nro);
}//fim do while
printf” (“Resultado = %d”, soma);
system("pause"); return 0;
}// fim do programa
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
5
TUTORIAL CIRO E VIZINE
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução.
Perceba que é colocado mais um leia no final do “while e enquanto”, isso serve para que continue a calcular os valores digitados pelo usuário. Caso não coloque mais um leia no final da estrutura de repetição o programa será executado uma única vez, e não é isso que pretendemos. Isso serve para todas as estruturas de repetição. Preste atenção.
Estrutura do while ou repita enquanto
A estrutura repetição do while ou repita enquanto é muito semelhante à estrutura while a única diferença é que ele executa o código pelo uma vez.
Exemplo
Determine a soma de n inteiros númerosSintaxe
Algoritmo
Calculo(){
inteiro nro, soma;
soma = 0;
repita {
imprima (“Entre com os números: “);leia(nro);
soma = soma + nro; // essa instrução esta somando os números digitados pelo usuário.
}//fim do repita
enquanto (nro != 0);
Imprima (“Resultado =”, soma);
}// fim do programa
Linguagem C
#include<stdio.h>#include<stdlib.h>
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
6
TUTORIAL CIRO E VIZINE
int main(){
int nro, soma;soma = 0;
do{ printf ("Entre com os números: ");
scanf("%d",&nro); soma = soma + nro; // essa instrução esta somando os números digitados pelo usuário. }//fim do do while (nro != 0); printf("Resultado = %d\n", soma); system("pause"); return 0;}
Se a condição for falsa pelo uma vez vai ser executado o código.
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução
Estrutura de Seleção Múltipla
A estrutura de seleção múltipla (caso em algoritmo e case em C) é fácil de ser identificada, veja o exemplo.
Desenvolva um programa em C que dado o código cliente determine o seu tipo.
Tipo 1 – AdultoTipo 2 – criançaTipo 3 – AdolescenteTipo 4 – Idoso
Exemplo:
Algoritmo
Tipo_cliente(){
Inteiro cod;Imprima(“Entre com o código do cliente: ”); leia(cod);
caso (cod){
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
7
TUTORIAL CIRO E VIZINE
1: {imprima (“Adulto”);}2: {imprima (“Criança”);}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 código do cliente: “);scanf(“%d”, &cód);
switch(cod){
case 1: printf(“Adulto”);break;
case 2: printf(“Criança”);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 código, imagine que você tenha 20 tipos de clientes para fazer com if e else, seu código ficaria enorme. Para isso que serve a estrutura de seleção múltipla.
Obs.: Nunca se esqueça de abrir e fechar chaves e usar ponto e vírgula no final de cada instrução.
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
8
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 propósito dele, por exemplo:
1-) Desenvolva um programa em C que mostre a tabuada desejada pelo usuário.
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-senão( ) 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 código eu já dei dica demais){
código; }
printf(“”);
system(“pause”);return 0;
}SAÍDA
2 X 1 = 22 X 2 = 42 X 3 = 6
Assim por diante.
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
9
TUTORIAL CIRO E VIZINE
2-) Uma locadora de vídeos pediu que você desenvolve-se um programa que tenha as seguintes características.
- Mostre o número de locações por gênero;- O valor total a pagar;
Gênero Valores
1 – Suspense R$ 2.002 – Terror R$ 3.003 – Ação R$ 4.00
Dica
Foram usadas as seguintes estruturas de repetição. (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 código fonte do programa estará anexo a este tutorial, mas, por favor, tente resolver se não vai ser pior para você mesmo.
Perguntas freqüentes
Porque iniciar a variável com zero?
Para garantir que não haverá nenhuma “sujeira” na variável. Imagine se fosse colocado somente soma = soma + nro; sem iniciar a variável com zero. A variável nro não iria somar porque não existe valor na variável soma. Geralmente inicia-se com zero contadores.
Porque usar um contador?
A média não é a soma das notas divido pelo número de alunos. O cont++ ou cont = cont + 1 serve para contar o numero de alunos. Lembrando que while você não sabe o número de notas que serão digitadas.
Determina a média de n alunos.
float nota;cont = 0;// lembre da “sujeira”.soma = 0;
Rafael Lucas de O. SantosSistemas de Informação - Unisantos
10