Algoritmos - Pascal

56
PASCAL Prof.ª Ms. Eng.ª Elaine Cecília Gatto Algoritmos e Estruturas de Dados Engenharia de Computação Universidade Sagrado Coração Parte do material contido nestes slides foi gentilmente cedido pelos Prof. Elvio Gilberto da Silva e pelo Prof. Patrick Pedreira

description

Algoritmos - Pascal

Transcript of Algoritmos - Pascal

Page 1: Algoritmos - Pascal

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

Page 2: Algoritmos - Pascal

CONCEITOS BÁSICOS DE ALGORITMOS

Page 3: Algoritmos - Pascal

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.

Page 4: Algoritmos - Pascal

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).

Page 5: Algoritmos - Pascal

PROCESSAMENTO DE DADOS

InformaçõesIniciais

Operações sobreas Informações

Resposta+

Dispositivosde Entrada

Memória (CPU)Dispositivode Saída

Page 6: Algoritmos - Pascal

Portanto um computador tem duas partes diferentes que

trabalham juntas...

o hardware composto pelas

partes físicas.

o software composto pelos programas.

Page 7: Algoritmos - Pascal

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.

Page 8: Algoritmos - Pascal

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.

Page 9: Algoritmos - Pascal

Portanto, um programa é a codificação de

um algoritmo em uma determinada

linguagem de programação (ASCENCIO,

1990).

Page 10: Algoritmos - Pascal

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).

Page 11: Algoritmos - Pascal

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).

Page 12: Algoritmos - Pascal

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.

Page 13: Algoritmos - Pascal

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.

Page 14: Algoritmos - Pascal

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.

Page 15: Algoritmos - Pascal

Trocando a LâmpadaQuais os passos para se trocar uma Lâmpada?

Page 16: Algoritmos - Pascal

Trocando a Lâmpada

• E se a Lâmpada estiver queimada?• Verificar se uma lâmpada está queimada e

caso ela esteja, trocá-la;

Page 17: Algoritmos - Pascal

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

Page 18: Algoritmos - Pascal

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

Page 19: Algoritmos - Pascal

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

Page 20: Algoritmos - Pascal

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.

Page 21: Algoritmos - Pascal

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.

Page 22: Algoritmos - Pascal

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.

Page 23: Algoritmos - Pascal

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.

Page 24: Algoritmos - Pascal

Linguagens de Programação

• Possuem regras bem definidas• Comandos não tem ambiguidade• Exemplos:

• Pascal• C• C++• Java• C#

Page 25: Algoritmos - Pascal

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

Page 26: Algoritmos - Pascal

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

Page 27: Algoritmos - Pascal

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).

Page 28: Algoritmos - Pascal

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

Page 29: Algoritmos - Pascal

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.

Page 30: Algoritmos - Pascal

A unidade CRT/ WinCrt é obrigatória

em todos os programas, pois faz a

adequação do hardware com o seu programa.

Page 31: Algoritmos - Pascal

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:

Page 32: Algoritmos - Pascal

Exemplo

var x: integer;

y, z: real;

nome: string;

sexo: char;

teste: boolean;

Page 33: Algoritmos - Pascal

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:

Page 34: Algoritmos - Pascal

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.

Page 35: Algoritmos - Pascal

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

Page 36: Algoritmos - Pascal

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

Page 37: Algoritmos - Pascal

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).

Page 38: Algoritmos - Pascal

Exemplos

x := 4;

x := x + 2;

y := 2.5;

nome:=‘Aula’;

sexo := ‘F’;

teste := false;

Page 39: Algoritmos - Pascal

Em PASCAL os caracteres literais são representados

entre apóstrofos simples e os números reais utilizam o ponto

como separador decimal.

Page 40: Algoritmos - Pascal

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);

Page 41: Algoritmos - Pascal

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.

Page 42: Algoritmos - Pascal

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);

Page 43: Algoritmos - Pascal

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.

Page 44: Algoritmos - Pascal

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.

Page 45: Algoritmos - Pascal

Operadores e Funções Predefinidas em Pascal

OPERADOR FUNÇÃO

+ Somar

- Subtrair

* Multiplicar

/ Dividir

div Quociente inteiro

mod Resto da divisão

Page 46: Algoritmos - Pascal

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

Page 47: Algoritmos - Pascal

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.

Page 48: Algoritmos - Pascal

Operadores e Funções Predefinidas em Pascal (continuação)...

OPERADOR FUNÇÃO

= Igual

<> Diferente

<= Menor igual

>= Maior igual

< Menor

> Maior

Page 49: Algoritmos - Pascal

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)

Page 50: Algoritmos - Pascal

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.

Page 51: Algoritmos - Pascal

ATENÇÃO: SINTAXE PARA FORMATAÇÃO

Variável:número total de casas:número de casas

decimais

Page 52: Algoritmos - Pascal

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.

Page 53: Algoritmos - Pascal

3. Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média ponderada dessas notas.

Page 54: Algoritmos - Pascal

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.

Page 55: Algoritmos - Pascal

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.

Page 56: Algoritmos - Pascal

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.