Professional Documents
Culture Documents
Introdução à Programação de
Computadores
Objetivos
Conhecer e descrever a estrutura e funcionamento de um computador
Conceituar algoritmo, descrevendo suas características e elementos
Escrever algoritmos simples em diversos formatos
Conhecer e utilizar comandos de entrada, saída e atribuição.
Utilizar a estrutura sequencial para escrever algoritmos simples.
Conteúdo
Conceitos Básicos em Programação
Pseudocódigo: Conceitos Básicos
Pseudocódigo: Estruturas de Controle – Visão Geral
Capítulo 01 P á g i n a | 2
Conceitos Básicos em Programação
Você ter notado que nas definições apresentadas fica claro que um
computador realiza as tarefas para o qual foi criado (processamento de dados) por
meio da realização de cálculos matemáticos. Entretanto, esses cálculo precisam ser
realizados de forma organizada e ordenada. Mas como se consegue essa
organização? Como o computador sabe quais cálculos devem ser realizados e em
que momento?
Todo computador, para cumprir sua função, é programável. Ou seja,
trabalha executando um conjunto de comandos específicos, também chamados de
instruções. São essas instruções que orientam o computador em sua tarefa de
processamento de dados. Para que os resultados obtidos sejam os esperados, as
instruções são agrupadas e ordenadas, consituindo o que chamamos de programas
de computador. A definição de quais instruções irão compor o programa e a ordem
em que serão executadas é determinada pelos programadores de computador.
Assim, podemos concluir que um computador pode ser definido como uma
“máquina que pode ser programada para receber dados, processá-los em
informação útil e armazená-los para proteção ou reutilização” (CAPRON. JOHNSON,
2004).
Agora que você já sabe o que é um computador, vamos aprender como ele
está organizado e como ele trabalha com os dados que recebe para processar.
Já sabemos que todo sistema de computação é formado por três
componentes: hardware, software e usuário.
P á g i n a | 4
Figura 1: Componentes de um Sistema de Computação
Figura 2: Organização de um Computador e o Ciclo de Processamento
0000 0001 0002 0003 0004 0005 0006 0007 0008 0009
0010 0011 0012 0013 0014 0015 0016 0017 0018 0019
0020 0021 0022 0023 0024 0025 0026 0027 0028 0029
0030 0031 0032 0033 0034 0035 0036 0037 0038 0039
Figura 3: Esquema de Memória Principal
Os endereços de cada porção de memória na Figura
3 foram expressos em números decimais apenas
para fins didáticos. Na prática, esses valores são
expressos na base binária.
P á g i n a | 7
Conjunto de instruções que uma CPU
reconhece e consegue executar.
Tabela 1: Set de Instruções do Computador Hipotético
Instruções Descrição
storeconst num pos armazena o valor de uma constante numérica (num) na posiçaõ
de memória especificada pelo valor pos.
div pos1 pos2 divide o primeiro pelo segundo valores armazenados na memória
em pos1 e pos2, guardando o resultado no registrador.
read 0
storeconst 3 1
add 0 1
store 2
write 2
read 0
storeconst 3 1
add 0 1
store 0
write 0
É possível sobrescrever valores na memória.
Quando isto acontece, o valor anterior é perdido, a
menos que seja feita uma cópia e armazenada em
outra posição.
read 0
storeconst 3 1
add 0 1
store 0
write 2
Este programa não está correto, pois tenta exibir no monitor de vídeo um
valor armazenado na posição 2, que não foi definido. Nesta situação seria mostrado
um valor indefinido e desconexo do contexto do programa. A este valor atribuímos o
nome “lixo”.
P á g i n a | 10
Auto Avaliação 1.1
1. Explique o que é um computador, citando suas principais características.
2. Quais são os componentes de um sistema de computação? Explique cada um.
3. Descreva o funcionamento de um computador.
Para escrever uma frase seguimos a seguinte regra: primeiro vem o sujeito,
em seguida um verbo e seu complemento. Isto é parte da sintaxe da língua
portuguesa, pois especifica como expressar uma ideia. A semântica nos possibilita
entender que a frase diz respeito ao estado de uma fruta (madura), pois trata do
significado do que foi expresso.
Com as linguagens de programação não é diferente. Cada uma tem regras
que definem como as instruções devem ser escritas (sintaxe) e também semântica,
que indica o significado de cada instrução.
Atualmente, um programa de computador deve ser escrito numa linguagem
de programação e depois traduzido para a linguagem de máquina, a fim de que seja
executado pelo computador. O processo de traduzir um programa da linguagem de
programação para a linguagem de máquina é chamado de compilação. Essa tarefa
é executada por um software chamado de compilador.
A criação de um programa não é uma tarefa simples. Exige muita paciência,
dedicação e uma forte dose de raciocínio lógico-matemático. O Quadro 1 resume as
etapas que devem ser seguidas para a construção de um programa.
1. Inserir o cartão;
2. Retirar o cartão;
3. Escolher a opção saque;
4. Escolher o tipo de conta (corrente ou poupança);
5. Digitar o valor (R$ 500,00);
6. Selecionar um conjunto de três letras (uma de cada vez);
7. Inserir o cartão;
8. Retirar o cartão;
9. Retirar o dinheiro.
Note que para transformar o ovo cru em ovo frito foi demandado certo tempo
e utilizados alguns utensílios. Fazendo uma analogia com o problema do
processamento de dados, podemos imaginar que o ovo cru são os dados brutos
(dados de entrada) e o ovo frito os dados processados (dados de saída). Os
utensílios utilizados para realizar a transformação de ovo cru em ovo frito podem ser
entendidos como os recursos computacionais utilizados para processar os dados. O
ato de quebrar o ovo na frigideira representa a entrada de dados e a retirada
representa a saída de dados.
Diante do exposto, apresentamos uma definição mais completa de algoritmo,
proposta por Holloway (2007).
“Um algoritmo é uma lista de instruções que, quando executadas,
transformam dados de entrada até a saída. As instruções são um
conjunto finito de etapas que podem ser executadas, numa ordem
precisa, por um mecanismo determinista. Quando estas etapas são
efetivamente executadas, a execução deve terminar após um
tempo finito.”
P á g i n a | 15
Características de um Algoritmo
1. Ter fim.
2. Não dar margem a dupla interpretação.
3. Capacidade de receber dados do mundo exterior.
4. Pode gerar informações de saída para o mundo externo ao ambiente
do algoritmo.
5. Ser efetivo, ou seja, após um intervalo de tempo finito, o algoritmo
apresenta a saída esperada, de acordo com a entrada.
5. Fechar a bandeja.
6. Pressionar play.
7. Assistir ao filme.
8 Abrir a bandeja
Algoritmo CalculaMedia
Auto Avaliação 1.2
1. Conceitue Algoritmo e dê exemplos de algoritmos que você percebe no seu dia a dia.
2. Por que um algoritmo não pode conter um comando que represente a leitura de
todos os números naturais?
3. Escreva um algoritmo em descrição narrativa para cada um dos seguintes problemas:
a) Trocar uma lâmpada no teto de sua casa.
1.3.2. Fluxograma
Média = (Nota1 + Nota2)/2
Cálculo da Média
Média Apresentação do Resultado
Fim
P á g i n a | 21
Fim do Algoritmo
Início
Nota1
Nota2
Média = (Nota1 + Nota2)/2
P á g i n a | 22
Início Aqui se inicia a execução
Nota 1 = 8
Nota1
Nota 2 = 9
Nota2
P á g i n a | 23
Média = (8 + 9) / 2 = 8,5
Média >= 7 → verdadeiro
(O fluxo segue pela esquerda).
Fim da Execução
É mostrada a Palavra “Aprovado”
Início Aqui se inicia a execução
Nota 1 = 4
Nota1
Nota 2 = 6
Nota2
Média = (4 + 6) / 2 = 5
Média = (Nota1 + Nota2)/2
Média >= 7 → falso
(O fluxo segue pela direita).
verdadeiro falso
Média >= 7
“Aprovado” “Reprovado”
P á g i n a | 24
É mostrada a palavra
“Reprovado”
Exemplo
Escrever um algoritmo em fluxograma para fornecer o resultado da divisão de
dois números.
SOLUÇÃO
Entrada: os dois números a serem divididos.
Saída: a frase “Não é possível dividir” caso o segundo número seja zero, ou a
resultado da divisão do primeiro pelo segundo número, caso contrário.
Processamento: verificar se o segundo número é igual a zero. Caso positivo,
mostrar a frase. Caso contrário, calcular o quociente e mostrar o resultado.
Fluxograma
Início
NUM1
NUM2
verdadeiro falso
NUM2 = 0
“Não é possível dividir” Quociente = NUM1 / NUM2
Quociente
Fim
P á g i n a | 26
Início
Algoritmo CalculaMedia
Declare Nota1, Nota1, Media Numérico
Nota1 Escreva “Digite a primeira nota”
Leia Nota1
Escreva “Digite a segunda nota”
Leia Nota2
Media ← (Nota1 + Nota2) / 2
Escreva Media
Nota2 Fim_Algoritmo
Algoritmo CalculaMedia
real Nota1, Nota2, Media;
Média = (Nota1 + Nota2)/2
inicio
imprima (“Digite a primeira nota”);
leia (Nota1);
imprima (“Digite a segunda nota”);
leia (Nota2);
Média Media = (Nota1 + Nota2) / 2;
imprima (Media)
fim
Fim
P á g i n a | 28
Auto Avaliação 1.3
Para cada um dos seguintes problemas, identifique entrada, saída e processamento. Em
seguida desenhe o fluxograma que representa a solução do problema.
1. Faça um algoritmo para mostrar o resultado da multiplicação de dois números.
2. Faça um algoritmo que informe se um número é positivo ou negativo.
3. Faça um algoritmo para calcular o novo salário de um funcionário. Sabe‐se que os
Capítulo 02 P á g i n a | 29
Pseudocódigo: Conceitos Básicos
var
<Bloco de Variáveis>
inicio
<Bloco de Comandos>
fimalgoritmo
P á g i n a | 30
Essas palavras chaves, e todas as outras que fazem
parte da sintaxe da linguagem, são chamadas de
palavras reservadas e não podem ser utilizadas
para nenhuma outra finalidade que não aquela
prevista nas regras de sintaxe da linguagem.
Uma variável é um local na memória principal, isto é, um endereço
que armazena um conteúdo.
(LOPES; GARCIA, 2002)
Mesmo a variável podendo assumir diferentes
valores, ela só pode armazenar um valor a cada
instante.
Figura 4: Atributos de uma Variável
O tipo de dado define, entre outras coisas, os tipos de operações que podem
ser feitas com ele. Por exemplo, para dados do tipo numérico é possível realizar
operações aritméticas. Além disso, cada tipo de dado é representado de uma
maneira diferente na memória, ocupando um espaço maior ou menor. Portanto, ao
determinar o tipo de dado que será armazenado em uma variável, será definido
quanto de memória deve ser reservado para guardar o dado e que operações
poderão ser realizadas com este dado.
P á g i n a | 33
PALAVRAS RESERVADAS
abs declare leia passo
algoritmo e literal pausa
arquivo eco log pi
asc enquanto logico pos
caracter entao logn procedimento
caso escolha maiusc quad
compr escreva mensagem raizq
copia exp minusc rand
cos faca nao repita
cotan falso numerico se
cronometro função ou sen
debug int para senao
Exemplo
São identificadores válidos:
NUM, NOTA1, ALTURA_MEDIA, AlturaMedia, maiorNumero
São inválidos os identificadores:
1Nota (não inicia com letra), Nota 1 (contém espaço), FIM (palavra reservada),
Not@ (contém um caractere especial), Altura.Media (contém caractere especial)
Agora já sabemos como nomear uma variável. Mas e quais são os tipos de
dados que uma variável pode armazenar? É isso que vamos aprender agora.
P á g i n a | 35
Tabela 2: Tipos de Dados
Tipo Descrição Exemplos
VERDADEIRO
LÓGICO Representa valores lógicos.
FALSO
Exemplo
Declaração de Variáveis
Num: Inteiro
Aqui estamos declarando uma variável chamada Num que poderá armazenar um
dado do tipo inteiro. Ou seja, estamos reservando um espaço na memória,
apelidado de Num, suficiente para guardar um número inteiro.
NOTA: Real
Neste caso declarando uma variável chamada NOTA que poderá armazenar um
dado do tipo real. Ou seja, estamos reservando um espaço na memória, rotulado
pela palavra NOTA, de tamanho suficiente para guardar um número real.
NOME, EstCivil: Caractere
Aqui declaramos duas variáveis do tipo Caractere. Ou seja, alocamos dois espaços
na memória, identificados por NOME e EstCivil, que poderão armazenar uma
sequência de caracteres cada uma.
Observação: a escolha do tipo de dado para representar uma informação deve
levar em consideração a adequação do tipo com a própria informação. Por
exemplo, não se deve armazenar o nome de uma pessoa numa variável do tipo
real, pois o tipo de dado é incompatível com o valor que se desejar representar.
De forma semelhante, não será escolhido o tipo inteiro para representar o valor
de um salário, visto que este valor pode ser fracionário.
“Um dos objetivos de se declarar uma variável no início do
algoritmo é para que seja alocada uma área na memória para a
variável. Outro objetivo é que, após a declaração, o algoritmo sabe
os tipos de operações que cada variável pode realizar.”
(LOPES E GARCIA, 2002).
P á g i n a | 37
Auto Avaliação 2.1
1. Escreva os comandos necessários para declarar:
a) uma variável para armazenar o nome de um país.
b) duas variáveis para armazenar as medidas dos lados de um retângulo.
c) uma variável que seja capaz de armazenar o número de municípios de um Estado.
2 Explique o significado de cada um dos seguintes comandos
Agora que você já conhece o bloco de variáveis e sabe como proceder para
declarar as variáveis necessárias à execução de um algoritmo, podemos iniciar o
estudo do bloco de comandos para, a partir daí, escrever os primeiros algoritmos
utilizando nossa pseudolinguagem.
Um comando pode ser definido como a descrição de uma ação a
ser executada num dado momento.
(FARRER et al, 1999).
Este comando permite que se forneça um valor a uma certa
variável, onde a natureza deste valor tem de ser compatível com o
tipo da variável na qual está sendo armazenado.
(FARRER et al, 1999).
onde:
Exemplo
Comando de Atribuição
X <- 2
Como se lê?
A variável X recebe o valor 2 ou simplesmente x recebe 2
O que acontece “dentro” do computador?
Na memória principal, onde estava reservado um espaço para a variável X, essa
variável armazenará o valor 2.
Memória Principal
X
2
Tabela 3: Operadores Aritméticos
Operador Operação
P á g i n a | 40
+ Adição
- Subtração
* Multiplicação
/ Divisão
\ Divisão Inteira
% Resto (ou mod)
^ Exponenciação
Exemplo
Linearização de Expressões Aritméticas
Formato Tradicional
Formato Computacional (Linearizado)
Pelo exemplo, você deve ter percebido que não são utilizados colchetes e
chaves para estabelecer prioridades de execução das operações. No formato
computacional, devemos utilizar para isto tantos pares de parênteses quantos forem
necessários.
Os parênteses indicam quais partes da expressão deverão ser executadas
primeiro. A execução se dá sempre da esquerda para a direita, mas além dos
parênteses, existe uma ordem de prioridade dos operadores, ilustrada na tabela a
seguir.
Tabela 4: Precedência de Operadores Aritméticos
Prioridade Operadores
1ª ^ \ %
2ª * /
3ª + -
Tabela 5: Funções Matemáticas
Função Descrição
Abs(valor) Calcula o módulo (valor absoluto) do valor entre parênteses.
Cos(valor) Calcula o cosseno do valor entre parênteses
Sen(valor) Calcula o seno do valor entre parênteses
Tan(valor) Calcula a tangente do valor entre parênteses
Exp(b, e) Calcula o valor de b elevado a e
Log(valor) Calcula o logaritmo decimal do valor entre parênteses
Logn(valor) Calcula o logaritmo natural do valor entre parênteses
Pi Valor de Pi
Raizq(valor) Calcula a raiz quadrada do valor entre parênteses
Exemplo
Expressões Aritméticas
B ^ 2 – 4 * A * C
Neste caso, é executada a operação de exponenciação por primeiro. Em
P á g i n a | 43
Tabela 6: Operadores Relacionais
Operador Significado
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
= Igual a
<> Diferente de
Exemplo
Expressões Relacionais
A B
Adf d B
Tabela 7: Operadores Lógicos
Operador Descrição
Tabela 8: Tabela Verdade para Operadores Lógicos
A B A E B A OU B Não A Não B
VERDADEIRO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO
VERDADEIRO FALSO FALSO VERDADEIRO FALSO VERDADEIRO
FALSO VERDADEIRO FALSO VERDADEIRO VERDADEIRO FALSO
FALSO FALSO FALSO FALSO VERDADEIRO VERDADEIRO
Tabela 9: Precedência dos Operadores Lógicos
Prioridade Operadores
1ª NÃO
2ª E
3ª OU
P á g i n a | 46
Exemplo
Precedência de Operadores Lógicos
5 8 OU 5 6 E 1 5
Neste caso, o resultado seria falso. Pois, é executada a operação E e, em seguida,
Tabela 10: Precedência de Operadores
Prioridade Operadores
1ª Operadores Aritméticos
2ª Operadores Relacionais
3ª Operadores Lógicos
P á g i n a | 47
Exemplo
Precedência de Operadores
Auto Avaliação 2.2
1. Escreva o resultado das seguintes expressões:
2. Escreva o resultado das seguintes comparações:
a) 3 = 1 + 2
b) NÃO(8 <= 3 OU 4 = 0) E 10 – 2 > 5
c) X–1 > 0 OU (10*X < 80 E NÃO(X <> 1)), onde X = 1
Exemplo
Comando de Atribuição
X <- A + B
Como se lê?
A variável X recebe o resultado da expressão A + B, ou seja, o valor correspondente
à soma do conteúdo da variável A com o conteúdo da variável B.
O que acontece “dentro” do computador?
Uma cópia do conteúdo das variáveis A e B é “enviada” para os registradores.
Então, a Unidade Lógica e Aritmética realiza a soma, guardando o resultado no
registrador. Em seguida, este resultado é armazenado na memória (na variável X).
Isto é representado pelo comando de atribuição.
Exemplo
Comando de Atribuição
X <- X + 1
Como se lê?
A variável X recebe o resultado da expressão X + 1, ou X recebe X + 1.
O que acontece “dentro” do computador?
Uma cópia do conteúdo da variável X é “enviada” para o registrador. Então, a
Unidade Lógica e Aritmética realiza a soma desse valor com 1, guardando o
resultado no registrador. Em seguida, este resultado é armazenado na própria
variável X (o antigo valor é substituído). Neste caso, dizemos que a variável X foi
incrementada de uma unidade.
Observação: caso a operação fosse de subtração, diríamos que a variável X foi
decrementada em uma unidade.
P á g i n a | 49
Auto Avaliação 2.3
Determine os valores finais de A, B e C após a execução do trecho do algoritmo abaixo.
A <- 0
B <- 1
C <- A + B
A <- A + 1
B <- A + B + C
Escreva(<expressão ou identificador>)
onde
Exemplo
Comando de Saída
A <- 10
B <- 2
Escreva(“O Valor de A é”, A)
Escreva(“A Soma de A e B é”, A + B)
Os dois primeiros comandos nós já discutimos e você já sabe que a variável A
armazenará o valor 10 e a variável B guardará o valor 2.
Na terceira linha, temos um comando de saída que possui dois parâmetros: o
primeiro é um valor constante do tipo CARACTERE (entre aspas) e o segundo é o
identificador de uma variável. Neste caso, será mostrada na tela a constante e, em
seguida, o valor armazenado na variável A. Ou seja, O valor de A é 10.
Na quarta linha, temos outro comando de saída com dois parâmetros: o primeiro
é uma constante CARACTERE e o segundo uma expressão aritmética envolvendo
duas variáveis. Neste caso, será exibida na tela a frase e, em seguida, o resultado
da expressão. Ou seja, A Soma de A e B é 12.
Leia(<identificador>)
onde:
Exemplo
Comando de Entrada
Leia (X)
Como se lê?
Leia um valor para a variável X ou, simplesmente, leia X.
O acontece “dentro” do computador?
O computador fica “esperando” o usuário digitar um dado. Após a digitação, o
dado é armazenado no endereço de memória representado por X.
Observação: o dado digitado deve ser do mesmo tipo da variável que o guardará,
caso contrário ocorrerá um erro durante a execução do algoritmo.
Exemplo
Os comandos necessários para ler o número de páginas de um livro são:
Var
numPag: Inteiro
Leia(numPag)
O comando Leia é utilizado para capturar do teclado o valor que corresponde ao
número de páginas do livro e armazena esse valor na variável numPag. A variável
deverá obrigatoriamente ter sido declarada e seu tipo é Inteiro porque é o que se
adéqua ao problema.
P á g i n a | 53
Auto Avaliação 2.4
Escreva os comandos necessários para ler:
1. A cor de um objeto.
2. O número de filhos de um casal.
3. O salário de uma pessoa.
Explique o significado dos seguintes comandos:
1. Leia (Nome)
2. Var
Y: Real
Leia(Y)
Y <- Y * 10
Escreva(Y)
Figura 5: Estrutura Sequencial
Figura 6: Estrutura de Seleção
No exemplo (a), haverá uma repetição do ato de corrigir uma prova por 50
vezes. Já no exemplo (b), a condição que me permitirá viajar mundo afora é ter
dinheiro. No exemplo (c), a ação de prestar concurso público será repetida ate que
seja satisfeita a condição de passar em um.
Exemplo
Elaborar um algoritmo que leia dois valores numéricos, calcule e mostre sua
média aritmética.
Entrada: dois valores numéricos.
(estes valores devem ser armazenados na memória, sendo
necessárias duas variáveis para isso: NUM1 e NUM2).
Saída: a média aritmética de NUM1 e NUM2.
Processamento: Os valores armazenados em NUM1 e NUM2 são copiados
para a CPU, onde é feita a soma e, em seguida, o resultado
da soma é dividido por 2. Este resultado (a média) deve ser
guardado na memória para, em seguida, ser mostrado ao
usuário. Isto indica que deveremos ter uma variável
numérica (MEDIA).
Uma vez que o problema tenha sido entendido e tenham sido identificados
entrada, saída e processamento, o próximo passo consiste em escrever o
algoritmo segundo a sintaxe da pseudolinguagem adotada.
Algoritmo “CalculaMedia”
VAR
NUM1, NUM2, MEDIA: Real
inicio
Escreva(“Digite um valor”)
Leia(NUM1)
Escreva(“Digite outro valor”)
Leia(NUM2)
MEDIA <- (NUM1 + NUM2)/2
Escreva(“A media dos valores é: ”, MEDIA)
fimAlgoritmo
Você deve ter notado que escrever um algoritmo consiste em, inicialmente,
determinar os dados a serem manipulados (determinar seu tipo) e declarar as
variáveis que irão armazenar esses dados. Em seguida, devemos proceder à
entrada dos dados, utilizando o comando Leia. Neste caso, foram dadas
instruções ao usuário antes de cada comando Leia. Tais instruções têm a
finalidade de instruir o usuário sobre o que ele deve digitar. Na sequência,
escrevemos o processamento, que, neste caso, consistiu no cálculo da média
aritmética e na atribuição do resultado à variável MEDIA. Por fim, o resultado
deve ser mostrado, através do comando Escreva.
P á g i n a | 59
O teste aqui apresentado tem finalidade apenas didática, podendo ser feito
de forma mais enxuta com a construção e preenchimento de uma tabela de
variáveis. Este teste é conhecido como Teste de Mesa.
O teste de mesa simula a execução de todos os passos do algoritmo, a fim
de saber se ele chega ao resultado a que se propõe e se a lógica está correta. A
cada comando executado, o valor das variáveis na tabela deve ser atualizado. Se
após a execução de um comando, uma ou mais variáveis nã assumirem os valores
esperados, há um erro de lógica no algoritmo.
Ao construir a tabela para o teste de mesa, devemos reservar uma coluna
para cada variável e uma coluna para saída de dados.
Exemplo
Escrever um algoritmo que receba o salário de um funcionário, calcule e mostre
o novo salário após reajuste de 20%.
Entrada: o valor do salário atual, que deverá ser armazenado em
uma variável do tipo Real.
Saída: o valor do salário reajustado.
Processamento: calcular o valor do aumento (20% do salário atual), ou seja
salário atual * 0.20. Em seguida, somar o valor do aumento
ao salário atual e guardar o resultado na memória (variável
do tipo Real)
Uma vez que o problema tenha sido entendido e tenham sido identificados
entrada, saída e processamento, o próximo passo consiste em escrever o
algoritmo segundo a sintaxe da pseudolinguagem adotada.
Algoritmo “ReajustaSalario”
VAR
SalAtual, Aumento, NovoSal: Real
inicio
Escreva(“Informe o salário atual”)
Leia(SalAtual)
Aumento <- SalAtual * 0.20
NovoSal <- SalAtual + Aumento
Escreva(NovoSal)
fimAlgoritmo
Exemplo
Elaborar um algoritmo que leia o valor do raio, calcule e mostre a área do
círculo correspondente.
Entrada: o valor do raio, que deverá ser armazenado em uma variável
do tipo Real.
Saída: o valor da área do círculo.
Processamento: calcular a área através da fórmula Pi * raio²
Uma vez que o problema tenha sido entendido e tenham sido identificados
entrada, saída e processamento, o próximo passo consiste em escrever o
algoritmo segundo a sintaxe da pseudolinguagem adotada.
Algoritmo “AreaCirculo”
VAR
raio, area: Real
inicio
Escreva(“Informe o raio do círculo”)
Leia(raio)
area <- Pi * Exp(raio, 2)
Escreva(area)
fimAlgoritmo
Note que não é necessário declarar o Pi, pois já uma função definida para nossa
pseudolinguagem.
O cálculo do quadrado do raio foi realizado pela função pré‐definida Exp.
resultado guardado na variável area. Por fim, o dado armazenado em area seria
exibido na tela do monitor e a execução do algoritmo encerrada.
A tabela abaixo corresponde a um teste de mesa para o algoritmo
AreaCirculo, cujo valor de entrada seja 10.
Exemplo
Faça um algoritmo que receba o valor de um depósito e o valor da taxa de juros,
calcule e mostre o valor do rendimento e o valor total depois do rendimento .
Entrada: o valor do depósito e o valor da taxa de juros. Ambos devem
ser armazenados em variáveis do tipo Real.
Saída: o valor do rendimento e o valor do montante.
Processamento: calcular o valor do rendimento pela fórmula:
rendimento = deposito * taxa/100
Calcular o valor do montante pela fórmula:
montante = deposito + rendimento
Para este problema necessitamos de quatro espaços na memória para armazenar
os valores do depósito, da taxa de juros, do rendimento e do montante. Todos os
esses dados são do tipo real. Note que temos duas entradas (deposito e taxa), por
isso teremos dois comandos Leia. Veja que também são apresentados dois
resultados (rendimento e montante), o que corresponde a dois comandos Escreva.
Algoritmo “CalculaRendimento”
VAR
dep,taxa, rend, montante: Real
inicio
Escreva(“Informe o valor do depósito”)
Leia(dep)
Escreva(“Informe o valor da taxa de juros”)
Leia(taxa)
rend <- dep * taxa/100
Escreva(rend)
montante <- dep + rend
Escreva(montante)
fimAlgoritmo
Poderíamos ter realizado todas as operações de processamento e só realizar a
saída de dados ao final.
P á g i n a | 65
Exemplo
O custo ao consumidor de um carro novo é a soma do preço de fábrica com o
percentual de lucro do distribuidor e dos impostos aplicados sobre o preço de
fábrica . Fazer um algoritmo que receba o preço de fábrica de um veículo, o
percentual de lucro do distribuidor e o percentual de impostos, calcule e mostre
o valor correspondente ao lucro do distribuidor, o valor correspondente aos
impostos e o preço final do veículo.
Entrada: o preço de fábrica do veículo, o percentual de lucro e o
percentual de impostos.
Saída: o valor do lucro, o valor dos impostos e o preço final do
veículo.
Processamento: calcular o valor do lucro do distribuidor pela fórmula:
lucro = preço de fábrica * percentual de
lucro/100
calcular o valor dos impostos pela fórmula:
impostos = preço de fábrica * percentual de
impostos/100
calcular o preço final do veículo pela fórmula:
preço final = preço de fábrica + lucro +
impostos
Algoritmo “PrecoVeiculo”
VAR
precoFb, percI, percL, lucro, imp, precoFinal: Real
inicio
Escreva(“Informe o preço de fábrica”)
Leia(precoFb)
Escreva(“Informe o percentual de lucro”)
Leia(percL)
Escreva(“Informe o percentual de impostos”)
Leia(percI)
lucro <- precoFb * percL/100
imp <- precoFb * percI/100
pecoFinal <- precoFb + lucro + imp
Escreva(lucro)
Escreva(imp)
Escreva(precoFinal)
fimAlgoritmo
Auto Avaliação 3.1
1. Escrever um algoritmo que leia três valores (A, B eC), calcule e mostre a área de um
trapézio que tenha A como base menor, B como base maior e C como altura.
2. Faça um algoritmo que receba o número de horas trabalhadas de um funcionário, o
valor correspondente a cada hora, calcule e mostre o salário desse funcionário.
3. Faça um algoritmo que receba o salário base de um funcionário, calcule e mostre seu
salário a receber, sabendo‐se que o funcionário tem 5% de gratificação sobre o
salário base e paga 7% de imposto sobre este.
4. Faça um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual,
calcule e mostre a idade dessa pessoa.
Problemas Complementares
1. Pedro comprou um saco de ração com peso em quilos. Ele possui dois gatos,
para os quais fornece a quantidade de ração em gramas. A quantidade
diária de ração fornecida para cada gato é sempre a mesma. Faça um
algoritmo que receba o peso do saco de ração e a quantidade de ração
fornecida para cada gato, calcule e mostre quanto restará de ração no saco
após 5 dias.
2. Faça um algoritmo que leia o nome de um piloto, uma distância percorrida
em km e o tempo que o piloto levou para percorrê‐la (em horas). O
programa deve calcular a velocidade média ‐ Velocidade = Distância /
Tempo ‐ em km/h, e exibir a seguinte frase: A velocidade média do
<nome do piloto> foi <velocidade media calculada>
km/h.
3. Sabe‐se que para iluminar de maneira correta os cômodos de uma casa,
para cada metro quadrado deve‐se usar 18W de potência. Faça um
P á g i n a | 67
Para saber mais acesse
http://www.apoioinformatica.inf.br/visualg/objetivos.htm
Figura 7: Tela do VisuAlg
(iniciados por //) são chamados de comentários e servem para prestar informações
ao programador, sendo ignorados durante a execução do algoritmo. É importante
adicionar comentários aos nosso códigos para facilitar sua compreensão por outras
pessoas.
Na parte inferior da janela, vemos do lado esquerdo o quadro de variáveis,
que será preenchida durante a execução do algoritmo.
Para executar o algoritmo, basta pressionar a tecla F9, ou clicar no menu
Algoritmo e escolher a opção executar. Imediatamente, será exbida uma janela do
prompt de comando onde o algoritmo será executado. Ao final da execução, temos
todas as informações na janela do VisuAlg, conforme mostra a figura a seguir.
Figura 8: Janela do VisuAlg após execução do Algoritmo
P á g i n a | 70
Exercícios Complementares
a)
b)
5. Defina variável.
[ ] Nome2 [ ] norte-sul
[ ] A&E [ ] NomeDoAluno
var
NOME, COR, TESTE, DIA: caracter
SOMA, NUM: inteiro
Salario: real
X: lógico
11. Quais os valores armazenados em SOMA, NOME e TUDO, supondo que NUM,
X, COR, DIA, TESTE e TESTE2 valem, respectivamente, 5, 2, “AZUL”,
“TERÇA”, FALSO e VERDADEIRO?
a) NOME <- DIA
b) SOMA <- (NUM^2/X) + (X + 1)
c) TUDO <- NÃO((TESTE OU TESTE2) E (X <> NUM))
Algoritmo “PrimeiroAlgoritmo”
var
NOME: caracter
inicio
leia (NOME)
leia (NOTA1)
leia (NOTA2)
P á g i n a | 74
leia (NOTA3)
leia (NOTA4)
fimalgoritmo
var
Maria: caracter
idade: numerico
letra: literal
Maria: real
1alt: caracter
peso : tonelada
Fernando literal
inicio
leia (nome)
leia idade
escreva (idade)
dade = 678
P á g i n a | 75
leia "letra"
leia ABC
escreva (letra)
letra <- A
fimalgoritmo
16. Faça um algoritmo que receba a medida do ângulo formado por uma
escada apoiada no chão e a distância em que a escada está da parede,
calcule e mostre a medida da escada. (Lembre das relações
trigonométricas no triângulo retângulo)
Referências
DEITEL, H. M.; DEITEL, P. J. Java: Como Programar. São Paulo: Pearson Prentice
Hall, 2005.