PROGRAMAÇÃO I AULA 01
Disciplina: Linguagem de Programação
PASCAL
Professor responsável: Fernando Santos Osório
Semestre: 99/1
Horário: 61
E-mail: osorioexatas.unisinos.br
Web: http://www.inf.unisinos.br/~osorio/prog1.html
Xerox : Pasta 54 (Xerox do C6/6)
1. CONCEITOS BÁSICOS:
ENTRADA =============> PROCESSAMENTO ===========>
SAÍDA
Teclado
UCP / CPU:
Vídeo
Mouse
Unidade Central de
Impressora
Disco
Processamento
Disco
Disquete
| ^
Disquete
CD-ROM
| |
Rede
Rede
V |
Áudio
Joystick
MEMÓRIA
...
...
Dispositivos Padrões: Entrada = Teclado
Saída = Vídeo
Processamento = Microprocessador INTEL Pentium
Memória Principal = RAM
Exemplo de algoritmo: "Como fazer um bolo"
Pegar Farinha 1 xícara
Pegar Ovos ½ dúzia
ENTRADA
Pegar Leite 100 ml
Pegar Fermento 1 colher pequena
Linguagem usada: Português (linguagem de alto nível)
Elementos manipulados: ingredientes (ovos, leite, farinha, ...)
Comandos ou Instruções = Conjunto de palavras-chave de uma linguagem de programação que tem por finalidade dizer ao computador como ele deve executar uma tarefa. Indica como armazenar e manipular as informações (obtidas através dos dispositivos de entrada, guardadas na memória, manipuladas pela CPU, e enviadas para os dispositivos de saída).
Conjunto de comandos/instruções organizados em uma seqüência segundo uma lógica bem definida (algoritmo) e que servem para realizar uma tarefa. Exemplo de programa na linguagem PASCAL:
O computador armazena as informações necessárias a execução de um programa na sua memória, sendo que todas as informações devem ser lidas da entrada e armazenadas na memória, para que possam ser processadas, obtendo assim uma saída final.
A memória eqüivale a um conjunto de recepientes onde estão guardados os elementos que vamos manipular, estes recepientes são padronizados no computador, são os chamados bytes. Os bytes estão organizados de maneira ordenada, sendo todos numerados, e recebendo assim endereços que os identificam. Exemplo: o byte 234 poderá armazenar a idade de um funcionário de uma empresa, enquanto que os bytes 527 e 528 poderiam conter os dados referentes ao seu salário.
Vamos considerar a memória
do computador como sendo uma coleção de gavetas numeradas
onde poderemos armazenar ingredientes, quero dizer, dados...
;^)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Salário
|
(2 e 3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Constante = Valor que não é modificado durante toda a execução do programa. Ele é armazenado na memória para se usado em cálculos e processamentos, mas não é modificado. Exemplo: o valor do PI (P), a nota mínima necessária para ser aprovado no semestre, etc.
Você já pensou em armazenar leite em um saco de papel comum? A farinha pode ser, mas o leite não... e colocar 1 quilo de açucar em uma colher de sopa? Também não é possível, por isso nós vamos ver que em Pascal também não é correto armazenar o salário de uma pessoa em uma variável do tipo BYTE ou INTEGER.
Os CARACTERES podem armazenar letras (a..z; A..Z), números (0..9) ou outros caracteres especiais ( @,#, $, %, *, \, ...). Eles podem aparecer isolados (tipo char), ou agrupados formando palavras/frases (tipo string).
Os LÓGICOS podem armazenar valores lógicos, ou seja, verdadeiro ou falso (True/False). São as chamadas variáveis do tipo Booleano (originárias da lógica de Boole Valores Binários).
> Ao desligar
o computador os dados contidos na memória principal da máquina
serão apagados, devendo portanto serem salvos em algum lugar (escritos
no disco, por exemplo). Ao terminar a execução de um programa,
os dados relativos aquele programa também serão apagados
da memória principal.
2. LINGUAGEM PASCAL:
A Linguagem PASCAL foi criada por Niklaus Wirth na Suiça entre os anos de 1968/1970. Esta linguagem é uma linguagem de alto nível, bem estruturada e desenvolvida com fins didáticos para o ensino de programação. Atualmente o Pascal é a linguagem mais usada nas Universidades para o ensino de programação.
O software que vamos usar é o Ambiente Integrado de Desenvolvimento de Programas TURBO PASCAL 7.0 que foi criado pela Borland, sendo também conhecido como Borland Pascal. O Turbo Pascal foi criado em 1983 (versão 1.0 para CP/M) e depois surgiram novas versões para PC-DOS, Windows3.11 e Windows95 / Windows98. A Borland mudou recentemente de nome, chamando-se agora de Inprise, e tendo como principal produto a Linguagem Delphi, que nada mais é do que uma extensão da linguagem Pascal (inclui conceitos de orientação à objetos e construção de interfaces gráficas através de uma programação visual e interativa).
2.1. Notação utilizada:
2.2. Tipos de Variáveis:
TIPOS NUMÉRICOS DO PASCAL
TIPO INTEIRO |
|
|
INTEGER |
|
|
WORD |
|
|
BYTE |
|
|
SHORTINT |
|
|
LONGINT |
|
|
TIPO Ponto-Flutuante |
|
|
|
REAL |
|
|
|
SINGLE |
|
|
|
DOUBLE |
|
|
|
EXTENDED |
|
|
|
COMP |
|
|
|
Notação científica:
1.0 x 100 = 1 = 1.0E0 = 0.1 x 101 = 0.01 x 102
=
0.001 x 103
1.0 x 101 = 10 = 1.0E1 = 100 x 10-1 = 1000 x 10-2
1.0 x 102 = 100 = 1.0E2
1.0 x 103 = 1000 = 1.0E3
Outros exemplos... 1.2 x 103
=
1200 / 5E-3 = 5.0 x 10-3 = 0.005
TIPOS COM CARACTERES: Char, String
TIPOS LÓGICOS: Boolean
2.3. Declaração de Variáveis e Constantes:
A declaração de uma variável/constante consiste em reservar um espaço na memória do micro para armazenar um certo tipo de informações, associando a este espaço um tipo de dados e uma identificação (rótulo, etiqueta, ou mais usualmente, nome da variável/constante).
* Em Pascal declaramos as constantes da seguinte forma:
CONST
<nome_da_constante> = <valor_da_constante> ;
Exemplos:
CONST
PI = 3.1415926;
VERSAO_TPASCAL = 7.0;
WINDOWS = 95;
PROF_PROG1 = Fernando Osório;
* Em Pascal declaramos as variáveis da seguinte forma:
VAR
<nome_da_variável> : <tipo_da_variável> ;
Exemplos:
VAR
Idade: INTEGER;
Salario: REAL;
Sexo: CHAR; { Pode ser M ou F }
Nome: STRING;
Qtde_de_Unidade_Vendidas: LONGINT;
Dia_do_mes: BYTE;
Podemos declarar as variáveis sempre imediatamente antes do BEGIN/END. Os programas Pascal tem usualmente uma aparência como a deste exemplo que segue abaixo:
Existem algumas regras importantes em relação a escolhas dos nomes à serem dados para as variáveis, constantes e também para o nome do programa (indicado logo após "program"). As regras são as seguintes:
(1) Atribuir
(2) Trocar
(3) Somar/Subtr. 1
Media := 8.2;
|| Temporaria := A;
|| A:=A+1;
Media := Media_Final;
|| A:= B;
|| Total:=Total+1;
Media := (Nota1 + Nota2) / 2 ||
B:= Temporaria;
|| Aulas:=Aulas-1;
Salario_Bruto:=Total_de_Horas_Trabalhadas * Valor_por_Hora;
Descontos:=Desconto_INSS + Desconto_IR_na_Fonte + Desconto_Faltas_ao_Servico;
Salario:=Salario_Bruto - Descontos;
Preco_em_Reais := (Preco_em_Dolar * 2) * Fator_de_Especulacao
+ Lucro_Anual / 12;
Soma: <inteiro> + <inteiro> = <inteiro>
Exemplo: Res_Int := VInt1 + VInt2;
Subtração: <inteiro> - <inteiro>
= <inteiro> Exemplo: Res_Int := VInt1 - VInt2;
Multiplicação: <inteiro> * <inteiro>
= <inteiro> Exemplo: Res_Int := VInt1 * VInt2;
Divisão: <inteiro> / <inteiro> =
<real> Exemplo: Res_Real := VInt1 / VInt2;
Divisão Inteira:<inteiro> DIV <inteiro>
= <inteiro> Exemplo: Res_Int := VInt1 DIV Vint2;
Resto da Divisão Inteira: <inteiro> MOD
<inteiro> = <inteiro> (É a sobra da divisão inteira)
* Operadores usados com números reais: +, -, *, /
Soma: <real> + <real> = <real> Exemplo:
Res_Real := VReal1 + VReal2;
Subtração: <real> - <real>
= <real> Exemplo: Res_Real := VReal1 - VReal2;
Multiplicação: <real> * <real>
= <real> Exemplo: Res_Real := VReal1 * VReal2;
Divisão: <real> / <real> = <real>
Exemplo: Res_Real := VReal1 / VReal2;
* Operadores (funções) de conversão entre inteiros e reais:
VAR
VInt1, VInt2: INTEGER; VReal1,VReal2:REAL;
Res_Int:INTEGER; Res_Real:REAL;
Variavel_Inteira:INTEGER; Variavel_Real:REAL;
EXERCÍCIOS AULA 01
1. Quais das variáveis abaixo possuem nomes válidos
para a Linguagem Pascal?
Válido Inválido
1.1. Salario_Real_Apos_Total_de_DeduCOES_E_ACRESCIMOS
( ) ( )
1.2. Total_em_Dolares
( ) ( )
1.3. Real
( ) ( )
1.4. Nota GrauA
( ) ( )
1.5. @Home
( ) ( )
1.6. Web@Home
( ) ( )
1.7. Web_At_Home
( ) ( )
1.8. Salário1999
( ) ( )
1.9. Opção_Inicial
( ) ( )
1.10. Fisrt_Option
( ) ( )
1.11. Last-Option
( ) ( )
1.12. 4Ever
( ) ( )
2. Qual o tipo de variável que você declararia para armazenar os seguintes dados:
3.1. Nota1 := 5.0;
=> Media = ?
Nota2 := 8.0;
Media := Nota1*2
+ Nota2 *3 / 5;
3.2. A := 6.0;
=> A = ?
B := 4.0;
B = ?
C := 2.0;
C = ?
A := B+C / 2;
C := A;
B := A;
3.3. Total_Laranjas := 9;
=> Suco1, Suco2, Suco3 = ?
Suco1 := Total_Laranjas
DIV 2;
Sobrou laranjas para o Suco3 ?
Suco2 := Suco1;
Sobrou laranjas para o Suco4 ?
Suco3 := Total_Laranjas
MOD 2;
Suco4 := Total_Laranjas
Suco1 Suco2 Suco3;
3.4. Qual a atribuição que pode ser feita
para adicionar uma unidade à variável Total_Alunos?
Total_Alunos:=
___________________
3.5. Supondo que o CPMF é igual a 0.5% do valor
pago, calcule o valor real gasto ao emitir um cheque:
Valor_Real_Gasto
:= Valor_Pago + _______________________
3.6. Qual o valor final armazenado na variável
X após a execução dos seguintes comandos:
A := 10;
B := A DIV
3;
Y := 1.6;
X := A * (A
MOD B) * (A DIV B) * ROUND(Y) + FRAC(Y);
X := X+1;
3.7. Qual o valor final armazenado na variável
X após a execução dos seguintes comandos:
A :=
2.7;
B :=
3.2;
X :=
A + SQRT(B) / 2 * X;
3.8. QUEBRA-CABEÇA LÓGICO: Dadas duas variáveis inteiras A e B, nas quais foram armazenados dois valores inteiros, escreva uma seqüência de comandos que realize a troca dos valores entre A e B (A vai receber o valor que estava contido em B e B receberá o valor que estava contido em A). Faça esta troca SEM O USO DE NENHUMA OUTRA VARIÁVEL , usando apenas A e B.
3.9. QUEBRA-CABEÇA LÓGICO: Dada uma
variável que contém o número de dias do ano, faça
uma expressão (uma única atribuição) que coloque
em uma variável Fevereiro, o número correto de dias que possui
este mês, sabendo que podemos estar considerando ou não um
ano bissexto.
Fevereiro := ____________________________________________
3.10. QUEBRA-CABEÇA LÓGICO: Dado o seguinte trecho de programa abaixo e sabendo-se que ao final de sua execução as variáveis X e Y valiam 14 e 12 respectivamente, determinar quais eram os valores iniciais de X e Y antes de executar o referido trecho do programa.