(Parte 1 de 5)

PASCALI

Profa. Gilene E. S. Borges Gomes gilene@gomeshp.com http://www.gomeshp.com

1º semestre / 2004

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com
1. INTRODUÇÃO AO PASCAL3
1.A. EXERCÍCIOS ( INTRODUÇÃO )5
2. COMANDOS DE ATRIBUIÇÃO / ENTRADA E SAÍDA ( READ / WRITE )6
2.A. EXERCÍCIOS ( READ / WRITE )8
3. COMANDO DE ALTERNATIVA SIMPLES E COMPOSTA ( IFTHEN .. ELSE )...........10
3.A. EXERCÍCIOS ( IFTHEN .. ELSE )................................................................................................12
4. COMANDO DE MÚLTIPLA ESCOLHA ( CASE )14
4.A. EXERCÍCIOS ( CASE )16
5. REPETIÇÃO C/ TESTE NO INÍCIO ( WHILE )17
5.A. EXERCÍCIOS ( WHILE )20
6. REPETIÇÃO C/ TESTE NO FINAL ( REPEATUNTIL ).....................................................24
6.A. EXERCÍCIOS ( REPEATUNTIL ).................................................................................................27
7. REPETIÇÃO C/ VARIÁVEL DE CONTROLE ( FORTO / DOWNTO .. DO ).................30
7.A. EXERCÍCIOS ( FORTO / DOWNTO .. DO )...................................................................................32
8. BIBLIOGRAFIA36
9. ANEXO A - UNIDADES PREDEFNIDAS37
9.A. EXERCÍCIOS ( ANEXO A )41
10. ANEXO B - MENUS E ERROS42
10.A. EXERCÍCIOS ( ANEXO B )49
1. ANEXO C - RESUMO DAS TECLAS UTILIZADAS NO TP 7.052

Índice 1.A. EXERCÍCIOS ( ANEXO C )........................................................................................................53

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

PASCAL é uma linguagem de programação desenvolvida por volta de 1968 a 1970 pelo professor Niklaus Wirth.

O TURBO PASCAL é um ambiente integrado de desenvolvimento. A sua primeira versão data do início dos anos 80, nesta época implementada para os equipamentos de 8 bits. Desde então tem sido aprimorado continuamente, tanto para facilitar o seu uso pelo usuário quanto para incorporar novas técnicas e recursos na linguagem de programação.

O TURBO PASCAL não se trata apenas de um compilador, mas de um Ambiente Integrado, pois inclui um Editor de Programas, um Compilador, um Link-editor, o Executor de Programas e um Depurador, descritos a seguir:

9 Editor de Programas – um software cuja finalidade é facilitar a criação, edição e gravação do código-fonte1 dos programas.

9 Compilador – um programa que lê as instruções escritas numa linguagem de programação legível pelas pessoas (Ex.: Pascal), e as traduz num programa executável que o computador consegue entender e processar diretamente. O Compilador analisa o texto do programa e fornece a descrição e localização dos erros de sintaxe porventura existentes.

9 Link-editor – combina programas separados e padroniza as chamadas ou referências dentro delas.

9 Executor de programas – processa as instruções de um programa.

9 Depurador – utilitário normalmente incluído em compiladores ou interpretadores2 com a finalidade de ajudar os programadores a identificar e corrigir erros de lógica que possam existir no código-fonte.

ESTRUTURA DE UM PROGRAMA PASCAL – um programa escrito em PASCAL deve sempre ser iniciado com a palavra reservada Program, seguida por um cabeçalho, um ponto e vírgula (;), um bloco3, e terminado com um ponto final (.):

end{ fim do bloco }

Program cabeçalho ; declarações; begin { início de um bloco } seqüência de comandos;

1 Nas linguagens de programação de alto nível, o programa na forma como as pessoas o escrevem e lêem, antes que seja compilado ou interpretado. 2 Tradutor de uma linguagem de programação de alto nível, que converte as suas instruções para a linguagem de máquina mas não cria uma versão executável dos programas; os interpretadores traduzem e executam os programas ao mesmo tempo. 3 Um bloco de comandos é formado por declarações, begin, seqüência de comandos e end.

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

Comentário – é usado para aumentar a clareza de um programa, embora não seja analisado pelo computador. Um comentário deve ser escrito entre chaves:

{ comentário }

Declarações – todas as constantes4, tipos e variáveis5 e declarados num bloco, devem estar incluídas em uma declaração da forma:

const identificador : tipo = valor; { constantes }

type identificador = tipo; { tipos }

var lista-de-identificadores : tipo; { variáveis } identificador – é formado por uma única letra ou então por uma letra seguida de letras ou dígitos, em qualquer número. Ou seja, são os nomes atribuídos às variáveis. lista-de-identificadores - são os identificadores das variáveis, separados por vírgula (,). tipo – é o tipo das variáveis, ou seja, é o conjunto ordenado de valores que podem ser atribuídos a estas variáveis. São eles: integer (inteiro), real (real), boolean (lógico), char (um único caracter), string (seqüência de caracteres).

Exemplos: const zero : integer = 0; pi = 3.1416; type estacao = (Verao, Outono, Inverno, Primavera); diautil = (Seg, Ter, Qua, Qui, Sex); nota = 0..10; var x, y : real; cor : string; { Define uma string com 255 posições } mes : string [50]; { Define uma string com 50 posições } dia : diautil; est : estacao;

UNIT – Uma unidade é uma coleção de declarações de constantes, tipos, variáveis, funções e procedimentos, compilada separadamente. Algumas destas declarações são de uso interno da unidade, enquanto outras são visíveis, isto é, podem ser usadas por programas ou outras unidades.

USES – A cláusula uses permite que uma unidade faça uso de outras unidades. Para usar uma ou mais unidades, um programa deve conter a cláusula uses antes das declarações de variáveis.

4 Constante é um tipo especial de variável, a qual não terá seu conteúdo modificado durante toda a execução de um programa, ou seja, seu valor é fixo. 5 Podemos imaginar uma variável como o nome de um local onde se pode colocar qualquer valor do conjunto de valores possíveis do tipo básico associado.

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

UNIDADES PREDEFINIDAS – O TURBO PASCAL possui diversas unidades predefinidas: System, Printer, Crt, Dos, Overlay e Graph são as principais. Os identificadores usados nestas unidades geralmente são formados por palavras compostas em inglês que lembram seu significado. Mais detalhes podem ser encontrados no anexo A.

1.A. Exercícios ( Introdução ) 1. O que é Turbo Pascal? O que ele possui?

2. Qual é a estrutura completa de um programa Pascal? 3. O que é uma unidade? Cite e resuma as principais unidades predefinidas pelo Turbo Pascal.

4. Qual é a diferença entre uma variável e uma constante?

5. Considerando A, B, C variáveis reais, contendo os valores 1.0, 4.5, 8.0, respectivamente; Nome e

Cor, as variáveis literais, contendo as seqüências de caracteres ‘Tania’ e ‘branco’, respectivamente; e Teste, variável lógica, contendo o valor True determinar o valor das expressões lógicas:

a) ( A = 1.0 ) and Teste b) ( Nome = ‘Pedro’ ) or ( Cor < > ‘branco’ ) c) not Teste and ( B * 2.0 – C = 0.0 ) d) ( C < 10 ) or Teste and ( Cor = ‘preto’ ) e) Teste and not Teste

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

2. Comandos de atribuição / entrada e saída ( read / write )

No comando de atribuição, o identificador (variável) e a expressão devem ser do mesmo tipo, exceto no caso em que a variável é real, quando a expressão pode ser inteira, sendo, então, o valor inteiro da expressão transformado em real. O comando de atribuição {:=} permite que o valor em expressão seja atribuído ao identificador.

A instrução de atribuição (:=) é assim definida: identificador := expressão;

Para solicitar uma entrada de dados ao usuário, deve-se utilizar o comando read ou readln. Normalmente, o periférico utilizado é o teclado.

A instrução de entrada é assim definida:

read (lista-de-identificadores); readln (lista-de-identificadores);

A diferença entre esses dois comandos é que o readln, após a leitura dos valores, correspondentes à lista-de-identificadores, provoca uma mudança de linha na unidade de entrada.

Para mostrar uma saída de dados ao usuário, deve-se utilizar o comando write ou writeln. Normalmente, o periférico utilizado é o vídeo.

A instrução de saída é assim definida:

write (lista-de-identificadores e/ou constantes e/ou expressões); writeln (lista-de-identificadores e/ou constantes e/ou expressões);

A diferença entre esses dois comandos é que o writeln, após a escrita dos valores, correspondentes à lista-de-identificadores, provoca uma mudança de linha na unidade de saída.

O comando writeln sem parâmetros faz com que o cursor salte uma linha.

evita alguns pequenos problemas de entrada de dados

Em particular,, a instrução read deverá ser mmeenncciioonnadda com ass lleettrrass ln,, pois isto lnread

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

Exemplo: Fazer um programa para ler três notas e mostrar a média aritmética. Coloque o fundo de tela em azul e as letras em vermelho.

Program Lista02a; uses crt; var n1, n2, n3, md : real; begin textbackground (Blue); clrscr; textcolor (Red); write (‘Digite a 1a nota: ‘); readln (n1); write (‘Digite a 2a nota: ‘); readln (n2); write (‘Digite a 3a nota: ‘); readln (n3); md := (n1 + n2 + n3) / 3; writeln (‘Media: ‘, md:2:2); readkey; end.

Mostrando variáveis do tipo real Utilize a seguinte formatação: writeln (variavel:qe:qc); variavel - deve ser do tipo real; qe - indica a quantidade de espaços a serem utilizados para mostrar o valor, inclusive vírgula; qc - indica a quantidade de casas decimais depois da vírgula.

Exemplo:

vr := 36.5; write (vr:5:2); saída 36.50 vr := 1.2; write (vr:7:3); saída 1.200

Existirão dois espaços em branco antes do valor 1,2.

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

2.A. Exercícios ( read / write )

varbegin
Num : integer;Num := 5;
Soma, X : real;X := 2;
Simbolo : char;Cod := True;
Nome, Cor, Dia : string;Soma := 5;
Cod, Teste, Tudo : boolean;Nome := ‘SQL’;

1. Considerando as declarações e as atribuições abaixo: end.

( ) Simbolo := 5;( ) X := X + 1;
( ) Soma := Num + 2 * X;( ) Num := ‘*ABC*’;
( ) Tudo := Soma;( ) Soma + 2 := Sqr ( X ) – Sqrt ( Num );

Assinalar os comandos de atribuição não permitidos: ( ) Teste := Cod or ( Sqr ( X ) < > Soma ); ( ) Dia := ‘Segunda’; ( ) Cor := ‘preto’- Sqr ( X ); ( ) X := Nome >= Cod;

2. Com as mesmas declarações do exercício 1, quais serão os valores armazenados em Soma, Nome e Tudo, supondo-se que Num, X, Dia, Teste e Cod valham, respectivamente, 5, 2.5, ‘terca’, false e true? a) Nome := Dia; b) Soma := Sqr ( Num ) / X + Round ( X + 1 ); c) Tudo := not Teste or Cod and ( Soma < X );

b) a parte fracionáriad) o valor arredondado

3. Fazer um programa para ler um valor real e mostrar: a) o valor absoluto c) a parte inteira

4. Fazer um programa para ler uma frase e mostrar: a) o tamanho da frase b) a 1ª posição que ocorre a letra ‘A’ na frase c) os dez primeiros caracteres da frase d) os cinco últimos caracteres da frase

5. Escrever um programa para ler os valores dos catetos (b e c) de um triângulo e mostrar qual é o valor da hipotenusa (a) desse triângulo. Regra: a2 = b2 + c2, isole a variável A.

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

6. Fazer um programa para ler dois números quaisquer e mostrar a soma, a diferença, o produto e o quociente entre os dois números lidos. O fundo da tela deve estar em azul, a entrada de dados de Amarelo e a saída de dados em vermelho claro. Utilize sempre a coluna 10.

7. Fazer um programa para ler quatro valores, calcular e mostrar a média ponderada para pesos 1, 2, 3 e 4, respectivamente. Regra: multiplique cada nota pelo seu peso, some os produtos e divida o resultado pela soma dos pesos.

8. Fazer um programa para ler um número real positivo e mostrar seu quadrado e sua raiz quadrada.

9. Fazer um programa para ler o valor do lado de um quadrado e mostrar sua área ( area = lado2 ) e seu perímetro ( perimetro = 4 . lado ).

10. Fazer um programa para ler os valores da base e altura de um retângulo e mostrar seu perímetro ( perimetro = 2 ( base + altura ) ) e sua área ( area = base . altura ).

1. Fazer um programa para ler o valor do lado de um cubo e mostrar sua área ( area = 6 . lado2 ) e seu volume ( volume = lado3 ).

12. Fazer um programa para ler duas notas e seus respectivos pesos. Calcular e mostrar a média ponderada.

13. DESAFIO: Fazer um programa para receber como entrada um número inteiro de quatro algarismos e fornecer como saída os algarismos do número dado, separando os algarismos das unidades, dezenas, centenas e milhar. Sugestão 1: para milhar obtenha a divisão inteira do número por 1000; para centena obtenha a divisão inteira do resto da divisão inteira anterior por 100; e assim por diante. Sugestão 2: transforme o número em string e obtenha cada número desejado.

Ex.: Dado o número 5834, deseja-se a saída

Número dado : 5834 unidade : 4 dezena : 3 centena : 8 milhar : 5

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com
3. Comando de alternativa simples e composta ( ifthen .. else )

A instrução if tem por finalidade tomar uma decisão e efetuar um desvio no processamento, dependendo, é claro, da condição atribuída ser Verdadeira ou Falsa.

deverão estar mencionadas dentro de um bloco (definido com o uso das instruções begin e end)

Sendo a condição Verdadeira, será executada a instrução que estiver escrita após a instrução then. Caso seja necessário executar mais de uma instrução para uma condição verdadeira, estas

mencionadas dentro de um bloco

Sendo a condição Falsa, será executada a instrução que estiver escrita após a instrução else. Se não existir a instrução else, será executada a instrução definida após a instrução then. Caso seja necessário executar mais de uma instrução para uma condição falsa, estas deverão também estar

if condição
then C1;{ único comando }

Alternativa simples if condição then begin { mais de um comando é necessário }

C1; { begin e end }
C2;

end;

if condição
then C1

Alternativa composta else Ca; if condição then begin

C2; end else begin

Cb; end;

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com

Exemplo: Fazer um programa para ler um número e mostrar se é igual a zero, positivo ou negativo. O fundo de tela deve estar em azul e as letras em amarelo.

Program Lista03a; uses crt; var num : real; begin textbackground (Blue); clrscr; textcolor (Yellow); write (‘Digite um numero: ‘); readln (num); if num = 0 then writeln (‘Igual a zero.‘) else if num > 0 then writeln (‘Numero positivo.‘) else writeln (‘Numero negativo.‘); readkey; end.

Exemplo: Fazer um programa para ler duas notas, calcular e mostrar a média e mostrar também se o aluno foi: reprovado (média inferior a 5.0); aprovado (média igual ou superior a 7.0); indicado para 3ª avaliação (média entre 5.0 e 6.9). O fundo de tela deve estar em cinza e as letras em azul.

Program Lista03b; uses crt; var not1, not2, med : real; begin textbackground (LightGray); clrscr; textcolor (Blue); writeln; writeln; write ('Digite 1a. nota: '); readln (not1); write ('Digite 2a. nota: '); readln (not2); writeln; writeln; med := (not1 + not2) / 2; write ('Media: ',med:5:2); if med < 5 then writeln (' - Aluno(a) reprovado(a).') else if med >= 7 then writeln (' - Aluno(a) aprovado(a).') else writeln (' - Aluno(a) indicado(a) para 3a. avaliação.'); readkey; end.

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com
3.A. Exercícios ( ifthen .. else )

1. Elaborar um programa para ler um número inteiro e informar se ele é par ou ímpar. Regra: o número é par, se o resto da divisão do número por 2 for igual a 0. Se o número for par mostrar em azul, se for ímpar mostrar em vermelho; o fundo da tela deve estar cinza.

2. Criar um programa para ler um número e informar se ele é divisível por três ou não na cor azul.

3. Fazer um programa para ler três valores inteiros, determinar e mostrar o menor deles na linha 16, coluna 10. Suponha que os valores são diferentes.

4. Criar um programa para ler a letra inicial do sexo de uma pessoa e mostrar a descrição: Masculino, Feminino ou Inválido. Utilize a cor vermelha.

5. Escrever um programa para ler dois números quaisquer e mostrar uma mensagem indicando se são iguais ou qual deles é o maior. Mostre a mensagem na linha 20, coluna 15.

6. Fazer um programa para ler a letra inicial do estado civil de uma pessoa e mostrar a descrição de acordo com a tabela abaixo: C – Casado(a) S – Solteiro(a) V – Viúvo(a) Q – Desquitado(a) D – Divorciado(a) qualquer outra letra – Inválido

Código Descrição .
1 até 100 Grupo 1

7. Elaborar um programa para ler um código e mostrar a descrição correspondente de acordo com a tabela apresentada a seguir: 101 até 1000 Grupo 2 maior que 1000 Grupo 3 outro Código inválido

8. Fazer um programa para ler três números e informe o maior e o menor. Suponha que os números são diferentes. Utilize cores diferentes. Mostre as mensagens na coluna 15.

9. Construir um programa para ler os coeficientes a, b e c de uma equação de segundo grau e calcular o delta. O programa deve mostrar o valor de delta e se o delta for negativo, a mensagem “A equação não tem solução real”. Regra: ∆ = b2 – 4ac.

APOSTILA DE PASCAL I _ Gilene Borges Gomes _

_ http://w.gomeshp.com
0,1 a 2,9: I (inferior) 0 :SR (sem rendimento).

10. Uma faculdade atribui menções aos alunos conforme a faixa de notas que tenha atingido: 9,0 a 10: S (superior) 7,0 a 8,9: MS (médio superior) 5, 0 a 6,9: M (médio) 3,0 a 4,9: MI (médio inferior) Elaborar um programa para ler a nota e informar a menção.

(Parte 1 de 5)

Comentários