estruturação de linguagens de programação (pascal e c++)

72
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

Upload: mauricio-volkweis-astiazara

Post on 01-Jul-2015

892 views

Category:

Technology


0 download

DESCRIPTION

Baixe mais arquivos em http://pastadomau.wikidot.com. Este trabalho mostra de forma superficial (que modéstia!) os conceitos básicos de duas linguagens de programação: Pascal e C++. Os tópicos abordados são os básicos necessários para que um programador que desconheça a linguagem consiga elaborar um pequeno programa e compreender as principais características de cada linguagem. Entre os itens apresentados estão os tipos de dados oferecidos por cada uma das linguagens bem como o modo que cada uma trabalha com eles.

TRANSCRIPT

Page 1: Estruturação de Linguagens de Programação (Pascal e C++)

UNIVERSIDADE LUTERANA DO BRASILCOMUNIDADE EVANGÉLICA LUTERANA “SÃO PAULO”

Reconhecida pela Portaria Ministerial nº 681 de 07/12/89 – DOU de 11/12/89Campus Torres

Estruturação de Linguagens (Pascal e C++)

Paradigmas de Linguagem de Programação

Aluno: Mauricio Volkweis AstiazaraProfessor: Leonardo Pereira

Torres, 28 de Agosto de 2001

Page 2: Estruturação de Linguagens de Programação (Pascal e C++)

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.

Page 3: Estruturação de Linguagens de Programação (Pascal e C++)

1 Pascal

■ Ambiente■ Tipos de Dados■ Variáveis■ Constantes■ Operadores■ Estrutura de um Programa■ Comandos■ Procedimentos e Funções■ Biblioteca de Funções

Page 4: Estruturação de Linguagens de Programação (Pascal e C++)

1.1 Ambiente

■ Run■ Compile■ Debug

Page 5: Estruturação de Linguagens de Programação (Pascal e C++)

1.2 Tipos de Dados

■ Inteiros■ Reais■ Caracteres■ Lógicos

Page 6: Estruturação de Linguagens de Programação (Pascal e C++)

1.2.1 Tipos de Dados Inteiros

Tipo de DadoInteiro

Faixa de Abrangência

Shortint De –128Até 127

Integer De –32.768Até 32.767

Longint De –2.147.483.648Até 2.147.483.647

Byte De 0Até 255

Word De 0Até 65.535

Page 7: Estruturação de Linguagens de Programação (Pascal e C++)

1.2.2 Tipos de Dados Reais

Tipo de DadoReal

Faixa de Abrangência

Real De 2,9 E-39Até 1,7 E+38

Single De 1,5 E-45Até 3,4 E+38

Double De 5,0 E-324Até 1,7 E+308

Extended De 3,4 E-4.932Até 1,1 E+4.932

Comp De –9,2 E+18Até 9,2 E+18

Page 8: Estruturação de Linguagens de Programação (Pascal e C++)

1.2.3 Tipos de Dados Caracteres

■ String: armazena de 1 a 255 caracteres■ Char: armazena somente 1 caracter

Page 9: Estruturação de Linguagens de Programação (Pascal e C++)

1.2.4 Tipo de Dado Lógico

■ Boolean: assume somente os valores True (verdadeiro) e False (falso).

Page 10: Estruturação de Linguagens de Programação (Pascal e C++)

1.3 Variáveis

■ Regras para Nomeação■ Declaração■ Escopo■ Comando de Atribuição

Page 11: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 12: Estruturação de Linguagens de Programação (Pascal e C++)

1.3.2 Declaração

■ Sintaxe:Var<nome 1> : <tipo 1>;<nome 2> : <tipo 2>;<nome N> : <tipo N>;

■ Exemplos:VarNome : string;Idade : integer;Altura : real;

Var A, B, C : integer;

Page 13: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 14: Estruturação de Linguagens de Programação (Pascal e C++)

1.3.4 Comando de Atribuição

■ Sintaxe:<variável> := <expressão>;

■ Exemplos:A:=5+1;Nome:=‘Blaise Pascal‘;

Page 15: Estruturação de Linguagens de Programação (Pascal e C++)

1.4 Constantes

■ Sintaxe:Const<identificador 1>=<valor 1>;<identificador 2>=<valor 2>;<identificador N>=<valor N>;

■ Exemplos:ConstPI=3.141592;Ap=‘Sistema Integrado de Geometria Espacial’;

Voltas=10;

Page 16: Estruturação de Linguagens de Programação (Pascal e C++)

1.5 Operadores Aritméticos

Operador Descrição* Multiplicação/ Divisão realDiv Divisão inteiraMod Resto da divisão inteira+ Adição- Subtração

Page 17: Estruturação de Linguagens de Programação (Pascal e C++)

1.6 Operadores Relacionais

Símbolo Significado= Igual a<> Diferente de> Maior que< menor que>= Maior ou igual<= Menor ou igual

Page 18: Estruturação de Linguagens de Programação (Pascal e C++)

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.

Page 19: Estruturação de Linguagens de Programação (Pascal e C++)

1.7 Operadores Lógicos

Operador LógicaNot Retorna o oposto do valor. Este é o único

operador unário.And Retorna Verdadeiro somente se todos os

valores forem VerdadeirosOr Retorna Falso somente se todos os

valores forem FalsosXor Retorna Verdadeiro se os valores forem

diferentes

Page 20: Estruturação de Linguagens de Programação (Pascal e C++)

1.8 Estrutura de um Programa

■ Cabeçalho■ Área de declarações■ Corpo do programa

Page 21: Estruturação de Linguagens de Programação (Pascal e C++)

1.8.1 Cabeçalho

■ Sintaxe:Program <nome do programa>;

■ Exemplo:Program Calculo;

Page 22: Estruturação de Linguagens de Programação (Pascal e C++)

1.8.2 Área de Declarações

UsesLabelConstTypeVarProcedureFunction

Page 23: Estruturação de Linguagens de Programação (Pascal e C++)

1.8.3 Corpo do Programa

Begin <instrução 1>; <instrução 2>; <instrução N>;End.

Page 24: Estruturação de Linguagens de Programação (Pascal e C++)

1.9 Comandos de Entrada e Saída

■ Comandos de saída:– Write – Writeln

■ Comandos de entrada:– Read– Readln

Page 25: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 26: Estruturação de Linguagens de Programação (Pascal e C++)

1.9.2 Read e Readln

■ Sintaxe:Read(<variáveis>);Readln(<variáveis>);

■ Exemplos:Writeln(’Valor: ');Readln(valor);Readln(A, B, C);

Page 27: Estruturação de Linguagens de Programação (Pascal e C++)

1.10 Comentários

■ Sintaxe:

{ <comentários> }

{ <comentários> <comentários> <comentários> }

Page 28: Estruturação de Linguagens de Programação (Pascal e C++)

1.11 Desvio Condicional

■ Sintaxe Simples:

If <valor booleano> then<instrução para valor=True>;■ Exemplo:If a>10 thenwriteln (a, ‘ é maior que 10’);■ Sintaxe Composta:If <valor booleano> then<instrução para valor=True>else<instrução para valor=True>;

Page 29: Estruturação de Linguagens de Programação (Pascal e C++)

1.12 Iteração

■ Sintaxe:While <valor booleano> do <instrução para valor=True>;

■ Exemplo:While a<>10 dobegin writeln(a); a:=a+1;end;

Page 30: Estruturação de Linguagens de Programação (Pascal e C++)

1.13 Procedimentos e Funções

■ Unidades Padrão■ Procedure■ Parâmetros■ Function

Page 31: Estruturação de Linguagens de Programação (Pascal e C++)

1.13.1 Unidades Padrão

■ CRT■ DOS■ GRAPH■ OVERLAY■ PRINTER■ SYSTEM

Page 32: Estruturação de Linguagens de Programação (Pascal e C++)

1.13.2 Procedure

■ Sintaxe:Procedure <nome> [(<parâmetros>)];Var<variáveis>;begin <comandos>;end;

Page 33: Estruturação de Linguagens de Programação (Pascal e C++)

1.13.2 Procedure

■ Exemplo:Procedure Linha;Var i : integer;Begin

i:=1;While i<>81 doBegin

Write(‘_’);i:=1+1;

End;End;

Page 34: Estruturação de Linguagens de Programação (Pascal e C++)

1.13.3 Parâmetros

■ Por valor:Procedure <nome> (<par>:<tipo>);Procedure fatorial (n: integer);

Exemplo:Fatorial (10);A:=10;Fatorial (A);

Page 35: Estruturação de Linguagens de Programação (Pascal e C++)

1.13.3 Parâmetros

■ Por referência:Procedure <nome> (var <par>:<tipo>);Procedure Quadrado (var n: integer);

Exemplo:Quadrado (Numero);

Page 36: Estruturação de Linguagens de Programação (Pascal e C++)

1.13.4 Function

■ Sintaxe:Function <nome>[(<parâmetros>)]:<tipo>;Var <variáveis>begin

<comandos><nome da função>:=<valor>;

end;

Page 37: Estruturação de Linguagens de Programação (Pascal e C++)

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;

Page 38: Estruturação de Linguagens de Programação (Pascal e C++)

1.14 Construindo uma Biblioteca de Rotinas

■ Sintaxe:Unit <nome>;

Interface<declaração das rotinas>

implementation<rotinas>

end.

Page 39: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 40: Estruturação de Linguagens de Programação (Pascal e C++)

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ções-

membro ou métodos■ De modo geral, os métodos são o único meio de

acesso aos dados

Page 41: Estruturação de Linguagens de Programação (Pascal e C++)

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”.

Page 42: Estruturação de Linguagens de Programação (Pascal e C++)

2.1.3 Herança

■ Classes podem ser organizadas em hierarquias■ As classes derivadas herdam as características da

classe base

CaracterísticasA B

CaracterísticasA B C D

CaracterísticasA B E F

CaracterísticasA B C F G

Page 43: Estruturação de Linguagens de Programação (Pascal e C++)

2.2 Tipos de Dados

Tipo Bytes EscalaChar 1 -128 a 127Int 2 -32.768 a 32.767Float 4 3,4E-38 a 3,4E+38Double 8 1,7E-308 a 1,7E+308Void 0 Nenhum valor

Page 44: Estruturação de Linguagens de Programação (Pascal e C++)

2.2 Tipos de Dados

Tipo Bytes EscalaUnsigned char 1 0 a 255Unsigned 2 0 a 65.535Short 2 -32.768 a 32.767Long 4 -2.147.483.648 a 2.147.483.647Unsigned long 4 0 a 4.294.967.295Long double 10 3,4E-4932 a 1,1E+4932

Page 45: Estruturação de Linguagens de Programação (Pascal e C++)

2.3 Variáveis

■ Regras para Nomeação■ Declaração■ Operador de Atribuição

Page 46: Estruturação de Linguagens de Programação (Pascal e C++)

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++.

Page 47: Estruturação de Linguagens de Programação (Pascal e 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;

Page 48: Estruturação de Linguagens de Programação (Pascal e C++)

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 aY=(X=3);

Page 49: Estruturação de Linguagens de Programação (Pascal e C++)

2.4 Constantes

■ 2.4.1 Constantes Numéricas

Base RepresentaçãoDecimal Escrevemos um número em decimal de

forma pura e simples, como aquela queestamos acostumados. Ex.: 20, 280, 88

Hexadecimal Os números na base 16 devem serprecedidos de 0x. Ex.: 0x41, 0x1afb, 0x54c2

Octal Os números escritos na base 8 devem serprecedidos de um zero. Ex.: 041, 010, 0754.

Page 50: Estruturação de Linguagens de Programação (Pascal e C++)

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;

Page 51: Estruturação de Linguagens de Programação (Pascal e C++)

2.5 Operadores Aritméticos

■ Operadores Aritméticos Básicos■ Operadores de Incremento e Decremento■ Operadores Aritméticos de Atribuição

Page 52: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 53: Estruturação de Linguagens de Programação (Pascal e C++)

2.5.2 Operadores de Incremento e Decremento

■ Exemplos:X = X + 1; // adiciona 1 a X++X; // adiciona 1 a XX++; // adiciona 1 a X

X = X – 1; // subtrai 1 de X-- X; // subtrai 1 de XX --; // subtrai 1 de X

Page 54: Estruturação de Linguagens de Programação (Pascal e C++)

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.

Page 55: Estruturação de Linguagens de Programação (Pascal e C++)

2.5.3 Operadores Aritméticos de Atribuição

Operador Aritmético deAtribuição

Expressão Equivalente

A + = 2; A = A + 2;B * = Y + 1; B = B * (Y + 1);C / = 2.5; C = C / 2.5;D % = 5; D = D % 5;E - = 3; E = E - 3;

Page 56: Estruturação de Linguagens de Programação (Pascal e C++)

2.6 Operadores Relacionais

Símbolo Operação> Maior< Menor>= Maior ou igual<= Menor ou igual= = Igual! = Diferente

Page 57: Estruturação de Linguagens de Programação (Pascal e C++)

2.6 Operadores Relacionais

■ Exemplos:

int verdadeiro, falso;verdadeiro=(15<20);falso=(15 ==20);Os valores das variáveis serão:Verdadeiro = 1Falso = 0

Page 58: Estruturação de Linguagens de Programação (Pascal e C++)

2.7 Operadores Lógicos

Símbolo Operação&& E|| Ou! Não

Page 59: Estruturação de Linguagens de Programação (Pascal e C++)

2.8 Estrutura de um Programa

■ Forma geral das funções C++■ O Primeiro Programa

Page 60: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 61: Estruturação de Linguagens de Programação (Pascal e C++)

2.8 Estrutura de um Programa

■ O Primeiro Programa

#include <iostream.h>void main( ){ cout << “Primeiro Programa”;}

Page 62: Estruturação de Linguagens de Programação (Pascal e C++)

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

}

Page 63: Estruturação de Linguagens de Programação (Pascal e C++)

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

}

Page 64: Estruturação de Linguagens de Programação (Pascal e C++)

2.10 Comentários

// termina com o fim da linhaX = X * 0.5; // X é reduzido à metade

/* um dos tipos de comentários em C++permite o uso de múltiplas linhas. */

Page 65: Estruturação de Linguagens de Programação (Pascal e C++)

2.11 Desvio Condicional

■ Sintaxe Simples:If (<expressão de teste>) <Instrução>;

If (<expressão de teste>){ <Instrução 1>; <Instrução 2>; <Instrução N>;}

Page 66: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 67: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 68: Estruturação de Linguagens de Programação (Pascal e 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>

Page 69: Estruturação de Linguagens de Programação (Pascal e C++)

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

Page 70: Estruturação de Linguagens de Programação (Pascal e C++)

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”;}

Page 71: Estruturação de Linguagens de Programação (Pascal e C++)

2.13 Classes

void main (){elefante Dumbo;Dumbo.respirar();Dumbo.dormir();Dumbo.comer();

Dumbo.trompete();Dumbo.esguichar();

}

Page 72: Estruturação de Linguagens de Programação (Pascal e C++)

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.