Introdução à Linguagem C Luis Otavio Alvares

29
1 Introdução à Linguagem C Luis Otavio Alvares Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny

description

Introdução à Linguagem C Luis Otavio Alvares Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny. Histórico da Linguagem C. Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix C++ é uma extensão da linguagem C - PowerPoint PPT Presentation

Transcript of Introdução à Linguagem C Luis Otavio Alvares

Page 1: Introdução à Linguagem C Luis Otavio Alvares

1

Introdução à Linguagem C

Luis Otavio Alvares

Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny

Page 2: Introdução à Linguagem C Luis Otavio Alvares

2

Histórico da Linguagem C

• Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix

• C++ é uma extensão da linguagem C

• O sistema Unix é escrito em C e C++

Page 3: Introdução à Linguagem C Luis Otavio Alvares

3

Estrutura básica de um programa Cdiretivas para o pré-processadordeclaração de variáveis globaismain (){

declaração de variáveis locais da função maincomandos da função main

}

Page 4: Introdução à Linguagem C Luis Otavio Alvares

4

Diretivas para o processador - Bibliotecas

• Diretiva #include permite incluir uma biblioteca

• Bibliotecas contêm funções pré-definidas, utilizadas nos programas

• Exemplos

Funções de texto#include <string.h>

Funções matemáticas#include <math.h>

Funções padrão#include <stdlib.h>

Funções de entrada e saída#include <stdio.h>

Page 5: Introdução à Linguagem C Luis Otavio Alvares

5

O ambiente Dev-C++

• O Dev-C++ é um ambiente de desenvolvimento de programas em C e C++ (editor, compilador, bibliotecas...)

• Pode ser baixado de http://www.bloodshed.net/devcpp.html

Page 6: Introdução à Linguagem C Luis Otavio Alvares

6

Usando o Dev-C++

• Inicie o Dev-C++ pelo ícone ou pelo menu• Crie um novo arquivo, com o comando Arquivo,

Novo, Arquivo Fonte

• Edite o programa da página seguinte

Page 7: Introdução à Linguagem C Luis Otavio Alvares

7

Usando o Dev-C++ (3)

#include <stdio.h>#include <stdlib.h>main(){ printf ("Alo mundo!"); system("PAUSE");}

Page 8: Introdução à Linguagem C Luis Otavio Alvares

8

Usando o Dev-C++ (4)

• Salve o programa com o nome exemplo.cpp em um diretorio com o seu nome

• Compile e execute o programa pressionando a tecla F9

• Se houver algum erro de sintaxe, aparece uma ou mais mensagens no rodapé da janela. Neste caso, corrija o programa e repita.

Page 9: Introdução à Linguagem C Luis Otavio Alvares

9

Dicas

• Termine todos os comandos com ;• Quando ocorrer um erro de compilação, dê um

duplo clique sobre a mensagem de erro para destacar o comando errado no programa

• Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ;

• Use comentários, iniciados por // ou entre /* */ /* isto é um comentário */

// isto também é um comentário

Page 10: Introdução à Linguagem C Luis Otavio Alvares

10

Exemplo 1

/* meu primeiro programa C */

#include <stdio.h>

#include <stdlib.h>

main()

{

printf ("Alo mundo!"); //mostra

system("PAUSE"); //fica parado

}

Page 11: Introdução à Linguagem C Luis Otavio Alvares

11

Declarações

• Declaram as variáveis e seus tipos• Os nomes das variáveis devem conter

apenas letras, dígitos e o símbolo _ e iniciar com letra ou _

• Os principais tipos são: int, float, double e char

• Exemplosint n;int quantidade_valores;float x, y, somaValores;char sexo;char nome[40];

C diferencia letras maiúsculas de minúsculas!int n, N;n é diferente de N!

Page 12: Introdução à Linguagem C Luis Otavio Alvares

12

Algoritmo Na Linguagem C...

#include <stdio.h>

#include <stdlib.h>

main()

{

float n1, n2, n3, media;

system("PAUSE");

}

Page 13: Introdução à Linguagem C Luis Otavio Alvares

13

Comando de atribuição

• Atribui o valor da direita à variável da esquerda• O valor pode ser:

– uma constante,– uma variável ou – uma expressão

• Exemplosx = 4; // lemos: x recebe 4

y = x + 2; // lemos: y recebe (x mais 2)

y = y + 4; // lemos: y recebe (y mais 4)

valor = 2.5;

sexo = 'F' // constantes devem estar entre aspas simples (apóstrofe)

Page 14: Introdução à Linguagem C Luis Otavio Alvares

14

Entrada e Saída de Dados

Page 15: Introdução à Linguagem C Luis Otavio Alvares

15

Entrada de Dados

• Função scanf scanf ("formatos", &var1, &var2,...)

Exemplos:

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

%d inteiro decimal%f float%lf double%c char%s string

Não deixar espaço em branco!!!

Page 16: Introdução à Linguagem C Luis Otavio Alvares

16

Entrada de Dados (Exemplo 2)

Algoritmo Na Linguagem C...

#include <stdio.h>

#include <stdlib.h>

main()

{

float n1, n2, n3, media;

scanf ("%f",&n1);

scanf ("%f",&n2);

scanf ("%f",&n3);

system("PAUSE");

}

OBS: não deixe espaço antes do fecha "

ler n1ler n2ler n3

ler n1, n2, n3

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

Page 17: Introdução à Linguagem C Luis Otavio Alvares

17

Operadores Matemáticos

Decrementa em 1 o valor de xx----

Incrementa em 1 o valor de xx++++

Resto da divisão de x por yx % y %

Divide x por y x / y /

Multiplica x e yx * y*

Subtrai y de xx – y -

Soma x e yx + y+

ComentárioExemploOperador

Page 18: Introdução à Linguagem C Luis Otavio Alvares

CUIDADO!!!!

18

• OBS: o operador “/” (divisão) terá um resultado inteiro se os dois operandos forem inteiros. Para um resultado real, um dos dois operandos deve ser real (ou os dois)

Exemplo:

int X,Y;

float Z,U,T;

X=2; Y=3; U=3;

Z=X/Y; // Z terá o valor zero

T=X/U; // T terá o valor 0.666667

Page 19: Introdução à Linguagem C Luis Otavio Alvares

19

Entrada de Dados (exemplo 3)Na Linguagem C...

#include <stdio.h>

#include <stdlib.h>

main()

{

float n1, n2, n3, media;

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

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

system("PAUSE");

}

ler n1, n2, n3

Media(n1+n2+n3)/3

Algoritmo

Page 20: Introdução à Linguagem C Luis Otavio Alvares

20

Saída de Dados

• Função printfprintf ("formatos", var1, var2,...)

Exemplos:

int i, j;float x;char c;printf("%d", i);printf("%d %f", j, x);printf("%c", c);

%d inteiro%f float%lf double%c char%s string

Page 21: Introdução à Linguagem C Luis Otavio Alvares

21

Saída de Dados (Exemplo 4)

#include <stdio.h>#include <stdlib.h>main(){ int i, j;

float x;i = 1;

j = 2; x = 3;

printf("%d", i);printf(" %d %f", j, x);

system("PAUSE");}

Page 22: Introdução à Linguagem C Luis Otavio Alvares

22

Saída de Dados (Exemplo 5)

#include <stdio.h>#include <stdlib.h>main(){ // definicao de variaveis float n1, n2, n3, media; // entrada de dados scanf ("%f %f %f",&n1, &n2, &n3); // operacao media=(n1+n2+n3)/3; // saida de dados printf("%f", n1); printf("%f", n2); printf("%f", n3); printf("%f", media);

system("PAUSE");

}

Page 23: Introdução à Linguagem C Luis Otavio Alvares

23

Saída de Dados (Exemplo 6)#include <stdio.h>#include <stdlib.h>main(){ // definicao de variaveis int i, j;

float x;

//entrada de dadosscanf("%d", &i);scanf("%d %f", &j, &x);

// exibicao de dadosprintf("I= %d\n", i);printf("J= %d\nX= %f\n", j, x);

system("PAUSE");}

Page 24: Introdução à Linguagem C Luis Otavio Alvares

24

Entrada e Saída Exemplo 8

#include <stdio.h>

#include <stdlib.h>

main()

{

float n1, n2, n3, media;

printf("Digite 3 notas: ");

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

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

printf ("Media: %.2f\n",media);

system("PAUSE");

}

Exemplo 7

#include <stdio.h>

#include <stdlib.h>

main()

{

float n1, n2, n3, media;

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

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

printf ("%f",media);

system("PAUSE");

}

Page 25: Introdução à Linguagem C Luis Otavio Alvares

25

Operadores de Atribuição

Equivale a x = x % yx %= y%=

Equivale a x = x / yx /= y /=

Equivale a x = x * yx *= y *=

Equivale a x = x – yx -= y-=

Equivale a x = x + yx += y +=

Atribui o valor de y a xx = y=

ComentárioExemploOperador

Page 26: Introdução à Linguagem C Luis Otavio Alvares

26

Funções Matemáticas

Tangente de xtan(x)tan

Raiz quadrada de xsqrt(x)sqrt

Seno de xsin(x)sin

Calcula x elevado à potência ypow(x, y)pow

Logaritmo decimal de xlog10(x)log10

Logaritmo natural de xlog(x)log

Arredonda o número real para baixo; floor(3.2) é 3floor(x)floor

Valor absoluto de xfabs(x)fabs

e elevado à potencia xexp(x)exp

Cosseno de x (x em radianos)cos(x)cos

Arredonda o número real para cima; ceil(3.2) é 4ceil(x)ceil

ComentárioExemploFunção

#include <math.h>

Page 27: Introdução à Linguagem C Luis Otavio Alvares

27

Exemplo 92) Construa um programa que tendo como entrada dois pontos

quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância entre eles. A fórmula da distância é:

#include <stdio.h>#include <stdlib.h>#include <math.h>main(){ float x1, y1, x2, y2; float 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 P1 e P2 e’ %.2f\n", distancia); system("PAUSE");}

Page 28: Introdução à Linguagem C Luis Otavio Alvares

28

Exercicio I3) Construa um programa que calcule a quantidade de latas de

tinta necessárias e o custo para pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio desse cilindro.

Sabendo que:- a lata de tinta custa R$20,00- cada lata contém 5 litros- cada litro de tinta pinta 3 metros quadrados.

e que:Área do cilindro= 2 vezes a área da base + circunferencia da base

vezes a altura

e que raio e altura são dados de entrada.

Page 29: Introdução à Linguagem C Luis Otavio Alvares

29

Resposta do Exercício I#include <stdio.h>#include <stdlib.h>#include <math.h>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=2*3.14*raio*raio + 2*3.14*raio*altura; printf ("\nA area do cilindro e’ %.2f metros quadrados", areaCilindro); qtdadeLitros=areaCilindro/3; printf ("\nA qtidade de litros necessaria e‘ de %.2f ", qtdadeLitros); qtdadeLatas=qtdadeLitros/5; printf ("\nA qtidade de latas necessaria e’ de %.2f ", qtdadeLatas); custo=qtdadeLatas*20; printf ("\nO valor total das tintas e’ de R$ %.2f \n", custo); system("PAUSE");}