Vous êtes sur la page 1sur 17

09/02/2013

Cincia da Computao Laboratrio de Programao II


Prof. Mrcio Lopes Jnior

Linguagem C
O C nasceu na dcada de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional UNIX. O C derivado de uma outra linguagem: o B, criado por Ken Thompson. O B, por sua vez, veio da linguagem BCPL, inventada por Martin Richards.

09/02/2013

Linguagem C
O C uma linguagem de programao genrica que utilizada para a criao de programas diversos como processadores de texto, planilhas eletrnicas, sistemas operacionais, programas de comunicao, programas para a automao industrial, gerenciadores de bancos de dados, programas de projeto assistido por computador, programas para a soluo de problemas da Engenharia, Fsica, Qumica e outras Cincias, etc ...

C, C++ e C#
C muito importante para o desenvolvimento em Windows, o prprio Windows feito em 70% linguagem C, o restante em linguagem Assembly. C++ foi desenvolvido em 1983 por Bjarne Stroustrup (originalmente com o nome C with Classes). C++ como se fosse C, mas com vrias bibliotecas e com suporte de orientao a objetos. C# (CSharp) uma linguagem de programao orientada a objetos criada pela Microsoft, faz parte da sua plataforma .Net. A companhia baseou C# na linguagem C++ e Java. C# a segunda linguagem mais utilizada no mundo, que liderado pela linguagem JAVA.

09/02/2013

Linguagem C
O C exige, alm do domnio da linguagem em si, uma familiaridade com o compilador e experincia em achar "bugs" nos programas. importante ento que o leitor digite, compile e execute os exemplos apresentados.

Caractersticas
Um ponto de suma importncia: o C "Case Sensitive", isto , maisculas e minsculas fazem diferena. Se declarar uma varivel com o nome soma ela ser diferente de Soma, SOMA, SoMa ou sOmA. Da mesma maneira, os comandos do C if e for, por exemplo, s podem ser escritos em minsculas pois seno o compilador no ir interpret-los como sendo comandos, mas sim como variveis.

09/02/2013

ESTRUTURA BSICA DE UM PROGRAMA USO DE BIBLIOTECAS

Comparando Pascal e C
Estrutura Bsica de um Programa
Pascal C /* comentario */ #include ... int main( ) { ...seu cdigo... return (0); } C (outra opo) /* comentario */ #include ... void main( ) { ...seu cdigo... }

program uses ... begin ... seu cdigo ... end.

Uso de Bibliotecas
Pascal uses CRT; Chamada biblioteca padro C #include < stdio.h >

interface ....;

biblioteca do usurio no subdiretrio de trabalho

#include "agua.i"

09/02/2013

Operadores de Comparao
Pascal Funo termo esquerda igual ao termo direita termo esquerda diferente do termo direita menor, maior menor ou igual maior ou igual C

= <>

== !=

< > <= >=

< > <= >=

Delimitadores
Pascal (* *) ou { } ; Funo delimitadores de comentrio separar comandos e terminar declaraes separar identificadores e parmetros atribuio de valor delimita blocos de instrues delimita teste de condio C /* */ ;

, := begin ... end ( ... )

, = { ... } ( ... )

09/02/2013

Declaraes
Pascal var const Funo declarao de variveis declarao de constantes declarao de estructuras ou tipos defino de estructuras ou tipos C no h necessidade const

type

struct

typedef

enum

Tipos de dados numricos

Pascal shortint integer

Inteiros -128 a +127 -32.768 a +32.767 -2.147.483.648 a +2.147.483.647

C char int

longint

long

09/02/2013

Tipos Numricos
Pascal Nmeros de Ponto Flutuante 2,9*10(-39) a 1,7*10(38) (6 dgitos significativos) (pascal) 3,4*10(-38) a 3,4*10(38) (6 dgitos significativos) (c) 5*10(-324) a 1,7*10(324) (1516 dgitos significativos) (pascal) 1,7*10(-308) a 1,7*10(308) (1015 dgitos significativos) (c) 3,4*10(-4932) a 1,1*10(4932) (19-20 dgitos significativos) (pascal) 1,7*10(-308) a 1,7*10(308) (18 dgitos significativos) (c) C

real

float

double

double

extended

long double

Dados Alfanumricos

Pascal

Funo

char

um caracter

char

string

corrente de caracteres

char

09/02/2013

Formato para variveis


Pascal Funo C

"%c"character "%s"string no h declarao de formato "%i"ou "%d" inteiro de variveis "%ld" long "%f" float "%lf"double

Comandos mais frequentes


Pascal read; write; gotoxy(x,y); Funo l um ou mais valores de um arquivo para uma ou mais variveis retorna caracteres gerados o cursor movido para (x,y) sendo que: x varia entre 1 e 79 (colunas) y varia entre 1 e 24 (linhas) limpa a tela corrente; o cursor movido para (1,1) (canto superior esquerdo da tela.) l um caractere do teclado (qualquer) sem apresent-lo na tela (bloco) bloco de instrues {bloco} C scanf( ); printf( ); gotoxy(x,y);

clrscr;

clrscr ( ); system("cls");

readkey; begin instrues; end;

getch ( ); { instrues; }

09/02/2013

Condicional
Pascal if C

if (condio) then (bloco 1) else (bloco 2);

testa uma condio, se verdadeira executa o comando subordinado then, caso contrrio, executa o comando else

if (condio) {bloco1;} else {bloco2;}

Lao de repetio
Pascal for executa um comando repetidamente, indicando um aumento na varivel de controle C

for (k:=1 to k<=n) do (bloco);

for (k=0 ;k<=n-1 ; k=k+1) {bloco;}

Pascal

while repete uma srie de comandos at a condio tornar-se falsa

while (condio) do (bloco);

while (condio) {bloco;}

09/02/2013

Lao
Pascal do C repeat (bloco) until ( ); repete uma srie de comandos at a condio tornar-se falsa, ( diferente do comando anterior pois executa pelo menos uma vez) do {bloco} while ( );

Pascal

goto transfere o fluxo do programa para o primeiro comando seguinte ao rtulo

goto

goto

Case
Pascal switch C switch (escolha) { case opo: {bloco1;} selecionar uma de vrias break; aes, case opo: {bloco2;} dependendo do resultado break; de um teste case opo: {bloco3;} break; default: msg_erro( ); }

case (escolha) of opo: (bloco1); opo: (bloco2); opo: (bloco3); else opo_invlida; end;

10

09/02/2013

Operadores aritmticos
Pascal + * div / mod Funo adio subtrao multiplicao diviso inteira diviso real resto da diviso expresso como inteiro (mdulo) C + * / / %

Precedncias de operadores
Pascal () negao multiplicao diviso mdulo adio subtrao igual diferente maior (igual) menor (igual) Precedncias 1 2 3 C () negao multiplicao diviso mdulo adio subtrao igual diferente maior (igual) menor (igual)

11

09/02/2013

Operadores Lgicos

Pascal

TRUE = verdadeiro FALSE = falso

1 = verdadeiro 0 = falso

Junes
Pascal (()E()) ( (1) e (1) ) da (1) ( (1) e (0) ) da (0) ( (0) e (1) ) da (0) ( (0) e (0) ) da (0) caso as expresses sejam verdadeiras retorna 1 caso a expresso esquerda seja falsa (0) no avalia a segunda parte e retorna 0. C

( ( ) and ( ) )

( ( ) && ( ) )

12

09/02/2013

Junes
Pascal ( ( ) OU ( ) ) ( (1) ou (1) ) da (1) ( (1) ou (0) ) da (1) ( (0) ou (1) ) da (1) ( (0) ou (0) ) da (0) caso uma das expresses seja verdadeira retorna 1 se a expresso esquerda for verdadeira retorna 1 ele no avalia a segunda parte, caso contrrio retorna 0. C

( ( ) or ( ) )

( ( ) || ( ) )

Apontadores
Pascal Funo C

^nome

dado

*nome

^nome

referncia ao dado na memria

&nome

13

09/02/2013

Funes das Bibliotecas mais usadas em C


Nome Uso geral Funes mais usadas printf( ), scanf( ), ... gets( ), puts( ), ... atoi( ), atof( ), atol( ), ... comandos para uso de arquivos. gotoxy (x, y), clrscr( ), clreol( ), delline( ), getch( ), puch( ), ...

stdio.h

standard input output entrada e saida padro

conio.h

console input output uso de teclado e monitor

Funes das Bibliotecas


character type manuseio de caracteres

ctype.h

toupper( ), tolower( ), ...

stdlib.h

standard library diversas utilidades

strtod( ), strtol( ), abort( ), execl( ), exit( ), system( ), cls( ), max(x,y), min(x,y), qsort( ), ran( ), random( ), srand( ), ...

14

09/02/2013

Funes das Bibliotecas


pow( x , y ), exp( ), sqrt( ), log( ), log10( ), sin( ) , asin( ), sinh( ), ... ceil( ), floor( ), fabs(), abs( ), labs( ), modf( ), fmod( ), poly( x, grau, coeficientes ), hypot( x,y ), ... strcomp(palavra1, palavra2), strncomp(palavra1, palavra2), ... sound( ); delay( ); nosound( ); ...

math.h

mathematics operaes matemticas

string.h

strings manuseio de strings disk operating system recursos do sistema operacional

dos.h

Funes das Bibliotecas

graphics.h

graphics uso de tela grafica (ambiente DOS)

initgraph( ), closegraph( ), detectgraph( ), setcolor( ), setbkground( ), moveto(), lineto( ), outext( ), ...

15

09/02/2013

Exemplo
Pascal program exemplo; #include <stdio.h> /* Um Primeiro Programa */ uses crt; int main () { begin printf ("Ola! Eu estou { Um Primeiro Programa} programando em C!\n"); writeln(Ol! Eu estou return(0); programando em Pascal!'); } end. C

Praticando
O que faz o seguinte programa descrito em C? #include <stdio.h> int main() { int x; scanf("%d",&x); printf("%d",x); return(0); }

16

09/02/2013

Praticando
Converta em linguagem C os programas descritos em Pascal. Program pratica; Begin write(Convertendo em linguagem C); End.

Program pratica2; Uses crt; Var x:integer; Begin clrscr; write(Digite um valor inteiro); read(x); write(O quadrado do valor digitado ,x*x); readkey; end.

17

Vous aimerez peut-être aussi