Post on 22-Apr-2015
LINGUAGENS DE PROGRAMAÇÃO
PASCAL
TURBO PASCAL
Linguagem com o objetivo de ensinar programação por ter fácil aprendizado, possuir comandos específicos para implementação das estruturas fundamentais de controle.
PROGRAMAÇÃO ESTRUTURADAProgramação Estruturada é uma técnica
de programação baseada no princípio de que todo algoritmo pode ser desenvolvido usando-se certas estruturas fundamentais de controle.
PROGRAMAÇÃO ESTRUTURADA
Estrutura Seqüêncial Estrutura Condicional Estrutura de Iteração ( Repetição )
ESTRUTURA SEQÜÊNCIAL
A Estrutura Seqüêncial é aquela caracterizada pela execução seqüêncial dos passos de um algoritmo, isto é, passo após passo.
Isto é natural em PASCAL porque os comandos são executados um após o outro, na ordem que foram codificados.
ESTRUTURA CONDICIONAL
A Estrutura Condicional é o meio pelo qual podemos tomar caminhos diferentes dependendo de certa condição.
ESTRUTURA DE ITERAÇÃO (REPETIÇÃO)A Estrutura de Iteração (Repetição) é usada para
repetirmos a execução de um certo procedimento (LOOP).
Esta estrutura se divide em 3 formas básicas: Repetição de um procedimento um certo número de
vezes. Repetição com teste no início, isto é, repetir
“ENQUANTO” uma certa condição for verdadeira. Repetição com teste no final, isto é, repetir “ATÉ” que
uma certa condição seja verdadeira.
ELEMENTOS DA LINGUAGEM
ITENS FUNDAMENTAIS
CONSTANTES
Constantes NuméricasUma constante numérica é formada por um seqüência de dígitos que: pode estar ou não precedida de um sinal positivo(+) ou negativo(-);
Ex.: 25, +3412, -315 pode estar ou não seguida de um ponto decimal(.) e outra seqüência
de dígitos; Ex.:3.14, +3421.3, 5 pode terminar ou não pela letra E seguida de outra seqüência de
dígitos. Entre a letra E e esta outra seqüência de dígitos pode existir ou não um sinal positivo(+) ou negativo(-). Ex.:7.8E3, -315.21E-3, +53E+4
As constantes numéricas podem ser de dois tipos: inteiras ou reais.
. CONSTANTES INTEIRAS
São números inteiros compreendidos num intervalo, dependente da implantação da linguagem no nosso caso entre: -32768 a 32767.
Exemplos: 21345, -21345, 2, +2, -2, 90, +90
CONSTANTES REAIS
São os números reais compreendidos em certos intervalos no nosso caso entre (-10 -37 a -10 37 e 10 -37 a 10 37 )
e representados com uma determinada precisão (por exemplo: 6 ou 7 algarismos significativos).
Exemplo:
3.1421, -8.16E-9, 2345.34, 0.0
CONSTANTES LÓGICAS
São representadas pelas palavras TRUE e FALSE e são denominadas constantes booleanas.
CONSTANTES LITERAIS
Pré-definidas na linguagem PASCAL, são formadas por uma seqüência de caracteres aceitos pela implantação da linguagem, incluindo as 26 letras do alfabeto latino, os 10 algarismos arábicos, o espaço em branco e outros caracteres disponíveis no computador. Num programa em PASCAL as constantes literais são representadas pelos caracteres correspondentes colocados entre apóstrofos (‘).
Exemplos: ‘EXEMPLO.01’ , ‘*’ , ‘12345’ , ‘’ ‘’
VARIÁVEIS Variáveis é um nome (rótulo) dado a uma
parte da memória, e que pode ser alterado durante a execução do programa.
O nome de uma variável (identificador) é formado por uma única letra ou então por uma letra seguida de letras ou dígitos em qualquer quantidade.
Porém, para dois identificadores serem considerados distintos deve haver diferença entre os seus oito primeiros caracteres pelo menos.
VARIÁVEIS
Não é permitido o uso de espaço em branco ou de qualquer outro caracter que não seja letra ou dígito exceto o sublinha ( _ ) na formação de um identificador.
Na linguagem PASCAL não há distinção entre letras maiúsculas e minúsculas ( IDENTI = identi ).
Exemplos: A, NOTA, nota, matrícula, X5, A32B, ETC, Etc, nota_prova.
PALAVRAS RESERVADAS
Alguns identificadores só podem ser usados com um sentido pré-fixado na linguagem e por isso mesmo são denominados palavras reservadas ou palavras chaves.
As palavras reservadas do PASCAL são as seguintes:
AND INT NIL SET
ARRAY FILE NOT THEN
BEGIN FOR OF TO
CASE FUNCTION OR TYPE
CONST GOTO PACKED UNTIL
DIV IF PROCEDURE VAR
DO IN PROGRAM WHILE
DOWNTO LABEL RECORD WITH
ELSE MOD REPEAT
Existem, ainda, identificadores que possuem na linguagem PASCAL um significado pré-definido, mas que não são palavras reservadas, como por exemplo:
INPUT, OUTPUT, INTEGER, REAL, READ, WRITE
OPERADORES ARITMÉTICOS
São símbolos que indicam as operações aritméticas:+ Adição
- Subtração
* Multiplicação
/ Divisão Real
DIV Divisão Inteira
MOD Resto da Divisão Inteira
EXEMPLOS
2 + 5 o resultado é 7
2 + 3 * 3 o resultado é 11
(2 + 3) * 3 o resultado é 15
11 DIV 4 o resultado é 2
11 MOD 4 o resultado é 3
OPERADORES LÓGICOS
BINÁRIO– AND Conjunção ( as duas ao mesmo tempo )– OR Disjunção Inclusiva– XOR Disjunção Exclusiva ( uma das
duas )
UNÁRIO– NOT Negação
TABELA VERDADE
AND V F OR V FV V F V V VF F F F V F
XOR V FV F VF V F
OPERADORES RELACIONAIS
= Igualdade
> Maior do que
< Menor do que
>= Maior ou igual que
<= Menor ou igual que
<> Diferente de
EXPRESSÕES ARITMÉTICAS
As expressões aritméticas são escritas linearmente, usando-se a notação matemática com as seguintes restrições:– O sinal de multiplicação é indicado com asterisco (*)
e nunca deve ser subentendido.
– A divisão é indicada com a barra (/).
– Não existe sinal para a potenciação e a radiciação, devendo-se indicá-las com combinações de produtos ou funções pré-definidas.
EXPRESSÕES ARITMÉTICAS Prioridade entre as operações são:
• expressões entre parênteses.
• multiplicações ou divisões ou DIV ou MOD.
• somas e ou subtrações.
Numa expressão quando houver cálculos envolvendo operações de mesma prioridade, os mesmos serão efetuados da esquerda para direita executando a operação que aparecer em primeiro lugar.
EXPRESSÕES ARITMÉTICAS DIV e MOD são operadores que só podem ser aplicados com
operandos inteiros dando, respectivamente o quociente inteiro (obtido por divisão e truncamento, sem arredondamento) e o resto inteiro da divisão entre operandos.
)Uma expressão que só tenha operandos inteiros e operadores *, MOD, DIV, + e - terá como resultado um valor inteiro. Se, pelo menos, um dos operandos for real será real.
)O operador / sempre conduz a um resultado do tipo real, mesmo que os dois operandos sejam inteiros.
Exemplo:
A - B * ( C + D / ( E - 1 ) - F ) + G
. EXPRESSÕES LÓGICAS São expressões cujos operadores são
operadores lógicos e cujos operandos são relações e/ou variáveis do tipo lógicos. O resultado da relação é sempre “False” ou “True”.
Exemplos:– ( D + C = 0 ) AND ( G <> 1 )– TESTE OR ( A * C > B )
{TESTE = FALSE - variável lógica}
FUNÇÕES NUMÉRICAS PRÉ-DEFINIDAS
Existe na linguagem PASCAL algumas funções pré-definidas, também denominadas funções de Bibliotecas, as quais têm prioridade sobre qualquer operação dentro de uma expressão.
Nome Resultado Tipo de Resultado
LN (expressão) Logaritmo nepereano de expressão real
EXP (expressão) Número “e” elevado a expressão real
ABS (expressão) Valor absoluto de expressão real ou inteiro
TRUNC (expressão) Trunca o valor de expressão inteiro
ROUND (expressão) Arredonda o valor real de expressão inteiro
SQR (expressão) Quadrado de expressão real ou inteiro
SQRT(expressão) Raiz quadrada de expressão real
SIN (expressão) Seno de expressão real
COS (expressão) Cosseno de expressão real
ARCTAN (expressão) Arco tangente de expressão real
FUNÇÕES NUMÉRICAS PRÉ-DEFINIDAS
FUNÇÕES NUMÉRICAS PRÉ-DEFINIDAS
As funções ABS e SQR podem receber um argumento real ou inteiro e produzem respectivamente resultado real ou inteiro. As funções TRUNC e ROUND recebem argumento real e produzem resultado inteiro. As demais recebem argumentos reais ou inteiros e produzem resultados reais.
TIPOS DE DADOS Tipo de dados é um conjunto finito de valores.
Um dado pertence a este tipo, se este dado pertence a este conjunto.
TIPOS DE DADOS
Em PASCAL, existem os tipos padrão e os tipos criados pelo programador. Os tipos padrão são os seguintes:NOME DO TIPO VALORES
Integer (inteiros) -32768 ... +32767
Real 1*10 (elevado a -38) ... 1*10 (elevado a 38)
Char qualquer caracter da tabela ASCII, escrito entre
apóstrofos
String conjunto de caracteres escrito ente apóstrofos
Boolean ( true - false )
COMANDOS
COMANDO SIMPLES:
READLN (NOME);
COMANDO COMPOSTO:
BEGIN
WRITELN (‘DIGITE O SEU NOME’);
READLN (NOME)
END
ATRIBUIÇÃO DE VALORES
Atribuição de valores às variáveis em PASCAL tem a seguinte sintaxe:
< IDENTIFICADOR> : = <EXPRESSÃO>
onde: identificador - é o nome da variável
: = - é denominado operador de atribuição
expressão - é uma expressão dos tipos definidos
Exemplo:
A : = 3 * B + C ;
SAÍDA DE DADOS
WRITELN ( item, item, .... );
Este comando escreve todas as informações e quando acabar ele pula para a linha seguinte.
WRITE ( item, item, .... );
Este comando escreve as informações e permanece na mesma linha.
Para itens numéricos é possível especificar o tamanho do campo de saída:
.... item : N1:N2, item, ....
Exemplos:WRITELN (‘3 + 4 * ( 8 - 32.8 ) = ‘, 3 + 4 * ( 8 - 32.8 ));
Quando este comando for executado irá imprimir:
3 + 4 * ( 8 - 32.8 ) = -9.6200000000E+01
Especificando o tamanho do campo de saída:
WRITELN (‘3 + 4 * ( 8 - 32.8 ) = ‘, 3 + 4 * ( 8 - 32.8 ) : 5: 3);
Quando este comando for executado irá imprimir:
3 + 4 * ( 8 -32.8 ) = -96.20
ENTRADA DE DADOS ( VIA TECLADO )
READ ( < lista de variáveis > ); Este comando lê todas as informações contidas na
<lista de variáveis> e permanece na mesma linha, não se recomenda o uso deste comando com variaveis do tipo string e charREADLN ( < lista de variáveis > );
Este comando lê todas as informações contidas na <lista de variáveis> e quando termina pula para a linha seguinte.
A <lista de variáveis> é uma lista de nome de variáveis, separados por vírgula.
Etapas de um programa
1. Cabeçalho2. Definição de tipos de variaveis3. Estrutura do programa principal
3.1. Início 3.2. Entradas de Dados 3.3. Cálculos 3.4. Saída de Dados 3.5. Fim
{programa para calcular a area e o perimetro do retangulo, do triangulo retangulo e do círculo programa feito em sala de aula no dia 05/03/2004}
{cabecalho do programa}
program areas;
uses wincrt; {declaração necessária para o funcionamento da e/s do tpw}
{delaracao dos tipos de identificadores}
var
lr1, lr2, lt1, lt2, lt3, ht, rc: real;
ar, pr, at, pt, ac, pc: real;
{corpo do programa principal}begin {entrada de dados} write (' Insira o valor do 1º lado do retangulo '); readln (lr1); write (' Insira o valor do 2º lado do retangulo '); readln (lr2); write (' Insira o valor do 1º lado do triangulo '); readln (lt1); write (' Insira o valor do 2º lado do triangulo '); readln (lt2); write (' Insira o valor do 3º lado do triangulo '); readln (lt3); write (' Insira o valor da altura do triangulo '); readln (ht); write (' Insira o valor do raio do circulo '); readln (rc);
{calculo da area e do perimetro do retangulo}
ar := lr1 * lr2;
pr := 2 * (lr1 + lr2);
{calculo da area e do perimetro do triangulo}
at := lt2 * ht / 2;
pt := lt1 + lt2 + lt3;
{calculo da area e do perimetro do circulo}
ac := pi * rc * rc;
pc := 2 * pi * rc;
{saida de dados} writeln (' A area do retangulo e ',ar:6:3); writeln (' O perimetro do retangulo e ',pr:6:3); writeln; writeln (' A area do triangulo e ',at:6:3); writeln (' O perimetro do triangulo e ',pt:6:3); writeln; writeln (' A area do circulo e ',ac:6:3); writeln (' O perimetro do circulo e ',pc:6:3); writeln; {encerramento do programa} writeln; writeln (‘ Digite qualquer tecla? '); readkey; donewincrt;end.
Execução do Programa
Compile o programa (Compile/compile)– Se houver erros de digitação arrume-os
Execute o programa (Run/run)– Se houver erros de run-time arrume-os– Senão rode o programa colocando os
dados usados na simulação do algoritmo, não se esqueça de verificar todas as possibilidades de respostas do programa
CONDICIONAIS
COMANDO IFSintaxe: IF <condição> THEN
comando1
ELSE
comando2;
Onde: <condição> é uma condição que pode ser Falsa ou Verdadeira.
Comando1, Comando2 pode ser simples (representa apenas um comando a ser executado), ou composto (representado por comandos simples ou compostos, escritos entre delimitadores “BEGIN” e “END”), e separados entre si por “;”.
ELSE esta parte do comando é opcional, isto é, se o programador não quiser utilizá-lo, ele poderá omití-lo.
Exemplos:.Exemplo com comandos compostos:
IF X < 2 THEN
BEGIN
X := X * 3;
END
ELSE
BEGIN
X := X / 3;
WRITELN(X);
END;
Exemplo com comando simples:IF X>0 THEN
X := X + 3
ELSE
X := X - 3;