1. Prof.ª Ms. Eng.ª Elaine Cecília Gatto
Algoritmos e Estruturas de Dados
Engenharia de Computação
Universidade Sagrado Coração
PASCAL
Parte do material contido nestes slides foi gentilmente cedido pelos
Prof. Elvio Gilberto da Silva e pelo Prof. Patrick Pedreira
3. INTRODUÇÃO
A finalidade de um computador é receber,
manipular e armazenar dados. O computador
só consegue armazenar dados em discos,
imprimir relatórios, gerar gráficos, realizar
cálculos, entre outras funções, por meio de
programas.
4. Portanto, sua finalidade principal é
realizar a tarefa de processamento de dados,
isto é, receber dados por um dispositivo de
entrada
(por
exemplo,
teclado,
mouse,
scanner, entre outros), realizar operações
com esses dados e gerar uma resposta que
será expressa em um dispositivo de saída
(por exemplo, impressora, monitor de vídeo,
entre outros).
6. Portanto um computador tem duas partes diferentes que trabalham
juntas...
o hardware composto pelas
partes físicas.
o
software
composto
pelos
programas.
7. Etapas para o desenvolvimento de um
Programa
Análise: nessa etapa estuda-se o enunciado do
problema para definir os dados de entrada, o
processamento e os dados de saída.
Algoritmo: onde ferramentas do tipo descrição
narrativa, fluxogramas ou português estruturado
são utilizados para descrever o problema com
suas soluções.
8. Etapas para o desenvolvimento de um
Programa
Codificação:
onde o algoritmo é
transformado em códigos da linguagem de
programação escolhida para se trabalhar.
9. Portanto, um programa é a codificação de
um
algoritmo
em
uma
determinada
linguagem de programação (ASCENCIO,
1990).
10. Conceito de ALGORITMO
“Algoritmo
é uma seqüência de passos que visa
atingir
um
objetivo
bem
definido”
(FORBELLONE, 1999).
“Algoritmo é uma seqüência finita de instruções
ou operações cuja execução, em tempo finito,
resolve um problema computacional, qualquer
que seja sua instância” (SALVETTI, 1999).
11. Conceito de ALGORITMO
“Algoritmo
são regras formais para a
obtenção de um resultado ou da solução de
um problema, englobando fórmulas de
expressões aritméticas” (MANZANO, 1997).
12. Algoritmos
Computadores são máquinas que executam comandos
(instruções).
Comandos: operações lógicas e aritméticas que quando
realizadas em determinada seqüência produzem um
efeito.
Exemplo: Seqüência de comandos para calcular a média
entre dois números
Início
Receber Número 1
Receber Número 2
Somar Número 1 e Número 2
Dividir a soma por por 2
Fim.
13. Algoritmo
Algoritmo é uma seqüência de passos que deve ser executada para a
resolução de uma tarefa (ASCENCIO, 1999).
Algoritmo para Acordar
Início
1.Abrir olhos;
2.Levantar da cama;
3.Ir ao Banheiro;
4.Escovar Dentes;
5.Pentear Cabelo;
6.Trocar Roupa;
7.Tomar Café;
8.Arrumar Cama;
9.Sair de Casa;
Fim.
14. Maneiras de se construir um
algoritmo
Inicio
1.Abrir olhos
2.Levantar da cama
3.Ir ao Banheiro
4.Escovar Dentes
5.Pentear Cabelo
6.Trocar Roupa
7.Tomar Café
8.Arrumar Cama
9.Sair de Casa
Fim
Início
1.Abrir olhos;
2.Levantar da
cama;
3.Trocar Roupa;
4.Ir ao Banheiro;
5.Pentear Cabelo;
6.Escovar Dentes;
7.Tomar Café;
8.Arrumar Cama;
9.Sair de Casa;
Fim.
16. Trocando a Lâmpada
• E se a Lâmpada estiver queimada?
• Verificar se uma lâmpada está queimada e
caso ela esteja, trocá-la;
17. Trocando a Lâmpada
• E se a lâmpada nova estiver queimada?
• Trocar uma lâmpada, considerando que a
lâmpada nova pode estar queimada
18. Trocando a Lâmpada
• E se tivermos uma sala com 10 soquetes (10
lâmpadas para serem trocadas)
• Verificar as lâmpadas dos dez soquetes e
trocar as queimadas
• Considerar que as lâmpadas novas podem
estar queimadas
19. Como representar algoritmos
• Até agora representamos algoritmos por
linguagem natural
• Algoritmos
também
podem
ser
representados por formas gráficas
• Mais puras
• Representação mais clara
• Mais trabalhosas
20. Fluxograma do Algoritmos Trocar
Lâmpada
Início
1. Pegar uma lâmpada nova
2. Pegar uma escada
3. Abrir a escada
4. Subir na escada
5. Remover a lâmpada
6. Colocar a lâmpada nova
Fim.
21. Fluxograma do Algoritmo
Trocar Lâmpada
Início
1. Acionar O Interruptor
2. Se a Lâmpada não acender
1. Pegar uma lâmpada nova
2. Pegar uma escada
3. Abrir a escada
4. Subir na escada
5. Remover a lâmpada
6. Colocar a lâmpada nova
Fim.
22. Fluxograma do Algoritmo
Trocar Lâmpada
Início
1. Acionar O Interruptor
2. Se a Lâmpada não acender
1. Pegar uma lâmpada nova
2. Pegar uma escada
3. Abrir a escada
4. Subir na escada
5. Remover a lâmpada
6. Colocar a lâmpada nova
7. Enquanto Lâmpada não Acender
1. Remover a Lâmpada queimada
2. Colocar Lâmpada nova
Fim.
23. Linguagens de Programação
• Considere a seguinte frase:
“O policial escutou o barulho da porta.”
Quantas interpretações podemos ter para essa frase?
• 1 - O policial escutou o barulho produzido pela porta.
• 2 - O policial escutou o barulho que veio através da
porta.
O computador não é capaz de interpretar essa frase.
A linguagem do computador não pode ter ambiguidade.
24. Linguagens de Programação
• Possuem regras bem definidas
• Comandos não tem ambiguidade
• Exemplos:
• Pascal
•C
• C++
• Java
• C#
25. Pseudocódigo
• Pseudocódigo
• Pseudocódigo é uma forma genérica de escrever
um algoritmo, utilizando uma linguagem simples
(nativa a quem o escreve, de forma a ser entendida
por qualquer pessoa) sem necessidade de conhecer
a sintaxe de nenhuma linguagem de programação.
É, como o nome indica, um pseudo-código e,
portanto, não pode ser executado num sistema real
(computador) — de outra forma deixaria de ser
26. Pseudocódigo
• Pseudocódigo
• Entre as vantagens está a possibilidade de utilização do
idioma nativo
• Maioria das ling. de prog. usam termos em inglês
• Porém ainda deve ser mantida rigidez semântica
• Ele é intermediário entre a linguagem natural e a
linguagem de programação
• Um pseudocódigo bastante conhecido no Brasil é o
Portugol
• Simples
• Rigidez mantida
• Usa o português
• Usaremos o Portugol com pequenas variações
27. Passos para elaboração de um programa
1. Compreender o problema.
2. Esboçar um procedimento para resolver o
problema.
3. Formular o algoritmo (Pseudocódigo).
4. Traduzir o algoritmo para uma linguagem
de programação (Codificação).
28. Passos para elaboração de um
programa :: Exemplo
• Programa para mostrar o resultado da multiplicação de dois
números inteiros
programa multiplicacao_numeros;
var a,b,resultado:inteiro;
início
escreva (‘indique o primeiro número’);
leia(a);
escreva (‘indique o segundo número’);
leia(b);
resultadoa*b;
escreva (‘o resultado é:’, resultado);
fim
29. Estrutura Seqüencial em Linguagem Pascal
PROGRAM nome;
USES nomes das unidades;
VAR nome das variáveis: tipo;
BEGIN
bloco de comandos;
END
Unidades
são
as
bibliotecas utilizadas
pela linguagem Pascal
para a correta execução
do Programa.
30. A unidade CRT/ WinCrt é obrigatória em
todos os programas, pois faz a adequação do
hardware com o seu programa.
31. Declaração de Variáveis em Pascal
As variáveis são declaradas após a palavra VAR e os tipos mais
utilizados são:
INTEGER
REAL
(para números inteiros)
(para números reais)
CHAR
(para um caractere)
STRING
(para vários caracteres)
BOOLEAN
(para verdadeiro ou falso)
33. Declaração de Variáveis em Pascal
Os identificadores são os nomes das variáveis,
dos programas, das constantes, das rotinas e unidades,
entre outras. As regras básicas para a formação dos
identificadores são:
Podem ter qualquer tamanho. Entretanto, apenas os 63 primeiros
caracteres são utilizados pelo compilador;
Os caracteres que você pode utilizar na formação dos
identificadores são: os números, as letras maiúsculas, as letras
minúsculas e o caractere sublinhado;
34. Declaração de Variáveis em Pascal
(continuação...)
O compilador NÃO FAZ distinção entre letras maiúsculas e
minúsculas;
O primeiro caractere deve ser sempre uma letra ou o
caractere sublinhado;
NÃO são permitidos espaços em branco e caracteres
especiais tais como: @, $, +, -, %, !);
NÃO é permitido usar palavras RESERVADAS.
RESERVADAS
35. Palavras reservadas: São nomes utilizados pelo compilador
para representar comandos, operadores e nomes de seções
dos programas. As palavras reservadas da linguagem Pascal
são:
AND
END
NIL
SHR
ASM
FILE
NOT
STRING
ARRAY
FOR
OBJECT
THEN
BEGIN
FUNCTION
OF
TO
CASE
GOTO
OR
TYPE
37. Comando de Atribuição em Pascal
O comando de atribuição é utilizado para
atribuir valores ou operações a variáveis, sendo
representado por := (o sinal de dois pontos e o
sinal de igual).
38. Exemplos
x := 4;
x := x + 2;
y := 2.5;
nome:=‘Aula’;
sexo := ‘F’;
teste := false;
39. Em PASCAL os caracteres
literais são representados
entre apóstrofos simples e os
números reais utilizam o ponto
como separador decimal.
40. Comando de Entrada em Pascal
O comando de entrada é utilizado para receber
dados digitados pelo usuário. Os dados recebidos são
armazenados
representado
em
variáveis.
pela
Esse
palavra
comando
é
READLN.
Sintaxe:
Readln(nome_da_variável);
Readln(nome_da_variável1, nome_da_variável2);
41. Exemplo Nº 1
READLN(x);
Neste exemplo acima, um valor será digitado pelo usuário e armazenado
na variável x.
Exemplo Nº 2
READLN(NOME);
Um ou vários caracteres digitados
armazenados na variável NOME.
pelo
usuário
serão
42. Comando de Saída em Pascal
O comando de saída é utilizado para mostrar dados na tela
ou na impressora. Esse comando é representado pelas
palavras WRITE ou WRITELN e os dados podem ser
conteúdos
de
variáveis
ou
mensagens.
Sintaxe:
WRITE(nome_da_variável);
WRITELN(nome_da_variável);
WRITE(‘mensagem’);
WRITELN(‘mensagem’);
WRITE(‘mensagem’,nome_da_variável);
WRITELN(‘mensagem’,nome_da_variável);
43. Exemplo Nº 1
WRITELN(x);
WRITE(x);
Mostra o valor armazenado na variável x.
Exemplo Nº 2
WRITELN(‘Conteúdo de Y =‘,Y);
WRITE(‘Conteúdo de Y = ‘,Y);
Mostra a mensagem “Conteúdo de Y = “ e em seguida o valor
armazenado na variável Y.
44. A diferença entre esses comandos (WRITE e
WRITELN) é que o comando WRITELN mostra
o seu conteúdo e passa o cursor para a linha de
baixo, enquanto que o comando WRITE mantém
o cursor na mesma linha, após mostrar a
mensagem.
45. Operadores e Funções
Predefinidas em Pascal
OPERADOR
FUNÇÃO
+
Somar
-
Subtrair
*
Multiplicar
/
Dividir
div
Quociente inteiro
mod
Resto da divisão
46. Operadores e Funções Predefinidas
em Pascal (continuação)...
OPERADORES
OPERANDOS
RESULTADO
+
Z ou R
Z ou R
-
Z ou R
Z ou R
*
Z ou R
Z ou R
/
Z ou R
Z ou R
div
Z
Z
mod
Z
Z
Z= Inteiro
R=Real
47. Os operadores DIV e MOD só podem ser
aplicados com operandos inteiros.
Com os operadores +, -, * e /, se pelo menos
um dos operandos for real, então o resultado
será real.
49. Operadores e Funções Predefinidas
em Pascal (continuação)...
FUNÇÃO
ARGUMENTO
RESULTADO
PASCAL
Z ou R
R
EXP(X)
Parte inteira de x
R
Z
TRUNC(x)
Arredondar x
R
Z
ROUND(x)
Parte fracionária de x
R
Z
FRAC(x)
Raiz quadrada de x
Z ou R
R
SQRT(x)
x2
Z ou R
Z ou R
SQR(x)
Incrementar
Z
Z
INC(x, valor)
Decrementar
Z
Z
DEC(x, valor)
ex
50. EXERCÍCIOS
1. Faça um programa que receba quatro
números inteiros, calcule e mostre a
soma desses números.
2. Faça um programa que receba três
notas, calcule e mostre a média
aritmética entre elas.
51. ATENÇÃO: SINTAXE PARA FORMATAÇÃO
Variável:número total de casas:número de casas decimais
52. Exemplos de Formatação
X:6:2
No exemplo acima a variável x será exibida com seis casas,
duas casas para a parte decimal, uma casa para o ponto e
as
quatro
casas
restantes
para
a
parte
inteira.
Y:8:3
A variável y será exibida com oito casas, sendo que dessas
oito casas, três casas para a parte decimal, uma casa para
o ponto e as quatro casas restantes para a parte inteira.
53. 3. Faça um programa que receba três notas e
seus respectivos pesos, calcule e mostre a
média ponderada dessas notas.
54. Solução dos exercícios (1)
program soma_numeros;
Uses WinCrt;
var a,b,c,d,soma:integer;
begin
Writeln('Digite o primeiro número: ');
Read(a);
Writeln('Digite o segundo número: ');
Read(b);
Writeln('Digite o terceiro número: ');
Read(c);
Writeln('Digite o quarto número: ');
Read(d);
soma:=a+b+c+d;
Writeln('A soma é = ',soma);
end.
55. Solução dos exercícios (2)
program media_aritmetica;
uses WinCrt;
var a,b,c,media:real;
begin
Writeln('Digite a primeira nota: ');
Read(a);
Writeln('Digite a segunda nota: ');
Read(b);
Writeln('Digite a terceira nota: ');
Read(c);
media:=(a+b+c)/3;
Writeln('A media é = ',media:3:2);
end.
56. Solução dos exercícios (3)
program media_ponderada;
uses WinCrt;
var a,b,c,d,e,f,media:real;
begin
Writeln('Digite a primeira nota: ');
Read(a);
Writeln('Digite o peso da primeira nota: ');
Read(b);
Writeln('Digite a segunda nota: ');
Read(c);
Writeln('Digite o peso da segunda nota: ');
Read(d);
Writeln('Digite a terceira nota: ');
Read(e);
Writeln('Digite o peso da terceira nota: ');
Read(f);
media:=(a*b)+(c*d)+(e*f);
Writeln('A media é = ',media:3:2);
end.