DISCIPLINA : PROGRAMAÇÃO
Profª Angélica M. da Silveira
ALGORITMOS
1.CONCEITO
A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos
uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um
algoritmo. Outros algoritmos freqüentemente encontrados são:
“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de
problema específico”
[KNUTH]
“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema”
[TREMBLAY]
Um algoritmo é formalmente uma seqüência finita de passos que levam a execução de uma tarefa. Podemos
pensar em algoritmo como uma receita, uma seqüência de instruções que dão cabo de uma meta específica.
Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. Até
mesmo as coisas mais simples, podem ser descritas por seqüências lógicas.
A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para
que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz
apenas o que mandamos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado
problema, independente de uma linguagem específica e até mesmo do próprio computador.
Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada
passo a passo, numa forma compreensível pela máquina, utilizando aquilo que se chama de programa.
Neste sentido, um programa de computador nada mais é que um algoritmo escrito numa forma
compreensível pelo computador.
Linguagem Natural
Os algoritmos são expressos diretamente em linguagem natural.
Fluxograma Convencional
Esta é um representação gráfica que emprega formas geométricas padronizadas para indicar as diversas
ações e decisões que devem ser executadas para resolver o problema.
1
Pseudo-linguagem
Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para
descrever os algoritmos.
Não existe consenso entre os especialistas sobre qual seria a melhor maneira de representar um
algoritmo. Atualmente a maneira mais comum de representar-se algoritmos é através de uma pseudo-linguagem
ou pseudo-código. Esta forma de representação tem a vantagem de fazer com que o algoritmo seja escrito de
uma forma que está próxima de uma linguagem de programação de computadores.
4. FASES DE UM ALGORITMO
Vimos que ALGORITMO é uma seqüência lógica de instruções que podem ser executadas.
Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases
fundamentais.
Onde temos:
ENTRADA: São os dados informados, lidos, digitados pelo usuário.
PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final
SAÍDA: São os dados já processados e mostrados no vídeo ou na impressora.
4. Determinar o que deve ser feito para transformar as entradas nas saídas especificadas
Nessa fase é que teremos a construção do Algoritmo propriamente dito. Devemos determinar qual sequência de
passos ou ações é capaz de transformar um conjunto de dados nas informações de resultado
Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série, sendo que os alunos realizarão
quatro provas: P1, P2, P3 e P4. Onde: Média Final = P1+P2+P3+P4
4
Para montar o algoritmo proposto, faremos três perguntas:
Faz-se uso do português para descrever algoritmos e tem a vantagem de que não há a necessidade de aprender
nenhum conceito, basta saber como se faz para resolver um determinado problema.
Para escrever um algoritmo precisamos descrever a seqüência de instruções, de maneira simples e objetiva.
Para isso utilizaremos algumas técnicas:
* Usar preferencialmente um verbo por frase
* Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática
*Usar frases curtas e simples
* Ser objetivo
*Procurar usar palavras que não tenham sentido dúbio
ATIVIDADES 1
3
2) Para cada um dos exercícios abaixo: Identifique os dados de entrada, processamento e saída e faça um
algoritmo na linguagem natural:
b) Construa um algoritmo para calcular e mostrar o valor da comissão de um vendedores de peças. Levando-se
em consideração que sua comissão será de 5% do total da venda e que você tem os seguintes dados:
* Preço unitário da peça
* Quantidade vendida da peça
d) Todo restaurante, embora por lei não possa obrigar o cliente a pagar, costuma cobrar 10% para o garçom.
Fazer um algoritmo calcula e mostra o valor da gorjeta e o total da conta com a gorjeta.
e) Informe o número de horas trabalhadas, o valor que recebe por hora, o valor do salário família. Com estas
informações calcular e mostrar o salário total deste trabalhador.
f) Elaborar um algoritmo para entrar com o saldo de uma aplicação e mostrar o novo saldo, considerando 1 mês
e aplicação e o reajuste de 2% ao mês.
Diagrama de Bloco
O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado
processamento.
Com o diagrama podemos definir uma seqüência de símbolos, com significado bem definido, portanto, sua
principal função é a de facilitar a visualização dos passos de um processamento.
Simbologia
Existem diversos símbolos em um diagrama de bloco.Veja no quadro abaixo alguns dos símbolos que iremos
utilizar:
SÍMBOLO FUNÇÃO
Indica o Início ou Fim de um processamento
Símbolo que se utiliza para indicar uma decisão a ser tomada, indicando a possibilidade
de desvios.
4
Exemplos de diagrama de blocos: Veja que no exemplo da média utilizamos cálculo e exibimos o resultado do
mesmo.
INICIO
NOTA DA PROVA 1
NOTA DA PROVA 2
NOTA DA PROVA 3
NOTA DA PROVA 4
FIM
L
A
N
FI
A
DI
É
M
A
R
A
R
ST
O
M
ATIVIDADES 2
5
7.2. ITENS FUNDAMENTAIS PARA A FORMA PORTUGUES ESTRUTURADO
7.2.1 Variáveis
Toda variável é identificada por um nome. Assim, por exemplo, um algoritmo para cálculo das
raízes de uma equação de 2o grau (ax2 + bx + c = 0 ), os nomes A, B e C podem representar as
posições de memória que armazenam os coeficientes da equação, fazendo, neste caso, o papel das
variáveis na matemática.
As palavras “PARA e algoritmo” são variáveis inválidas, pois são palavras reservadas da linguagem, veja
outras palavras que você não deve utilizar como identificadores de variáveis.
6
Variáveis de Entrada armazenam informações fornecidas por um meio externo, normalmente usuários ou
discos.
Variáveis de Saída armazenam dados processados como resultados.
Exemplo: A B
AC Bb CA+B
A B
2 5 7
De acordo com a figura acima A e B são Variáveis de Entrada e C é uma Variável de Saída.
As variáveis podem armazenar basicamente de três tipos básicos de dados: Numéricas, Alfanuméricas(Literais
ou caracter) ou lógicas.
Numéricas Específicas para armazenamento de números, que posteriormente poderão ser utilizados para
cálculos. Podem ser ainda classificadas como Inteiros ou Reais.
Inteiro: admite somente números inteiros. Geralmente é usado para representar contagem
(quantidade). Ex: idade, número de sapato, número de casa, apto, etc
Real : admite números com ou sem casas decimais, onde a vírgula é substituída por ponto.
Geralmente é usado para representar medição, valores monetários, etc.
Alfanuméricas Específicas para dados que contenham letras, números ou caracteres de pontuação. Pode em
determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para
armazenamento de números, não poderá ser utilizada para operações matemáticas.. Ex: endereço, data, etc
Lógicas Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso.
ATIVIDADES 3
4) Supondo que as variáveis Nota, NA, MAT e SX sejam utilizadas para armazenar respectivamente a nota do
aluno, o nome do aluno, o número da matrícula e o sexo, indique o tipo de dado adequado que cada uma poderá
armazenar.
6) Marque a(s) Opção(ões) errada(s), sublinhe onde está o erro e corrija o mesmo:
a) Uma variável Inteira pode receber o valor de uma Multiplicação. _____________
b) Para uma divisão( / ) qualquer a variável usada deve ser do tipo real. __________
c) Uma variável String recebe somente Letras. ______________
d) Uma variável Real não recebe o valor de uma variável Inteira. _______________
e) Não se pode somar uma variável Real com uma Inteira. ___
7.3 Operadores
Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do
computador. Temos três tipos de operadores:
Operador de Atribuição
Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos
Uma variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado a qualquer
momento. Portanto para “colocar” valores em variáveis devemos usar o sinal de uma seta( ) apontando para
esquerda.
8
Exemplo 1 (correto)
Peso 78.7 // Este comando atribui à variável Peso o valor 78.7.
Nome João da Silva // Este comando atribui à variável Nome o valor João da Silva.
Exemplo 2 (incorreto)
É importante lembrar que só se pode atribuir às variáveis, valores do mesmo tipo da variável. Assim, o
seguinte comando seria inválido:
Salario Insuficiente
Exemplo 3 (incorreto)
Deve estar claro, também, que sempre à esquerda do comando de atribuição deve haver um (e
somente um) identificador de variável. Assim, são incorretos os seguintes comandos:
2060 NumeroConta
NumeroAgencia+digitoControle 2345 + 0
Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da adição, subtração,
multiplicação e divisão, podem utilizar também o operador para exponenciação. Os símbolos para os
operadores aritméticos são:
Exemplo
9
ATIVIDADES 4
a) A 5; b) A Length(Casa); c) A = 3.6;
B A * 3; B Sqr(A); B Sqr(Trunc(A));
C A + (B / 3); C (B / A) + 10; C Round(A) * B;
D Sqr(C) / A; D C / Sqrt(A); D Sqrt(C) + Round(A);
R Sqrt(D+A) * A; R ((A + B) / D) + C; R (D * B) / C;
− b + b 2 − 4ac
2) Escreva a Fórmula em linguagem de programação, usando os operadores aritméticos.
2a
Operadores Relacionais
Os operadores relacionais são utilizados para comparar caracteres e números. Os valores a serem comparados
podem ser caracteres ou variáveis.
Estes operadores sempre retornam valores lógicos (verdadeiro ou falso/ True ou False) Para estabelecer
prioridades no que diz respeito a qual operação executar primeiro, utilize os parênteses. Os operadores
relacionais são:
Descrição Símbolo
Igual =
Diferente de <>
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
Exemplo:
Tendo duas variáveis A=5 e B=3
Operadores Lógicos
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é
verdadeiro ou falso.
Os operadores lógicos são: E / AND ; OU / OR ; NOT
10
A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos:
Exemplo:
Supondo que tem-se três variáveis A=5, B=8 e C=1 os resultados das expressões seriam:
Expressões Lógicas : Operações Lógicas são utilizadas quando se torna necessário tomar decisões em um
diagrama de bloco.
Num diagrama de bloco, toda decisão terá sempre como resposta o resultado VERDADEIRO ou FALSO.
ATIVIDADES 5
2) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas.
a) (A+C) > B ( )
b) B >= (A + 2) ( )
c) C = (B –A) ( )
d) (B + A) <= C ( )
e) (C+A) > B ()
3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas.
a) (A > C) AND (C <= D) ()
b) (A+B) > 10 OR (A+B) = (C+D) ()
c) (A>=C) AND (D >= C) ()
11
4) Atribua valores verdade para as seguintes proposições:
a) 3 7 e 4 é um inteiro impar.
b) 3 7 ou 4 é um inteiro impar.
d) 5 é impar ou divisível por 4.
e) Não é verdade que (2 +2 = 5 e 5 7).
f) Não é verdade que (2 + 2 = 5 ou 5 7).
g) 3 3.
5) De acordo com os valores fornecidos na tabela ao lado, faça um teste de mesa com o diagrama abaixo:
INICIO
SALBASE
GRATIF
SALBRUTO=SALBASE+GRATI
F
SALBRUTO
<1000
Não Sim
IR=SALBRUTO*(20/10 IR=SALBRUTO*(15/10
0) 0)
IQ
LL
A
S
SALLIQ=SALBRUTO-IR FIM
12
8.COMANDOS DE I/O (INPUT/OUTPUT):
Nem todos os dados que um algoritmo manipula são gerados por ele. Um algoritmo (programa)
de caixa automático, por exemplo, tem que obter do usuário o número da conta, a senha, a opção de serviço
desejada, etc. Assim, deve haver um meio para que sejam digitados (ou fornecidos de outra maneira) dados para
o algoritmo. Mais uma vez, todas as linguagens de programação permitem isto, e no nosso Português
Estruturado usamos o comando leia. A sintaxe deste comando é:
Leia (nome da variável de entrada)
ESCREVA é o comando de saída que exibe uma informação a qual pode ser o resultado de uma
variável ou mensagem na tela do monitor.
Em geral, um programa que faz seu processamento e não tem como mostrar seus resultados é
inútil (imagine, por exemplo, uma calculadora que realiza uma infinidade de operações matemáticas, mas
não tem um display para mostrar os resultados!). Portanto, em algum ponto do algoritmo geralmente deve
ocorrer à exibição de valores, e todas as linguagens de programação têm comandos para este fim. Em
Português Estruturado usamos o comando escreva. A sintaxe deste comando é:
Escreva (nome da variável de saida) ou Escreva(‘mensagem’, variável de saida)
Exemplo 1: Exemplo 2:
X 3.5 X 3.5
Y4 Y4
CX+Y CX+Y
Escreva ( X) Escreva (‘O valor de X é’, X)
Escreva ( Y) ou Escreva (‘ E o valor de Y é ‘, Y)
Escreva (C) Escreva (‘ A soma de X e Y é’, X+Y)
Faria com que aparecesse na tela: Faria com que aparecesse na tela:
13
9.CORPO GERAL DE UM PROGRAMA
PROGRAMA nomedoprograma
VAR
Listar as variaveis entre vírgula definir o tipo de dado
ÍNICIO
COMANDOS DE ENTRADA,
PROCESSAMENTO
COMANDOS DE SAÍDA
FIM.
Ex: Algoritmo 1
PROGRAMA MEDIA_FINAL
VAR
NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO
NOME : CARACTERE [35]
INICIO
LEIA (NOME)
LEIA (NOTA1, NOTA2, NOTA3, NOTA4)
MEDIA (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4
ESCREVA (NOME, MEDIA)
FIM.
Ex: Algoritmo 2
PROGRAMA AREA_CIRCUNFERENCIA
VAR
R, A : REAL
INICIO
LEIA (R) {ENTRADA}
A 3.14 * SQR(RAIO) {PROCESSAMENTO}
ESCREVA (‘ÁREA =’, A) {SAÍDA}
FIM.
OBS: Você pode mandar uma mensagem antes para o usuário, assim ele sabe qual é o conteúdo que
deve ser colocado, ou seja, digitado.
14
Exemplo:
Escreva (‘Digite o nome: ‘)
Leia (N)
Escreva (‘Digite sua agencia: ‘)
Leia (NumeroAgencia)
Escreva (‘Digite sua conta: ‘)
Leia (NumeroConta)
Deve estar claro que sempre à direita do comando leia haverá um identificador de variável.
a) entendimento do problema;
do “construtor”.
Enunciado: Faça um programa que leia dois valores numéricos, e calcule e exiba a
sua média aritmética.
Etapa 1
Dos tempos de escola lembramos que a média aritmética de dois valores é calculada como
(a+b)/2, e sendo assim a primeira etapa já está pronta.
Etapa 2
Os dados necessários serão os dois valores, que colocaremos em duas variáveis A e B, do tipo numérico,
e uma terceira variável, que chamaremos M, que armazenará a média aritmética calculada.
Etapa 3
A obtenção dos dados neste programa é simples e direta. Basta pedir ao usuário que digite os valores.
Etapa 4
O processamento aqui é o cálculo da média, usando o método citado acima, na etapa 1. O resultado do
cálculo será armazenado na variável M.
Etapa 5
Basta exibir o conteúdo da variável M.
Solução:
15
Programa Calculo_Media
VAR
A,B,M REAL
Inicio
Escreva (‘Programa que calcula a média aritmética de dois valores.’)
Escreva (‘Digite um valor : ‘)
Leia (A)
Escreva (‘Digite outro valor : ‘)
Leia (B)
M (A+B)/2
Escreva (‘A média dos dois valores é : ‘, M)
Fim
ATIVIDADES
) Informar a medida de um lado de um quadrado. Calcular seu perímetro e armazenar em P. Calcular sua área e
armazenar em A. Mostrar os dados obtidos.
6) Escreva um algoritmo para ler uma temperatura dada na escala Fahrenheit e exibir o equivalente em Celsius.
5
C= * ( F − 32 )
9
7) Escreva um algoritmo para calcular a área de um triângulo, sendo dados a sua base e a sua altura.
8) Faça um programa que receba o preço de um produto, calcule e mostre o novo preço, sabendo-se que este
sofreu um desconto de 10%.
9) a) Ler 3 valores
b) Calcular o produto destes valores
c) Mostrar ‘O produto vale’, o valor do produto
10) Todo restaurante, embora por lei não possa obrigar o cliente a pagar, costuma cobrar 10% para o garçom.
Fazer um algoritmo que leia o valor gasto em um restaurante e mostrar o valor da gorjeta e o total com a
gorjeta.
16
11)Ler o código de um funcionário, o número de horas trabalhadas, o valor que recebe por hora, o valor do
salário família. Com estas informações calcular o salário total deste trabalhador e mostrar junto como código do
funcionário.
12) Dados 3 valores numéricos, fazer o algoritmo para calcular a raiz quadrada da soma do três valores. Mostrar
o resultado.
13) Elaborar um algoritmo para entrar com o saldo de uma aplicação e mostrar o novo saldo, considerando 1
mês de aplicação e o reajuste de 2% ao mês.
Em algumas situações verificamos que na maioria das vezes necessitamos tomar decisões no andamento do
algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com dois tipos de
estrutura. A estrutura de Decisão e a estrutura de Repetição
1 Comandos de Decisão
Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de
programas que não são totalmente seqüenciais. Com as instruções de SALTO ou DESVIO pode-se fazer com
que o programa proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos
dados ou resultados anteriores. As principais estruturas de decisão são: “Se Então”, “Se então Senão”.
Sintaxe:
se <condição> então
<instrução para condição verdadeira>;
<instrução para condição falsa ou após condição ser verdadeira>;
Vejamos um exemplo de um trecho de programa com o uso da instrução se..então:
Caso venha a existir mais de uma instrução verdadeira para uma determinada condição, estas deverão estar
inseridas em um bloco. Um bloco é o conjunto de instruções estar entre inicio e fim
Sintaxe:
se <condição> então
inicio
<instrução para condição verdadeira>
<instrução para condição verdadeira>
<instrução para condição verdadeira>
<instrução para condição verdadeira>
fim;
<instrução para condição falsa ou após condição ser verdadeira>
Imagine um algoritmo que determinado aluno somente estará aprovado se sua média for maior ou igual a 5.0,
veja no exemplo de algoritmo como ficaria.
17
SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO
Em diagrama de blocos ficaria assim: Programa media
Var
Media:real
Inicio
Leia(Media)
Se media>=5.0 então
Escreva(‘Aluno Aprovado’)
Fim.
Sintaxe:
se <condição> então
<instruções para condição verdadeira>
senão
<instruções para condição falsa>;
Caso venha a existir mais de uma instrução verdadeira ou falsa para uma condição, estas deverão estar inseridas
em um bloco.
Sintaxe:
se <condição> então
inicio
<instruções para condição verdadeira>;
<instruções para condição verdadeira>;
fim
senão
inicio
<instruções para condição falsa>;
<instruções para condição falsa>;
fim;
Observe que nos dois casos abordados acima, qualquer instrução que antecede a instrução senão está escrita
sem o ponto-e-vírgula (;). Isto ocorre pelo fato de a instrução senão ser uma extensão da instrução se...então, e
sendo assim, o final da condição somente ocorre após o processamento da instrução senão executado.
Em diagrama
18
No exemplo acima está sendo executada uma condição que, se for verdadeira, executa o comando
“APROVADO”, caso contrário executa o segundo comando “REPROVADO”. Podemos também dentro de
uma mesma condição testar outras condições.
Como no exemplo abaixo:
se MEDIA >= 5 então
inicio
se MEDIA >= 7.0 então
inicio
escreva(‘Aluno APROVADO’);
fim
senão
inicio
escreva(‘Aluno Necessita fazer outra Avaliação’);
fim
fim
senão
inicio
escreva (‘Aluno REPROVADO’);
fim
1) a) Ler os valores de X e Y ;
b) Se X for maior ou igual a Y calcular a média desses valores e imprimir ‘Media = ‘, valor da
média calculada;
c) Fim.
2) Escreva um algoritmo para ler um número e determinar se ele é maior, igual ou menor que zero.
4) Deseja-se calcular a conta de consumo de energia elétrica de um consumidor. Para isto, escreva um
código do consumidor. Calcular o total da conta. Se o total da conta for menor ou igual 11.20, então o total
19
6) Dado um número, fazer o algoritmo para calcular e mostar a raiz quadrada desse número se ele for positivo,
se ele for negativo calcular e mostrar o seu quadrado.
7)Fazer o algoritmo para ler as seguintes informações: o nome, altura e o sexo de uma pessoa
Se sexo for masculino então o peso ideal é (72,7 x altura) – 58, se for feminino o peso ideal é (62,1 x
altura) – 44,7
Mostrar: O nome da pessoa e o seu peso ideal.
8) Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o peso e a altura
da pessoa. O grau de obesidade é determinado pelo índice da massa corpórea (Massa = Peso / Altura 2 )
9) Faça um algoritmo que, dado as três notas de um aluno, determine e exiba a sua média final e o seu conceito,
sabendo-se que:
- a média final é calculada pela média aritmética das 3 notas;
- o conceito é determinado de com base na tabela abaixo:
MÉDIA FINAL CONCEITO
≥ 8,0 A
≥ 5,0 e < 8,0 B
< 5,0 C
10) O Botafogo Futebol Clube deseja aumentar o salário de seus jogadores. O reajuste deve obedecer a seguinte
tabela:
SALÁRIO ATUAL (R$) AUMENT
O
0,00 a 1.000,00 20%
1.000,01 a 5.000,00 10%
acima de 5.000,00 0%
Escrever um algoritmo que leia o nome e o salário atual de um jogador, e exiba o nome, o salário atual e
o salário reajustado.
11) Faça um algoritmo para calcular a conta final de um hóspede de um hotel fictício, considerando que:
a) serão lidos o nome do hóspede, o tipo do apartamento utilizado (A, B, C ou D), o número de
diárias utilizadas pelo hóspede e o valor do consumo interno do hóspede;
b) o valor da diária é determinado pela seguinte tabela:
TIPO DO APTO. VALOR DA DIÁRIA (R$)
A 150,00
B 100,00
C 75,00
D 50,00
c) o valor total das diárias é calculado pela multiplicação do número de diárias utilizadas pelo valor da
diária;
20
d) o subtotal é calculado pela soma do valor total das diárias e o valor do consumo interno;
e) o valor da taxa de serviço equivale a 10% do subtotal;
f) a total geral resulta da soma do subtotal com a taxa de serviço.
g) escreva a conta final contendo: o nome do hóspede, o tipo do apartamento, o número de diárias
utilizadas, o valor unitário da diária, o valor total das diárias, o valor do consumo interno, o subtotal,
o valor da taxa de serviço e o total geral.
LINGUAGEM PASCAL
1 Histórico
Origem: desenvolvida nos anos entre 1968 e 1970 por Nicklaus Wirth na Universidade Técnica de Zurique,
Suíça. Em 1970 é disponibilizado o primeiro compilador para a linguagem.
Objetivo: desenvolver uma linguagem de programação disciplinada de alto nível para ensinar programação
estruturada. Esta linguagem foi batizada com o nome de Pascal, em homenagem a Blaise Pascal, filósofo e
matemático francês que viveu entre 1623 e 1662.
Atualizações: durante os últimos anos foram lançadas diversas variações da linguagem Pascal-Padrão,
implementando recursos que não são encontrados na estrutura padrão da linguagem. Nas mãos da Borland, já
foram lançadas as versões 3.0, 4.0, 5.0 e 5.5 na década de 80. Durante a década de 90 foram lançadas as versões
6.0, 7.0 e o lançamento da linguagem Delphi, para programação em ambiente Windows.
Existem diversas linguagens de programação, podemos aprender e utilizar quantas desejarmos. Dizer qual a
melhor é muito relativo. Há os que defendem o Basic, o Cobol, a C, o Pascal e tantas outras.
2 Linguagem de Programação
Um computador não pode entender nem tão pouco executar instruções em linguagens de alto nível. Ele
só entende linguagem de máquina. Desta forma, os programas em linguagens de alto nível devem ser traduzidos
antes de serem executados pelo computador. Quem faz essa tradução são os programas tradutores.
Existem basicamente 2 tipos de programa tradutor: o interpretador; e o compilador. Os dois aceitam
como entrada um programa em linguagem de alto nível (fonte) e produzem como saída um programa em
linguagem de máquina (objeto). A diferença entre eles está na forma de executar a tarefa de tradução. O
interpretador traduz para a linguagem de máquina e roda uma linha por vez, até que todo programa seja
executado. Já o compilador traduz para a linguagem de máquina todo o programa fonte e só então ele é
executado.
Existem linguagens de programação interpretadas e compiladas. O Cobol é compilado, o Basic pode ser
tanto compilado como interpretado e assim por diante. A linguagem Pascal é tradicionalmente compilada.
Por outro lado, o processo de compilação é de certa forma moroso, pois deve seguir as seguintes etapas:
1-) Devemos utilizar um editor de textos para escrever e armazenar em disco o nosso programa fonte.
2-) Utilizar um compilador para traduzir o programa fonte para um programa em linguagem de máquina.
3-) Finalmente, devemos juntar ao programa compilado as diversas rotinas necessárias que, normalmente, ficam
armazenadas numa biblioteca.
Após todo esse processo, suponha que você chegue à conclusão de que o programa tenha que sofrer
modificações, pois bem, você terá que repetir os três passos descritos, e assim sucessivamente até que o
programa fique ao seu gosto.
21
Aplicativo Pascal Zim
Menu Arquivo
Menu Editar
Recortar: cortar .
Copiar : copiar.
Colar : colar.
Menu Compilar
Executar : inicia o processo de compilação, sempre com o arquivo que esteja atualmente no editor. Verifica se
o código fonte possui algum erro. F9
Gerar Executável : compila o arquivo principal, se tiver algum designado. Senão compila o arquivo que
estiver atualmente editado e gera o arquivo executável no mesmo diretório onde se encontra o arquivo fonte
(*.pas)
program nome;
var lista de variáveis: tipo;
begin
end.
em que:
program, var, begin, end – são palavras reservadas
nome – identifica o programa
; é um delimitador, indica fim de uma instrução
lista de variáveis – pode ser um ou mais nomes de variáveis separados por vírgulas
: delimitador
tipo indica o tipo de dado da variável
corpo do programa – contém os comandos e as estruturas que definem o que o programa deve executar. Devem
estar entre as palavras reservadas begin e end. Devem ser escritos linha por linha, para maior clareza,
obedecendo à sintaxe própria da linguagem.
4. TIPO DE DADOS
22
Os dados são representados pelas informações a serem processadas por um computador. Um tipo de dados
especifica as características, ou seja os valores e operações possíveis de serem utilizados com um dado desse
tipo. Toda variável e constante usada em um programa tem um tipo associado a ela. A linguagem Pascal
fornece ao programador um conjunto de tipos de dados predefinidos.
São considerados tipos caracteres, as seqüências contendo letras, números e símbolos especiais. Uma seqüência
de caracteres, em Pascal, deve ser representada entre apóstrofos (‘’). Este tipo de dado é referenciado pelo
identificador string, podendo armazenar de 1 até 255 caracteres. Podemos ainda especificar um tamanho menor
do que os 255 caracteres permitidos. Vejamos a sintaxe para criarmos uma variável do tipo string com tamanho
limitado.
Sintaxe:
variável : string[tamanho];
Vejamos um exemplo do uso de strings:
var
Frase : string;
Nome : string[45];
Existe ainda o tipo char, utilizado da mesma forma que o tipo string, porém com uma pequena diferença: é
usado para strings de apenas um caracter. Vejamos um exemplo do tipo de dado char:
var
Sexo : char
23
São caracterizados tipos lógicos, os dados com valores true (verdadeiro) e false (false). Este tipo de dado
também e chamado de tipo boleano. Ele é representado pelo identificador boolean. Vejamos um exemplo da
utilização do tipo de dado boolean:
var
Aprovado : boolean;
Confirma : boolean;
5.1)Comandos de atribuição:
Exemplo: A:= 3;
OBS: expressão obedece às regras vistas, lembrando que a linguagem PASCAL tem uma Biblioteca de funções
embutidas e que não existe o operador potenciação. Se for necessário executar uma potenciação é preciso usar
uma combinação de funções embutidas.
Exemplo: readln (A, B, C); os dados são introduzidos, via teclado, separados por um espaço
em branco ou a cada valor é pressionado ENTER, mudando de
linha o que equivale a:
readln (A);
readln (B);
readln (C);
Exemplo: writeln (‘SOMA = ‘ , S); esse comando exibe o conteúdo da variável contida na posição
de memória identificada
por S antecedido da mensagem SOMA =.
OBS: 1) para gerar telas mais amigáveis, tornando mais agradável e fácil a interação do usuário com o
programa é usado o comando de entrada antecedido do comando de saída com um texto explicativo. Os 2
24
comandos, write e readln, fazem com que seja exibida a mensagem contida no comando write e que o cursor
se posicione na mesma linha esperando a entrada da informação correspondente. A forma é:
Exemplo 1: Fazer o algoritmo e escrever o PROGRAMA FONTE que leia 3 números inteiros e imprima o seu
produto.
Para uma tela mais amigável a etapa de entrada de dados deveria ser escrita da seguinte forma:
write( ‘Digite o valor de X ’ ); readln(X);
write( ‘Digite o valor de Y ’ ); readln(Y);
write( ‘Digite o valor de Z ’ ); readln(Z);
1) TextBackGround
Este procedimento seleciona a cor do fundo sobre o qual o texto será escrito.
25
Sua sintaxe geral é: TextBackGround(cor);
Nós podemos entrar com o número ou o nome da cor em inglês
Exemplo:
Program Exemplo;
Uses CRT;
Begin
ClrScr;
TextBackGround(Red);
Writeln('teste');
TextBackGround(white);
Writeln('teste');
Readln;
End.
2) TextColor
Este procedimento permite selecionar a cor com que o texto será impresso.
Exemplo:
Program Exemplo;
Uses CRT;
Begin
Clrscr;
TextColor(red);
writeln('teste');
TextColor(blue);
write('teste');
readln;
End.
Tabela de cores
0. Black Preto
1. Blue Azul
2. Green Verde
3. Cyan Ciano
4. Red Vermelho
5. Magenta Magenta
6. Brown Marrom
7. LightGray Cinza-claro
8. DarkGray Cinza-escuro
9. LightBlue Azul-claro
10. LightGreen Verde-claro
11. LightCyan Ciano-claro
12. LightRed Vermelho-claro
13. LightMagenta Magenta-claro
14. Yellow Amarelo
15. White Branco
16. Blink Piscante
3)Gotoxy - esse comando permite posicionar o cursor em uma determinada posição da tela. É preciso fornecer
os 2 parâmetros que determinam a linha e a coluna da posição. O gotoxy deve preceder o comando de saída e
possui a seguinte forma geral:
gotoxy(coluna, linha);
26
em que:
gotoxy – palavra chave
coluna – é o parâmetro que determina a coluna relacionada ao ponto onde deve ser exibida a próxima saída de
dados. A coluna varia de 1 a 80.
linha – é o parâmetro que determina a linha relacionada ao ponto onde deve ser exibida a próxima saída de
dados. A linha varia de 1 a 25.
Exemplo: program exemplo3;
uses crt;
var mat,nome:string;
begin
clrscr;
gotoxy (5,10); writeln(‘Digite a matricula do aluno’); readln(mat );
gotoxy (5,12); writeln(‘Digite o nome do aluno’); readln(nome);
write (‘Matrícula é ’, mat, ‘Nome é :’,nome);
readln;
end.
Sintaxe Sintaxe
delay ( 10000 ) ; readkey;
27