





























































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Apostila básica de pascal
Tipologia: Notas de estudo
1 / 69
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Agosto / 2003
1. INTRODUÇÃO
Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado , isto é, que seja transcrito para uma linguagem que o com- putador possa entender, direta ou indiretamente.
Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado interpretável. Por- tanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo comp utador.
Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos números 0 e 1 (sistema biná- rio), que representam impulsos elétricos, ausente e presente.
Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa).
Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina.
Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador.
COMPILADOR - traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equiva- lente escrito em linguagem de máquina (programa-objeto).
INTERPRETADOR - traduz e envia para execução, instrução por instrução e o programa permanece na forma fonte.
Exemplos de linguagens de programação: PASCAL, C, CLIPPER, COBOL, HTML, JAVA, etc.
P1.01. Defina, com suas palavras, os seguintes termos: a) programa b) linguagem de programação c) tradutor P1.02. Qual a diferença entre linguagem de baixo nível e linguagem de alto nível? P1.03. Explique a diferença entre compilador e interpretador.
2. A LINGUAGEM PASCAL
A linguagem de programação PASCAL foi criada para ser uma ferramenta educacional, isto no início da década de 70 pelo Prof. Niklaus Wirth da Universidade de Zurique. Foi batizada pelo seu idealizador em homenagem ao grande ma- temático Blaise Pascal, inventor de uma das primeiras máquinas lógicas conhecidas. Foi baseada em algumas lingua- gens estruturadas existentes na época, ALGOL e PLI.
Apesar de seu propósito inicial, o PASCAL começou a ser utilizado por programadores de outras linguagens, tornando- se, para surpresa do próprio Niklaus, um produto comercial. Contudo, somente ao final de 1983 foi que a empresa ame- ricana Borland International lançou o TURBO PASCAL.
O TURBO PASCAL é um programa que contém, além do compilador PASCAL, um ambiente completo de programa- ção, com editor de programa, depurador de erros, sistema de ajuda, etc.
Estudaremos, a seguir, os itens fundamentais que compõe a linguagem PASCAL.
Sabe-se da Matemática que uma variável é a representação simbólica dos elementos de um certo conjunto.
Nos programas destinados a resolver um problema no computador, a cada variável corresponde uma posição de me- mória, cujo conteúdo pode variar ao longo do tempo durante a execução de um programa. Embora a variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.
Toda variável é identificada por um nome ou identificador. Assim, por exemplo, num programa para calcular a área de um triângulo retângulo pelo teorema de Pitágoras (a^2 = b^2 + c^2 ), os identificadores A, B e C podem representar as posi- ções de memória que armazenam o valor da hipotenusa e dos catetos.
São nomes escolhidos para representar constantes, variáveis, tipos, funções, procedimentos, unidades, programas e campos de um registro. Para definirmos um identificador, devemos observar o seguinte:
As palavras reservadas da linguagem Pascal são as seguintes:
P2.01. Escreva o tipo de dado ideal para se representar as seguintes informações:
a) O número da conta bancária
b) A altura de uma pessoa em metros
c) A placa de um veículo
d) O número de filhos de uma pessoa
e) A população de um país
f) A cor de um objeto
P2.02. Defina variável.
P2.03. O que são identificadores?
P2.04. Quais as regras básicas para a formação de identificadores?
P2.05. Assinalar os identificadores inválidos, justificando. a) A1BC b) XA1D c) XA,1d d) NomeDoAluno e) 198aberto f) OK g) TO.begin
P2.06. Quais os tipos de dados simples existentes na linguagem Pascal?
P2.07. Quais os tipos de dados estruturados existentes na linguagem Pascal?
P2.08. Quais os valores possíveis em um dado do tipo Boolean?
P2.09. O que é uma string?
P2.10. Qual o tamanho máximo de uma string?
P2.11. Identificar os tipos dos seguintes dados:
a) 'Processamento de Dados'
b) 0.
c) '4.5E10'
d) TRUE
e) '?'
f) ' '
g) -5.3E-
h) '.05'
i) 'FALSE'
j) 0
3. EXPRESSÕES
A seguir, relacionamos os operadores aritméticos, relacionais e lógicos do Pascal, como também as funções predefini- das da linguagem.
Operador Operação Operandos Resultado
Expressão Resultado 1 + 2 3 5.0 - 1 4. 2 * 1.5 3. 5 / 2 2. 5 DIV 2 2 5 MOD 2 1
Função Finalidade Tipo do argumento Tipo do resultado ABS(X) Valor Absoluto Integer, Real o mesmo do argumento FRAC(X) Parte Fracionária Real Real TRUNC(X) Parte Inteira Real Integer ROUND(X) Valor Arredondado Real Integer SQR(X) Eleva ao quadrado Integer, Real o mesmo do argumento SQRT(X) Raiz quadrada Integer, Real Real LN(X) Logaritmo Natural Real Real EXP(X) Exponencial Real Real
Como não existe em Pascal um operador nem uma função específica para a operação de Potenciação, podemos conse- guí-la utilizando as funções LN(X) e EXP(X). Para calcular o valor de XN^ é suficiente usar:
Expressão Resultado ABS(-2.5) 2. ABS(8) 8 FRAC(5.234) 0. TRUNC(2.78) 2 ROUND(2.78) 3 SQR(2) 4 SQR(1.5) 2. SQRT(4) 2. SQRT(2.25) 1. EXP(LN(2)*3) 8
P3.01. O que são expressões aritméticas?
P3.02. Qual o resultado das expressões aritméticas abaixo, sabendo-se que os valores de X, Y e Z são, respectivamen- te, 1, 2 e 5? a) Z mod Y div Y b) X + Y + Z / 3 c) FRAC( X / Z) + ROUND(Z / y) * TRUNC(Z / Y) d) SQRT( Z div Y + X * Y) e) Z - ABS(X - SQR(Y))
P3.03. O que são Funções Predefinidas?
P3.04. Escreva o resultado das seguintes funções:
a) ABS(-4) b) ABS(5.2) c) FRAC(23.0) d) FRAC(-3.1) e) TRUNC(1.8) f) TRUNC(2.2) g) ROUND(1.8) h) ROUND(2.2) i) SQR(1.0) j) SQR(10) k) SQRT(25) l) SQRT(9.0)
P3.05. Escreva a expressão para se calcular o valor de 2^5.
P3.06. Preencha a Tabela Verdade abaixo:
A B A and B A or B not A Not B TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE
P3.07. Escreva o resultado das seguintes comparações:
a) 1 <> 1. b) 'abc' > 'ABC' c) ' ' = ' ' d) FALSE = FALSE e) TRUE <> TRUE f) 'JOSE' > 'JOSEFINA' g) '50' < '100'
P3.08. Qual o resultado das expressões lógicas abaixo, sabendo-se que os valores de A e B são, respectivamente, TRUE e FALSE? a) not A and B or A and not B b) not (not (A or B) and (A or B)) c) A or B and not A or not B d) (A or B) and (not A or not B)
4. FORMATO DE UM PROGRAMA PASCAL
Pascal é uma linguagem altamente estruturada que possui uma rigidez definida, embora sua estrutura de programa seja flexível. Cada seção ou parte de um programa em Pascal deve aparecer numa seqüência apropriada e ser sistematica- mente correta, senão ocorrerá um erro.
Por outro lado, no Pascal não há regras específicas para o uso de espaço, linhas quebradas, requisições e assim os co- mandos podem ser escritos no formato livre em quase todos os estilos em que o programador deseja utilizar.
Um programa escrito em Pascal tem o seguinte formato:
PROGRAM
O
Observação: no Turbo Pascal, a cláusula PROGRAM, bem como a seqüência correta das declarações, não são obriga- tórios.
Um programa Pascal pode fazer uso de algumas unidades padrão que estão disponíveis no Sistema Turbo, tais como: CRT, DOS, PRINTER, GRAPH, etc.
A área de declaração de uso de unidades possui o seguinte formato:
USES
Serve para associarmos nomes às constantes utilizadas no programa. Possui o seguinte formato:
CONST
program REAJUSTE_SALARIO; {Finalidade: Calc. o reajuste de um salario em 20%}
uses Crt; {unidade que contém os comandos de tela}
const IND = 0.20; {indice do reajuste}
var SAL_ATUAL {salario atual}, SAL_NOVO {novo salario}, AUMENTO {valor do aumento} : Real;
begin
clrscr; {limpa a tela}
{leitura do salario atual} write('Digite o salario atual: '); readln(SAL_ATUAL);
{calculo do reajuste} AUMENTO := SAL_ATUAL * IND; SAL_NOVO := SAL_ATUAL + AUMENTO;
{exibicao do resultado} writeln('Novo Salario = ',SAL_NOVO:10:2); readkey;
end.
P4.01. Qual o formato básico de um programa Pascal?
P4.02. Quais as áreas que podem existir em um bloco do Pascal? Qual delas é obrigatória?
P4.03. Qual a finalidade de declararmos uma variável?
P4.04. Qual a finalidade de um comentário dentro de um programa? Como deve ser escrito em Pascal?
P4.05. Dê um exemplo para cada uma das áreas abaixo:
a) Declaração de Uso de Unidades
b) Declaração de Constantes
c) Declaração de Variáveis
P4.06. Escreva os comandos necessários para declarar:
a) uma variável que receba uma frase qualquer
b) três variáveis que recebam as 3 notas de um aluno
c) uma variável que receba a idade de uma pessoa
5. COMANDOS BÁSICOS
A operação de atribuição permite que se forneça um valor a uma certa variável. Se for atribuído uma expressão à variá- vel, será armazenado o resultado daquela expressão. Se for atribuído uma outra variável, será armazenado o conteúdo daquela variável. Para a operação de atribuição, utilizaremos a seguinte sintaxe:
O comando de atribuição tem a forma:
Exemplos: A := 2 NOME := 'João' A := B + C B := A SENHA := 'Y9' NOTA := NOTA – 1 NOTA := 10 C := 1 / 3 X := 2.
No comando de atribuição, a variável e a expressão devem ser do mesmo tipo, exceto nos seguintes casos: a) a variável sendo real , a expressão pode ser integer b) a variável sendo string , a expressão pode ser char
Exemplos: Var I : Integer; R : Real; S : String; C : Char; Begin I := 5; R := I; C := 'A'; S := C End.
Um comando de entrada serve para que o programa solicite dados no momento em que o mesmo está sendo executado. Esses dados fornecidos serão armazenados em variáveis na memória. Em geral a unidade de entrada é o teclado, poden- do também ser uma memória auxiliar como o winchester.
Considerando a unidade de entrada padrão, o teclado, o comando seria:
READ (<identificador-1>,...<identificador-n>) ou READLN (<identificador-1>,...,<identificador-n>)
Com READ o cursor permanece na mesma linha após a execução do comando; com o READLN o cursor muda para a próxima linha.
Observação: No Turbo Pascal, o comando READ só deve ser utilizado para a leitura de arquivos. Portanto, para a leitura de variáveis, devemos sempre utilizar o comando READLN.
1) Se o programa deve solicitar as três notas de um aluno, teríamos:
readln (NOTA1,NOTA2,NOTA3); ...
No momento da execução do comando acima, o programa mostra a tela do usuário e o cursor aparece esperando a digi- tação dos três valores que deve ser separada por, pelo menos, um espaço em branco.
P5.01. Exemplifique o uso dos comandos de Atribuição, Entrada e Saída.
P5.02. Qual a diferença entre os comandos WRITE e WRITELN?
P5.03. Como podemos direcionar a saída de um programa para a impressora? Dê exe mplos.
P5.04. Como podemos orientar o usuário na digitação dos dados? Exemplifique.
P5.05. Escreva os comandos necessários para ler: a) as 3 notas de um aluno b) o nome, o peso e altura de uma pessoa
P5.06. Escreva os comandos necessários para exibir: a) o conteúdo da variável X b) o resultado da expressão 2+
P5.07. Determine os valore finais de A, B e C após a execução do trecho do programa abaixo:
P5.08. A ordem das atribuições é importante? A:=B e C:=A tem o mesmo efeito de C:=A e A:=B?
P5.09. Em quais dos seguintes pares é importante a ordem dos comandos?
a) X := Y b) X := Y c) X := Z d) Z := Y Y := X Z := X X := Y X := Y
P5.10. Escreva um programa que leia um número inteiro positivo e exiba o dobro do mesmo.
P5.11. Escreva um programa para calcular a área de um triângulo, sendo dados a sua base e a sua altura.
P5.12. Escreva um programa para calcular e exibir o comprimento de uma circunferência, sendo dado o valor de seu raio.
P5.13. Escreva um programa para ler uma temp eratura dada na escala Fahrenheit e exibir o equivalente em Celsius.
( 32 )
P5.14. Escreva um programa para calcular e exibir a média ponderada de duas notas dadas. ( nota1 = peso 6 e nota2 = peso 4 )
P5.15. Escreva um programa que leia duas variáveis inteiras e troque o conteúdo entre elas.
P5.16. Escreva um programa para calcular e exibir o valor de xy, sendo dados a base (x) e o expoente (y).
P5.17. Escreva um programa para ler o nome e o sobrenome de uma pessoa e escrevê-los na seguinte forma: sobre- nome seguido por uma vírgula e pelo nome.
Exemplo: entrada: "Antonio","Soares" saída: Soares, Antonio
C = 2 π R
6. ESTRUTURAS DE DECISÃO
As estruturas de decisão (condicionais) são utilizadas para tomar uma decisão baseada no resultado da avaliação de uma condição de controle e seleciona uma ou mais ações possíveis (comandos) para serem executados pelo computador.
No Pascal, existem três tipos de estrutura de decisão: O comando IF, que pode ser utilizado de duas formas: simples ou composto; e o comando CASE, que é utilizado para uma decisão seletiva.
O comando IF é equivalente ao comando SE da linguagem algorítmica, e deve ser utilizada da seguinte forma:
IF <condição> THEN
Neste caso, se a <condição> resultar no valor TRUE, será executado o
A <condição> deve ser uma expressão lógica. O
program EXEMPLO_DE_IF_THEN; {Ler um número inteiro e exibí-lo se for positivo} var N : integer;
begin readln(N); if N > 0 then writeln(N) end.
No exemplo acima, o comando WRITE só será executado se a condição N>0 for verdadeira. Caso contrário, nenhuma ação será executada.
program EXEMPLO_DE_IF_THEN_ELSE; {Lê um número e determinar se é maior que zero ou não} var N : integer;
begin readln(N); if N > 0 then writeln (N,' é maior que zero' ) else writeln (N,' não é maior que zero') end.
Neste exemplo, a mensagem que será exibida dependerá do resultado da expressão lógica N>0. Se for verdadeira, será executado o comando WRITE que sucede a palavra THEN. Caso contrário, será executado o WRITE que sucede a palavra ELSE. Em nenhuma hipótese serão executados os dois comandos.
program EXEMPLO_DE_DECISAO_MÚLTIPLA; {Simulador de uma calculadora básica de números inteiros} uses CRT; var X,Y : integer; OP : char; begin clrscr; write('Digite os operandos: '); readln(X,Y); write('Digite o operador: '); readln(OP); case OP of '+' : writeln(X + Y); '-' : writeln(X - Y); '*','x','X' : writeln(X * Y); '/' : writeln(X div Y); else writeln('operação inválida'); end {case}; readkey; end.
Neste exemplo, a mensagem que será exibida dependerá do conteúdo da variável OP. Se for igual a uma das constantes especificadas, será executado o comando WRITELN correspondente. Se nenhuma constante for igual ao conteúdo de OP, será executado o WRITELN do ELSE.
Podemos também escrever o mesmo programa acima sem utilizar a estrutura CASE, apenas utilizando IF's aninhados.
program EXEMPLO_DE_DECISAO_MÚLTIPLA_2; {Simulador de uma calculadora básica de números inteiros} uses CRT; var X,Y : integer; OP : char; begin clrscr; write('Digite os operandos: '); readln(X,Y); write('Digite o operador: '); readln(OP); if OP='+' then writeln(X + Y) else if OP='-' then writeln(X - Y) else if (OP='*') or (OP='x') or (OP='X') then writeln(X * Y) else if OP='/' then writeln(X div Y) else writeln('op.inválida'); readkey; end.
P6.01. Qual a utilidade da estrutura de decisão?
P6.02. Qual a diferença entre a estrutura de decisão simples e a composta?
P6.03. Quais são os comandos de decisão existentes no Pascal?
P6.04. Em que situações é mais indicado o uso da estrutura CASE-OF? Quando não podemos utilizá-la?
P6.05. Os comandos (i) e (ii) são equivalentes? Explique sua resposta.
(i) A := B = C (ii) if B = C then A := TRUE else A := FALSE
P6.06. Observe o trecho de programa abaixo, considerando L1, L2 e L3 como variáveis booleanas. ... if L1 then write('A') else if L2 then if L3 then write('B') else begin write('C'); write('D'); end else write('E'); ...
Agora, responda as seguintes questões: a) Se forem lidos V, V e V, o que será escrito pelo algoritmo? b) Se forem lidos F, V e V, o que será escrito pelo algoritmo? c) Se forem lidos F, V e F, o que será escrito pelo algoritmo? d) Que valores deveriam ser lidos para que fosse escrito apenas "E"?
P6.07. Escreva um programa que leia dois números e exiba o maior deles.
P6.08. Escreva um programa que leia dois números e exiba-os em ordem crescente.
P6.09. Escreva um programa que leia um número inteiro e determine se ele é par ou ímpar.
P6.10. Deseja-se calcular a conta de consumo de energia elétrica de um consumidor. Para isto, escreva um programa que leia o código do consumidor, o preço do Kw e a quantidade de Kw consumido, e exiba o código do con- sumidor e o total a pagar.
P6.11. Escreva um programa para ler três números inteiros distintos e determinar o menor deles.
P6.12. Faça um programa que, dado as três notas de um aluno, determine e exiba a sua média final e o seu conceito, sabendo-se que:
≥ 5,0 e < 8,0 B < 5,0 C