O documento apresenta uma aula sobre a linguagem C. Aborda tópicos como analisar códigos em C, declarar variáveis, entradas e saídas, controle de fluxo e estruturas de repetição. Explica conceitos básicos como variáveis, operadores e funções de entrada e saída.
2. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ Analisando um código em C;
Δ Declarando variáveis;
Δ Introdução Básica as Entradas e Saídas
Δ Controle de Fluxo;
Δ Estruturas de Repetição:
• While;
• Repeat...until;
• For;
Δ Exercícios;
3. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C
#include <stdio.h>
/* Um Primeiro Programa */
int main ()
{
printf ("Ola! Eu estou vivo!n");
return(0);
}
Δ Compilando e executando este programa, veremos que ele coloca a
mensagem Ola! Eu estou vivo! na tela;
4. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (1)
#include <stdio.h>
Δ A linha #include diz ao compilador que ele deve incluir o arquivo-
cabeçalho stdio.h.
Δ Neste arquivo existem declarações de funções úteis para entrada e saída de
dados
• std = standard, padrão em inglês;
• io = Input/Output, entrada e saída;
• ==> stdio = Entrada e saída padronizadas;
Δ Toda vez que for necessário usar uma destas funções deve-se incluir este
comando.
Δ O C possui diversos arquivos-cabeçalhos;
5. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (2)
/* Um Primeiro Programa */
Δ Quando fazemos um programa, uma boa prática é usar comentários que
ajudem a entender o funcionamento do mesmo;
Δ No caso acima, temos um comentário: /* Um Primeiro Programa
*/;
Δ O compilador C desconsidera qualquer coisa que esteja começando com /*
e terminando com */.
Δ Um comentário pode, inclusive, ter mais de uma linha;
6. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (3)
int main ()
Δ A linha int main() indica que estamos definindo uma função de nome
main;
Δ Todos os programas em C tem que ter uma função main, pois é esta função
que será chamada quando o programa for executado;
Δ O conteúdo da função é delimitado por chaves { }.
Δ O código que estiver dentro das chaves será executado sequencialmente
quando a função for chamada;
Δ A palavra int indica que esta função retorna um inteiro;
Δ O que significa este retorno será visto posteriormente, quando estudarmos
um pouco mais detalhadamente as funções do C;
Δ A última linha do programa, return(0); indica o número inteiro que
está sendo retornado pela função, no caso o número 0;
7. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C (4)
printf ("Ola! Eu estou vivo!n");
Δ A real ação do programa;
Δ O programa chama a função printf(), passando a string (uma string é
uma sequência de caracteres) "Ola! Eu estou vivo!n" como
argumento;
Δ Por causa do uso da função printf() pelo programa que devemos
incluir o arquivo-cabeçalho stdio.h.
Δ A função printf(), irá apenas colocar a string na tela do computador.
Δ O “n” É a constante barra invertida de "new line" e é interpretado como
um comando de mudança de linha;
8. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C - 2
#include <stdio.h>
int main ()
{
int Dias; /* Declaracao de Variaveis */
float Anos;
printf ("Entre com o numero de dias: "); /* Entrada de
Dados */
scanf ("%d",&Dias);
Anos=Dias/365; /* Conversao Dias->Anos */
printf ("nn%d dias equivalem a %f anos.n",Dias,Anos);
return(0);
}
9. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C – 2 (1)
int Dias;
float Anos;
Δ São declaradas duas variáveis, chamadas Dias e Anos.
Δ A primeira é um int(inteiro) e a segunda um float(ponto flutuante);
Δ As variáveis declaradas como ponto flutuante existem para armazenar
números que possuem casas decimais, como 5,1497;
10. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C – 2 (2)
printf ("Entre com o numero de dias: ");
Δ É feita uma chamada à função printf(), que coloca uma mensagem na
tela;
scanf ("%d",&Dias);
Δ Queremos agora ler um dado que ser· fornecido pelo usu·rio e coloc·-lo na
variável inteira Dias;
Δ Usamos então o scanf().
Δ A string "%d"diz à função que iremos ler um inteiro.
Δ O segundo parâmetro passado à função diz que o dado lido deverá ser
armazenado na variável Dias;
Δ É importante ressaltar a necessidade de se colocar um “&“ antes do nome
da variável a ser lida quando se usa a função scanf();
11. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Analisando um Código em C – 2 (3)
Anos=Dias/365.00;
Δ Temos, então, uma expressão matemática simples que atribui a Anos o valor de
Dias, dividido por 365;
Δ Como Anos é uma variável float, o compilador fará uma conversão automática
entre os tipos das variáveis;
printf ("nn%d dias equivalem a %f anos.n",Dias,Anos);
Δ A segunda chamada à função printf() tem três argumentos:
• A string "nn%d dias equivalem a %f anos.n“ diz à função para:
o pular duas linhas;
o Colocar um inteiro na tela;
o Colocar a mensagem "dias equivalem a", colocar um valor float na tela,
o Colocar a mensagem " anos.“ e pular outra linha.
o Os outros parâmetros são as variáveis, Dias e Anos, das quais devem ser lidos os
valores do inteiro e do float, respectivamente;
12. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ O que faz o seguinte programa?
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
printf("%d",x);
return(0);
}
13. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Definições em C
Δ Diferentemente do Portugol, a Atribuição em C é feita com
=
soma = 10 + 10;
Δ Observe que os comandos são finalizados com “;”
int soma;
printf(“hello world”);
scanf(“%d”,&soma);
printf(“A soma é: %d”,soma);
14. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Declarando Variáveis
Δ Na linguagem C, há 5 tipos básicos de variáveis:
• Int;
• float;
• double;
• char;
• void;
Δ Para se declarar uma variável, escreve-se o nome de seu tipo, salta-se um
espaço em branco, em seguida o nome do seu identificador e ponto e
vírgula para finalizar a declaração:
• int nome_da_variável;
15. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Declarando Variáveis
Δ Se mais de uma variável for do mesmo tipo básico, elas podem ser
declaradas juntas, apenas separadas por vírgulas.
int Variavel_1, variável_2, variável 3;
Δ Pode-se inicializar uma variável na sua declaração atribuindo-se a ela um
valor inicial compatível com seu tipo:
int Variavel_1=0;
Δ Toda variável precisa ser declarada antes de ser utilizada;
Δ Exemplos:
• char nome[20], letra, zero=’0’;
• float soma=0;
• int n1, n2;
• float raiz1, Total_dos_Salarios;
• char nome_de_familia[30]=“Menezes”;
• int idade, cont=0;
16. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Operadores
Δ Os operadores aritméticos básicos
são:
Δ + (adição);
Δ - (subtração);
Δ *(multiplicação);
Δ / (quociente da divisão real);
Δ ++( adiciona 1);
Δ --(subtrai 1).
Δ Alguns operadores aritméticos mais
avançados são:
Δ % (resto da divisão inteira);
Δ /(quociente da divisão inteira);
Δ sqrt( )(raiz quadrada);
Δ abs( )(valor absoluto).
Δ Os operadores relacionais
são:
Δ > (maior que);
Δ >= (maior ou igual a);
Δ < (menor que);
Δ <= (menor ou igual a);
Δ == (igual a);
Δ != (diferente de).
Δ Os operadores lógicos
são:
Δ && (e/AND – conjunção);
Δ || (ou/OR – disjunção);
Δ ! (operador não –
negação);
17. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Caracteres (char)
Δ Os caracteres são um tipo de dado: o char;
Δ O C trata os caracteres ('a', 'b', 'x', etc ...) como sendo variáveis de um byte
(8 bits);
Δ Um bit é a menor unidade de armazenamento de informações em um
computador;
Δ Também podemos usar um char para armazenar valores numéricos
inteiros, além de usá-lo para armazenar caracteres de texto;
Δ Para indicar um caractere de texto usamos apóstrofes (aspas simples);
18. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Caracteres (char);
#include <stdio.h>
int main ()
{
char Ch;
Ch='D';
printf ("%c",Ch);
return(0);
}
Δ No programa acima, %c indica que printf() deve colocar um caractere
na tela.
19. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tabela Ascii
Δ A Tabela ASCII (American Standard Code for Information Interchange) é
usada pela maior parte da indústria de computadores para a troca de
informações.
Δ Cada caractere é representado por um código de 8 bits (um byte).
Δ 0 – 31: Caracteres de Controle (não imprimíveis);
Δ 32 – 127: Tabela Ascii Padrão;
Δ 128 – 255: Tabela Ascii Estendida (acentos e especiais);
Δ Tabela ascii
20. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Strings (char [])
Δ No C, uma string é um vetor de caracteres terminado com um caractere nulo;
Δ O caractere nulo é um caractere com valor inteiro igual a zero (código ASCII igual
a 0);
Δ O terminador nulo também pode ser escrito usando a convenção de barra
invertida do C como sendo '0';
Δ Para declarar uma string, podemos usar o seguinte
Δ formato geral:
char nome_da_string[tamanho];
Δ Isto declara um vetor de caracteres (uma string) com número de posições igual a
tamanho.
Δ Como temos que reservar um caractere para ser o terminador nulo, temos que
declarar o comprimento da string como sendo, no mínimo, um caractere maior
que a maior string que pretendemos armazenar.
21. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Strings (char [])
Δ Vamos supor que declaremos uma string de 7 posições e coloquemos a
palavra “Joao” nela. Teremos:
char palavra[7]=“Joao”;
Δ No caso acima, as duas células não usadas têm valores indeterminados.
Δ Isto acontece porque o C não inicializa variáveis, cabendo ao programador
esta tarefa;
Δ Portanto as únicas células que são inicializadas são as que contêm os
caracteres 'J', 'o', 'a', 'o' e '0' .
palavra J o a o 0
22. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Strings (char [])
#include <stdio.h>
int main ()
{
char palavra[7]="Joao"; //definindo uma string de tamanho 7
char string[10]; //definindo uma string de tamanho 10
printf ("Digite uma string: ");//Escreve na tela
scanf("%s",&string); //Lê a entrada de dados do usuário
printf ("nnA palavra eh %s",palavra);//imprime a variável palavra
printf ("nnVoce digitou %s",string); //imprime a string digitada
return(0);
}
23. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Como as strings são vetores de caracteres, para se acessar um determinado
caractere de uma string, basta "indexarmos", ou seja, usarmos um índice
para acessarmos o caractere desejado dentro da string;
• Suponha uma string chamada str.
• Podemos acessar a segunda letra de str da seguinte forma:
str[1] = 'a';
Δ Na linguagem C, o índice começa em zero!
Δ Assim, a primeira letra da string sempre estará na posição 0.
Δ A segunda letra sempre estará na posição 1 e assim sucessivamente.
char palavra[7]=“Joao”;
palavra J o a o 0
(0) (1) (2) (3) (4) (5) (6)
24. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Segue um exemplo que imprimirá a segunda letra da string "Joao". Em seguida, ele mudará esta letra e
apresentará a string no final:
#include <stdio.h>
int main()
{
char str[10] = "Joao";//define a string
printf("nnString: %s", str);//imprime a string
printf("nSegunda letra: %c", str[1]);//imprime a 2ª letra da string
str[1] = 'U';//muda a 2ª letra da string;
printf("nAgora a segunda letra eh: %c", str[1]);
//imprime a 2ª letra da string após a modificação
printf("nnString resultante: %s", str);//imprime a string modificada
return(0);
}
25. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Introdução Básica as Entradas e Saídas
Δ Podemos, ainda, usar o char para imprimir um determinado caractere em seu valor decimal da tabela
Ascii:
#include <stdio.h>
int main()
{
char str[10] = "Joao";//define a string
printf("nSegunda letra: %d", str[1]);//imprime a 2ª letra em seu valor
na tabela ascii
str[1] = 'U';//muda a 2ª letra da string;
printf("nAgora a segunda letra eh: %c", str[1]);
//imprime a 2ª letra da string após a modificação
printf("nnString resultante: %s", str);//imprime a string modificada
return(0);
}
26. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Saída de Dados – printf()
printf (string_de_controle,lista_de_argumentos);
Δ A string de controle, apresenta uma descrição de tudo que a função vai
colocar na tela;
Δ A string de controle mostra não apenas os caracteres que devem ser
colocados na tela, mas também quais as variáveis e suas respectivas
posições.
Δ Isto é feito usando-se os códigos de controle, que usam a notação %.
Δ Na string de controle indicamos quais, de qual tipo e em que posição estão
as variáveis a serem apresentadas.
28. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Saída de Dados – printf()
printf (string_de_controle,lista_de_argumentos);
Δ Alguns exemplos de printf:
Δ printf ("Teste %% %%")
• Teste % %
Δ printf ("%f",40.345)
• 40.345
Δ printf ("Um caractere %c e um inteiro %d",'D',120)
• Um caractere D e um inteiro 120
Δ printf ("%s eh um exemplo","Este")
• Este eh um exemplo
Δ printf ("%s%d%%","Juros de ",10)
• Juros de 10%
29. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Entrada de Dados – scanf()
scanf (string-de-controle,lista-de-argumentos);
Δ Usando a função scanf(), podemos pedir dados ao usuário.
Δ Já vimos vários exemplos ao longo dessa aula;
Δ Devemos ficar atentos a fim de colocar o mesmo número de argumentos
que o de códigos de controle na string de controle;
Δ Outra coisa importante é colocarmos o & antes das variáveis da lista de
argumentos!
Δ Exemplos:
scanf("%s",&string);
scanf(“%d”,&numero);
scanf(“%d%s”,&numero,&string);
30. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ Escreva um programa que leia um caractere digitado pelo usuário, imprima
o caractere digitado e o código ASCII correspondente a este caractere;
Δ Escreva um programa que leia duas strings e as coloque na tela. Imprima
também a segunda letra de cada string.
Δ Escreva um programa que peça ao usuário para digitar a base e a altura de
um retângulo. Em seguida, imprima a área desse retângulo na tela
(área=base*altura);
Δ Faça um algoritmo que Leia o nome e sobrenome de um usuário em
variáveis separadas e, em seguida, apresente, NA MESMA LINHA, nome e
sobrenome;
31. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if
Δ O comando if é equivalente ao se...faça(do porgugol);
if (condição){
//bloco de comandos
}
Δ A condição do comando if é uma expressão que será avaliada;
Δ Se o resultado for zero a declaração não será executada (condição FALSA);
• Se o resultado for qualquer coisa diferente de zero a declaração será
executada (condição VERDADEIRA);
Δ A declaração pode ser um bloco de código ou apenas um comando.
Δ Note que, no caso da declaração ser um bloco de código, não é necessário
(e nem permitido) o uso do ; no final do bloco.
32. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if
#include <stdio.h>
int main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if (num>10) //verificamos se num>10
printf ("nnO numero e maior que 10");
if (num==10) //verificamos se num=10 (observe que é usado o ==)
{
printf ("nnVoce acertou!n");
printf ("O numero e igual a 10.");
}
if (num<10) //verificamos se num<10
printf ("nnO numero e menor que 10");
return (0);
}
33. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if
Δ Repare que, quando queremos testar igualdades usamos o operador “==“ e
não “=”,
Δ Isto porque o operador “=” representa apenas uma atribuição.
Δ Pode parecer estranho á primeira vista, mas se escrevêssemos:
if (num=10) ... /* Isto está errado! */
Δ O compilador iria atribuir o valor 10 à variável num e a expressão num=10
iria retornar 10, fazendo com que o nosso valor de num fosse modificado e
forçando a declaração a ser executada sempre;
Δ Este problema gera erros frequentes entre iniciantes e, portanto, muita
atenção deve ser tomada!
Δ Os operadores de comparação são: == (igual), != (diferente de),> (maior
que), < (menor que), >= (maior ou igual), <= (menor ou igual).
34. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if – EVITE ERROS!
#include <stdio.h>
int main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if (num>10) //verificamos se num>10
{
printf ("nnO numero e maior que 10");
}
if (num==10) //verificamos se num=10 (observe que é usado o ==)
{
printf ("nnVoce acertou!n");
printf ("O numero e igual a 10.");
}
if (num<10) //verificamos se num<10
{
printf ("nnO numero e menor que 10");
}
return (0);
}
35. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ Faça um programa em C que peça ao usuário que insira dois valores
inteiros. Faça a soma desses dois valores e armazene em outra variável. Em
seguida, escreva na tela se a soma é maior, menor ou igual a 50, escreva os
números que o usuário digitou e escreva o resultado da soma;
36. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
#include <stdio.h>
int main(){
int a,b,soma;
printf("Escreva o 1o numero: ");
scanf("%d",&a);
printf("nEscreva o 2o numero: ");
scanf("%d",&b);
soma=a+b;
if(soma>50){
printf("nO numero eh maior que 50");
}
if(soma==50){
printf("nO numero eh igual a 50");
}
if(soma<50){
printf("nO numero eh menor que 50");
}
printf("nA soma dos valores eh: %d",soma);
printf("nOs numeros digitados foram: %d e %d",a,b);
return(0);
}
37. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if/else
Δ Análogo ao comando se...então/senão;
if (condição){
//Bloco de comandos 1
}
else {
//Bloco de comandos 2
}
Δ A expressão da condição será avaliada. Se ela for diferente de zero o bloco
de comandos 1 será executado;
Δ Se for zero, o bloco de comandos 2 será executado.
38. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo – if/else
#include <stdio.h>
int main(){
int a,b,soma;
printf("Escreva o 1o numero: ");
scanf("%d",&a);
printf("nEscreva o 2o numero: ");
scanf("%d",&b);
soma=a+b;
if(soma>50){
printf("nO numero eh maior que 50");
}else if(soma==50){
printf("nO numero eh igual a 50");
}else{
printf("nO numero eh menor que 50");
}
printf("nA soma dos valores eh: %d",soma);
printf("nOs numeros digitados foram: %d e
%d",a,b);
return(0);
}
39. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Ponto de Verificação
Δ Faça um programa em C que leia dois números A e B e imprima o maior
deles;
Δ Faça um programa em C que leia 3 números inteiros distintos e escreva o
menor deles.
Δ Faça um programa em C que leia quatro números (Opção , Num1 , Num2 e
Num3) e mostre o valor de Num1 se Opção for igual a 2; o valor de Num2
se Opção for igual a 3; e o valor de Num3 se Opção for igual a 4. Se o
usuário digitar qualquer valor diferente, deve ser apresentada a mensagem
de opção Inválida;
40. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo - switch
Δ Como já vimos, em algumas
situações, temos várias opções a
escolher. Como fazer isso de
modo mais rápido?
Switch(expressão)
Δ Comando de seleção múltipla
que testa sucessivamente o valor
de uma expressão contra uma
lista de valores do tipo inteiro ou
de caracteres.
Δ Quando o valor coincide, os
comandos associados àquele
valor são executados.
switch (expressão){
case valor1:
<comandos_1>;
break;
case valor2:
<comandos_2>;
break;
...case valorn:
<comandos_n>;
break;
default:
<comandos_default>;
}
41. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Controle de Fluxo - switch
Δ A expressão deve resultar num valor inteiro do tipo int ou char.
Δ Compara-se esse resultado com o valor1 até valorn:
• se for encontrada alguma equivalência, o programa passa a executar os
comandos a partir deste ponto, até encontrar uma instrução break;
• se nenhuma equivalência for encontrada, os comandos relativos a default são
executados;
ocaso não haja a opção default, nenhum comando é executado;
• caso a instrução break não seja encontrada, todos os comandos vão sendo
testados até se chegar ao final do comando “switch”;
42. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
case 4:
printf("Quarta-feira");
break;
case 5:
printf("Quinta-feira");
break;
case 6:
printf("Sexta-feira");
break;
case 7:
printf("Sábado");
break;
default:
printf("Você digitou um dia
inválido!");
}
return(0);
}
#include<stdio.h>
int main(){
int numero;
printf("Insira um numero(1-7): n");
scanf("%d",&numero);
switch(numero){
case 1:
printf("Domingo");
break;
case 2:
printf("Segunda-feira");
break;
case 3:
printf("Terça-feira");
break;
43. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ O loop (laço) for é usado para repetir um comando, ou bloco de comandos,
um determinado número vezes, de maneira que se possa ter um bom
controle sobre o loop;
Δ Apresenta um mecanismo de contagem automática, dentro de um intervalo
definido pelo programador;
Δ Análogo ao de...ate...passo...faca;
Δ Sua forma geral é:
for(inicialização;condição;incremento ou decremento){
//bloco de comandos
}
44. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ As expressões inicial e incremento ou decremento são, em geral, atribuições
à variável de controle e condição é uma expressão relacional que envolve a
mesma variável de controle.
Δ A semântica do comando “for” é:
• A expressão inicial é avaliada, consistindo geralmente na inicialização de uma
variável de controle;
• Em seguida, é avaliada a condição:
ose a condição for verdadeira, o <bloco de comandos> é executado e, ao chegar
ao delimitador } ou final do comando “for”, automaticamente se incrementa ou
se decrementa a variável de controle e se retorna à avaliação da condição;
• Quando a condição ficar falsa, ou seja, o incremento/decremento fizer a
variável de controle chegar no limite da condição, o comando de repetição é
finalizado;
45. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Laços de Repetição – for
Δ Exemplo: Façamos um programa que imprima os caracteres da tabela ASCII
padrão (entre o número 32 e o 127) e sua representação decimal;
#include <stdio.h>
int main(void)
{
int i;
for (i = 32; i <= 126; i++)
{
printf("%c [%d]n", i, i);
}
return 0;
}
46. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
1. Desenvolva, em C, um algoritmo que efetue o cálculo da média de quilômetros por litro gasta em uma
viagem. Para obter o cálculo, o usuário deve fornecer o tempo gasto (variável TEMPO), a velocidade
média (variável VELOCIDADE) durante a viagem e o total de litros de combustível gastos (variável
LITROS). Desta forma, será possível obter a distância percorrida com a fórmula 𝐷𝐼𝑆𝑇Â𝑁𝐶𝐼𝐴 =
𝑇𝐸𝑀𝑃𝑂 𝑥 𝑉𝐸𝐿𝑂𝐶𝐼𝐷𝐴𝐷𝐸. A partir do valor da distância, basta calcular a média de quilômetros por litro
utilizada na viagem com a fórmula: 𝑀É𝐷𝐼𝐴 = 𝐷𝐼𝑆𝑇Â𝑁𝐶𝐼𝐴/𝐿𝐼𝑇𝑅𝑂𝑆. O programa deve apresentar,
após todos os cálculos, os valores da velocidade média, tempo gasto na viagem, a distância percorrida,
a quantidade de litros utilizada na viagem e a média de quilômetros por litro. Considere que o usuário
digitará APENAS números positivos e diferentes de zero;
2. Elabore, em C, um algoritmo que leia (a partir da entrada de dados feita por um usuário), dez valores
numéricos reais e apresente no final a soma e a média dos valores lidos;
3. Desenvolva, em C, um algoritmo que leia (a partir da entrada de dados feita por um usuário), os valores
de três notas escolares bimestrais de um aluno, representadas pelas variáveis N1, N2 e N3. Calcule a
média aritmética (variável M01) desse aluno e apresente a mensagem "Aprovado”, se a média obtida
for maior ou igual a 7; caso contrário, o programa deve solicitar a Quarta nota (nota de exame,
representada pela variável NE) do aluno e calcular uma nova média aritmética (variável M02) entre a
nota de exame e a primeira média aritmética. Se o valor da nova média for maior ou igual a 6,
apresentar a mensagem "Aprovado em exame”; caso contrário, apresentar a mensagem "Reprovado”.
Informar também, após a apresentação das mensagens, o valor da média obtida pelo aluno
47. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
4. Elabore, em pseudocódigo, de um programa que efetue o cálculo da
fatorial de um número inserido pelo usuário. Em seguida, imprima na tela
o valor calculado. Caso o usuário insira um número negativo, indique que
não é um número aceitável. Se o usuário inserir o número 0, indique que
o fatorial é 1.
Relembrando:
Fatorial de 5: 5! = 5*4*3*2*1;
Fatorial de 0: 0! = 1;
Fatorial de -2: -2! = Não existe;
48. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
5. Faça um algoritmo em C que leia 100 números inteiros e escreva, na tela, a média, o
menor número e o maior número (não é necessário usar VETORES!);
6. Faça um algoritmo que:
• Obtenha o valor para a variável HT (horas trabalhadas no mês);
• Obtenha o valor para a variável VH (valor hora trabalhada):
• Obtenha o valor para a variável PD (percentual de desconto);
• Calcule o salário bruto => SB = HT * VH;
• Calcule o total de desconto => TD = (PD/100)*SB;
• Calcule o salário líquido => SL = SB – TD;
• Apresente os valores de: Horas trabalhadas, Salário Bruto, Desconto, Salário Liquido.
49. L
I
N
G
U
A
G
E
M
C
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
7. A conversão de graus Farenheit para centígrados é obtida por 𝐶 =
5(𝐹−32)
9
. Faça um programa em C que calcule e escreva uma tabela
de centígrados em função de graus farenheit, que variam de 50 a 150
de 1 em 1.
8. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas
gostaram ou não de um novo produto lançado no mercado. Para
isso, forneceu o sexo do entrevistado e sua resposta (sim ou não).
Sabendo-se que foram entrevistados 2.000 pessoas, fazer um programa
que calcule e escreva:
a) o número de pessoas que responderam sim
b) o número de pessoas que responderam não
c) a porcentagem de pessoas do sexo feminino que responderam sim
d) a porcentagem de pessoas do sexo masculino que responderam não
50. DÚVIDAS?
Contatos:
E-mail: enio.filho@alfa.br
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para
desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN
857194718;
• FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção
de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN
9788576050247;