Você está na página 1de 25

Introduo Linguagem C

Prof. Bins Ely

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

Estrutura bsica de um programa C


<diretivas para o pr-processador> <declarao de constantes> <declarao de variveis globais> main () { <declarao de variveis locais da funo main> <comandos da funo main> }

Diretivas para o processador - Bibliotecas


Diretiva #include permite incluir uma biblioteca Bibliotecas contm funes pr-definidas, utilizadas nos programas Exemplos:
#include <stdio.h> Funes de entrada e sada

#include <stdlib.h> Funes padro #include <math.h> Funes matemticas

#include <string.h> Funes de texto

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:

* referncias: 2 bytes, mas sizeof 4


7

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!

Algoritmo CalculaMedia incio Real: n1, n2, n3, media

#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];

Sempre usar, com exceo a variveis do tipo palavra (char[n])

scanf("%c", &c); scanf("%d", &i); scanf("%d %f", &j, &x); scanf("%s", nome);

Formatos: %d inteiro %f float %lf double %c char %s palavra

11

Algoritmo CalculaMedia incio Real: n1, n2, n3, media


ler n1, n2, n3 ler n1 ler n2 ler n3

#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;

scanf ("%lf %lf %lf",&n1, &n2, &n3);


media=(n1+n2+n3)/3;

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);

Formatos: %d inteiro %f float %lf double %c char %s palavra

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

Clculo da mdia entre 3 notas


#include <stdio.h> #include <stdlib.h> main() { double n1, n2, n3, media; printf("Digite 3 notas: "); scanf ("%lf %lf %lf",&n1, &n2, &n3); media=(n1+n2+n3)/3; printf ("Mdia: %.2lf",media); system("PAUSE"); }
17

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