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.