Professional Documents
Culture Documents
Lgica de programao
Adaptado de slides preparados por Giseli Rabello Lopes
Traduo
CDIGO FONTE
... SOMA = VAR1 + TOTAL ...
TRADUTOR
CDIGO OBJETO
... 00010110111001011001011010 ...
(linguagem de prog.)
(executvel)
MONTADOR (assembler)
Tradutor para linguagens de 2a gerao.
COMPILADOR:
Traduz todo o programa de uma vez.
INTERPRETADOR:
Traduz o programa instruo por instruo.
2
Histrico da Linguagem C
Criada por Denis Ritchie, na dcada de 1970, para uso em um computador DEC PDP-11 em Unix O sistema Unix escrito em C e C++ C++ uma extenso da linguagem C
C programao estruturada C++ orientada a objetos
Constantes
Constantes so dados gravados em memria que no podemos alterar seu valor Ento, qual a vantagem em ocupar memria com um dado que no podemos mudar?
Podermos reduzir nmeros grandes ou dados sem muito significado em algo simples, fcil de usar e relembrar
Constantes em C:
#define nome_da_constante valor
Exemplo:
#define PI 3.14159265
Declaraes
Declaram as variveis e seus tipos Tipos determinam o contedo e tamanho de rea de memria reservada para o dado Os nomes das variveis devem conter apenas letras, dgitos e o smbolo _ Os tipos bsicos em C so:
Declaraes
Exemplos:
int n; int quantidade_valores; float x, y, somaValores; char sexo; char nome[40];
C diferencia letras maisculas de minsculas!
int n, N; n diferente de N!
#include <stdio.h> #include <stdlib.h> main() { double n1, n2, n3, media;
fim
system("PAUSE"); }
Comando de atribuio
Atribui o valor da direita varivel da esquerda O valor pode ser uma constante, uma varivel ou uma expresso Exemplos:
x = 4; y = x + y = y + valor = --> lemos x recebe 4 2; 4; 2.5;
sexo = 'F';
10
Entrada e Sada
Funo scanf
scanf ("formatos", &var1, &var2,...)
Exemplos:
char c; int i, j; float x; char nome[40];
scanf("%c", &c); scanf("%d", &i); scanf("%d %f", &j, &x); scanf("%s", nome);
11
#include <stdio.h> #include <stdlib.h> main() { double n1, n2, n3, media; scanf ("%lf",&n1); scanf ("%lf %lf %lf",&n1, &n2, &n3); scanf ("%lf",&n2); scanf ("%lf",&n3);
fim
system("PAUSE"); }
12
Operadores Matemticos
Operador Exemplo Comentrio
+ * x + y x y x * y Soma x e y Subtrai y de x Multiplica x e y
/
% ++
x / y
x % y x++
Divide x por y
Resto da diviso de x por y Incrementa em 1 o valor de x
--
x--
Decrementa em 1 o valor de x
Somente pode-se utilizar com operadores inteiros (variveis do tipo int) Ambos operadores inteiros: diviso inteira (somente parte inteira) Um dos operadores reais: diviso real 13
Algoritmo CalculaMedia incio Real: n1, n2, n3, media ler n1, n2, n3
media=(n1+n2+n3)/3
#include <stdio.h> #include <stdlib.h> main() { double n1, n2, n3, media;
fim
system("PAUSE"); }
14
Entrada e Sada
Funo printf
printf ("formatos", var1, var2,...)
Exemplos:
char c; int i, j; float x; char nome[40]; printf("%c", c); printf("%d", i); printf("%d, %f", j, x); printf("%s", nome);
15
Algoritmo CalculaMedia incio Real: n1, n2, n3, media ler n1, n2, n3 media=(n1+n2+n3)/3
exibir media
#include <stdio.h> #include <stdlib.h> main() { double n1, n2, n3, media; scanf ("%lf %lf %lf",&n1, &n2, &n3); media=(n1+n2+n3)/3;
printf (%lf,media);
system("PAUSE");
fim
16
Exemplo 1) Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um programa que calcule seu peso ideal, utilizando a seguinte frmula: peso ideal = (72.7*h) 58.
18
Exemplo
#include <stdio.h> #include <stdlib.h> #include <conio.h> main() { float altura, pesoIdeal; char sexo; printf ("\nDigite sua altura em metros: "); scanf ("%f",&altura); printf ("\nDigite seu sexo (F/M): "); sexo=getche(); pesoIdeal=(72.7*altura)-58; printf ("\nO sexo digitado foi %c e o peso ideal desta pessoa eh %.2f quilos\n", sexo, pesoIdeal); system("PAUSE"); }
19
Operadores de Atribuio
Operador Exemplo Comentrio
= += -= *= /= %= x = y x += y x -= y x *= y x /= y x %= y Atribui o valor de y a x Equivale a x = x + y Equivale a x = x y Equivale a x = x * y Equivale a x = x / y Equivale a x = x % y
20
Funes Matemticas
Funo ceil cos exp fabs floor log log10 pow sin sqrt tan Exemplo ceil(x) cos(x) exp(x) fabs(x) floor(x) log(x) log10(x) pow(x, y) sin(x) sqrt(x) tan(x) Comentrio Arredonda o nmero real para cima; ceil(3.2) 4 Cosseno de x (x em radianos) e elevado potencia x Valor absoluto de x Arredonda o nmero real para baixo; floor(3.2) 3 Logaritmo natural de x Logaritmo decimal de x Calcula x elevado potncia y Seno de x Raiz quadrada de x Tangente de x
#include <math.h>
21
Exemplos 2) Construa um programa que tendo como entrada dois pontos quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distncia entre eles.
A frmula da distncia :
22
Exemplos
#include <stdio.h> #include <stdlib.h> #include <math.h> main() { float x1, y1, x2, y2, distancia; printf ("\nDigite o valor de x1: "); scanf ("%f",&x1); printf ("\nDigite o valor de y1: "); scanf ("%f",&y1); printf ("\nDigite o valor de x2: "); scanf ("%f",&x2); printf ("\nDigite o valor de y2: "); scanf ("%f",&y2); distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2)); printf ("\nA distancia entre os pontos eh %.2f\n", distancia); system("PAUSE"); }
23
Exemplos
3) Construa um programa que calcule a quantidade de latas de tinta necessrias e o custo para pintar tanques cilndricos de combustvel, onde so fornecidos a altura e o raio desse cilindro. Sabendo que: - a lata de tinta custa R$20,00 - cada lata contm 5 litros - cada litro de tinta pinta 3 metros quadrados. - rea do cilindro=3.14*raio2 + 2*3.14*raio*altura - raio e altura so dados de entrada.
24
#include <stdio.h> #include <stdlib.h> #include <math.h> #define PI 3.14159265 main() { float altura, raio, areaCilindro, qtdadeLitros, qtdadeLatas, custo; printf ("\nDigite o valor da altura em metros: "); scanf ("%f",&altura); printf ("\nDigite o valor do raio em metros: "); scanf ("%f",&raio); areaCilindro=PI*pow(raio,2)+ 2*PI*raio*altura; printf ("\nA area do cilindro eh %.2f metros quadrados", areaCilindro); qtdadeLitros=areaCilindro/3; printf ("\nA qtidade de litros necessaria eh de %.2f ", qtdadeLitros); qtdadeLatas=qtdadeLitros/5; qtdadeLatas=ceil(qtdadeLatas); printf ("\nA qtidade de latas necessaria eh de %.2f ", qtdadeLatas); custo=qtdadeLatas*20; printf ("\nO valor total das tintas eh de R$ %.2f \n", custo); system("PAUSE"); }
25