programacao c

17
09/02/2013 1 Ciência da Computação Laboratório de Programação II Prof. Márcio Lopes Júnior Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema op eracional UNIX. O C é deri vado de uma outra linguagem: o B, criado por Ken Thompson. O B, por sua vez, veio da lingu agem BCPL, inventada por Martin Richards.

Upload: daniel-silva

Post on 14-Apr-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 1/17

09/02/2013

1

Ciência da ComputaçãoLaboratório de Programação II

Prof. Márcio Lopes Júnior

Linguagem C• O C nasceu na década de 70. Seu inventor,

Dennis Ritchie, implementou-o pela primeiravez usando um DEC PDP-11 rodando o sistema

operacional UNIX. O C é derivado de umaoutra linguagem: o B, criado por KenThompson. O B, por sua vez, veio dalinguagem BCPL, inventada por MartinRichards.

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 2/17

09/02/2013

2

Linguagem C• O C é uma linguagem de programação genérica

que é utilizada para a criação de programasdiversos como processadores de texto, planilhaseletrônicas, sistemas operacionais, programas decomunicação, programas para a automaçãoindustrial, gerenciadores de bancos de dados,programas de projeto assistido por computador,

programas para a solução de problemas daEngenharia, Física, Química e outras Ciências, etc...

C, C++ e C#• C é muito importante para o desenvolvimento em Windows, o

próprio Windows é feito em 70% linguagem C, o restante emlinguagem Assembly.

• C++ foi desenvolvido em 1983 por Bjarne Stroustrup

(originalmente com o nome C with Classes). C++ é como sefosse C, mas com várias bibliotecas e com suporte deorientação a objetos.

• C# (CSharp) é uma linguagem de programação orientada aobjetos 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.

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 3/17

09/02/2013

3

Linguagem C• O C exige, além do domínio da linguagem em

si, uma familiaridade com o compilador eexperiência em achar "bugs" nos programas. Éimportante então que o leitor digite, compilee execute os exemplos apresentados.

Características• Um ponto de suma importância: o C é "Case

Sensitive", isto é, maiúsculas e minúsculas

 fazem diferença. Se declarar uma variável 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 minúsculas pois senãoo compilador não irá interpretá-los comosendo comandos, mas sim como variáveis.

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 4/17

09/02/2013

4

Comparando Pascal e CEstrutura Básica de um Programa

Pascal C C (outra opção)

program

uses ...

begin

... seu código ...

end.

 /* comentario */ 

#include ...

int main( )

{

...seu código...

return (0);

}

 /* comentario */ 

#include ...

void main( )

{

...seu código...

}

ESTRUTURA BÁSICA DE UM PROGRAMAUSO DE BIBLIOTECAS

Uso de Bibliotecas

Pascal Chamada C

uses CRT; biblioteca padrão #include < stdio.h >

interface ....;biblioteca do usuário no

subdiretório de trabalho#include "agua.i"

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 5/17

09/02/2013

5

Pascal Função C

=

< >

termo à esquerda é igual

ao termo à direita

termo à esquerda é

diferente do termo à

direita

==

!=

<>

<=

>=

menor,

maior

menor ou igual

maior ou igual

<>

<=

>=

Operadores de Comparação

Pascal Função C

(* *) ou { } delimitadores de comentário  /* */ 

;separar comandos e

terminar declarações ;

,separar identificadores e

parâmetros,

:= atribuição de valor =

begin ... enddelimita blocos de

instruções{ ... }

( ... ) delimita teste de condição ( ... )

Delimitadores

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 6/17

09/02/2013

6

Pascal Função C

var declaração de variáveis não há necessidade

const declaração de constantes const

typedeclaração de estructuras

ou tiposstruct

typedef definção de estructuras ou

tiposenum

Declarações

Pascal Inteiros C

shortint -128 a +127 char

integer -32.768 a +32.767 int

longint-2.147.483.648 a

+2.147.483.647long

Tipos de dados numéricos

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 7/17

09/02/2013

7

Tipos Numéricos

Pascal Números de Ponto Flutuante C

real

2,9*10(-39) a 1,7*10(38) (6

dígitos significativos) (pascal)

3,4*10(-38) a 3,4*10(38) (6

dígitos significativos) (c)

float

double

5*10(-324) a 1,7*10(324) (15-

16 dígitos significativos)

(pascal)

1,7*10(-308) a 1,7*10(308) (10-

15 dígitos significativos) (c)

double

extended

3,4*10(-4932) a 1,1*10(4932)

(19-20 dígitos significativos)

(pascal)

1,7*10(-308) a 1,7*10(308) (18

dígitos significativos) (c)

long double

Dados Alfanuméricos

Pascal Função C

char um caracter char

string corrente de caracteres char

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 8/17

09/02/2013

8

Formato para variáveis

Pascal Função C

não hádeclaração de formato

de variáveis

"%c"character

"%s"string

"%i"ou "%d" inteiro

"%ld" long"%f" float

"%lf"double

Comandos mais frequentesPascal Função C

read;lê um ou mais valores de um arquivo para uma ou

mais variáveisscanf( );

write; retorna caracteres gerados printf( );

gotoxy(x,y);

o cursor é movido para (x,y) sendo que:

x varia entre 1 e 79 (colunas)y varia entre 1 e 24 (linhas)

gotoxy(x,y);

clrscr;limpa a tela corrente; o cursor é movido para (1,1)

(canto superior esquerdo da tela.)

clrscr ( );

system("cls");

readkey;lê um caractere do teclado (qualquer)

sem apresentá-lo na telagetch ( );

begin

instruções;

end;

(bloco) bloco de instruções {bloco}

{

instruções;

}

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 9/17

09/02/2013

9

Condicional

Pascal if C

if (condição)

then (bloco 1)

else (bloco 2);

testa uma condição,

se verdadeira

executa o comando

subordinado then,

caso contrário, executao comando else

if (condição)

{bloco1;}

else {bloco2;}

Laço de repetição

Pascal for C

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

(bloco);

executa um comando

repetidamente,

indicando um aumentona variável de controle

for (k=0 ;k<=n-1 ;

k=k+1)

{bloco;}

Pascal while C

while (condição) do

(bloco);

repete uma série de

comandos

até a condição tornar-se

falsa

while (condição)

{bloco;}

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 10/17

09/02/2013

10

LaçoPascal do C

repeat

(bloco)

until ( );

repete uma série de comandos

até a condição tornar-se falsa,

(é diferente do comando anterior

pois executa pelo menos uma vez)

do

{bloco}

while ( );

Pascal goto C

goto

transfere o fluxo do programa

para o primeiro comando seguinte ao

rótulo

goto

CasePascal switch C

case (escolha) of 

opção: (bloco1);opção: (bloco2);

opção: (bloco3);

else opção_inválida;

end;

selecionar uma de váriasações,

dependendo do resultado

de um teste

switch (escolha)

{

case opção: {bloco1;}

break;case opção: {bloco2;}

break;

case opção: {bloco3;}

break;

default: msg_erro( );

}

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 11/17

09/02/2013

11

Operadores aritméticos

Pascal Função C

+ adição +

- subtração -

* multiplicação *

div divisão inteira  / 

 /  divisão real  / 

mod

resto da divisão

expresso como inteiro

(módulo)

%

Precedências de operadores

Pascal Precedências C

( ) 1 ( )

negação 2 negação

multiplicação

divisãomódulo

3

multiplicação

divisãomódulo

adição

subtração4

adição

subtração

igual

diferente

maior (igual)

menor (igual)

5

igual

diferente

maior (igual)

menor (igual)

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 12/17

09/02/2013

12

Operadores Lógicos

Pascal C

TRUE = verdadeiro

FALSE = falso

1 = verdadeiro

0 = falso

Junções

Pascal ( ( ) E ( ) ) C

( ( ) and ( ) )

( (1) e (1) ) da (1)

( (1) e (0) ) da (0)

( (0) e (1) ) da (0)( (0) e (0) ) da (0)

caso as expressões sejam

verdadeiras retorna 1

caso a expressão à

esquerda seja falsa (0)

não avalia a segunda parte

e retorna 0.

( ( ) && ( ) )

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 13/17

09/02/2013

13

Junções

Pascal ( ( ) OU ( ) ) C

( ( ) or ( ) )

( (1) ou (1) ) da (1)

( (1) ou (0) ) da (1)

( (0) ou (1) ) da (1)

( (0) ou (0) ) da (0)

caso uma das expressões

seja verdadeira retorna 1

se a expressão à esquerda

for verdadeira retorna 1

ele não avalia a segunda

parte, caso contrário

retorna 0.

( ( ) || ( ) )

Apontadores

Pascal Função C

^nome dado *nome

^nomereferência ao dado na

memória&nome

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 14/17

09/02/2013

14

Funções das Bibliotecas mais usadas em C

Nome Uso geral Funções mais usadas

stdio.hstandard input output

entrada e saida padrão

printf( ), scanf( ), ...

gets( ), puts( ), ...

atoi( ), atof( ), atol( ), ...

comandos para uso de

arquivos.

conio.hconsole input output

uso de teclado e monitor

gotoxy (x, y), clrscr( ),clreol( ), delline( ),

getch( ), puch( ), ...

Funções das Bibliotecas

ctype.hcharacter type

manuseio de caracterestoupper( ), tolower( ), ...

stdlib.hstandard library

diversas utilidades

strtod( ), strtol( ),

abort( ), execl( ), exit( ),

system( ), cls( ),

max(x,y), min(x,y), qsort( ),

ran( ), random( ), srand( ), ...

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 15/17

09/02/2013

15

Funções das Bibliotecas

math.hmathematics

operações matemáticas

pow( x , y ), exp( ), sqrt( ),

log( ), log10( ),

sin( ) , asin( ), sinh( ), ...

ceil( ), floor( ),

fabs(), abs( ), labs( ),

modf( ), fmod( ),

poly( x, grau, coeficientes ),

hypot( x,y ), ...

string.h stringsmanuseio de strings

strcomp(palavra1,

palavra2),strncomp(palavra1,

palavra2), ...

dos.h

disk operating system

recursos do sistema

operacional

sound( ); delay( );

nosound( ); ...

graphics.hgraphics

uso de tela grafica (ambiente

DOS)

initgraph( ), closegraph( ),

detectgraph( ),setcolor( ), setbkground( ),

moveto(), lineto( ), outext( ),

...

Funções das Bibliotecas

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 16/17

09/02/2013

16

ExemploPascal C

program exemplo;

uses crt;

begin

{ Um Primeiro Programa}

writeln(Olá! Eu estou

programando em Pascal!');

end.

#include <stdio.h>

/* Um Primeiro Programa */

int main ()

{

printf ("Ola! Eu estou

programando em C!\n");

return(0);

}

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

}

7/30/2019 Programacao C

http://slidepdf.com/reader/full/programacao-c 17/17

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.