Informática Aplicada à Engenharia de Alimentos
Tabela de conversão de Pascal para C

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( ), ...
ctype.h character type
manuseio de caracteres
toupper( ), tolower( ), ...
stdlib.h standard library
diversas utilidades
strtod( ), strtol( ),
abort( ), execl( ), exit( ), system( ),
max(x,y), min(x,y), qsort( ),
ran( ), random( ), srand( ), ...
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 ), ...
string.h strings
manuseio de strings
strcomp(palavra1, palavra2),
strncomp(palavra1, palavra2), ...
dos.h disk operating system
recursos do sistema operacional
sound( ); delay( ); nosound( ); ...
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 ,
:= atribuição de valor =
begin ... end delimita blocos de instruções { ... }
( ... ) delimita teste de condição ( ... )

OPERADORES DE COMPARAÇÃO

Pascal Função C
=
< >
termo à esquerda é igual ao termo à direita
termo à esquerda é diferente do termo à direita
==
!=
<
>
<=
>=
menor,
maior
menor ou igual
maior ou igual
<
>
<=
>=

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
charum caracter char
stringcorrente de caracteres char

FORMATO PARA AS VARIÁVEIS

PascalFunçã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 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;

begin

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

resp:='S';

while Resp:='S' do
begin
clrscr;
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 >
#include < ctype.h >

void main( )
{

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

do
{
clrscr ( );
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) ?");
resp=toupper(getch( ));
} while (resp=='S');

}

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


Preparada em 15/03/97. Última atualização em 18/03/99. LEIA/DEA/FEA/Unicamp

Voltar à HomePage

Ir para o topo da Página

Ir para o Menu Aula