Material V
1
Centro de Educação Profissional Diomício Freitas Curso: Técnico em Informática – Hab. em Programação Disciplina: Algoritmo e Lógica de Programação Professor: Oscar Pedro Neves Júnior
1. PROGRAMANDO COM PASCAL
1.1. ESTRUTURA DE UM PROGRAMA EM PASCAL Os programas terão a seguinte estrutura: PROGRAM <Nome do programa> ; <definições> BEGIN <Comandos> END. Onde: PROGRAM Indica início do programa. <Nome do Programa> É o nome dado ao programa, para distinguí-lo dos demais. Segue as mesmas regras para nome de variáveis. <definições> Local reservado para declarações de dados e construção de sub-programas. BEGIN Indica inicio da programação principal do programa. <Comandos> Comandos são as instruções que o computador deve executar, é a programação propriamente dita. END. Indica fim do programa. As informações colocadas entre os símbolos < > (menor e maior) são definidas pelo usuário, o restante, como exemplo Program, é fixo.
Algoritmo e Lógica em Computação Oscar Neves Júnior
Material V
2
Considerações:
O nome do programa pode ser qualquer palavra, desde que siga algumas regras básicas, que são: a) Não pode começar com números; b) Não pode ter espaços em branco; c) Não pode ter símbolos (+/*-...’), exceto o underline ou underscore; d) Não pode ser palavra reservada, pois estas são palavras exclusivas da linguagem, como Write, Read, Program, if, then, Else e outras mais. Após o nome devemos colocar ( ; ) que significa que a linha de comando terminou. Na próxima linha devemos colocar a palavra BEGIN que significa que o programa será iniciado. E por fim colocamos a palavra END que significa fim. Para terminarmos o programa colocamos ( . ) após o End.
1.2. ELEMENTOS BÁSICOS 1.2.1. Declaração de Variáveis Quando desejarmos utilizar variáveis em nosso programa, devemos antes cria-las. Em programação chamamos este processo de declaração de variáveis. Para declarar uma variável devemos colocar a palavra Var, o nome da variável e seu tipo de dado. Da seguinte forma:
PROGRAM <Nome do programa> ; Var NomeVariavel1 : tipo dado ; NomeVariavel 2 : tipo dado ; BEGIN <Comandos> END.
Algoritmo e Lógica em Computação Oscar Neves Júnior
Material V
3
Tipos de Variáveis O Pascal exige que no momento que formos trabalhar com variáveis, indiquemos o tipo de informação que uma variável pode conter, isto é, se uma dada posição de memória armazenará um número ou uma letra etc. Para isto, a linguagem Pascal possui definido alguns tipos que deverão ser usados quando formos trabalhar com variáveis. Alguns tipos são: Algoritmo a) Inteiro
Pascal a) INTEGER:
b) Real
b) REAL:
e) Caracter
e) CHAR:
d) Cadeia
f) STRING:
g) Lógica
g) BOOLEAN: c) WORD: d) BYTE: h) Shor Int i) LongInt j) Single l) Double
Descrição Representa números entre -32768 até +32767. ocupa 2 bytes na memória. Representa os números entre 2.9 x 10 -39 até 1.7 x 1038 . Ocupa 6 bytes na memória. Representa um dos caracteres, da tabela ASCII. Ocupa 1 byte na memória. Conjunto de caracteres ( CHAR ). Ocupa de 1 a 255 bytes na memória. Valor lógico. Assuma somente dois valores: TRUE(Verdade) ou FALSE(Falso). ocupa 1 byte na memória. Números de 0 até 65535. Ocupa 2 bytes na memória. Números de 0 até 255. Ocupa 1 byte na memória. Representa os números entre -128 até 128 . Ocupa 1 bytes na memória. Representa os números entre - 2.147.483.648 até 2.147.483.648 . Ocupa 4 bytes na memória. Representa os números entre 1.5 x 10 -45 até 3.4 x 1038 . Ocupa 4 bytes na memória. Representa os números entre 5 x 10 -324 até 1.7 x 10308 . Ocupa 8 bytes na memória.
Iremos gradativamente trabalhar com cada um destes tipos e mostrar as suas características.
1.2.2. Comando de Atribuição Quando definimos uma variável é natural atribuirmos a ela uma informação. Uma das formas de colocar um valor dentro de uma variável, conseqüentemente colocado este dado na memória do computador, é através da atribuição direta, do valor desejado que a variável armazena. Para isto utilizaremos o símbolo := , que significa: recebe, ou seja, a posição, de memória que uma variável representa, receberá uma informação, a qual será armazenada no interior desta variável. Por exemplo, se quiséssemos atribuir o valor 15 para a variável idade, João para a variável nome, valor lógico verdadeiro para a variável estudante, faria o programa da seguinte forma: Algoritmo e Lógica em Computação Oscar Neves Júnior
Material V
4
PROGRAM Estudante; Var Idade : Integer; Nome : String; Estudante : Boolean; BEGIN Idade := 15; Nome := ‘João’; Estudante := true; END. Quando foram declaradas a variável Idade, Nome e Estudante, o computador criou um espaço na memória com os respectivos nomes.
Idade
Nome
Estudante
???
???
???
Uma das formas de colocar valores nestas posições é através de atribuições. Segundo as atribuições feitas no programa acima, a memória seria composta da seguinte forma: Idade
Nome
Estudante
15
João
Verdadeiro
1.2.3. Comando de Entrada ( Read( ) ) O comando Read a é outra forma de colocarmos um valor dentro de uma variável. Esse comando possibilita o usuário digitar algo em tempo de execução. O comando Read deve ser utilizado sempre quando os valores a serem atribuídos não estiverem explícitos. Como por exemplo, se desejarmos fazer um programa para calcular a média de três valores, sabemos que o cálculo é sempre o mesmo, ou seja, somamos os três valores e dividimos pela quantidade de Algoritmo e Lógica em Computação Oscar Neves Júnior
5
Material V
valores, que é três. Mas os valores podem ser qualquer um, não são pré-definidos como o cálculo da média. Portanto, os três valores devem ser atribuídos pelo comando Read e o cálculo pelo comando de atribuição. O programa ficaria da seguinte forma: PROGRAM Calculo; Var N1, N2, N3, Media : Real ; Begin Readln (N1); Readln (N2); Readln (N3); Media := (N1 + N2 + N3) / 3; End. LN quer dizer Line New, ou seja, linha nova. Quando acrescentamos após o comando Read, estamos dizendo ao computador que após a digitação do usuário, o computador deve posicionar o cursor na linha que se encontra a baixo da digitação feita. Analisando o programa, o computador iria pedir para o usuário digitar três valores e após calcularia a média. N1
N2
10
15
N3 20
Media
10 15 20
15
A diferença entre o comando Read e o comando de atribuição, é que o comando de atribuição define o valor a ser atribuído a variável antes da execução, e o comando Read define o valor durante a execução do programa. 1.2.4. Comando do Saída ( Write( ) ) O comando de saída é utilizado para mostrar algo na tela, como uma mensagem ou conteúdo de uma variável. Tomando como base o exemplo do comando Read, podemos perceber que a apresentação na tela do computador, que é a única coisa que o usuário poderá ter acesso, ficou muito pouco informativa, tendo como base o que se desejava fazer. Ficaria melhor se colocar uma mensagem informando para o usuário o que ele deveria digitar e no final mostrar uma mensagem com o resultado do cálculo. Para isto, basta utilizar o comando write.
Algoritmo e Lógica em Computação Oscar Neves Júnior
6
Material V PROGRAM Calculo; Var N1, N2, N3, Media : Real; Begin Write (‘Digite N1:’); readln (N1); write (‘Digite N2:’); readln (N2); write (‘Digite N3:’); readln (N3); Media := (N1 + N2 + N3) / 3 Write (‘Média: ‘); Write ( Media ); End.
Write (‘Média : ‘, Media :0:2) N1 10
N2 15
Media Digite N1: 10 Digite N2: 15 Digite N3: 20 Média: 15
15
Algoritmo e Lógica em Computação Oscar Neves Júnior
N3 20
7
Material V
1.2.5. Comando de Condição ( IF – Then / Else) ) O comando de condição é utilizado para definir que seqüências, cálculos, mensagens, enfim que caminhos o computador deve seguir, baseado em regras. Por exemplo, ao digitar uma idade o computador deve informar se a pessoa é de maior ou de menor. A regra para ser de maior é ter 18 anos ou mais e, conseqüentemente, para ser de menor basta ter menos de 18 anos. PROGRAM verifica; Var Idade : byte; Begin Write (‘Digite a idade:’); readln (Idade); IF idade >= 18 THEN Write (‘maior de idade’) ELSE Write (‘menor de idade’); End.
Obs.: antes de ELSE não se usa ponto e virgula
Idade 25
Digite a idade: 25 maior de idade
Idade 15
Digite a idade: 15 menor de idade
O programa acima ainda poderia ser escrito das seguintes formas: Algoritmo e Lógica em Computação Oscar Neves Júnior
Material V PROGRAM verifica; Var Idade : byte; Begin Write (‘Digite a idade:’); readln (Idade); IF idade >= 18 THEN Write (‘maior de idade’); IF idade < 18 THEN Write (‘menor de idade’); End.
PROGRAM verifica; Var Idade : byte; Begin Write (‘Digite a idade:’); readln (Idade); IF idade >= 18 THEN Write (‘maior de idade’) ELSE IF idade < 18 THEN Write (‘menor de idade’); End.
8
Esta forma deixa o programa mais lento, pois mesmo que a idade seja maior do que 18, o computador irá verificar se a idade é menor que 18. o que pela lógica não é necessário
Esta forma é um pouquinho melhor que a anterior, mas não é a melhor forma de se resolver. Neste caso o computador irá verificar se a idade é maior do que 18, se for ele mostra a mensagem de maior idade e pronto. Entretanto, se não for maior de 18 anos, o computador irá verificar se a idade é menor do que18, o que é desnecessário, pois se a idade não é maior ou igual a 18 só pode ser menor.
*** O referido material sofreu alterações, porém deixo consignado o agradecimento a Prof. Adriana Zanini que cedeu gentilmente parte desta obra.
Algoritmo e Lógica em Computação Oscar Neves Júnior