PASCAL x C : TABELA COMPARATIVA


ESTRUTURA BÁSICA DE UM PROGRAMA

PascalCC (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...
}

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"

FUNÇÕES DAS BIBLIOTECAS MAIS USADAS

Nome Uso geral Funções mais usadas
stdio.h standard input output
entrada e saida padrão
printf( ), scanf( ), ...
gets( ), puts( ), ...
atoi( ), atof( ), atol( ), ...
comandos para uso de arquivos.
conio.h console input output
uso de teclado e monitor
gotoxy (x, y), clrscr( ), clreol( ), delline( ),
getch( ), puch( ), ...
math.h mathematics
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 ), ...
ctype.h character type
manuseio de caracteres
toupper( ), tolower( ), ...
string.h strings
manuseio de strings
strcomp(palavra1, palavra2),
strncomp(palavra1, palavra2), ...
dos.h disk operating system
recursos do sistema operacional
sound( ); delay( ); nosound( ); ...
stdlib.h standard library
diversas utilidades
strtod( ), strtol( ),
abort( ), execl( ), exit( ), system( ),
max(x,y), min(x,y), qsort( ),
ran( ), random( ), srand( ), ...
graphics.h graphics
uso de tela grafica (ambiente DOS)
initgraph( ), closegraph( ), detectgraph( ),
setcolor( ), setbkground( ),
moveto(), lineto( ), outext( ), ...

DELIMITADORES

Pascal Função C
(* *) ou { } delimitadores de comentário /* */
; separar comandos e terminar declarações ;
, separar identificadores e parâmetros ,
=
< >
termo à esquerda é igual ao termo à direita
termo à esquerda é diferente do termo à direita
==
!=
<
>
<=
>=
comparação de valores <
>
<=
>=
:= atribuição de valor =
begin ... end delimita blocos de instruções { ... }
( ... ) delimita teste de condição ( ... )

DECLARAÇÕES

Pascal Função C
var declaração de variáveis não há necessidade
const declaração de constantes const
type declaração de estructuras ou tipos struct
typedef definção de estructuras ou tipos enum

TIPOS DE DADOS NUMÉRICOS

PascalInteiros C
shortint -128 a +127 char
integer -32.768 a +32.767 int
longint -2.147.483.648 a +2.147.483.647 long
PascalNú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

TIPOS DE DADOS ALFANUMÉRICOS

PascalFunção C
char um caracter char
string corrente de caracteres char

FORMATO PARA AS VARIÁVEIS

PascalFunção C
não há declaração de formato de variáveis "%c"character
"%i"ou "%d" inteiro
"%f" float
"%lf"double

COMANDOS MAIS FREQUENTES

PascalFunção C
read; lê um ou mais valores de um arquivo para uma ou mais variáveis scanf( );
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 ( );
readkey; lê um caractere do teclado (qualquer)
sem apresentá-lo na tela
getch ( );
begin
instruções;
end;
(bloco) bloco de instruções {bloco} {
instruções;
}

COMANDOS DE LAÇOS DE DECISÃO

Pascalfor C
for (k:=1 to k<=n) do
(bloco);
executa um comando repetidamente,
indicando um aumento
na variável de controle
for (k=0 ;k<=n-1 ; k=k+1)
{bloco}
Pascalif C
if (condição)
then (bloco 1)
else (bloco 2);
testa uma condição,
se verdadeira
executa o comando subordinado then,
caso contrário, executa o comando else
if (condição)
{bloco1}
else {bloco2}
Pascalwhile C
while (condição) do
(bloco);
repete uma série de comandos
até a condição tornar-se falsa
while (condição)
{bloco}
Pascaldo 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 ( );
Pascalgoto C
goto transfere o fluxo do programa
para o primeiro comando seguinte ao rótulo
goto
Pascalswitch C
case (escolha) of
opção: (bloco1);
opção: (bloco2);
opção: (bloco3);
else opção_inválida;
end;
selecionar uma de várias açõ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( );
}

PRECEDÊNCIA DE OPERADORES

PascalPrecedências C
( ) 1 ( )
negação 2 negação
multiplicação
divisão
módulo
3 multiplicação
divisão
módulo
adição
subtração
4 adição
subtração
igual
diferente
maior (igual)
menor (igual)
5 igual
diferente
maior (igual)
menor (igual)

OPERADORES ARITMÉTICOS

PascalFunçã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) %

OPERADORES LÓGICOS

Considerações sobre Verdadeiro ou Falso
Pascal C
TRUE = verdadeiro
FALSE = falso
1 = verdadeiro
0 = falso
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.
( ( ) && ( ) )
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

PascalFunção C
^nome dado *nome
^nome referência ao dado na memória &nome

EXEMPLO SIMPLES

PascalC
program exemplo;

uses crt;

var
a,b,c,d: real;
resp,s,n: char;

begin

clrscr;
resp:='S';

while Resp:='S' do
begin
write('Somatória de 3 números');
write('Digite o primeiro número');
readln(a);
write('Digite o segundo número');
readln(b);
write('Digite o terceiro número');
readln(c);

d:=a+b+c;

write('A soma dos três números é: ',d) ;

write('Continua (S/N) ?');
readln(resp);
end;

end.
/* programa exemplo */

#include < stdio.h >
#include < conio.h >

float a,b,c,d;
char resp;

int main( )
{

clrscr ( );

do
{
printf("Somatória de 3 números");
printf("Digite o primeiro número ");
scanf("%f",&a);
printf("Digite o segundo número");
scanf("%f",&b);
printf("Digite o terceiro número");
scanf("%f",&c);

d=a+b+c;

printf("A soma dos três números é: %f ",d) ;

printf("Continua (S/N) ?");
scanf("%c",resp);
} while (resp='s');
return (0);
}


Observações importantes para converter programas C for DOS em programas C for Windows.


bt_back.gif (297 bytes) Voltar