Você está na página 1de 43

1

ESTRUTURA DE DADOS: 2. INTRODUO


22/02/13

Francisco Barretto francisco.barretto@udf.edu.br

A Origem da Linguagem C
2

Linguagem BCPL
Basic

Combined Programming Language; Desenvolvida em 1967; Foi refinada para uma linguagem chamada B
n Ken

Thompson (Bell Laboratories)

Em

1972, Dennis Richie (Bell Labs) melhorou a linguagem B para formar a linguagem C tradicional
n C

foi originalmente concebida para desenvolvimento do sistema operacional UNIX

A Origem da Linguagem C
3

Criada por Denis Ritchie, em 1972, para uso em um computador DEC PDP-11 em Unix C++ uma extenso da linguagem C O sistema Unix escrito em C e C++

A Origem da Linguagem C
4

Foram desenvolvidos inmeros compiladores C, para os diferentes tipos de computadores; A rpida expanso de C levou a um grande numero de variaes da linguagem original
Todas

semelhantes, porm incompatveis;

Da a necessidade de uma verso padro...

A Origem da Linguagem C
5

Em 1983 foi criado um comit tcnico do American National Standards Institute (ANSI) Objetivo: propor uma definio da linguagem C que fosse no ambgua e independente da arquitetura do computador Surge ento o C ANSI

A Origem da Linguagem C
6

C considerada uma linguagem de mdio nvel:


Manipula

bytes e endereos de memria (baixo nvel); Tem tipos de dados (alto nvel);

Um tipo de dado define um conjunto de valores que uma varivel pode armazenar e o conjunto de operaes que podem ser executadas nessa varivel.

Criando um Programa em C
7

Passos:
1. 2.

Edio; Compilao;
a. b. c.

Pr-processamento; Compilao; Link-edio;

3.

Execuo

Criando um Programa em C
8

1.

Edio
Usando
n DEV

um editor de textos ou uma IDE, escreve-se o texto do programa em um arquivo;


C++, no nosso caso!

Este

arquivo denominado cdigo fonte Nome do arquivo em geral termina com .c


n Ex:

teste.c

Criando um Programa em C
9

1. Edio: estrutura bsica


diretivas para o pr-processador declarao de variveis globais tipo do retorno main (lista de parmetros) { declarao de variveis locais sequncia de comandos }

Criando um Programa em C: Edio


10

1. Edio: exemplo
#include <stdio.h> #include <stdlib.h> void main(void) { printf ("Alo mundo!"); }

Criando um Programa em C
11

2. Compilao:
No

sentido estrito, produz um cdigo (conjunto de instrues) em linguagem de mquina a partir do cdigo fonte:
n Arquivo

objeto (ex: teste.o ou teste.obj)

No

sentido amplo, tambm liga este cdigo com outros cdigos utilizados por ele (link-edio), gerando um programa executvel (runnable)
n Arquivo

executvel (ex: teste.exe ou teste.out)

Criando um Programa em C
12

2. Compilao:
Em

alguns ambientes integrados de desenvolvimento (IDEs), basta abrir o arquivo fonte e selecionar a opo de compilao. o arquivo executvel gerado, incluindo as funes utilizadas da linguagem.

Automaticamente

Criando um Programa em C
13

3. Execuo
Duplo

clique no cone do programa executvel Ou digitar o nome do programa na linha de comando do Sistema Operacional
n >

teste.exe

Ou

selecionar a opo executar, aps compilar o cdigo fonte em uma IDE

Diretivas para o processador


14

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

Delimitao de Instrues
15

Instrues em C terminam com ponto e vrgula (;)


Este

caractere serve, portanto, para separar duas instrues distintas dentro do programa. O retorno de carro () no delimitador!
nOu

seja, no adianta mudar de linha apenas com o enter para dizer que se quer iniciar outra instruo.

O ambiente Dev-C++
16

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

Usando o Dev-C++
17

Inicie o Dev-C++ pelo cone ou pelo menu Crie um novo arquivo, com o comando Arquivo, Novo, Arquivo Fonte Edite o programa da pgina seguinte

Exemplo 1: Hello World!


18

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

Usando o Dev-C++
19

Salve o programa com o nome hello_world.c em um diretrio com o seu nome Compile e execute o programa pressionando a tecla F9 Se houver algum erro de sintaxe, aparecer uma ou mais mensagens no rodap da janela. Neste caso, corrija o programa e repita.

Exemplo 1: Hello World! (bis)


20

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

Dicas!
21

Termine todos os comandos com ; Quando ocorrer um erro de compilao, d um duplo clique sobre a mensagem de erro para destacar o comando errado no programa Verifique tambm a linha anterior, que pode ser a responsvel pelo erro, especialmente se faltar o ; Use comentrios, iniciados por // ou entre /* */

/* isto um comentrio */ // isto tambm um comentrio

Identificadores
22

Um identificador (de constante, varivel, funo, etc) formado por: Uma unica letra; Uma letra seguida de outras letras e/ou dgitos; No so permitidos espaos em branco e caracteres especiais Exceo: underline( _ ) ex: a_1); C ANSI permite identificadores de qualquer tamanho, porm o nmero de caracteres significativos depende do compilador; Identificadores com Masculas e Minsculas so diferentes!

Ident IDENT IDenT

Palavras Reservadas
23

Declaraes
24

Declaram as variveis e seus tipos Os nomes das variveis devem conter apenas letras, dgitos e o smbolo _ e iniciar com letra ou _ Os principais tipos so: int, float, double e char Exemplos

int n; int quantidade_valores; float x, y, somaValores; char sexo; C diferencia char nome[40];

letras maisculas de minsculas!


int n, N; n diferente de N!

Comando de atribuio
25

Atribui o valor da direita varivel da esquerda O valor pode ser:


uma constante, uma varivel ou uma expresso

Exemplos
x = 4; // l-se: x recebe 4 y = x + 2; // l-se: y recebe (x mais 2) y = y + 4; // l-se: y recebe (y mais 4) valor = 2.5; sexo = 'F' // constantes devem estar entre aspas simples (apstrofe)

Entrada e Sada de Dados


26

Como ler os dados do usurio? Como exibir os dados?

Entrada de Dados
27

Funo 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 %f %lf %c %s

inteiro decimal float double char string

Exemplo 2: Entrada de Dados


28

Algoritmo

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

#include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; scanf ("%f",&n1); scanf ("%f",&n2); scanf ("%f",&n3); scanf ("%f %f %f",&n1, &n2, &n3); system("PAUSE"); }

Operadores Matemticos
29

Operador Exemplo Comentrio


+ * / % ++ -x + y x y x * y x / y x % y x++ x-Soma x e y Subtrai y de x Multiplica x e y Divide x por y Resto da diviso de x por y Incrementa em 1 o valor de x Decrementa em 1 o valor de x

CUIDADO!!!!
30

OBS: o operador / (diviso) 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

Exemplo 2+: Operadores Aritmticos


31

#include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; ler n1, n2, n3 Media(n1+n2+n3)/3 } scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; system("PAUSE");

Sada de Dados
32

Funo printf
printf ("formatos", var1, var2,...) Exemplos: int i, j; float x; char c; printf("%d", i); printf("%d %f", j, x); printf("%c", c);

%d %f %lf %c %s

inteiro float double char string

Exemplo 3: Sada de Dados


33

#include <stdio.h> #include <stdlib.h> main() { int i, j; float x; i = 1; j = 2; x = 3.5; printf("%d", i); printf(" %d %f", j, x); } system("PAUSE");

Exemplo 3+: Sada de Dados


34

#include <stdio.h> #include <stdlib.h> main() { // definicao de variaveis int i, j; float x; //entrada de dados scanf("%d", &i); scanf("%d %f", &j, &x); // exibicao de dados printf("I= %d\n", i); printf("J= %d\nX= %f\n", j, x); system("PAUSE"); }

35

Exemplo 2++: Sada de Dados + Operadores Aritmticos


#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\n", n1); printf("%f\n", n2); printf("%f\n", n3); printf("%f", media); system("PAUSE"); }

Operadores de Atribuio
36

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

Funes Matemticas
37

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 deal 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>

Operadores Relacionais
38

Operador
== != <= >= < >

Exemplo
x == y x != y x <= y x >= y x < y x > y

Comentrio
O contedo de x igual ao de y O contedo de x diferente do de y
O contedo de x menor ou igual ao de y

O contedo de x maior ou igual ao de y O contedo de x menor que o de y O contedo de x maior que o de y

As expresses relacionais em C retornam : 1 se verdadeiro e; 0 se falso.

Operadores Lgicos
39

&& (E lgico): retorna verdadeiro se ambos os operandos so verdadeiros e falso nos demais casos. Exemplo: if( a>2 && b<3). || (OU lgico): retorna verdadeiro se um ou ambos os operandos so verdadeiros e falso se ambos so falsos. Exemplo: if( a>1 || b<2). ! (NO lgico): usada com apenas um operando. Retorna verdadeiro se o operando falso e vice-versa. Exemplo: if( !var ).

Operadores Lgicos
40

Tabela E VeVV VeFF FeVF FeFF

Tabela OU V ou V V V ou F V F ou V V F ou F F

Tabela NO No V F No V F

Tipos Bsicos
41

Exerccio 1
42

Construa um programa que calcule a quantidade de latas de tinta necessrias e o custo para pintar a rea externa de tanques cilndricos de combustvel, quando so fornecidos a altura e o raio desse cilindro. Sabendo que:

a lata de tinta custa R$10,00 cada lata contm 8 litros cada litro de tinta pinta 5 metros quadrados. rea do cilindro = 2 x rea da base + permetro da base x altura
n n

rea da Base = r . Permetro da Base = 2 . r .

raio e altura so dados de entrada.

Exerccio 1: O cilindro!
43