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

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: laddie

Post on 12-Jan-2016

32 views

Category:

Documents


1 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

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

UNIVERSIDADE LUTERANA DO BRASILCOMUNIDADE 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

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

1.1 Ambiente

Run Compile Debug

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

1.2 Tipos de Dados

Inteiros Reais Caracteres Lógicos

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

1.2.4 Tipo de Dado Lógico

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

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

1.3 Variáveis

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

Page 11: Estruturação de Linguagens (Pascal e C++) Paradigmas de Linguagem de Programaçã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

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

1.8 Estrutura de um Programa

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

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

1.8.1 Cabeçalho

Sintaxe:

Program <nome do programa>;

Exemplo:

Program Calculo;

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

1.8.2 Área de Declarações

Uses

Label

Const

Type

Var

Procedure

Function

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

1.8.3 Corpo do Programa

Begin

<instrução 1>;

<instrução 2>;

<instrução N>;

End.

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

1.10 Comentários

Sintaxe:

{ <comentários> }

{ <comentários>

<comentários>

<comentários> }

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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;

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

1.13 Procedimentos e Funções

Unidades Padrão Procedure Parâmetros Function

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

1.13.1 Unidades Padrão

CRT DOS GRAPH OVERLAY PRINTER SYSTEM

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

1.13.2 Procedure

Sintaxe:

Procedure <nome> [(<parâmetros>)];

Var

<variáveis>;

begin

<comandos>;

end;

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

1.13.2 Procedure

Exemplo:

Procedure Linha;

Var i : integer;

Begin

i:=1;

While i<>81 do

Begin

Write(‘_’);

i:=1+1;

End;

End;

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

1.14 Construindo uma Biblioteca de Rotinas

Sintaxe:

Unit <nome>;

Interface

<declaração das rotinas>

implementation

<rotinas>

end.

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

2.2 Tipos de Dados

Tipo Bytes EscalaUnsigned char 1 0 a 255

Unsigned 2 0 a 65.535

Short 2 -32.768 a 32.767

Long 4 -2.147.483.648 a 2.147.483.647

Unsigned long 4 0 a 4.294.967.295

Long double 10 3,4E-4932 a 1,1E+4932

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

2.3 Variáveis

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

Page 46: Estruturação de Linguagens (Pascal e C++) Paradigmas de Linguagem de Programaçã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+

+.

Page 47: Estruturação de Linguagens (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programaçã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

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

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

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

2.6 Operadores Relacionais

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

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

2.7 Operadores Lógicos

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

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

2.8 Estrutura de um Programa

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

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

2.8 Estrutura de um Programa

O Primeiro Programa

#include <iostream.h>

void main( )

{

cout << “Primeiro Programa”;

}

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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. */

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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

elsecout << a << “ é menor que 6”;

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

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

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 (Pascal e C++) Paradigmas de Linguagem de Programação

2.13 Classes

void main ()

{

elefante Dumbo;

Dumbo.respirar();

Dumbo.dormir();

Dumbo.comer();

Dumbo.trompete();

Dumbo.esguichar();

}

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

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.