You are on page 1of 10

Faculdade Jos Augusto Vieira

Licenciatura em Matemtica

Programao e Algoritmo

Julho de 2012

INTRODUO AO ALGORITMO
PASCAL

Computador entende linguagem de mquina (0 e 1). Linguagens de alto nvel devem ser traduzidos (passar para linguagem de mquina) antes de serem executados pelo computador. Existem dois tipos de tradutores: Interpretador e Compilador. O interpretador traduz e roda linha por linha do algoritmo at que ele todo seja executado. O Compilador traduz todo o algoritmo e, se no apresentar nenhum erro, executado.
Pascal uma linguagem compilada e de alto nvel (fcil entendimento para programador /

difcil entendimento para o computador).


O criador da linguagem Pascal foi o Professor Niklaus Wirth, da Universidade de Zurique,

Sua, em 1971. Homenagem ao filsofo e matemtico francs, do sculo XVII, Blaise Pascal. Sintaxe baseada na lngua inglesa.

ESTRUTURA BSICA
Todo algoritmo em Pascal dividido em 3 partes:

Cabealho

rea de declarao

Corpo do algoritmo

O cabealho formado pela seguinte sintaxe: PROGRAM NomeDoPrograma;

A rea de declarao dividida em 6 sees: LABEL, CONST, TYPE, VAR, PROCEDURE e FUNCTION. O VAR corresponde seo que define as variveis dos tipos primitivos e o TYPE, dos tipos construdos. A estrutura bsica de um algoritmo Pascal com as reas adotadas na disciplina :

PROGRAM <NomeDoPrograma>; VAR BEGIN


{corpo}

END.

TIPOS DE DADOS
Dados so informaes que sero processadas pelo computador. Estas informaes so
caracterizadas por serem dados numricos, caracteres ou lgicos. Os tipos de dados abaixo so

considerados tipos primitivos, j existentes. Eles so utilizados na declarao de variveis em VAR. Integer (Inteiro): Dado numrico que pertence ao conjunto de nmeros inteiros (negativa, nula ou positiva). Ex.: 15, 7. Real: Dado numrico que pertence ao conjunto de nmeros reais (negativa, nula ou positiva). Ex.: 1.87, -23.61. Obs.: As decimais so separadas por pontos, e no por vrgulas. Char (Caractere): Dado formado por apenas um caractere, podendo ser alfanumrico (0..9; a..z; A..Z) ou especial (Ex.: #, $, @, %, , &, *, (, ), _, !, ?, etc...). String (Conjunto de Caracteres): Dado formado por um conjunto de caractere, constitudo
por dgitos alfanumricos (0..9; a..z; A..Z) e/ou especiais (Ex.: #, $, @, %, , &, *, (, ), _, !, ?,

etc...). Ex.: No pise na grama! Boolean (Lgico): Dado que s pode assumir apenas dois valores: TRUE ou FALSE.

PONTO-E-VRGULA
Ponto-e-vrgula (;) corresponde ao delimitador de comandos. ele que finaliza cada comando.

CONSTANTES
Representa um valor fixo (informao fixa), que no sofre alteraes durante o processamento do algoritmo.

VARIVEIS
So informaes que podem sofrer alteraes. Ex.: Altura de uma pessoa, ndice da bolsa de valores, cotao do dlar, etc. Imagine um armrio. Uma gaveta pode armazenar objetos. Os objetos dentro da gaveta podem ser
substitudos, como por exemplo, por papis, brinquedos, etc. Neste caso, os objetos so as

informaes armazenadas dentro da gaveta, esta que pode ser considerada uma varivel.

Se em um armrio tiver trs gavetas que esto preenchidas com os seguintes objetos: camisas, meias, toalhas. Como saber qual a gaveta das meias? Devemos identificar as gavetas para podermos localizar os objetos. Semelhante s gavetas, as variveis tambm devem ser identificadas.
A identificao das variveis se d atravs de nomes, sendo cada uma deve ter um nome nico para que no haja confuso no momento de acessar as informaes de cada varivel. Alm de identificar as gavetas, precisamos dizer que tipo de material ficar guardado. Com as variveis,

definimos o tipo delas atravs da regra a seguir:

Existem algumas regras para dar nomes s variveis, como: Devem comear por um caractere alfabtico; Podem ser seguidos por mais caracteres alfabticos e/ou numricos; No permitido o uso de caracteres especiais; Ex.: Variveis vlidas: Nota, MEDIA, km42, A, aRAtu, etc... Variveis invlidas: 3QW, AS#dF, f#!3, Somatorio/3, etc... PROGRAM <NomeDoPrograma>; VAR IDADE: INTEGER; MEDIA, SOMA: REAL; NOME: STRING; BEGIN
{corpo}

END.

COMENTRIO
Corresponde a o nico trecho do algoritmo que no executa nenhuma ao. Pode ter a funo de explicar trechos de algoritmo, deixar escrito alguma informao para o programador. O
comentrio um trecho do algoritmo que no utilizado. Demonstra-se a sintaxe do comentrio a

seguir: { Qualquer texto que o programador queira colocar } Todo texto que estiver entre as chaves, estar sendo desconsiderado pelo compilador, servindo apenas de registro de informaes para o programador. Ex.: PROGRAM <NomeDoPrograma>; VARb IDADE: INTEGER; MEDIA, SOMA: REAL; NOME: STRING; BEGIN {corpo}
END.

COMANDO DE ATRIBUIO
Roupas, brinquedos ou outro objeto podem ser guardados em gavetas. O comando de atribuio permite justamente essa ao, guardar objetos em gavetas, ou melhor, pegar informaes e armazenar em uma varivel. varivel := expresso; sendo expresso uma expresso aritmtica ou expresso lgica.
As expresses devem chegar a um resultado para que este seja atribudo varivel. Esse resultado deve ser do mesmo tipo primitivo da varivel para que no haja incompatibilidade no

armazenamento. Ex.: PROGRAM <NomeDoPrograma>; VAR IDADE: INTEGER; MEDIA, SOMA: REAL; NOME: STRING; BEGIN NOME := Programao 1; IDADE := 5 * 2; SOMA := 14.4; MEDIA := SOMA / 4; END.

COMANDOS DE ENTRADA E SADA


Para explicar este item, demonstraremos algumas situaes do dia-a-dia. Quando
preparamos um bolo, realizamos uma entrada de ingredientes que ser processada atravs da

receita (algoritmo), gerando uma sada, que ser um bolo pronto.


Quando respiramos, realizamos uma entrada de ar (contendo diversos elementos qumicos
como oxignio, etc.) que ser processada pelo pulmo. Depois deste processo, ser gerada uma

sada de ar, junto com gs carbnico. Semelhante s situaes anteriores, o computador tambm trabalha com entrada e sada, sendo que ao invs de ar e ingredientes o que ir entrar e sair ser informao.

Entrada de Dados
Qual seria a utilidade de um sistema se o homem no pudesse interagir com ele? O que adiantaria um sistema de controle escolar, gerando relatrios de aprovados e reprovados se as notas no fossem fornecidas pelo homem? O usurio fornece informaes para o sistema poder chegar a

um resultado. A sintaxe da entrada de dados : READ(variveis separados por vrgulas); READLN(variveis separados por vrgulas);

A diferena entre READ e READLN que o primeiro espera o usurio fornecer a informao, permanecendo o cursor na mesma linha, j o segundo, ele passa o cursor para a linha seguinte.

Sada de Dados
Do que adianta o usurio fornecer as informaes o sistema processar o que deve ser

processado e no exibir o resultado. A sintaxe da sada de dados : WRITE(variveis, constantes e/ou expresses separados por vrgulas); WRITELN(variveis, constantes e/ou expresses separados por vrgulas);
A diferena entre WRITE e WRITELN que o primeiro imprime e o cursor permanece na

mesma linha, j o segundo, ele imprime e o cursor passa para a linha seguinte. Ex.: PROGRAM TESTE; VAR NOME: STRING; BEGIN
READLN(NOME); WRITELN(NOME);

END.

PALAVRAS RESERVADAS
As palavras reservadas so comandos, instrues que correspondem a uma determinada tarefa no algoritmo. Elas so aes executadas pelo computador.
As principais palavras reservadas so: PROGRAM, CONST, TYPE, VAR, LABEL, PROCEDURE, FUNCTION, BEGIN, END, INTEGER, REAL, CHAR, STRING, BOOLEAN, IF, THEN,
ELSE, FOR, WHILE, DO, REPEAT, UNTIL, CASE, ARRAY, etc. Elas no podem ser utilizadas, por

exemplo, para criao de variveis.

USES
Corresponde rea onde define as bibliotecas utilizadas no algoritmo corrente. A

biblioteca CRT ser utilizada somente para obter dois comandos: CLRSCR e READKEY. CLRSCR tem a funo de limpar a tela do computador e posicionar o cursor no canto superior esquerdo e READKEY tem a funo de efetuar uma pausa temporria.
Observao: O ambiente PascalZIM no tem a biblioteca CRT, os comandos CLRSCR e

READKEY funcionam normalmente sem a biblioteca.

Ex.:

PROGRAM TESTE; VAR NOME: STRING; BEGIN CLRSCR; READLN(NOME); WRITELN(NOME); READKEY; END.

EXPRESSES ARITMTICAS
So expresses que contm operadores aritmticos e operandos que so constantes, variveis dos tipos inteiro ou real e funes matemticas.

Operadores Aritmticos:

so smbolos que representam as operaes bsicas da

matemtica. + - Adio - Subtrao * / - Multiplicao - Diviso

Ex.: 1+1; SOMA/2; Sqrt(Imposto), etc. Obs.: Existem dois operadores no-convencionais da matemtica que sero teis. MOD - Resto da diviso DIV - Quociente da diviso inteira

Obs.: Para se obter a raiz quadrada de um nmero, calcula-se: SQRT(numero). No existe operador para Potenciao, ento para se calcular 2, deve-se: 2 * 2 * 2.

Ex.:

9 DIV 4 = 2 9 MOD 4 = 1 15 DIV 3 = 5 15 MOD 3 = 0

Prioridades dos Operadores Aritmticos: Durante a resoluo das expresses aritmticas, precisamos saber quais operadores e funes matemticas devero agir primeiro. 1. 2. 3. 4. Parnteses mais internos SQRT * / MOD DIV + Ex.: (2*4)+SQRT(4)-2 8 +2-2 10 - 2

8 +SQRT(4)-2 8

EXPRESSES LGICAS
So expresses que contm operadores lgicos e/ou relacionais e operandos que so relaes, variveis e/ou constantes do tipo lgico.

Operadores Relacionais: so smbolos utilizados para comparar dois valores do mesmo tipo

primitivo, sendo estes representados por constantes, variveis ou expresses aritmticas. = > < - Igualdade - Maior que - Menor que <> >= <= - Diferena - Maior ou igual - Menor ou igual

Obs.: O resultado obtido de uma expresso lgica com operadores relacionais sempre ser um valor lgico, podendo ser verdadeiro ou falso, adotando V ou F, respectivamente. Ex: 4DIV2 >= 18MOD4 2 >= 2 V

Operadores Lgicos: So smbolos utilizados para comparar especificamente dois valores

do tipo lgico, sendo estes representados por constantes e variveis. AND Conjuno (s vlido se todos os operandos so vlidos). OR Disjuno (s invlido se todos os operandos so invlidos). NOT Negao (inverter valor lgico).

Tabela Verdade o conjunto de todas as respostas possveis entre duas variveis lgicas. A F F V
V

B F V F
V

A AND B A OR B NOT A F F F V F V V V V V F F

Ex.: Se gritar ou ficar gripado eu fico rouco. 2>0 AND 15<=3*6 Prioridades dos Operadores:

Eu fico rouco quando gritar, ficar gripado ou ambos. V AND V V

V AND 15<=18

Ex.:

Entre os operadores lgicos: Entre todos os operadores: 1. not 1. Parnteses mais internos 2. and 2. Operadores Relacionais 3. or 3. Operadores Lgicos 4. Operadores Aritmticos 8 <> 4+2 OR 2+3*5/3MOD5 > 0 8 <> 6 OR 2+15/3MOD5 > 0 8 <> 6 OR 2+5MOD5 > 0 V OR 2+0 > 0 V OR 2 > 0 V or V V

EXERCCIOS
1. Quem foi o criador da linguagem de programao Pascal? 2. Explique a origem da linguagem de programao Pascal. 3. Em quantas reas se divide um algoritmo em Pascal? 4. Para que so utilizados os comandos BEGIN e END do Pascal? 5. Diferencie compilador e interpretador. 6. Quais so os tipos primitivos em Pascal? 7. Diferencie String e Char. 8. Qual a funo de uma varivel? 9. Qual a funo do ponto-e-vrgula no algoritmo em Pascal? 10. Qual a diferena entre WRITE e WRITELN? 11. Qual a funo do comando CLRSCR? 12. Qual a funo dos operadores? 13. Na expresso A+B*C-F, qual a precedncia de operaes? 14. Qual a diferena de diviso representa pelo smbolo / e pela palavra DIV? 15. Determine os tipos primitivos contidos nas sentenas abaixo: a) b) c) d) Antonio desceu 8 andares para receber Joana. Ricardo recebeu R$ 1821.90 pelas frias. Celso ligou trs vezes para o celular de Henrique. A resposta da sexta questo da prova de matemtica foi a alternativa C que constava o valor 21.00.

16. Escreva o tipo primitivo ideal para se representar as seguintes informaes: a) b) c) d) e) A altura de uma pessoa em metros A placa de um veculo O nmero de filhos de uma pessoa A populao de um pas A cor de um objeto

17. Tendo as variveis: NOME, NOTA1, NOTA2, MEDIA e APROVADO que sero utilizados para armazenar o nome do aluno, a primeira nota, a segunda nota, a media e se ele foi aprovado

ou reprovado, declare-as corretamente.

18. Supondo que X, Y so variveis do tipo inteiro, com valores iguais a 5 e 10, respectivamente, e Z uma varivel real, com valor 1.5. Quais os resultados das expresses abaixo: a) 2 * (X MOD 3) Z b) Y DIV X Z + 3.5 ** 2 c) (2 * X) MOD 3 Z d) (Y * Z) DIV X MOD (X 2) e) X + (Y * Z) / 3 f) Y DIV X + Z g) (6 * Z) DIV 4 h) (X + Y) DIV X + X Y / 2 19. 2. Sabendo que A=3, B=7 e C=4, Calcule as expresses abaixo: a. b. c. d. e. (A + C) > B B >= (A + 2) C = (B - A) (B + A) <= C (C + A) >= B

You might also like