Algoritmos e
Programação
Thyago Maia Tavares de Farias
Aula 12
Sumário

Pascal – Conceitos e Ambiente
Passos para a construção de
Software



1º passo: Conhecimento do problema;
2º passo: Construção do algoritmo;
3º passo: Codificação do algoritmo em uma
linguagem de programação;
Problema !!!
Solução
Codificação
Linguagens de programação




Para armazenar um algoritmo na memória de
um computador, e para que o mesmo seja
executável, é necessário que o mesmo seja
programado (codificado);
Precisamos transcrever nossos algoritmos para
uma linguagem de programação;
Exemplos: Pascal, C, Java, Cobol, etc.
Na disciplina, utilizaremos a linguagem de
programação Pascal;
A linguagem Pascal



Desenvolvida em 1968 por Niklaus Wirth, da
Universidade Técnica de Zurique, na Suíça;
Objetivo: Oferecer uma linguagem para o ensino
de programação que fosse simples, coerente e
capaz de confeccionar programas claros e
legíveis;
Batizada em homenagem a Blaise Pascal,
filósofo, matemático e inventor da primeira
calculadora mecânica;
A linguagem Pascal


Linguagem parecida com a linguagem
algorítmica;
Usa o paradigma estruturado, onde qualquer
problema pode ser resolvido utilizando três
estruturas:
Sequencial;
 Condicional;
 Iterativa (repetição);

Adaptando algoritmos para a
linguagem Pascal

Ex.:
PORTUGOL
Algoritmo “exemplo”
PASCAL
Var numero: inteiro
program exemplo;
Uses crt;
Var numero: integer;
Inicio
begin
escreva(“Informe um número: ”)
leia(numero)
numero <- numero + 10;
escreva(“Novo número: ”, numero)
fimalgoritmo
write(‘Informe um número: ‘);
readln(numero);
numero := numero + 10;
write(‘Novo número: ‘, numero);
end.
Área de Declarações
Declaração de Uso das Unidades:
• Um programa Pascal pode fazer uso
de algumas unidades padrão, tais
como: CRT, PRINTER, etc.
• A unidade CRT faz a adequação do
hardware com seu programa.
PASCAL
program exemplo;
Uses crt;
Var numero: integer;
begin
Declaração de Variáveis:
var <lista-de-identificadores>: <tipo>
onde,
<lista-de-identificadores>:
lista variáveis de um mesmo tipo
<tipo-de-dado>:
nome de um dos tipos pré-definidos ou
criados pelo programador
write(“Informe um número: ”);
readln(numero);
numero := numero + 10;
write(“Novo número: ”, numero);
end.
Tipos de variáveis

Integer

Equivalente ao tipo inteiro em algoritmos;
Nome
Valor mínimo
Valor máximo
Bytes ocupados
Integer
-32.768
32.767
2
Exemplo de declaração:
 Em algoritmos:
var numero: inteiro
 Em Pascal:
var numero: integer;

Tipos de variáveis

Integer

Tipos variantes:
Nome
Valor mínimo
Valor máximo
Bytes ocupados
Shortint
-128
127
1
Byte
0
255
1
Word
0
65.535
2
Longint
-2.147.483.648
2.147.483.647
4
Tipos de variáveis

Real

Equivalente ao tipo real em algoritmos;
Nome
Valor mínimo
Valor máximo
Bytes ocupados
Real
-2.9 x 10-39
1.7 x 1038
6
Exemplo de declaração:
 Em algoritmos:
var numero: real
 Em Pascal:
var numero: real;

Tipos de variáveis

Real

Tipos variantes:
Nome
Valor mínimo
Valor máximo
Bytes ocupados
Single
-1.5 x 10-45
1.7 x 1038
4
Double
5.0 x 10-324
1.7 x 10308
5
Extended
3.4 x 10-4932
1.1 x 104932
10
Comp
-2-63+1
2-63-1
8
Tipos de variáveis

Boolean

Equivalente ao tipo lógico em algoritmos;
Valores
True
False
Exemplo de declaração:
 Em algoritmos:
var valor: logico
 Em Pascal:
var valor: boolean;

Tipos de variáveis

String

Equivalente ao tipo literal em algoritmos (tamanho
máximo de caracteres: 255);


Exemplo de declaração:
Em algoritmos: var time: literal
Em Pascal:
var time: String;

Exemplo de atribuição:

Em algoritmos: time <- “Sport Recife”

Em Pascal:

time := ‘Sport Recife’;
Tipos de variáveis

String

Podemos limitar o tamanho de um string, utilizando
[ + tamanho do texto + ] ao lado da especificação de
tipo
Exemplo de declaração:
 var time: String[10];
 var sexo: String[1];
 Var nome_completo: String[100];

Tipos de variáveis

Char

Equivalente ao tipo literal em algoritmos, porém
representa um único caractere;


Exemplo de declaração:
Em algoritmos: var sexo: literal
Em Pascal:
var sexo: char;

Exemplo de atribuição:

Em algoritmos: sexo <- “M”

Em Pascal:

sexo := ‘M’;
Variáveis




Representam os espaços reservados na memória
para armazenar informações;
Funcionamento, declaração e atribuição
semelhantes às variáveis utilizadas em
algoritmos;
Assim como em algoritmos, cada variável possui
um nome (identificador) e um tipo;
As regras para criação de nomes de variáveis são
as mesmas utilizadas em algoritmos;
Variáveis

Regras para identificadores de variáveis:
Não devem ser extensas demais;
 Caracteres permitidos: números, letras e sublinhado;
 Primeiro caractere é sempre uma letra;
 Identificadores não podem se repetir;
 Não são permitidos caracteres em branco;
 Não são permitidos caracteres especiais;
 Não podemos utilizar palavras reservadas em nomes
de variáveis;

Variáveis

Exemplos de declaração:
var numero: integer;
nome: string;
sexo: char;
salario: real;
Palavras Reservadas

Nomes utilizados pelo computador para representar
comandos, operadores e nomes de seção de programas;
Constantes



Variáveis que assumem um determinado valor
atribuído e não pode ser alterado ao longo do
programa;
Constantes assumem o tipo de valor a ela
atribuído (não é necessária a definição de tipo na
declaração!);
Uma constante, assim como uma variável,
deverá ser declarada na área de declarações;
Constantes


Para declarar constantes, utilizamos a palavra
reservada CONST, seguido do seu identificador
(nome) + = + valor da constante + ;
Exemplos:
CONST time_professor = ‘Sport Recife’;
CONST pi = 3.1416;
CONST max = 10;
Comentários






Texto delimitado entre {} ou (* *)
Seu conteúdo não é compilado;
Pode conter qualquer tipo de caractere;
Pode conter mais de uma linha;
Pode ser colocado em qualquer região do
programa;
Utilizado para documentar código, esclarecer
alguma região de código, etc.;
Comentários

Exemplo:
program exemplo;
{área de declarações}
Uses crt;
Var numero: integer;
begin
{lista de instruções}
write(“Informe um número: ”);
readln(numero);
numero := numero + 10;
write(“Novo número: ”, numero);
end.
Área de Comandos
Área de Comandos:
PASCAL
• Delimitada pelo BEGIN e END.
• Os comandos são separados entre si
pelo delimitador ponto-e-vírgula.
• A forma geral é:
Begin
End.
< comando >;
...
< comando >;
program exemplo;
Uses crt;
Var numero: integer;
begin
write(“Informe um número: ”);
readln(numero);
numero := numero + 10;
write(“Novo número: ”, numero);
end.
Comando de atribuição



Utilizado para atribuir um valor a uma variável,
um resultado de uma expressão ou o valor de
outra variável;
Equivalente ao comando de atribuição <utilizando em algoritmos;
Sintaxe em Pascal:
Nome_variavel := valor, variável ou expressão;
Comando de atribuição

OBS: No comando de atribuição, a variável e
seu valor devem ter o mesmo tipo, exceto nos
seguintes casos:
Variáveis reais podem receber valores integer;
 Variáveis string podem receber valores char;


Exemplos:
nome := ‘Thyago’;
media := (nota1+nota2) / 2;
Comandos de Entrada



Utilizado para receber dados digitados pelo
usuário;
Funcionamento similar ao comando leia
utilizado em algoritmos;
Comandos de entrada disponíveis em Pascal:
read
 readln (similar ao read, realizando também a leitura
do “new line” (nova linha) após o pressionamento
da tecla Enter);

Comandos de Entrada

Exemplo: programa que lê o nome e a idade de
um usuário:
program exemplo;
Uses crt;
Var nome: string;
idade: integer;
begin
readln(nome);
readln(idade);
end.
Comandos de Saída



Utilizado para exibir dados;
Funcionamento similar ao comando escreva e
escreval utilizados em algoritmos;
Comandos de saída disponíveis em Pascal:
write (similar ao escreva)
 writeln (realiza a escrita de dados e passa o cursor
para a próxima linha). Similar ao escreval

Comandos de Saída


No caso de variáveis do tipo integer ou real,
podemos apresentar os dados na formatação
desejada;
Exemplo:
Media := (8 + 2) / 2;
Writeln(Media); {escreveria 5.00000000E + 01}
Writeln(Media:0:2); {escreveria 5.00}
Comandos de Saída

Exemplo: programa que lê o nome e a idade de
um usuário:
program exemplo;
Uses crt;
Var nome: string;
idade: integer;
begin
writeln(‘Digite seu nome:’);
readln(nome);
writeln(‘Digite sua idade:’);
readln(idade);
writeln(‘Seu nome: ’, nome);
writeln(‘Sua idade: ’, idade);
end.
Operadores
Operador
Exemplo
Comentário
:=
X := 1
O valor 1 é atribuído a variável X.
+
X+Y
Soma o conteúdo de X e de Y.
-
X–Y
Subtrai o conteúdo de Y do conteúdo de X.
*
X*Y
Multiplica o conteúdo de X pelo conteúdo de Y.
/
X/Y
Obtém o quociente da divisão de X por Y.
DIV
X DIV Y
Obtém o quociente inteiro da divisão de X por Y.
MOD
X MOD Y
Obtém o resto da divisão inteira de X por Y.
=
X=Y
Testa se o conteúdo de x é igual ao conteúdo de Y.
<>
X <>
Testa se o conteúdo de x é diferente do conteúdo de Y.
>=
X >= Y
Testa se o conteúdo de x é maior ou igual ao de Y.
<=
X <= Y
Testa se o conteúdo de x é menor ou igual ou de Y.
>
X>Y
Testa se o conteúdo de x é maior do que o conteúdo de Y.
<
X<Y
Testa se o conteúdo de x é menor do que o conteúdo de
Y.
Funções Predefinidas
Funções Matemáticas
Função
Comentários
ABS (x)
Obtém o valor absoluto de x.
LOG(x)
Obtém o logaritmo de x.
TRUNC (x)
FRAC(x)
ROUND (x)
Obtém a parte inteira do número real armazenado em x.
Obtém a parte fracionária do número real armazenado em x.
Arredonda x.
SIN (x)
Calcula o seno de x.
COS (x)
Calcula o cosseno de x.
PI
SQRT (x)
SQR (x)
Retorna o valor de ¶
Calcula a raiz quadrada de x.
Calcula x elevado ao quadrado.
INC (x, Y)
Incrementa a variável x com o valor da variável Y.
DEC (x,y)
Decrementa a variável x com o valor da variável Y
Ambientes de Programação

Free Pascal Compiler
Código aberto e gratuito;
 Interpreta Pascal e Object Pascal;
 Criado em 1993;
 Versões para vários sistemas operacionais;

Ambientes de Programação

Dev-Pascal
Gratuito;
 Código Aberto;

Ambientes de Programação

Turbo Pascal




Compilador Pascal;
Software
Proprietário da
Borland
International;
Em 1995, deixou de
ser desenvolvido;
Licença de uso livre;
Ambientes de Programação

Pascal ZIM



Desenvolvido no Departamento
de Ciências da Computação da
Universidade de Brasília, sendo
utilizado pelo curso desde 2000.
O compilador implementa um
subconjunto da linguagem
Pascal e contém as estruturas de
dados, funções e comandos
mais utilizados.
É freeware.
Ambientes de Programação

Download:

Free Pascal Compiler: http://www.freepascal.eti.br/

Dev-Pascal: http://www.bloodshed.net/devpascal.html

Turbo Pascal:
http://www.netdownloads.com.br/Download/2303/TurboPascal-70.html

Pascal ZIM: http://pascalzim.tripod.com/index.html
Download

Algoritmos e Programação