Vous êtes sur la page 1sur 21

Algoritmo e Programação de Computadores

1. Introdução à Programação
1.1 Organização Básica de um Computador

O computador é composto basicamente de 4 unidades: unidade de entrada, unidade de saída,


unidade de processamento e memória. A unidade de entrada, é um dispositivo utilizado para fazer a
interação entre o usuário e o computador. A unidade de saída, por sua vez, serve para que o usuário
veja os resultados do processamento realizado pelo computador. A unidade central de
processamento, também conhecida como CPU, é responsável por todo o processamento requerido,
transformando os dados de entrada em dados de saída. Na memória são armazenados os dados e
informações temporariamente, que serão utilizados no processamento.

Entrada Processamento Saída

Memória

1.2 Linguagem de Máquina

As unidades componentes de um computador precisam se comunicar entre si. Para que haja
comunicação é necessário que se estabeleça uma linguagem. A linguagem utilizada para
comunicação entre os componentes de um computador é chamada de linguagem de máquina,
constituída por dois símbolos básicos (zero e um), cada um deles denominados de bit (binary digit).
Uma linguagem de máquina, portanto, é constituída, por uma seqüência de bits, ou seja, seqüências
de dígitos zero e um.
Para que haja a comunicação do homem com o computador, é necessário que as palavras da
linguagem escrita seja traduzida para a linguagem de máquina.

1.3 Algoritmo

Um algoritmo nada mais é do que “um conjunto finito de regras, bem definidas, para a solução de um
problema em um tempo finito”.
Ex.:

1
Algoritmo e Programação de Computadores

Considerando o seguinte problema, dados três valores não nulos, a, b, c, determinar a sua
média aritmética. As tarefas a serem executadas para a solução deste problema, podem ser descritas
da seguinte forma:
1. Obter os valores de a, b, c
2. Calcular a média aritmética através da fórmula: (a+b+c)/3
3. Comunicar o resultado obtido: média aritmética
4. Terminar
A seqüência de tarefas acima, especificadas passo a passo, é um algoritmo, pois é formado por um
conjunto finito de regras que podem ser consideradas bem definidas e cuja execução produz a
solução do problema proposto, após um tempo finito.

1.4 Linguagem

Uma linguagem escrita (ou linguagem de programação) pode ser definida como um conjunto de
símbolos e regras (instruções), utilizados no processo de comunicação homem-máquina. O
computador foi concebido para executar instruções escritas em linguagens de máquina, portanto, o
computador é capaz de executar um algoritmo escrito nesta linguagem (programa).

1.5 Programa

Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de
computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e
executados por uma máquina, no caso um computador.
Um algoritmo escrito numa linguagem de computador é chamado de programa fonte ou simplesmente
programa. As instruções de um programa fonte são chamadas comandos. O programa fonte é
traduzido para a linguagem de máquina. Há dois tipos que programas que fazem esta tradução: os
interpretadores e os compiladores. Os interpretadores traduzem os comandos para a linguagem de
máquina um a um enquanto que os compiladores traduzem todo o programa para a linguagem de
máquina.

2. Introdução à Linguagem Algorítimica


2.1 Constante

Uma informação é constante quando não sofre nenhuma alteração no decorrer do tempo.
Uma constante pode ser:
- um número (inteiro ou real)
- um valor lógico
- um caractere
Ex.: PI, NP, 5, 6.3, 0, “Aprovado”, falso

2.2 Variável

Uma informação é variável quando tem a possibilidade de ser alterada em algum instante no decorrer
do tempo.
Uma variável é uma posição de memória a qual estão associados um identificador e um tipo de dado.
Pelo nome dado a essa variável temos acesso a seu conteúdo, podendo manipulá-lo (alterar,
consultar, apagar, etc).

Sintaxe: Var
<lista de identificadores> : <tipo de dado>

Onde:

- Lista de identificadores: se tiver mais de um identificador basta separá-los por vírgula e


será usada no programa para fazer referência àquela variável. O primeiro caractere do

2
Algoritmo e Programação de Computadores

identificador deverá sempre começar por uma letra, somente composto por letras, números e
sublinhado ( _ ), não deve conter caracteres especiais (espaço em branco, hífen, asterisco,
etc.
Ex.: media_aluno, soma, ax, y, nomedoaluno

Cuidado: nome de identificadores não podem conter palavras reservadas.

- Tipo de dado: associado a uma variável é o conjunto de elementos que nela podem ser
armazenados.
Utilizaremos quatro tipos de dados: inteiro, real, cadeia de caracteres e lógico (ou booleano).
Serão definidos como(observe que não possuem acentos):
• inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.
• real: define variáveis numéricas do tipo real, ou seja, com casas decimais.
• caractere: define variáveis do tipo string, ou seja, cadeia de caracteres.
• logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.

2.3 Expressões Aritméticas

O Visualg 2.0 é capaz de avaliar as seguintes expressões aritméticas que envolvam os seguintes
operadores:

Operadores unários( - e +): isto é, são aplicados a um único operando. São os operadores
aritméticos de maior precedência.
Ex.: -3, +x.
Enquanto o operador unário - inverte o sinal do seu operando, o operador + não altera o valor em
nada o seu valor.

Operador Significado
^ Potenciação
* Multiplicação
/ Divisão
+ Soma
- Subtração
\ Operador de divisão inteira. Por exemplo, 5 \ 2 = 2. Tem a mesma
precedência do operador de divisão tradicional
Mod Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 % 3 = 2.
Tem a mesma precedência do operador de divisão tradicional.

Prioridade das operações


- Parênteses mais internos
- Efetuar as funções
- Efetuar as potências e raízes
- Efetuar a multiplicações e divisões
- Efetuar as adições e subtrações

2.4 Expressões Lógicas


Operadores Relacionais
Utilizamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo de
dado. Tais valores são representados por constantes, variáveis (identificadores) ou expressões
aritméticas. O resultado obtido de uma relação é sempre um valor lógico (verdadeiro ou falso).
Maior que >
Menor que <
Maior igual a >=

3
Algoritmo e Programação de Computadores

Menor igual a <=


Igual a =
Diferente de <>
Ex.:
2*4 = 24/8
(15%4) < (19%6)

Operadores Lógicos

R1 R2 (R1) e (R2) (R1) ou (R2)


Verdadeiro Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso Verdadeiro
Falso Verdadeiro Falso Verdadeiro
Falso Falso Falso Falso

R1 nao (R1)
Verdadeiro Falso
Falso Verdadeiro
Prioridade entre operadores lógicos

nao
e ou

Prioridades entre todos os operadores

Parênteses mais internos


Funções matemáticas
Operadores aritméticos
Operadores relacionais
Operadores lógicos

2.5 Comando de atribuição


É o ato de colocar um valor dentro de uma variável. O valor a ser atribuído deve ser compatível com o
tipo de variável.
Sintaxe:
Identificador de variável <- expressão
Ex.:
a <- 3
Valor1 <- 1.5
Valor2 <- Valor1 + a
vet[1] <- vet[1] + (a * 3)
matriz[3,9] <- a/4 - 5
nome_do_aluno <- "José da Silva"
sinalizador <- FALSO

2.6 Estrutura/Execução de um programa na Linguagem Algorítmica

A estrutura de um programa escrito em linguagem algorítmica terá a seguinte estrutura.

Algoritmo "<nome do algoritmo>"


var

4
Algoritmo e Programação de Computadores

< declaração de variáveis>


inicio
< lista de comandos>
fimalgoritmo

As palavras algoritmo e fimalgoritmo fazem parte da sintaxe da linguagem e sempre


delimitam o inicio e fim de um algoritmo; a < declaração de variáveis> é a seção
ou parte do algoritmo onde descrevemos os tipos de dados que serão usados na lista de
comandos.; inicio indica o fim das declarações e o início da seção de comandos; <
lista de comandos > é apenas uma indicação de que entre as palavras inicio e
fimalgoritmo podemos escrever uma lista com uma ou mais instruções ou comandos. É
importante salientar que, quando um algoritmo é “executado”, as instruções ou
comandos de um algoritmo são sempre executados na ordem em que aparecem no
mesmo. As palavras que fazem parte da sintaxe da linguagem são palavras reservadas,
ou seja, não podem ser usadas para outro propósito em um algoritmo que não seja
aquele previsto nas regras de sintaxe. A palavra algoritmo, por exemplo, é uma palavra
reservada.

2.7 Comando de Entrada

Vimos anteriormente que a maioria dos programas manipula dados que são fornecidos pelo usuário
durante a execução do programa. Estes dados, repetindo, constituem a entrada do programa e,
naturalmente, devem ser armazenados em variáveis. O comando do Visualg que permite que o
usuário digite no teclado algum dado durante a execução de um programa e que armazena este dado
na memória é chamado de comando de entrada e deve ser escrito com a seguinte sintaxe:
Sintaxe:
Leia (identificador de variável)
Exemplo:
leia (NumeroConta)
leia (NumeroAgencia)
leia (NomeCliente)

É incorreto usar:

leia (NumeroConta+60)
leia (12345)
leia (NomeCliente+Sobrenome)

2.8 Comando de Saída

Um comando de saída é utilizado quando necessitamos apresentar os resultados da execução do


algoritmo no vídeo (monitor do computador).

Sintaxe:
Escreva (identificador de variável)
ou
Escreva (expressão)
ou
Escreva (“mensagem”)
ou uma combinação destes casos.

 No primeiro caso, o conteúdo da variável associada ao comando é exibido na tela do vídeo;


Ex.:

Algoritmo “Exibir uma variável”


Var
Frase : caracter
Inicio

5
Algoritmo e Programação de Computadores

Leia (Frase)
Escreva (Frase)
Fimalgoritmo

6
Algoritmo e Programação de Computadores

 No segundo caso, a expressão é avaliada e o seu resultado é exibido;


Ex.:
Algoritmo “Exibir uma expressão”

Var
a, b, c : real
Inicio
Leia a
Leia b
Leia c
Escreva ((a+b+c)/3)
Fimalgoritmo

 No terceiro caso, a mensagem escrita entre aspas é exibida.


Ex.:
Algoritmo “Exibir uma mensagem”

Inicio
Escreva (“Estou aprendendo a programar”)
Fimalgoritmo

OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando
usado consecutivamente.

Escreval (<expressão ou identificador ou constante>)


Mostra o primeiro resultado na mesma linha depois em linhas diferentes.

Escreva (<expressão ou identificador ou constante>)


Mostra o resultado na mesma linha, mas em colunas diferentes.

Exemplo
X <- 3.5
Y <- 4
Escreva ("O valor de X é", X)
Escreva (" E o valor de Y é ", Y)
Escreval (" A soma de X e Y é", X+Y)
Escreval ("O valor de X é", X)
Escreval ("E o valor de Y é ", Y)
Escreval ("A soma de X e Y é", X+Y)

Faria com que aparecesse na tela:


O valor de X é 3.5 E o valor de Y é 4 A soma de X e Y é 7.5
O valor de X é 3.5
E o valor de Y é 4
A soma de X e Y é 7.5

2.9 Métodos para construção de algoritmos


a) Ler atentamente o enunciado do problema;
b) Retirar do enunciado a relação das entradas de dados;
c) Retirar do enunciado a relação das saídas de dados;
d) Determinar o que deve ser feito para transformar as entradas determinadas nas saídas
especificadas. Nesta fase teremos a construção do algoritmo propriamente dito;
e) Executar o algoritmo. Implica em executar todas as ações descritas seguindo um fluxo de
execução estabelecido, verificando a existência de possíveis erros no desenvolvimento do
algoritmo. Essa atividade é conhecida como “teste de mesa”.

7
Algoritmo e Programação de Computadores

2.10 Exercícios (Ler, Escrever, Atribuição e Funções)

Todos os exercícios deverão ser feitos obedecendo as regras do Português Estruturado utilizado pelo
interpretador Visualg. Somente utilize os comandos vistos, anteriormente, em aula.

1. Imprimir a mensagem: ALGORITMO SÓ SE APRENDE PRATICANDO.


2. Imprimir seu nome.
3. Ler um número e imprimi-lo.
4. Ler três números inteiros e imprimi-los.
5. Ler um número inteiro e imprimir seu sucessor e seu antecessor.
6. Ler nome, endereço e telefone e imprimi-los.

7. Entrar com um número e imprimir a seguinte saída:


NUMERO:
QUADRADO:
RAIZ QUADRADA:

8. Entrar com nome e idade. Imprimir a seguinte saída:


NOME:
IDADE:

9. Efetuar a leitura de um número inteiro e apresentar o resultado do quadrado deste número.

10. Ler dois valores inteiros (variáveis A e B) e efetuar as operações de adição, subtração,
multiplicação e divisão de A por B, apresentando ao final os quatro resultados obtidos.

11. Escreva um algoritmo que forneça o valor em graus Fahrenheit, de uma temperatura expressa
em graus Celcius.

9C + 32
F=
5

12. Faça um algoritmo para calcular o volume de uma esfera de raio r.


4πr 3
V =
3

13. Faça um algoritmo que, para quatro valores reais, a, b, c e d determine:


a) a média aritmética (MA);
b) a média harmônica (MH);
c) a média geométrica (MG);
d) a média quadrática (MQ).
4 a 2 + b2 + c2 + d 2
MH = MG = 4 a.b.c.d MQ =
1 1 1 1 4
+ + +
a b c d

14. Construir um programa que efetue o cálculo do salário líquido de um professor. Para fazer este
programa você deverá possuir alguns dados, tais como: valor da hora aula, número de aulas
dadas no mês e percentual de desconto do INSS. Em primeiro lugar, deve-se estabelecer qual
será o seu salário bruto para efetuar o desconto e ter o valor do salário líquido.
ht = horas trabalhadas no mês
vh = valor hora aula

8
Algoritmo e Programação de Computadores

pd = percentual de desconto
sb = salário bruto
td = total de desconto
sl = salário líquido
15. Efetuar o cálculo da quantidade de litros de combustível gasta em uma viagem, utilizando-se um
automóvel que faz 12 Km por litro. Para obter o cálculo, o usuário deverá fornecer o tempo gasto
na viagem e a velocidade média durante a mesma. Desta forma, será possível obter a distância
percorrida com a fórmula DISTÂNCIA = TEMPO * VELOCIDADE. Tendo o valor da distância,
basta calcular a quantidade de litros de combustível utilizada na viagem com a fórmula
LITROS_USADOS = DISTÂNCIA / 12. O programa deverá apresentar os valores da velocidade
média, tempo gasto na viagem, a distância percorrida e a quantidade de litros utilizada na
viagem.
16. Ler a temperatura em graus Fahrenheit e apresentá-la convertida em graus Centígrados. A
fórmula de conversão é:
C = (F – 32) * (5 / 9), onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.
17. Ler dois valores para as variáveis A e B, efetuar a troca de valores de forma que a variável A
passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A.
Apresentar os valores trocados.
18. Efetuar o cálculo do valor de uma prestação em atraso, utilizando a fórmula:
PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO).
19. Uma loja de animais precisa de um programa para calcular os custos de criação de coelhos. O
custo é calculado com a fórmula CUSTO = (NUM_COELHOS * 0.70) / 18 + 10. O programa deve
ler um valor para a variável NUM_COELHOS e apresentar o valor da variável CUSTO.

3. Iniciando o Visualg 2.0 (Interpretador de Linguagem Algorítmica)


Fonte: Ajuda do Visualg 2.0

O Visualg 2.0 é uma ferramenta que permite ao aluno escrever um programa num ambiente próximo
da realidade, ou seja, o aluno poderá executar o seu algoritmo utilizando o computador, vendo na
prática o que acontece com um programa. Esta ferramenta simula o que acontece na tela do
computador com o uso dos famosos comandos "leia" e "escreva", bem como possibilitar a verificação
dos valores das variáveis, o acompanhamento passo a passo da execução de um algoritmo (pelo seu
grande valor didático), e até mesmo suportar um modo simples de depuração. Aliado a tudo isto,
deveria estar um editor de texto com recursos razoáveis (tais como abrir e salvar arquivos) e que
dispusesse de todos os principais recursos de um ambiente gráfico do Visualg.

9
Algoritmo e Programação de Computadores

3.1 A Tela Principal do VisuAlg

A tela do VisuAlg compõe-se da barra de tarefas, do editor de textos (que toma toda a sua metade
superior), do quadro de variáveis (no lado esquerdo da metade inferior), do simulador de saída (no
correspondente lado direito) e da barra de status. Quando o programa é carregado, já apresenta no
editor um "esqueleto" de pseudocódigo, com a intenção de poupar trabalho ao usuário e de mostrar o
formato básico que deve ser seguido. Explicaremos a seguir cada componente da interface do

3.2 A Barra de Tarefas

Contém os comandos mais utilizados no VisuAlg (estes comandos também podem ser acessados
pelo menu ou por atalhos no teclado).

Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se
este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.

10
Algoritmo e Programação de Computadores

Novo (Ctrl-N): Cria um novo "esqueleto" de pseudocódigo, substituindo o texto presente no editor. Se
este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.
Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é
gravado, o VisuAlg pede seu nome e localização.
Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Para configurar a
impressão, use o comando Imprimir do menu Arquivo (acessível também pelo atalho Ctrl-P).
Cortar (Ctrl-X): Apaga texto selecionado, armazenando-o em uma área de transferência.
Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.
Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.
Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A
extensão sugerida para o nome do arquivo é .inc.
Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o
nome do arquivo é .inc.
Desfazer (Ctrl-Z): Desfaz último comando efetuado.
Refazer (Shift-Ctrl-Z): Refaz último comando desfeito.
Localizar (Ctrl-L): Localiza no texto presente no editor determinada palavra especificada.
Substituir (Ctrl-U): Localiza no texto presente no editor determinada palavra especificada,
substituindo-a por outra.
Corrigir Indentação (Ctrl-G): Corrige automaticamente a indentação (ou tabulação) do
pseudocódigo, tabulando cada comando interno com espaços à esquerda.
Numerar linhas: Ativa ou desativa a exibição dos números das linhas na área à esquerda do editor.
A linha e a coluna do editor em que o cursor está em um determinado momento também são
mostradas na barra de status (parte inferior da tela). Por motivos técnicos, esta opção é
automaticamente desativada durante a execução do pseudocódigo, mas volta a ser ativada logo em
seguida.
Mostrar variáveis modificadas: Ativa ou desativa a exibição da variável que está sendo modificada.
Como o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização;
quando esta característica está ativada, o VisuAlg rola a grade de exibição de modo que cada
variável fique visível no momento em está sendo modificada. Este recurso é especialmente útil
quando se executa um pseudocódigo passo a passo. Por questões de desempenho, a configuração
padrão desta característica é desativada, quando o pseudocódigo está sendo executado
automaticamente. No entanto, basta clicar este botão para executá-lo automaticamente com a
exibição ativada. No final da execução, a configuração volta a ser desativada.
Restaurar tela inicial:

Executar (F9): Inicia (ou continua) a execução automática do pseudocódigo.


Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado)
antes da execução de cada linha. Também realça em fundo azul o comando que está sendo
executado, da mesma forma que na execução passo a passo.
Intervalo do timer: Atraso em cada linha, para quando se deseja executar o pseudocódigo com
timer.
Passo (F8): Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a
oportunidade de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos
subprogramas.
Parar (Ctrl-F2): Termina imediatamente a execução do pseudocódigo. Evidentemente, este botão
fica desabilitado quando o pseudocódigo não está sendo executado.a linha em que esteja o cursor.
Estes pontos de parada são úteis para a depuração e acompanhamento da execução dos

11
Algoritmo e Programação de Computadores

pseudocódigos, pois permitem a verificação dos valores das variáveis e da pilha de ativação de
subprogramas.
Desmarcar todos os breakpoints (Ctrl-F5): Desativa todos os breakpoints que estejam ativados
naquele momento.
Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passa a ser
uma janela que imita o DOS, simulando a execução de um programa neste ambiente.
Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados.
A faixa padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada (basta alterar
intervalo ao lado). Para a geração de dados do tipo caractere, não há uma faixa pré-estabelecida: os
dados gerados serão sempre strings de 5 letras maiúsculas.
Intervalo dos valores aleatórios: Faixa de valores que serão gerados automaticamente, quando
esta opção estiver ativada.
Perfil (F7): Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das
suas linhas foi executada. É útil para a análise de eficiência (por exemplo, nos métodos de
ordenação).
Mostrar pilha de ativação (Ctrl-F3): Exibe a pilha de subprogramas ativados num dado momento.
Convém utilizar este comando em conjunto com breakpoints ou com a execução passo a passo.
Ajuda (F1): Possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg.

3.4 Quadro de Variáveis

É formado por uma grade na qual são mostrados o escopo de cada variável (se for do programa
principal, será global; se for local, será apresentado o nome do subprograma onde foi declarada),
seus nomes (também com os índices, nos casos em que sejam vetores), seu tipo ("I" para inteiro, "R"
para real, "C" para caractere e "L" para lógico) e o seu valor corrente. A versão atual do VisuAlg
permite a visualização de até 500 variáveis (contando individualmente cada elemento dos vetores).

3.5 A Barra de Status

Situada na parte inferior da tela, esta barra contém dois painéis: o primeiro mostra a linha e a coluna
onde o cursor está, e o segundo mostra a palavra Modificado no caso em que o pseudocódigo tenha
sido alterado desde que foi carregado ou salvo pela última vez. Nesta barra, há ainda um terceiro
painel disponível, que ainda não tem um uso específico na atual versão.

4. Estruturas de Seleção

4.1 Estrutura simples

Uma estrutura de seleção vai analisar se uma dada seqüência de comandos será ou não executada.

Sintaxe: estrutura simples


SE (expressão lógica) ENTAO
Seqüência de comandos
FIMSE

A seqüência de comandos só será executada se a expressão lógica for verdadeira, se for falsa a
referida seqüência não é executada e o sistema passa a executar o comando seguinte ao comando
SE.
Ex.: Elaborar um algoritmo que leia 2 valores e imprima a sua soma caso o resultado seja igual ou
superior a 15.

Algoritmo “condição simples”


Var
a, b, soma : inteiro
Inicio
Escreva (“Entre com dois valores”)

12
Algoritmo e Programação de Computadores

Leia (a)
Leia (b)
Soma <- a + b
Se (soma >= 15) entao
Escrever soma
Fimse
Fimalgoritmo

4.2 Estrutura Composta

Sintaxe: estrutura composta


SE (expressão lógica) ENTAO
Seqüência de comandos 1
SENAO
Seqüência de comandos 2
FIMSE

A seqüência de comandos 1 só será executada se a expressão lógica for verdadeira, se for falsa,
será executada a seqüência de comandos 2.
Ex.: Elaborar um algoritmo que leia dois números inteiros, efetuar a soma desses números, se o
resultado for maior que 10, multiplique o resultado por 2, caso contrário multiplique o resultado por 3.
Exiba os resultados encontrados.

Algoritmo “Condição composta”


Var
a, b, soma : inteiro
Inicio
Escreva (“Entre com dois valores”)
Leia (a)
Leia (b)
Soma <- a + b
Se (soma > 10) entao
Escreva soma*2
Senao
Escreva soma*3
Fimse
Fimalgoritmo

4.3 Comando de seleção múltipla


Sintaxe:
escolha <expressão-de-seleção>
caso <exp11>, <exp12>, ..., <exp1n>
<seqüência-de-comandos-1>
caso <exp21>, <exp22>, ..., <exp2n>
<seqüência-de-comandos-2>
outrocaso
<seqüência-de-comandos-extra>
fimescolha

Comentário:
Cada comando ESCOLHA poderá conter uma lista de mais de um procedimento CASO
<expressão>, e apenas um dos <bloco-de-comandos...> será executado caso seja satisfeita a
condição <expressão> ou, se nenhuma condição for satisfeita, OUTROCASO será executado.

13
Algoritmo e Programação de Computadores

Exemplo: Fazer um algoritmo para ler um valor numérico. Se este valor for igual a 1 então imprimir o
valor lido, se o valor for igual a 2 então imprimir o seu dobro, se o valor for igual a 3 então imprimir o
seu triplo e se o valor for igual a 4 então imprimir o seu quádruplo.

algoritmo "escolha"
var
val : inteiro
inicio
leia (val)
escolha val
caso 1
escreva ("simples = ",val)
caso 2
escreva ("dobro = ",val*2)
caso 3
escreva ("triplo = ",val*3)
caso 4
escreva ("quadruplo = ",val*4)
outrocaso
escreva ("outro caso ", val)
fimescolha
fimalgoritmo

Exercícios

1. Um hotel cobra R$ 60,00 a diária e mais uma taxa de serviços.


A taxa de serviços é de:
- R$ 5,50 por diária, se o número de diárias for maior que 15;
- R$ 6,00 por diária, se o número de diárias for igual a 15;
- R$ 8,00 por diária, se o número de diárias for menor que 15;
Construa um algoritmo que mostre o nome a conta de um cliente.
2. Entrar com o salário de uma pessoa e imprimir o desconto do INSS segundo a tabela abaixo:
- menor ou igual a R$ 600,00 - isento
- maior que R$ 600,00 e menor ou igual a R$ 1200,00 - 20%
- maior que R$ 1200,00 e menor ou igual a R$2000,00 - 25%
- maior que R$ 2000,00 - 30%
3. Faça um algoritmo que possa imprimir o menu abaixo:
O usuário deverá selecionar uma das opções, digitando um número
1 – solteiro(a)
e este deverá escrever o estado civil da pessoa. Emitir mensagem
2 – desquitado(a)
de erro caso seja escolhida uma opção inexistente.
3 – casado(a)
4 – divorciado(a)
5 – viúvo(a)
OPCAO:

Antes de começar a programar é preciso


entender bem o enunciado do
problema. Leia-o várias vezes, se
necessário.

14
Algoritmo e Programação de Computadores

5. Estruturas de Repetição

Todo o algoritmo que possui um ou mais de seus passos repetidos um determinado número de vezes
denomina-se algoritmos de repetição.

5.1 Variável Contador

É uma variável que recebe um valor inicial (geralmente 0) e é incrementado em algum passo do
algoritmo, de um valor constante (geralmente 1).
Ex.:
cont <- 0 //Atribuição de um valor para a variável cont
.
.
.
cont <- cont + 1 //Incremento de 1 para a variável cont

5.2 Variável Acumulador:

É uma variável que recebe um valor inicial (geralmente 0) e é incrementada em algum outro passo do
algoritmo, de um valor variável.
Ex.:
acum <- c
.
.
.
acum <- acum + v

Onde v é uma variável qualquer e c é uma constante que geralmente é zero.

A diferença básica entre uma variável contador e uma variável acumulador está no valor do
incremento, que no caso do contador é um valor constante e no caso do acumulador é um valor
variável.

5.3 Comando ENQUANTO FACA (repetição com teste no início)

Este comando faz com que o conjunto de instruções colocado no seu interior, seja repetido enquanto
o valor da expressão lógica for verdadeiro.

ENQUANTO <expressão lógica ou relacional> FACA

bloco de comandos

FIMENQUANTO

Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável
de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes.

Algoritmo “enquanto..faca”
Var
x, r, cont : inteiro
Inicio
cont <- 1
enquanto cont <= 5 faca
leia (x)
r <- x * 3
escreva (r)
cont <- cont + 1
fimenquanto
Fimalgoritmo

15
Algoritmo e Programação de Computadores

5.4 Repetição controlada pelo usuário

algoritmo”repetição controlada”
var
x, r : inteiro
resp : caracter
inicio
resp <- “sim”
enquanto (resp = “sim”) ou (resp = “s”) ou (resp = “S”) faca
leia (x)
r <- x * 3
escreva (r)
escreva (“deseja continuar (sim / não)?”)
leia (resp)
fimenquanto
fimalgoritmo

5.5 Exercícios

1. Elaborar um algoritmo que efetue o calculo do fatorial do número 5.


2. Faça um algoritmo para apresentar o total da soma dos cinco primeiros números inteiros.
3. Desenvolva os algoritmos abaixo utilizando o comando FACA ENQUANTO
a) Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. Para
verificar se o número é ímpar, efetuar dentro da malha a repetição desta condição com a
instrução SE, perguntando se o número é ímpar; sendo, mostre-o, não sendo, passe para o
próximo passo.
b) Faça um algoritmo que apresente todos os valores numéricos inteiros pares situados na faixa
de 100 a 200.
c) Apresentar o total da soma obtido dos cem primeiros números inteiros
(1+2+3+4+...98+99+100).
d) Apresentar as potências de 3 variando de 0 a 15. Deve ser considerado que qualquer número
elevado a zero é 1, e elevado a um é ele próprio. Deverá ser apresentado, observando a
seguinte definição:
30 = 1
31 = 3
32 = 9
(...)
315 = 14348907

5.6 Comando PARA..FACA

O comando PARA PROXIMO é uma estrutura de repetição que repete a execução de uma dada
seqüência de comandos um número de vezes determinado pelo próprio programa.
Sintaxe:
para <variável> de <valor inicial> ate <valor final> [passo] faca
<lista de comandos>
fimpara

Onde:
<variável> Representa a variável que controlará o processo de repetição.
<valor inicial> Consiste do valor inicial que deverá ser assumido pela variável de controle.
<valor final> Constitui-se do valor final da variável de controle.
<passo> Representa qual o incremento que deve ser sofrido pela variável de controle.

16
Algoritmo e Programação de Computadores

Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável
de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes.

Algoritmo “para..faca”
var
x, r, i : inteiro
inicio
para i de 1 ate 5 passo 1 faca //incrementa i de 1 em 1
leia (x)
r <- x * 3
escreva (r)
fimpara
fimalgoritmo

5.7 Exercícios: Utilize o comando PARA PROXIMO

4. Elaborar um algoritmo que efetue o cálculo do fatorial do número 5.


5. Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 1000 a 1500.
6. Apresentar o total da soma obtido de N números inteiros.
7. Apresentar o fatorial de um número qualquer.
8. Elaborar um algoritmo que apresente no final, o somatório dos valores pares existentes entre 10
até 20.
9. Elabore um algoritmo que, utilizando as duas estruturas de repetição, imprima a tabuada do 5.
10. Escrever um algoritmo que gera e escreve os números ímpares entre 100 e 200.
11. Escrever um algoritmo que lê 10 valores, um de cada vez, e conta quantos deles estão no
intervalo [10,20] e quantos deles estão fora deste intervalo, escrevendo estas informações.
12. Escrever um algoritmo que lê um número não conhecido de valores, um de cada vez, e conta
quantos deles em cada um dos intervalos [0,25], (25,50], (50,75], (75,100].
13. Faça o teste de mesa para os trechos de algoritmos a seguir:

Trecho 1
A <- 1 Trecho 3
S <- 0 A <- 1
Enquanto A < 5 faca B <- 4
S <- S + A S <- 0
A <- A + 2 Enquanto A <= 6 faca
Fimenquanto Se A <= B entao
S <- S + A * B
Senao
S <- S + A * B
Fimse
A <- A + 1
Trecho 2 B <- B - 1
A <- 1 Fimenquanto
N <- 0
S <- 0 Trecho 4
Enquanto S < 12 faca Para G de 1 ate 5 passo 1 faca
S <- S + A C <- 0
A <- A + 1 Enquanto C < G faca
N <- N + 1 C <- C + 1
Fimenquanto Fimenquanto
Fimpara

14. Faça um algoritmo que imprima todos os números pares compreendidos entre 85 e 907. O
algoritmo deve também calcular a soma destes valores.
15. Construa um algoritmo que verifique se um número fornecido pelo usuário é primo ou não.
16. Construa um algoritmo que leia três valores inteiros e os coloque em ordem crescente.

17
Algoritmo e Programação de Computadores

17. Para os funcionários de uma empresa, construir um algoritmo que, determine qual sexo que
apresenta maior média salarial.
18. A série de Fibonacci é formada pela seguinte seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...etc.
Escreva um algoritmo que gere a série de Fibonacci até o vigésimo termo.
19. Construa um algoritmo que, para cada grupo de 50 valores inteiros, determine:
a. A soma dos números positivos;
b. A quantidade de valores negativos.
20. Construir um algoritmo que tome como entrada, N números inteiros, e mostre o menor deles.
21. Foi feita uma pesquisa com um grupo de alunos de uma universidade, onde se perguntou para
cada aluno, o número de vezes que utilizou o restaurante da universidade, no último mês.
Construa um algoritmo que determine:
a. O percentual de alunos que utilizaram menos que 10 vezes o restaurante.
b. O percentual de alunos que utilizaram entre 10 e 15 vezes.
c. O percentual de alunos que utilizaram o restaurante acima de 15 vezes.
22. Considere que em uma eleição para prefeito, concorrem três candidatos. Cada candidato é
identificado pó um número inteiro (1,2,3). Em uma pesquisa eleitoral, perguntou-se a cada
entrevistado, em quem votaria na próxima eleição para prefeito.
Cada entrevistado deu seu voto conforme abaixo:
1,2 ou 3 : voto para os respectivos candidatos;
4 : voto nulo;
5 : indeciso;
Faça um algoritmo que calcule e escreva:
a. Percentual de votos de cada candidato;
b. Percentual de eleitores indecisos.
23. A conversão de graus Fahrenheit para centígrados é obtida pela fórmula C=5/9(F-32). Escreva
um algoritmo que calcule e escreva uma tabela de graus centígrados em função de graus
Fahenheit que variem de 50 a 150 de 1 em 1.

18
Algoritmo e Programação de Computadores

6. Fluxograma
O fluxograma é uma representação gráfica de algoritmos onde formas geométricas diferentes
implicam ações distintas. É composto de um conjunto de símbolos pré-definidos.

Simbologia básica:
Terminal: símbolo utilizado para indicar inicio/fim do fluxo do programa.

Seta de fluxo de dados: indica o sentido do fluxo de dados. Conecta os


símbolos ou blocos existentes.

Teclado: indica a entrada de dados recebidas ou fornecidas de ou por um


computador.

Display: símbolo utilizado para exibir informações no vídeo ou monitor.

Processamento: símbolo ou bloco utilizado para indicar cálculos a


efetuar, atribuições de valores ou qualquer manipulação de dados que
tenha bloco específico para sua descrição

Condição: indica uma condição, podendo resultar em uma resposta


verdadeira ou falsa.

Repetição: símbolo utilizado para repetir uma determinada seqüência do


programa.

Conector: utilizado quando é necessário particionar o diagrama.

Conector: indica a conexão do fluxo em outra página.

Obs.: Existem vários outros símbolos, cada qual com seu significado e função. Para esta disciplina
utilizaremos os indicados na lista acima com suas respectivas variações (quando houver).

19
Algoritmo e Programação de Computadores

7. Palavras reservadas

As palavras reservadas não podem ser usadas como identificador de variáveis, ou seja, não podem
ser declaradas como variáveis.

PALAVRAS RESERVADAS
aleatório e grauprad passo
abs eco inicio pausa
algoritmo enquanto int pi
arccos entao interrompa pos
arcsen escolha leia procedimento
arctan escreva literal quad
arquivo exp log radpgrau
asc faca logico raizq
ate falso logn rand
caracter fimalgoritmo maiusc randi
caso fimenquanto mensagem repita
compr fimescolha minusc se
copia fimfuncao nao sen
cós fimpara numerico senao
cotan fimprocedimento numpcarac timer
cronometro fimrepita ou tan
debug fimse outrocaso verdadeiro
declare função para xou

20
Algoritmo e Programação de Computadores

8. Referências Bibliográficas

- CRESPO, SÉRGIO; EVARISTO, JAIME; aprendendo a Programar, programando numa


linguagem algorítmica executável (ILA), Book Express, Rio de Janeiro, 2000.

- FARRER, H. et al. Programação estruturada e computadores: algoritmos estruturados. Rio


de Janeiro: LTC, 1989.

- FORBELLONE, A. L. V.; EVERSPACHER, H. F. Lógica de Programação: a construção de


Algoritmos e Estrutura de Dados. São Paulo: Makron Books, 1993.

- GUIMARÃES, A.; LAGES, N. Algoritmos e estrutura de dados. Rio de Janeiro: LTC, 1985.

- MANZANO, J. A. Estudo Dirigido de Algoritmos. São Paulo: Érica, 1997.

- OLIVEIRA, A. B. Introdução à Programação: algoritmos. Florianópolis: Bookstore, 1999.

- SALVETI, D. D. Algoritmos. São Paulo: Makron Books, 1998.

- WIRTH, N. Algoritmos e Estrutura de Dados. Rio de Janeiro: Prentice-Hall, 1989.

21

Vous aimerez peut-être aussi