UNIVERSIDADE LUTERANA DO BRASIL
COMUNIDADE EVANGÉLICA LUTERANA “SÃO PAULO”
Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89
Campus Torres
Estruturação de Linguagens (Pascal e C++)
Paradigmas de Linguagem de Programação
Aluno: Mauricio Volkweis Astiazara
Professor: Leonardo Pereira
Torres, 28 de Agosto de 2001
Introdução
Este trabalho pretende mostrar de forma breve uma
introdução à estas duas linguagem de programação,
com o objetivo de destacar as principais
características e para que se tenha uma base
mínima das possibilidades de cada linguagem.
1 Pascal
Ambiente
Tipos de Dados
Variáveis
Constantes
Operadores
Estrutura de um Programa
Comandos
Procedimentos e Funções
Biblioteca de Funções
1.1 Ambiente
Run
Compile
Debug
1.2 Tipos de Dados
Inteiros
Reais
Caracteres
Lógicos
1.2.1 Tipos de Dados Inteiros
Tipo de Dado
Faixa de Abrangência
Inteiro
De –128
Shortint
Integer
Longint
Byte
Word
Até 127
De –32.768
Até 32.767
De –2.147.483.648
Até 2.147.483.647
De 0
Até 255
De 0
Até 65.535
1.2.2 Tipos de Dados Reais
Tipo de Dado
Faixa de Abrangência
Real
De 2,9 E-39
Real
Single
Double
Extended
Comp
Até 1,7 E+38
De 1,5 E-45
Até 3,4 E+38
De 5,0 E-324
Até 1,7 E+308
De 3,4 E-4.932
Até 1,1 E+4.932
De –9,2 E+18
Até 9,2 E+18
1.2.3 Tipos de Dados Caracteres
String: armazena de 1 a 255 caracteres
Char: armazena somente 1 caracter
1.2.4 Tipo de Dado Lógico
Boolean: assume somente os valores True
(verdadeiro) e False (falso).
1.3 Variáveis
Regras para Nomeação
Declaração
Escopo
Comando de Atribuição
1.3.1 Regras para Nomeação
Deve ser constituído por um ou mais caracteres
Só poderão ser utilizadas letras, números e o
underscore ( _ )
O primeiro caractere deverá ser uma letra
Não pode possuir espaços em branco
Não pode ser uma palavra reservada
1.3.2 Declaração
Sintaxe:
Var
<nome 1> : <tipo 1>;
<nome 2> : <tipo 2>;
<nome N> : <tipo N>;
Exemplos:
Var
Nome : string;
Idade : integer;
Altura : real;
Var A, B, C : integer;
1.3.3 Escopo
Global: quando declarada no início do do programa,
podendo ser utilizada por qualquer subrotina
subordinada
Local: quando declarada após as subrotinas, ou
dentro de uma subrotina
1.3.4 Comando de Atribuição
Sintaxe:
<variável> := <expressão>;
Exemplos:
A:=5+1;
Nome:=‘Blaise Pascal‘;
1.4 Constantes
Sintaxe:
Const
<identificador 1>=<valor 1>;
<identificador 2>=<valor 2>;
<identificador N>=<valor N>;
Exemplos:
Const
PI=3.141592;
Ap=‘Sistema Integrado de Geometria
Espacial’;
Voltas=10;
1.5 Operadores Aritméticos
Operador
*
/
Div
Mod
+
-
Descrição
Multiplicação
Divisão real
Divisão inteira
Resto da divisão inteira
Adição
Subtração
1.6 Operadores Relacionais
Símbolo
=
<>
>
<
>=
<=
Significado
Igual a
Diferente de
Maior que
menor que
Maior ou igual
Menor ou igual
1.6 Operadores Relacionais
Exemplos:
Var a, b: boolean;
...
a:=20>10;
b:=‘A’>‘B’;
A variável “a” recebe o valor True
A variável “b” o valor False.
1.7 Operadores Lógicos
Operador
Lógica
Not
Retorna o oposto do valor. Este é o único
operador unário.
And
Retorna Verdadeiro somente se todos os
valores forem Verdadeiros
Or
Retorna Falso somente se todos os
valores forem Falsos
Xor
Retorna Verdadeiro se os valores forem
diferentes
1.8 Estrutura de um Programa
Cabeçalho
Área de declarações
Corpo do programa
1.8.1 Cabeçalho
Sintaxe:
Program <nome do programa>;
Exemplo:
Program Calculo;
1.8.2 Área de Declarações
Uses
Label
Const
Type
Var
Procedure
Function
1.8.3 Corpo do Programa
Begin
<instrução 1>;
<instrução 2>;
<instrução N>;
End.
1.9 Comandos de Entrada e Saída
Comandos de saída:
– Write
– Writeln
Comandos de entrada:
– Read
– Readln
1.9.1 Write e Writeln
Sintaxe:
Write(<expressões>);
Writeln(<expressões>);
Exemplos:
Writeln(‘Saída em vídeo’);
Write(2001);
Writeln(‘Média igual a ‘, media);
1.9.2 Read e Readln
Sintaxe:
Read(<variáveis>);
Readln(<variáveis>);
Exemplos:
Writeln(’Valor: ');
Readln(valor);
Readln(A, B, C);
1.10 Comentários
Sintaxe:
{ <comentários> }
{ <comentários>
<comentários>
<comentários> }
1.11 Desvio Condicional
Sintaxe Simples:
If <valor booleano> then
<instrução para valor=True>;
Exemplo:
If a>10 then
writeln (a, ‘ é maior que 10’);
Sintaxe Composta:
If <valor booleano> then
<instrução para valor=True>
else
<instrução para valor=True>;
1.12 Iteração
Sintaxe:
While <valor booleano> do
<instrução para valor=True>;
Exemplo:
While a<>10 do
begin
writeln(a);
a:=a+1;
end;
1.13 Procedimentos e Funções
Unidades Padrão
Procedure
Parâmetros
Function
1.13.1 Unidades Padrão
CRT
DOS
GRAPH
OVERLAY
PRINTER
SYSTEM
1.13.2 Procedure
Sintaxe:
Procedure <nome> [(<parâmetros>)];
Var
<variáveis>;
begin
<comandos>;
end;
1.13.2 Procedure
Exemplo:
Procedure Linha;
Var i : integer;
Begin
i:=1;
While i<>81 do
Begin
Write(‘_’);
i:=1+1;
End;
End;
1.13.3 Parâmetros
Por valor:
Procedure <nome> (<par>:<tipo>);
Procedure fatorial (n: integer);
Exemplo:
Fatorial (10);
A:=10;
Fatorial (A);
1.13.3 Parâmetros
Por referência:
Procedure <nome> (var <par>:<tipo>);
Procedure Quadrado (var n: integer);
Exemplo:
Quadrado (Numero);
1.13.4 Function
Sintaxe:
Function <nome>[(<parâmetros>)]:<tipo>;
Var
<variáveis>
begin
<comandos>
<nome da função>:=<valor>;
end;
1.13.4 Function
Exemplo:
function Potencia(base, expo:integer)
:integer;
var i,p :integer;
begin
p:=1;
for i:=1 to expo do
p:=p*base;
potencia:=p;
end;
1.14 Construindo uma Biblioteca de Rotinas
Sintaxe:
Unit <nome>;
Interface
<declaração das rotinas>
implementation
<rotinas>
end.
2 C++
Introdução à Orientação ao Objeto
Tipos de Dados
Variáveis
Constantes
Operadores
Estrutura de um Programa
Comandos
Procedimentos e Funções
Classes
2.1 Introdução à Orientação ao Objeto
Combinar num único registro dados e funções
Uma classe é considerada um tipo de dado
Uma variável de um tipo de classe é chamada objeto
Definir uma classe não cria um objeto
As funções de um objeto são chamadas funçõesmembro ou métodos
De modo geral, os métodos são o único meio de
acesso aos dados
2.1.2 Encapsular e Esconder
Não podemos acessar variáveis de instância
diretamente
Isto previne alterações incidentais
Os campos de dados e suas funções estão
encapsulados numa única identidade
“Chamar uma função membro de um objeto” é o
mesmo que “enviar uma mensagem a um objeto”.
2.1.3 Herança
Classes podem ser organizadas em hierarquias
As classes derivadas herdam as características da
classe base
Características
AB
Características
ABCD
Características
ABEF
Características
ABCFG
2.2 Tipos de Dados
Tipo
Char
Int
Float
Double
Void
Bytes
1
2
4
8
0
Escala
-128 a 127
-32.768 a 32.767
3,4E-38 a 3,4E+38
1,7E-308 a 1,7E+308
Nenhum valor
2.2 Tipos de Dados
Tipo
Unsigned char
Unsigned
Short
Long
Unsigned long
Long double
Bytes
1
2
2
4
4
10
Escala
0 a 255
0 a 65.535
-32.768 a 32.767
-2.147.483.648 a 2.147.483.647
0 a 4.294.967.295
3,4E-4932 a 1,1E+4932
2.3 Variáveis
Regras para Nomeação
Declaração
Operador de Atribuição
2.3.1 Regras para Nomeação
É permitido nome para variáveis com até 32
caracteres.
Caso haja mais caracteres que isso eles serão
ignorados.
O nome pode conter letras maiúsculas e minúsculas,
dígitos e sublinhado (underscore)
Obrigatoriamente o primeiro caracter deve ser uma
letra ou um sublinhado
Letras maiúsculas e minúsculas são diferentes
Não pode ser o nome de uma palavra reservada do
C++.
2.3.2 Declaração
Sintaxe:
<tipo> <nome> [= <valor inicial>];
Exemplos:
Int num;
Int A, C, D;
int evento=5;
char corrida=’C’;
float tempo=27.25;
2.3.3 Operador de Atribuição
Sintaxe:
<variável>=<expressão>;
Exemplos:
X=2000;
total=10+20+30;
Atribuição Múltipla:
Y=X=3;
equivale a
Y=(X=3);
2.4 Constantes
2.4.1 Constantes Numéricas
Base
Decimal
Representação
Escrevemos um número em decimal de
forma pura e simples, como aquela que
estamos acostumados. Ex.: 20, 280, 88
Hexadecimal Os números na base 16 devem ser
precedidos de 0x. Ex.: 0x41, 0x1afb, 0x54c2
Octal
Os números escritos na base 8 devem ser
precedidos de um zero. Ex.: 041, 010, 0754.
2.4 Constantes
2.4.2 Cadeia de Caracteres Constante: deve ser
representada entre aspas. Exemplo:
“Primeiro Programa”
“Linguagem C++”
2.4.3 O Qualificador const
Const char bip=’\a’;
Const double pi=3.141592;
2.5 Operadores Aritméticos
Operadores Aritméticos Básicos
Operadores de Incremento e Decremento
Operadores Aritméticos de Atribuição
2.5.1 Operadores Aritméticos Básicos
Símbolo
+
*
/
%
-
Operação
Adição
Subtração
Multiplicação
Divisão
Resto da divisão inteira
Multiplicação por –1 ex.: X = -5
2.5.2 Operadores de Incremento e Decremento
Exemplos:
X = X + 1; // adiciona 1 a X
++X; // adiciona 1 a X
X++; // adiciona 1 a X
X = X – 1; // subtrai 1 de X
-- X; // subtrai 1 de X
X --; // subtrai 1 de X
2.5.2 Operadores de Incremento e Decremento
Diferença de Sintaxe:
N = 5;
X = ++N;
O resultado dessas operações é N=6 e X=6.
N = 5;
X = N++;
O resultado é N=6 e X=5.
2.5.3 Operadores Aritméticos de Atribuição
Operador Aritmético de
Atribuição
A + = 2;
B * = Y + 1;
C / = 2.5;
D % = 5;
E - = 3;
Expressão Equivalente
A
B
C
D
E
=
=
=
=
=
A
B
C
D
E
+
*
/
%
-
2;
(Y + 1);
2.5;
5;
3;
2.6 Operadores Relacionais
Símbolo
>
<
>=
<=
==
!=
Operação
Maior
Menor
Maior ou igual
Menor ou igual
Igual
Diferente
2.6 Operadores Relacionais
Exemplos:
int verdadeiro, falso;
verdadeiro=(15<20);
falso=(15 ==20);
Os valores das variáveis serão:
Verdadeiro = 1
Falso = 0
2.7 Operadores Lógicos
Símbolo
&&
||
!
Operação
E
Ou
Não
2.8 Estrutura de um Programa
Forma geral das funções C++
O Primeiro Programa
2.8 Estrutura de um Programa
Forma geral das funções C++
<tipo> <nome> (<parâmetros> )
{
<instrução 1>;
<instrução 2>;
<instrução N>;
}
2.8 Estrutura de um Programa
O Primeiro Programa
#include <iostream.h>
void main( )
{
cout << “Primeiro Programa”;
}
2.9 Comandos de Entrada e Saída
Imprimindo usando cout e o operador de inserção:
#include <iostream.h>
void main()
{
cout << “Vênus está a “ << 67 <<
“milhões de milhas” << ‘\n’ << “do
sol”;
}
2.9 Comandos de Entrada e Saída
2.9.2 Lendo com cin e o operador de extração:
#include <iostream.h>
void main ()
{
cout << “\nDigite a sua idade em
anos: “;
int anos;
cin >> anos;
cout << “\nA sua idade em dias é: “
<< (anos * 365);
}
2.10 Comentários
// termina com o fim da linha
X = X * 0.5; // X é reduzido à metade
/* um dos tipos de comentários em C++
permite o uso de múltiplas linhas. */
2.11 Desvio Condicional
Sintaxe Simples:
If (<expressão de teste>)
<Instrução>;
If (<expressão
{
<Instrução
<Instrução
<Instrução
}
de teste>)
1>;
2>;
N>;
2.11 Desvio Condicional
Sintaxe Composta:
If (<expressão de teste>)
<Instrução>;
Else
<Instrução>;
Exemplo:
If (a>5)
cout << a << “ é maior que 5”;
else
cout << a << “ é menor que 6”;
2.12 Procedimentos e Funções
#include <iostream.h>
int celsius (int fahr)
{
int c;
c=(fahr –32)* 5/9;
return c;
}
void main()
{
int c, f;
cout << “\nDigite a temperatura em
Fahrenheit: “;
cin >> f;
c = celsius( f ); // chamada à função
cout << “\nCelsius = “ << c;
}
2.13 Classes
Sintaxe:
class <nome> {
<variáveis privadas>
<protótipo das funções privadas>
public:
<variáveis públicas>
<protótipos das funções públicas>
};
<implementação das funções>
2.13 Classes
#include <iostream.h>
class animal {
public:
void comer(void);
void dormir(void);
void respirar(void);
};
class elefante : public animal {
public:
void trompete(void);
void esguicho(void);
};
2.13 Classes
void animal :: comer (void)
{cout << “Comendo...\n”;}
void animal :: dormir (void)
{cout << “Dormindo...\n”;}
void animal :: respirando (void)
{cout << “Respirando...\n”;}
void elefante :: trompete (void)
{cout << “Trompete...\n”;}
void elefante :: esguicho (void)
{cout << “Esguichando...\n”;}
2.13 Classes
void main ()
{
elefante Dumbo;
Dumbo.respirar();
Dumbo.dormir();
Dumbo.comer();
Dumbo.trompete();
Dumbo.esguichar();
}
Conclusão
Pascal é a linguagem ideal para programadores
iniciantes, pelos conceitos e comandos simples.
C++ é uma linguagem mais poderosa, por
implementar a orientação ao objeto e manter as
características de “médio nível” herdadas do C.
C++ é indicado para programadores com alguma
experiência e compreensão da orientação ao objeto.