Вы находитесь на странице: 1из 29

Palavras Reservadas.

A linguagem C possui um total de 32 palavras conforme definido


pelo padro ANSI, que so elas:

break

case

char

const

default

do

double

else

float

for

if

int

long

switch

return

while

// Calcular o comprimento da circunferncia de raio r //


/*main()

//mostra o inicio do programa//

{ float circulo, raio; //declarao das variveis//


float pi;

// declarao de variveis//

printf("Entre com o valor do raio "); // mensagem impressa no


monitor //
scanf("%f",&raio);

// entra valor para varivel //

raio = 20;

//atribuindo valores para varivel //

pi = 3.14;

// atribuindo valores para varivel //

circulo = 2 * pi * raio; //calculando o comprimento da transferncia


e atribuindo para varivel
local circulo//
printf("\n Comprimento da Circunferencia : %f \n",circulo);
system("pause");

//Fazer um algoritmo para ler o raio, calcular e mostrar a rea do


circulo. //
main()
{ float raio, area;
printf("\n Raio = ");
scanf("%f",&raio);
area = 3.1415 * pow(raio,2);
printf("\n Area = %5.2f",area);
system("pause");
}

//
Operadores Aritmticos
() Muda a prioridade aritmtica;
* Multiplicao;
/ Diviso;
- Subtrao;
+ Soma;
% Resto da diviso inteira;
Ateno na prioridade aritmtica, grande nmero de erros de
programao se encontra no mau uso dos seus operadores.
Importante:

Quando se deseja imprimir ou armazenar um conjunto de


caracteres (palavra), ou seja, uma
string, o contedo deve estar entre aspas duplas, Ex: A vaca foi
para o Brejo;
Quando se deseja armazenar ou imprimir um nico caracter (letra
ou nico smbolo), o
mesmo deve estar entre aspas simples. Ex: A;
Se for um nmero, no se usa nada, somente o prprio nmero,
Ex: 10;

Comando de Sada de Tela


printf(<Expr>);
Somente imprime na tela o que estiver especificado entre aspas
;
Para imprimir valores (nmeros) deve-se utilizar caracteres de
controle;
As expresses devem ser separadas por
Controle ( + utilizados)

; Caracteres de

%c Imprime um caracter;
%d Imprime um decimal inteiro com seu devido sinal;
%f Imprime um nmero de ponto flutuante de preciso simples
(bastante grande);
%s Imprime uma string (conjunto de caracteres);
%% Imprime o smbolo %.
Exemplo, usando printf .
main()
{

printf(Esse o meu primeiro programa);


printf(%c uma letra, j);
printf(%d um nmero inteiro, 30);
printf(%f um nmero de ponto flutuante, 12.2);
printf(%5.2f um nmero de ponto flutuante formatado, 12.2);
printf(%s legal, linguagem C);
printf(%d + %d = %d, 10, 21, 10+21);
}
Tipos de dados Primitivos (Variveis - Bsicas)
A linguagem C possui apenas 4 tipos de dados primitivos, e mais
uma grande variedade de
tipos compostos (vistos mais tarde). Os tipos de dados abaixo
reservam espaos na memria do computador para armazenar
dados:
char um nico caracter;
int um nmero inteiro;
float um nmero de ponto flutuante simples;
double um nmero de ponto flutuante de dupla preciso;
void no um tipo de dado, mas informa sem
Todas variveis devem ser declaradas no inicio do programa,
para que o compilador possa
reservar esses espaos de memria na RAM do computador.

Ex:

int i;

double d, dNumero, Numero;


char Letra;Exemplo usando Variveis
void main(void)
{
int i, j;
i = 2;
j = 3;
printf(Esse o meu segundo programa);
printf(%d + %d = %d, i, j, i+j);
i = i + 1;
printf(%d, i );
i = i + j;
printf(%d, i );
}
Comando de Entrada de Dados
scanf(<Expr>);
Deve-se possuir variveis para armazenar a entrada de dados;
Somente obtm o que estiver especificado entre
(parecido com o printf);
As expresses devem ser separadas por vrgula;
Os caracteres de controle so equivalentes ao do printf;
Quando solicitar a varivel voc dever colocar o smbolo &
antes da mesma (isso ser visto mais alm (ponteiros)).Exemplo
usando scanf void main(void)

{
int i, j;
scanf(%d %d, &i, &j);
printf(Esse o meu terceiro programa);
printf(%d + %d = %d, i, j, i+j);
}
Principais Funes do Compilador
Ctrl + F9, compila e executa se tudo ok;
F9, somente compila;
Alt + F5, apresenta o resultado do programa na tela (modo DOS
texto).

Exemplo.
1- Fazer uma funo que receba dois valores e depois some os
mesmos.
main()
{ float n1, n2;
printf("Digite um numero: ");
scanf("%f", &n1);
printf("Digite outro numero: ");
scanf("%f", &n2);
printf("A soma e: %5.1f\n", (n1 + n2));

printf("\n\n\n");
system("pause");}

EXERCCIOS
1. Faa um algoritmo que receba dois nmeros e exiba o resultado
da sua soma.

2. Faa um algoritmo que receba dois nmeros e ao final mostre a


soma, subtrao, multiplicao e a diviso dos
nmeros lidos.

3. Escrever um algoritmo para determinar o consumo mdio de um


automvel sendo fornecida a distncia total
percorrida pelo automvel e o total de combustvel gasto.

4. Escrever um algoritmo que leia o nome de um vendedor, o seu


salrio fixo e o total de vendas efetuadas por ele no
ms (em dinheiro). Sabendo que este vendedor ganha 15% de
comisso sobre suas vendas efetuadas, informar o
seu nome, o salrio fixo e salrio no final do ms.

5. Escrever um algoritmo que leia o nome de um aluno e as notas


das trs provas que ele obteve no semestre. No final
informar o nome do aluno e a sua mdia (aritmtica).

6. Ler dois valores para as variveis A e B, e efetuar as trocas dos


valores de forma que a varivel A passe a possuir o

valor da varivel B e a varivel B passe a possuir o valor da varivel


A. Apresentar os valores trocados.

7. Ler uma temperatura em graus Celsius e apresent-la convertida


em graus Fahrenheit. A frmula de converso :
F=(9*C+160) / 5, sendo F a temperatura em Fahrenheit e C a
temperatura em Celsius.

8. Elaborar um algoritmo que efetue a apresentao do valor da


converso em real (R$) de um valor lido em dlar
(US$). O algoritmo dever solicitar o valor da cotao do dlar e
tambm a quantidade de dlares disponveis com o
usurio.

9. Faa um algoritmo que receba um valor que foi depositado e


exiba o valor com rendimento aps um ms.
Considere fixo o juro da poupana em 0,70% a. m.

10. A Loja Mamo com Acar est vendendo seus produtos em 5


(cinco) prestaes sem juros. Faa um algoritmo que
receba um valor de uma compra e mostre o valor das prestaes.

11. Faa um algoritmo que receba o preo de custo de um produto


e mostre o valor de venda. Sabe-se que o preo de
custo receber um acrscimo de acordo com um percentual
informado pelo usurio.

12. O custo ao consumidor de um carro novo a soma do custo de


fbrica com a percentagem do distribuidor e dos
impostos (aplicados, primeiro os impostos sobre o custo de fbrica,
e depois a percentagem do distribuidor sobre o
resultado). Supondo que a percentagem do distribuidor seja de 28%
e os impostos 45%. Escrever um algoritmo que
leia o custo de fbrica de um carro e informe o custo ao consumidor
do mesmo.

13. Faa um algoritmo que receba um nmero e mostre uma


mensagem caso este nmero seja maior que 10.

14. Escrever um algoritmo que leia dois valores inteiro distintos e


informe qual o maior.

15. Faa um algoritmo que receba um nmero e diga se este


nmero est no intervalo entre 100 e 200.

16. Escrever um algoritmo que leia o nome e as trs notas obtidas


por um aluno durante o semestre. Calcular a sua
mdia (aritmtica), informar o nome e sua meno aprovado (media
>= 7), Reprovado (media <= 5) e Recuperao
(media entre 5.1 a 6.9).

17. Ler 80 nmeros e ao final informar quantos nmero(s) est()o


no intervalo entre 10 (inclusive) e 150 (inclusive).

18. Faa um algoritmo que receba a idade de 75 pessoas e mostre


mensagem informando maior de idade e menor de
idade para cada pessoa. Considere a idade a partir de 18 anos
como maior de idade.

19. Escrever um algoritmo que leia o nome e o sexo de 56 pessoas


e informe o nome e se ela homem ou mulher. No
final informe total de homens e de mulheres.

20. A concessionria de veculos CARANGO VELHO est


vendendo os seus veculos com desconto. Faa um
algoritmo que calcule e exiba o valor do desconto e o valor a ser
pago pelo cliente de vrios carros. O desconto
dever ser calculado de acordo com o ano do veculo. At 2000 12% e acima de 2000 - 7%. O sistema dever
perguntar se deseja continuar calculando desconto at que a
resposta seja: (N) No . Informar total de carros com
ano at 2000 e total geral.

21. Escrever um algoritmo que leia os dados de N pessoas (nome,


sexo, idade e sade) e informe se est apta ou no
para cumprir o servio militar obrigatrio. Informe os totais.

22. Faa um algoritmo que receba o preo de custo e o preo de


venda de 40 produtos. Mostre como resultado se

houve lucro, prejuzo ou empate para cada produto. Informe media


de preo de custo e do preo de venda.

23. Faa um algoritmo que receba um nmero e mostre uma


mensagem caso este nmero sege maior que 80, menor
que 25 ou igual a 40.

24. Faa um algoritmo que receba N nmeros e mostre positivo,


negativo ou zero para cada nmero.

25. Faa um algoritmo que leia dois nmeros e identifique se so


iguais ou diferentes. Caso eles sejam iguais imprima
uma mensagem dizendo que eles so iguais. Caso sejam
diferentes, informe qual nmero o maior, e uma
mensagem que so diferentes.

26. Faa um algoritmo que leia um nmero de 1 a 5 e escreva por


extenso. Caso o usurio digite um nmero que no
esteja neste intervalo, exibir mensagem: nmero invlido.

27. A concessionria de veculos CARANGO est vendendo os


seus veculos com desconto. Faa um algoritmo que
calcule e exiba o valor do desconto e o valor a ser pago pelo cliente.
O desconto dever ser calculado sobre o valor
do veculo de acordo com o combustvel (lcool 25%, gasolina
21% ou diesel 14%). Com valor do veculo zero
encerra entrada de dados. Informe total de desconto e total pago
pelos clientes.

28. Escrever um algoritmo para uma empresa que decide dar um


reajuste a seus 584 funcionrios de acordo com os
seguintes critrios:
a) 50% para aqueles que ganham menos do que trs salrios
mnimos;
b) 20% para aqueles que ganham entre trs at dez salrios
mnimos;
c) 15% para aqueles que ganham acima de dez at vinte salrios
mnimos;
d) 10% para os demais funcionrios.
Leia o nome do funcionrio, seu salrio e o valor do salrio mnimo.
Calcule o seu novo salrio reajustado. Escrever o
nome do funcionrio, o reajuste e seu novo salrio. Calcule quanto
empresa vai aumentar sua folha de pagamento.

29. Faa um algoritmo que receba o nmero do ms e mostre o


ms correspondente. Valide ms invlido.

30. Faa um algoritmo que receba o nome a idade, o sexo e salrio


fixo de um funcionrio. Mostre o nome e o salrio lquido:

31. Escrever um algoritmo que leia trs valores inteiros distintos e


os escreva em ordem crescente.

32. Dados trs valores A, B e C, em que A e B so nmeros reais e


C um caractere, pede-se para imprimir o resultado
da operao de A por B se C for um smbolo de operador aritmtico;
caso contrrio deve ser impressa uma
mensagem de operador no definido. Tratar erro de diviso por
zero.

33. Escrever um algoritmo que leia trs valores inteiros e verifique


se eles podem ser os lados de um tringulo. Se
forem, informar qual o tipo de tringulo que eles formam: equiltero,
isscele ou escaleno.
Propriedade: o comprimento de cada lado de um tringulo menor
do que a soma dos comprimentos dos outros
dois lados.
Tringulo Equiltero: aquele que tem os comprimentos dos trs
lados iguais;
Tringulo Isscele: aquele que tem os comprimentos de dois lados
iguais. Portanto, todo tringulo equiltero
tambm isscele;
Tringulo Escaleno: aquele que tem os comprimentos de seus trs
lados diferentes.

34. A escola APRENDER faz o pagamento de seus professores


por hora/aula. Faa um algoritmo que calcule e exiba o
salrio de um professor. Sabe-se que o valor da hora/aula segue a
tabela abaixo:
Professor Nvel 1 R$12,00 por hora/aula
Professor Nvel 2 R$17,00 por hora/aula
Professor Nvel 3 R$25,00 por hora/aula

35. Elabore um algoritmo que, dada a idade de um nadador.


Classifique-o em uma das seguintes categorias:
Infantil A = 5 - 7 anos
Infantil B = 8 - 10 anos
juvenil A = 11- 13 anos
juvenil B = 14 - 17 anos
Snior = 18 - 25 anos

Apresentar mensagem idade fora da faixa etria quando for outro


ano no contemplado.

36. Faa um algoritmo que calcule o valor da conta de luz de uma


pessoa. Sabe-se que o clculo da conta de luz segue
a tabela abaixo:
Tipo de Cliente Valor do KW/h
1 (Residncia) 0,60

2 (Comrcio) 0,48
3 (Indstria) 1,29

37. Faa um algoritmo que leia o nome, o sexo, a altura e a idade


de uma pessoa. Calcule e mostre nome e o seu peso
ideal de acordo com as seguintes caractersticas da pessoa:

38. Em um curso de Cincia da Computao a nota do estudante


calculada a partir de trs notas atribudas,
respectivamente, a um trabalho de laboratrio, a uma avaliao
semestral e a um exame final. As notas variam, de 0
a 10 e a nota final a mdia ponderada das trs notas
mencionadas. A tabela abaixo fornece os pesos:
Laboratrio Peso 2
Avaliao semestral Peso 3
Exame final Peso 5

39. Dado o nome de um estudante, com o respectivo nmero de


matrcula e as trs notas acima mencionadas,
desenvolva um algoritmo para calcular a nota final e a classificao
de cada estudante. A classificao dada
conforme a tabela abaixo:
Nota Final Classificao
[8,10] A
[7,8] B
[6,7] C
[5,6] D
[0,5] R

Imprima o nome do estudante, com o seu nmero, nota final e


classificao.
40- Uma Companhia de Seguros possui nove categorias de seguro
baseadas na idade e ocupao do segurado. Somente
pessoas com pelo menos 17 anos e no mais de 70 anos podem
adquirir aplices de seguro. Quanto s classes de
ocupaes, foram definidos trs grupos de risco. A tabela abaixo
fornece as categorias em funo da faixa etria e do
grupo de risco. Dados nome, idade e grupo de risco, determinar a
categoria do pretendente aquisio de tal seguro.
Imprimir o nome a idade e a categoria do pretendente, e , caso a
idade no esteja na faixa necessria, imprimir uma
mensagem.

COMANDOS DE CONDIO
Formato:
if (condio)
comando1
else
comando2
O que faz o comando:
1. O valor de condio calculado como verdadeiro ou falso.
2. Se a condio verdadeira somente o comando1
executado.
3. Se a condio falsa somente o comando2 executado.
Exemplos:

Se a > b, ento Maior impresso; seno Menor impresso.


if (a > b)
printf("Maior\n");
else
printf("Menor\n");
Se a > b, ento Maior impresso e feita a atribuio a = 2*b;
se a < b, ento Menor impresso.
if (a > b){
printf("Maior\n");
a = 2*b;
}
else
printf("Menor\n");
Se a > b, ento Maior impresso; se a < b, ento Menor
impresso e feita a atribuio b = 3*a

if (a > b)
printf("Maior\n");
else {
printf("Menor\n");
b = 3*a;
}

O comando condicional permite incluir no programa trechos de


cdigo que dependem de uma ou mais condicoes para sua
execuo.
O comando condicional tem duas formas bsicas:
if(condio) comando.
if(condio) comando1 else comando 2.
if(condio) comando
if(condio) comando1 else comando2
A condio uma expresso qualquer cujo valor calculado ao se
executar o comando condicional.
Um valor diferente de zero para a condio indica verdadeiro
Um valor igual a zero indica falso.
Exemplos de uso do if

if(a > 10) b=0;


if(c 10) d = 3;
if(e 32 >= 789)a = b + 32 k;
if(n%2)
printf(O numero %d e impar! \n,n);
if(a == 10) b = 0;

else b = 25;
if(c 10) d = 3;
else c = 34/d;

if(e 32 <= 789) a = b + 32 k;


else a = 0;
if(n%2)
printf(O numero %d e impar! \ n,n);
else
printf(O numero %d e par! \n,n);

Operadores Relacionais

< ........ menor que


<= ..... menor ou igual a
== ..... igual a
! = ...... diferente de
>= ..... maior ou igual a
> ....... maior que
Todos os operadores relacionais tem a mesma precedncia, que
menor que a precedncia dos operadores aritmticos.
Mais exemplos
if(a! = b)
a = a b;

else
b = b 3;

if(a! = b)
a = b;
else
b = 3;

if(1 <= a <= 3)


printf(\n o valor de a e um numero primo);
else
b = 3;

if-else e blocos de comandos

As vezes necessrio executar mais de uma operao quando


uma condio satisfeita.
Nesse caso, o bloco dos comandos que devem ser executados
deve ser limitado por {e } .
Exemplo:
if(a < b)
{
t = a;

a = b;
b = t;
}
else i + +;

Cuidado com o sinal de igual ==

int saldo = 2000;


if(saldo==0)
printf(Voce esta quebrado!\n);
else
printf(Seu saldo e: %d, saldo);

int saldo = 2000;


if(saldo = 0)
printf(Voce esta quebrado!\n);
else
printf(Seu saldo e: %d,saldo);
O compilador no considera isso um erro! Cuidado.

Aninhando Sentenas
O exemplo a seguir responde se um dado nmero positivo ou
negativo e se par ou mpar.

main()

{ int num;
printf("\n Entre com um numero inteiro: ");
do usuario

// Obtem um numero

scanf("%d",&num);

//Seguinte imprime mensagem dizendo se o numero e


positivo ou negativo e par ou impar
if(num >= 0) {
if(num%2==0)
printf("\n O numero e par e positivo.\n");
else
printf("\n O numero e impar e positivo.\n");
}
else {
if(num%2==0)
printf("\n O numero e par e negativo.\n");
else
printf("\n O numero e impar e negativo.\n");
}
printf("\n \n \n ");
system("pause");
}

Regra da Associao
Regra da associao: um if est associado com a ltima ocorrncia
do if sem else.

Exemplo incorreto
main()
{ int car;
// Obtm o numero de carros num estacionamento
printf("\n\n Entre com um numero de carros: ");
scanf("%d",&car);
/* Imprime uma mensagem dizendo se h mais de 10 carros ou se
no h carros no estacionamento */
if(car != 0)
if(car > 10)
printf("\n\n Ha mais de 10 carros no estacionamento.\n");
else
printf("\n\n No ha carros no estacionamento.\n");
printf("\n \n \n \n");
system("pause");
}

O que est acontecendo?


main()
{ int car;
// Obtm o numero de carros num estacionamento
printf("\n\n Entre com um numero de carros: ");
scanf("%d",&car);
/* Imprime uma mensagem dizendo se h mais de 10 carros ou se
no h carros no estacionamento */
if(car != 0)
if(car > 10)
printf("\n\n Ha mais de 10 carros no estacionamento.\n");
else
printf("\n\n No ha carros no estacionamento.\n");
printf("\n \n \n \n");
system("pause");
}

Corrigindo o problema: use {e } .

main()

{ int car;
// Obtm o numero de carros num estacionamento
printf("\n\n Entre com um numero de carros: ");
scanf("%d",&car);
/* Imprime uma mensagem dizendo se h mais de 10 carros ou se
no h carros no estacionamento */
if(car != 0)
{
if(car > 10)
printf("\n\n Ha mais de 10 carros no estacionamento.\n");
}
else
printf("\n\n No ha carros no estacionamento.\n");
printf("\n \n \n \n");
system("pause");
}

if-else aninhados ou operadores lgicos

Todos os programas at agora consideraram o comando if com


condies simples:
b!=0
contador < 5
Quando mais de uma condio precisa ser testada, precisamos
usar sentenas if-else aninhadas.

if(num>=0)
if(num%2==0)
printf(Numero par positivo. \n);

Ns podemos usar operadores lgicos!!! Veja:


if((num>=0) && (num%2==0))
printf(Numero par positivo. \n);

Operadores Lgicos
&& E (todas as condies precisam ser verdadeiras)
|| OU (basta que uma das condies seja verdadeira)
! NO / NEGAAO

Operadores Lgicos: operao de negao


Cada expresso resulta num valor lgico:
0 falso
1 verdadeiro
A operao de negao pode ser usada da seguinte forma:
! expresso
E executa o seguinte papel:
!01
! 1 b 0
Exemplo:
if(num>0 && ! (num % 2) )

printf(Numero par e positivo. \n);

Outro exemplo:
Suponha que quero fazer um clculo que s e vlido para nmeros
pares positivos.
Eu posso avisar ao usurio se ele no digitar um nmero que
satisfaa as condies:
printf(digite um numero par positivo: );
scanf(%d,&num);
if(!(num>0 && num%2==0))
printf(O numero digitado no satisfaz as condies. \n);

Operadores Lgicos: precedncias


O operador de negao tem precedncia mais alta que os outros
operadores lgicos.
Os operadores lgicos && e || tem precedncia menor que os
operadores relacionais.
Os operadores lgicos && e || tem precedncia maior que a
operao de atribuio.
O operador && tem precedncia maior que o operador ||.
precedncia menor = executado depois!
Como a precedncia dos operadores lgicos e menor que a dos
operadores relacionais, no e necessrio usar parnteses em
expresses como:
x >= 3 && x <= 50

x== 1 || x == 2 || x == 3

Exemplo
O programa a seguir verica se os valores de lado1, lado2 e lado3
podem ser lados de um triangulo reto.
Usaremos o fato de que os lados tm que ser valores positivos e
que o quadrado de um dos lados igual soma dos quadrados dos
outros dois lados.
maind()
{ int lado1, lado2, lado3, q1, q2, q3;
printf(Entre com o tamanho dos lados do triangulo: );
scanf(%d %d %d,&lado1, &lado2, &lado3);
q1=lado1*lado1;
q2=lado2*lado2;
q3=lado3*lado3;
if(lado1>0 && lado2>0 && lado3>0)
{
if(s1== s2+s3 s2 ==s1+s3 s3 == s1+s2)
printf(\n Triangulo reto! \n);
else
printf(\n No e um triangulo reto!\n);
}
else
printf(\n No pode ser um triangulo: tem lados negativos!\n);

Вам также может понравиться