PASCAL
Prof.ª Ms. Eng.ª Elaine Cecília GattoAlgoritmos e Estruturas de DadosEngenharia de ComputaçãoUniversidade Sagrado Coração
Parte do material contido nestes slides foi gentilmente cedido pelos Prof. Elvio Gilberto da Silva e pelo Prof. Patrick Pedreira
CONCEITOS BÁSICOS DE ALGORITMOS
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.
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).
PROCESSAMENTO DE DADOS
InformaçõesIniciais
Operações sobreas Informações
Resposta+
Dispositivosde Entrada
Memória (CPU)Dispositivode Saída
Portanto um computador tem duas partes diferentes que
trabalham juntas...
o hardware composto pelas
partes físicas.
o software composto pelos programas.
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.
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.
Portanto, um programa é a codificação de
um algoritmo em uma determinada
linguagem de programação (ASCENCIO,
1990).
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).
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).
AlgoritmosComputadores 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.
AlgoritmoAlgoritmo é uma seqüência de passos que deve ser executada para a
resolução de uma tarefa (ASCENCIO, 1999).Algoritmo para AcordarInício1.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.
Maneiras de se construir um algoritmo
Inicio1.Abrir olhos2.Levantar da cama3.Ir ao Banheiro4.Escovar Dentes5.Pentear Cabelo6.Trocar Roupa7.Tomar Café8.Arrumar Cama9.Sair de CasaFim
Início1.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.
Trocando a LâmpadaQuais os passos para se trocar uma Lâmpada?
Trocando a Lâmpada
• E se a Lâmpada estiver queimada?• Verificar se uma lâmpada está queimada e
caso ela esteja, trocá-la;
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
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
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
Fluxograma do Algoritmos Trocar Lâmpada
Início1. Pegar uma lâmpada nova2. Pegar uma escada3. Abrir a escada4. Subir na escada5. Remover a lâmpada6. Colocar a lâmpada novaFim.
Fluxograma do Algoritmo Trocar Lâmpada
Início1. Acionar O Interruptor2. Se a Lâmpada não acender
1. Pegar uma lâmpada nova2. Pegar uma escada3. Abrir a escada4. Subir na escada5. Remover a lâmpada6. Colocar a lâmpada nova
Fim.
Fluxograma do Algoritmo Trocar Lâmpada
Início1. Acionar O Interruptor2. Se a Lâmpada não acender
1. Pegar uma lâmpada nova2. Pegar uma escada3. Abrir a escada4. Subir na escada5. Remover a lâmpada6. Colocar a lâmpada nova7. Enquanto Lâmpada não Acender
1. Remover a Lâmpada queimada2. Colocar Lâmpada nova
Fim.
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.
Linguagens de Programação
• Possuem regras bem definidas• Comandos não tem ambiguidade• Exemplos:
• Pascal• C• C++• Java• C#
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
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
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).
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
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.
A unidade CRT/ WinCrt é obrigatória
em todos os programas, pois faz a
adequação do hardware com o seu programa.
Declaração de Variáveis em Pascal
INTEGER (para números inteiros) REAL (para números reais) CHAR (para um caractere) STRING (para vários caracteres) BOOLEAN (para verdadeiro ou falso)
As variáveis são declaradas após a palavra VAR e os tipos mais
utilizados são:
Exemplo
var x: integer;
y, z: real;
nome: string;
sexo: char;
teste: boolean;
Declaração de Variáveis em Pascal
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;
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:
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 RESERVADASRESERVADAS.
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
Palavras reservadas (continuação)...
CONST IF PACKED UNIT
CONSTRUCTOR IMPLEMENTATION PROCEDURE UNTIL
DESTRUCTOR IN PROGRAM USES
DIV INLINE RECORD VAR
DO INTERFACE REPEAT WHILE
DOWNTO LABEL SET WITH
ELSE MOD SHL XOR
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).
Exemplos
x := 4;
x := x + 2;
y := 2.5;
nome:=‘Aula’;
sexo := ‘F’;
teste := false;
Em PASCAL os caracteres literais são representados
entre apóstrofos simples e os números reais utilizam o ponto
como separador decimal.
Comando de Entrada em Pascal
O comando de entrada é utilizado para receber
dados digitados pelo usuário. Os dados recebidos são
armazenados em variáveis. Esse comando é
representado pela palavra READLN.
Sintaxe:
Readln(nome_da_variável);
Readln(nome_da_variável1, nome_da_variável2);
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 pelo usuário serão armazenados na variável NOME.
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);
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.
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.
Operadores e Funções Predefinidas em Pascal
OPERADOR FUNÇÃO
+ Somar
- Subtrair
* Multiplicar
/ Dividir
div Quociente inteiro
mod Resto da divisão
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
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.
Operadores e Funções Predefinidas em Pascal (continuação)...
OPERADOR FUNÇÃO
= Igual
<> Diferente
<= Menor igual
>= Maior igual
< Menor
> Maior
Operadores e Funções Predefinidas em Pascal (continuação)...
FUNÇÃO ARGUMENTO RESULTADO PASCAL
ex 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)
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.
ATENÇÃO: SINTAXE PARA FORMATAÇÃO
Variável:número total de casas:número de casas
decimais
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.
3. Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada dessas notas.
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.
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.
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.