ALGORITMOS E ESTRUTURAS DE DADOS I
(Parte 1)
Prof. Eduardo Machado Real
Conteúdos:
Introdução aos algoritmos
Estrutura Sequencial
Estrutura Condicional
Estruturas de Repetição
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
2
1 - INTRODUÇÃO
Desde o início de sua existência, o homem procurou criar máquinas que o auxiliassem em seu
trabalho, diminuindo esforço e economizando tempo. Dentre essas máquinas, o computador vem se
mostrando uma das mais versáteis, rápidas e seguras.
O computador pode auxiliá-lo em qualquer tarefa. É consciente, trabalhador, possui muita
energia, mas não tem iniciativa, nenhuma independência, não é criativo nem inteligente, por isso precisa
receber instruções nos mínimos detalhes.
A finalidade de um computador é receber, manipular e armazenar dados. Visto somente como
um gabinete composto de circuitos eletrônicos, cabos e fontes de alimentação, certamente ele parece não
ter nenhuma utilidade. O computador só consegue armazenar dados em discos, imprimir relatórios,
gerar gráficos, realizar cálculos, entre outras funções, por meio de programas. Portanto, sua finalidade
principal é realizar a tarefa de processamento de dados, isto é, receber dados por um dispositivo de
entrada (por exemplo, teclado, mouse, scanner, entre outros), realizar operações com esses dados e gerar
uma resposta que será expressa em um dispositivo de saída (por exemplo, impressora, monitor de vídeo,
entre outros).
Portanto, um computador possui duas partes diferentes que trabalham juntas: o hardware,
composto pelas partes físicas, e o software, composto pelos programas.
Quando queremos criar ou desenvolver um software para realizar determinado tipo de
processamento de dados, devemos escrever um programa ou vários programas interligados. No entanto,
para que o computador compreenda e execute esse programa, devemos escrevê-lo usando uma
linguagem que tanto o computador quanto o criador de software entendam. Essa linguagem é chamada
de linguagem de programação.
As etapas para o desenvolvimento de um programa são:
Análise – Nesta etapa estuda-se o enunciado do problema para definir os dados de entrada, o
processamento e os dados de saída.
Algoritmo – Ferramentas do tipo descrição narrativa, fluxograma ou português estruturado são
utilizadas para descrever o problema com suas soluções.
Codificação – O algoritmo é transformado em códigos da linguagem de programação escolhida
para se trabalhar.
Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação.
2 - NOÇÕES DE LÓGICA
A palavra lógica relaciona-se com a idéia de racionalidade e coerência.
Exemplo:
Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas
ele mesmo e mais uma das três cargas que são: um lobo, um bode e um maço de alfafas. Observe as
leis naturais: o lobo é carnívoro e o bode é herbívoro. O que o homem deve fazer para conseguir
atravessar o rio sem perder suas cargas.
O Homem leva o bode da margem 1 para a margem 2.
O Homem navega da margem 2 para a margem 1.
O Homem leva o lobo da margem 1 para a margem 2.
O Homem leva o bode da margem 2 para a margem 1.
O Homem leva a alfafa da margem 1 para a margem 2.
O Homem navega da margem 2 para a margem 1.
O Homem leva o bode da margem 1 para a margem 2.
Algumas definições:
o "a lógica é a arte de bem pensar"
o "a lógica é a ciência das formas do pensamento"
o "a lógica nos ensina a colocar ordem no pensamento"
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
3
Exemplo:
o Nova Andradina é uma cidade do estado de Mato Grosso do Sul.
o Asdrúbal nasceu em Nova Andradina.
o Portanto, Asdrúbal é Sul-matogrossense.
A lógica no dia-a-dia
o Quando queremos escrever, falar ou agir corretamente, precisamos colocar ordem no
pensamento, isto é, utilizar a lógica.
o Exemplo 1:
 O guarda-roupa está fechado.
 O terno está dentro do guarda-roupa.
 Preciso primeiro abrir o guarda-roupa, para depois pegar o terno.
A lógica de programação
o Em que consiste?
A lógica de programação consiste no uso correto das leis do pensamento, da "ordem da razão",
de processos de raciocínio e de simbolização formal na programação de computadores.
o Qual o objetivo?
Permitir a resolução de problemas específicos com soluções de boa qualidade.
o O raciocínio lógico pode ser expresso através de várias linguagens:
 no contexto humano - utiliza-se a palavra escrita/falada que, por sua vez, se
baseia num determinado idioma, mas, independente do idioma, tem-se o mesmo
raciocínio.
 no contexto computacional - utilizam-se as linguagens de programação
o Vamos utilizar uma forma de representação mais genérica (livre de detalhes
computacionais) e que traduza mais fielmente o raciocínio da lógica de programação:
ALGORITMOS
o Então ...
O objetivo da lógica de programação é a construção de algoritmos corretos e válidos.
Veja os exemplos... Deseja-se escrever um algoritmo, usando português coloquial, para resolver um
problema bastante simples, qual seja: trocar uma lâmpada queimada por uma lâmpada nova não
queimada e o outro para fazer um sanduíche de queijo.
Exemplo1: Trocar uma lâmpada queimada
Algoritmo 1.1 - Trocar uma lâmpada queimada
pegar uma escada;
posicionar a escada debaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada queimada;
colocar lâmpada nova;
Reexaminando o algoritmo 1.1, notamos que ele tem um objetivo bem definido: trocar uma lâmpada
queimada. Porém o algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal,
acrescentamos um teste condicional (estrutura seletiva).
Algoritmo 1.2 - Trocar uma lâmpada queimada (uso de teste condicional)
pegar uma escada;
posicionar a escada debaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada queimada;
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
4
colocar lâmpada nova;
se a lâmpada nova não acender, então:
o retirar a lâmpada queimada;
o colocar lâmpada nova;
o se a lâmpada nova não acender, então:
 retirar a lâmpada queimada;
 colocar a lâmpada nova;
 se a lâmpada nova não acender, então:

retirar a lâmpada queimada;

colocar a lâmpada nova;
...
até quando????
O Algoritmo 1.2 não está terminado. As ações cessarão quando conseguirmos colocar uma lâmpada que
acenda (objetivo do algoritmo). Ao invés de reescrevermos várias vezes um conjunto de ações podemos,
alterar o fluxo seqüencial de execução para permitir que ações sejam re-executadas quantas vezes forem
necessárias. Precisamos expressar essa repetição (estrutura de repetição) garantindo uma condição de
parada.
Algoritmo 1.3 - Trocar uma lâmpada queimada (uso de estruturas de repetição)
pegar uma escada;
posicionar a escada debaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada queimada;
colocar lâmpada nova;
enquanto lâmpada nova não acender, faça
 retirar a lâmpada queimada;
 colocar lâmpada nova;
Exemplo 2:
Fazer um sanduíche de queijo
(com queijo fatiado)
Pegar a faca
Pegar o pão
Cortar o pão
Colocar a faca na mesa
Pegar a fatia de queijo
Abrir o pão
Colocar a fatia de queijo no pão
(com queijo não fatiado)
Pegar a faca
Pegar o pão
Cortar o pão
Cortar uma fatia de queijo
Colocar a faca na mesa
Pegar a fatia de queijo
Abrir o pão
Colocar a fatia de queijo no pão
(para qualquer um dos casos acima:)
Enquanto tiver pão e queijo
Pegar a faca
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
5
Pegar o pão
Cortar o pão
Se o queijo estiver fatiado então
Colocar a faca na mesa
Pegar a fatia de queijo
Senão
Cortar uma fatia de queijo
Colocar a faca na mesa
Pegar a fatia de queijo
Abrir o pão
Colocar a fatia de queijo no pão
3 – CONCEITO DE ALGORITMO E ESTRUTURAS DE DADOS
À especificação da seqüência ordenada de passos que deve ser seguida para a realização de uma
tarefa, garantindo a sua repetibilidade, dá-se o nome de algoritmo.
A seguir alguns conceitos de algoritmos segundo autores da nossa bibliografia:
“Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido.” (FORBELLONE,
1999)
“Algoritmo é uma sequência finita de instruções ou operações cuja execução, em tempo finito, resolve
um problema computacional, qualquer que seja sua instância.” (SALVETTI, 1999)
“Algoritmo são regras formais para a obtenção de um resultado ou da solução de um problema,
englobando fórmulas de expressões aritméticas.” (MANZANO, 1997)
“Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz
um estado final previsível e bem definido. Portanto, um algoritmo é a descrição de um conjunto de
comandos que, obedecidos, resultam numa sucessão finita de ações.” (FARRER, 1999)
“Informalmente, um algoritmo é qualquer procedimento computacional bem definido que toma algum
valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída.
Portanto, um algoritmo é uma sequência de passos computacionais que transformam a entrada na saída.”
(CORMEN, 2002)
Também podemos visualizar um algoritmo como uma ferramenta para resolver um problema
computacional bem especificado. O enunciado do problema especifica em termos gerais o
relacionamento entre a entrada e a saída desejada. O algoritmo descreve um procedimento
computacional específico para se alcançar esse relacionamento da entrada com a saída.
“Uma estruturas de dados é um meio para armazenar e organizar dados com o objetivo de
facilitar o acesso e as modificações.” (CORMEN, 2002)
“Na Ciência da Computação, uma estrutura de dados é um modo particular de armazenamento
e organização de dados em um computador de modo que possam ser usados eficientemente.”
(WIKIPÉDIA, 2010).
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.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
6
3.1 – Método para a construção de qualquer algoritmo
Para a construção de qualquer tipo de algoritmo, é necessário seguir estes passos:
 Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses
cálculos.
 Definir os dados de saída, ou seja, quais dados serão gerados.
 Definir os dados de entrada, ou seja, quais dados serão fornecidos.
 Construir o algoritmo utilizando um dos tipos.
 Compreender completamente o problema a ser resolvido, destacando os objetos que o compõem.
 Testar o algoritmo realizando simulações.
4 – TIPOS DE ALGORITMOS
Os três tipos mais utilizados de algoritmos são: descrição narrativa, fluxograma e pseudocódigo
ou portugol.
4.1 – Descrição narrativa
A descrição narrativa consiste em analisar o enunciado do problema e escrever, utilizando uma
linguagem natural (por exemplo, a língua portuguesa), os passos a serem seguidos para sua resolução.
Vantagem: não é necessário aprender nenhum conceito novo, pois uma língua natural, neste ponto, já é
bem conhecida.
Desvantagem: a língua natural abre espaço para várias interpretações, o que posteriormente dificultará a
transcrição desse algoritmo para programa.
Exemplo:
Algoritmo para somar três números
Receber os três números. (passo1)
Somar os três números. (passo2)
Mostrar o resultado obtido. (passo 3)
4.2 - Fluxograma
O fluxograma consiste em analisar o enunciado do problema e escrever, utilizando símbolos
gráficos predefinidos, os passos a serem seguidos para sua resolução.
Vantagem: o entendimento de elementos gráficos é mais simples que o entendimento de textos.
Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante
não apresenta muitos detalhes, dificultando sua transcrição para um programa.
Símbolos utilizados:
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
7
Exemplo:
Algoritmo para multiplicar dois números
4.3 - Pseudocódigo ou Portugol
O Pseudocódigo ou Portugol é o tipo que utilizaremos para as soluções dos exercícios das
nossas aulas e consiste em analisar o enunciado do problema e escrever, por meio de regras
predefinidas, os passos s serem seguidos para sua resolução.
Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata,
bastando conhecer as palavras reservadas dessa linguagem que serão utilizadas.
Desvantagem: é necessário aprender as regras do pseudocódigo.
Exemplo:
Algoritmo para dividir dois números
algoritmo dividir
declaração de variáveis
inteiro numero1,numero2;
início
escreva(“Digite o primeiro número: “);
leia(numero1);
escreva(“Digite o segundo número: “);
leia(numero2);
se(numero2 = 0)
então
escreva(“Impossível dividir”);
fim se
senão
resultadonumero1/numero2;
escreva(“A divisão é: “, resultado);
fim senão
fim_algoritmo
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
8
Exercícios:
1 – Faça um algoritmo em descrição narrativa para:
a) Ir para a escola (ou universidade).
b) Sacar dinheiro no caixa eletrônico.
2 – Faça um algoritmo em fluxograma para mostrar o resultado da divisão de dois números.
5 – CONCEITO DE VARIÁVEL
Um algoritmo, e posteriormente, um programa, recebem dados, que precisam ser armazenados
no computador para serem utilizados no processamento. Esse armazenamento é feito na memória.
Assim, uma variável representa uma posição de memória. Possui nome e tipo e seu conteúdo
pode variar ao longo do tempo, durante a execução de um programa. Embora uma variável possa
assumir diferentes valores, ela só pode armazenar um valor a cada instante.
6 – TIPOS DE DADOS
Definem os tipos de informações a serem processadas. Os tipos de dados mais utilizados são:
numéricos e literais ou caracteres.
 Numéricos: inteiros e reais
Inteiros – podem ser positivos ou negativos e não possuem parte fracionária.
Exemplo: 15 irmãos, -2 graus.
Real - podem ser positivos ou negativos e possuem parte fracionária.
Exemplo: 1.73 de altura, 3.5 litros.
 Literais ou Caracteres
São dados formados por um único caractere ou por uma cadeia de caracteres. Esses caracteres
podem ser as letras e os números (não podem ser usados para cálculos).
Exemplo: „aluno‟, „12345‟.
7 – FORMAÇÃO DE IDENTIFICADORES
Os identificadores são os nomes das variáveis, dos programas, das constantes, das rotinas etc. As
regras básicas são:
 Os caracteres que você pode utilizar são: os números, as letras maiúsculas, as letras minúsculas e
o caractere sublinhado.
 O primeiro caractere deve ser sempre uma letra ou caractere sublinhado.
 Não são permitidos espaços em branco e caracteres especiais (@,$,+,-,%,!).
 Não podemos usar palavras reservadas nos identificadores, ou seja, palavras que pertençam a
uma linguagem de programação.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
Exemplos:
Válidos
A
a
nota
numero_1
x4
9
Não válidos
5b – por começar com número
E 39 – por conter espaço em branco
Case – por ser palavra reservada
Exercício: defina os identificadores abaixo se são válidos ou não válidos, neste caso justifique:
a) dia
b) prova 2
c) idade_1
d) 4y
8 – ESTRUTURA SEQUENCIAL
algoritmo Nome_do_algoritmo
declaração de variáveis
variáveis
inicio
bloco de comandos;
fim_algoritmo
8.1 – Declaração de variáveis
As variáveis são declaradas após a palavra declaração de variáveis e os tipos mais utilizados são:
numérico (inteiro ou real) e literal (caracteres).
Exemplo:
inteiro x;
real y;
literal i;
8.2 – Comando de atribuição
O comando de atribuição é utilizado para conceder valores ou operações a variáveis, sendo
representado pelo símbolo .
Exemplo:
x  4;
y  2.5;
i  “A”;
8.3 – Comando de Entrada
O comando de entrada é utilizado para receber dados digitados pelo usuário, que serão
armazenados em variáveis. Esse comando é representado pela palavra leia.
Exemplo:
leia(x);
Um valor digitado pelo usuário será armazenado na variável x.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
10
8.4 – Comando de saída
O comando de saída é utilizado para mostrar dados na tela. Esse comando é representado pela
palavra escreva, e os dados podem ser conteúdos de variáveis ou mensagens.
Exemplo:
escreva(x);
Mostra o valor armazenado na variável x.
escreva(“Conteúdo de Y: “,y);
Mostra a mensagem “Conteúdo de Y: “ e em seguida o valor armazenado na variável y.
Exercício resolvido:
1 – Faça um algoritmo que receba dois números inteiros, calcule e mostre a soma desses números.
algoritmo Somar
declaração de variáveis
inteiro num1,num2,soma;
início
escreva(“Digite o número 1: ”);
leia(num1);
escreva(“Digite o número 2: ”);
leia(num2);
somanum1+num2;
escreva(“Resultado: ”,soma);
fim_algoritmo
Exercícios:
1 – Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média
ponderada.
2 – Faça um programa que receba o salário de um funcionário e o percentual de aumento, calcule e
mostre o valor do aumento e o novo salário.
3 – 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 ao preço de fábrica. Faça um programa 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:
a) o valor correspondente ao lucro do distribuidor;
b) o valor correspondente aos impostos;
c) o preço final do veículo.
4 – Faça um programa que calcule e mostre a área de um triângulo. Sabe-se que: A=(base*altura)/2.
5 – Faça um programa que calcule e mostre a área de um círculo. Sabe-se que:
.
6 – Faça um programa que receba um número positivo e maior que zero, calcule e mostre:
a) o número digitado ao quadrado;
b) o número digitado ao cubo;
c) a raiz quadrada do número digitado;
7 – Faça um programa que receba a medida do ângulo formado
por uma escada apoiada no chão e encostada na parede e a
altura da parede onde está a ponta da escada, calcule e mostre a
medida desta escada.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
11
8 – Uma pessoa deseja pregar um quadro em uma parede. Faça um programa para calcular e mostrar a
que distância a escada deve estar da parede. A pessoa deve fornecer o tamanho da escada e a altura em
que deseja pregar o quadro.
Lembre-se de que o tamanho da escada deve ser maior que a altura que se deseja alcançar.
X – Altura em que deseja pregar o quadro
Y – Distância em que deverá ficar a escada
Z – Tamanho da escada
9 - Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário a receber,
sabendo-se que o funcionário tem gratificação de 5% sobre o salário base e paga imposto de 7% sobre
este salário.
10 – Sabe-se que o quilowatt de energia custa um quinto do salário mínimo. Faça um programa que
receba o valor do salário mínimo e a quantidade de quilowatts consumida por uma residência, calcule e
mostre:
a) o valor de cada quilowatt;
b) o valor a ser pago por essa residência;
c) o valor a ser pago com desconto de 15%.
9 – ESTRUTURA CONDICIONAL
Este tipo de estrutura é utilizada para representar o desvio no fluxo normal de um programa, ou
seja, utilizada para indicar que deve ser tomada uma decisão, apontando a possibilidade de desvios.
O teste lógico segue a seguinte estrutura (ou fluxo):
9.1 – Estrutura Condicional Simples
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
12
se(condição)
então
comando;
O comando só será executado se a condição for verdadeira. Uma condição é uma comparação
que possui dois valores possíveis: verdadeiro ou falso.
se(condição)
então início
comando1;
comando2;
comando3;
fim se
Os comandos 1, 2 e 3 só serão executados se a condição for verdadeira. As palavras início e fim
se serão necessárias apenas quando dois ou mais comandos forem executados.
9.2 - Estrutura Condicional Composta
se(condição)
então comando1;
senão comando2;
Se a condição for verdadeira, será executado o comando1; caso contrário, será executado o
comando2.
se(condição)
então início
comando1;
comando2;
fim se
senão início
comando3;
comando4;
fim senão
Se a condição for verdadeira, o comando1 e o comando2 serão executados, caso contrário, o comando3
e o comando4 serão executados.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
13
9.3 – Operadores Condicionais ou Relacionais
Os operadores condicionais ou relacionais são operadores binários que devolvem os valores
lógicos verdadeiro e falso.
Sinal
Função
=
Igual
!=
Diferente
>
Maior que
>=
Maior que ou igual a
<
Menor que
<=
Menor que ou igual a
Estes valores são somente usados quando se deseja efetuar comparações. Comparações só
podem ser feitas entre objetos de mesma natureza, isto é variáveis do mesmo tipo de dado. O resultado
de uma comparação é sempre um valor lógico
9.4 – Operadores Lógicos
Os operadores lógicos ou booleanos são usados para combinar expressões relacionais. Também
devolvem como resultado valores lógicos verdadeiro ou falso.
Tabela E
Tabela OU
VeV=V
V ou V = V
VeF=F
V ou F = V
FeV=F
F ou V = V
FeF=F
F ou F = F
Uma expressão relacional ou lógica retornará falso para o valor lógico falso e verdadeiro para o
valor lógico verdade.
Fornecendo dois valores ou expressões lógicas, representadas por expressão1 e expressão2,
podemos descrever as operações lógicas a seguir:
expressão1 E expressão2 é verdadeiro somente se ambas, expressão1 e expressão2, forem verdadeiras.
Se uma for falsa, ou se ambas forem falsas, a operação E também será falsa.
expressão1 OU expressão2 é verdadeiro se tanto a expressão1 como a expressão2 forem verdadeiras.
As operações OU só resultam em valores falsos se ambas, expressão1 e expressão2, forem falsas.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
14
Exercício resolvido
1 – Faça um algoritmo que receba duas notas de aluno, calcule e mostre a média aritmética das notas e a
mensagem de “Aprovado”, se a média obtida for maior ou igual a 6.0 ou, caso contrário, “Reprovado”.
algoritmo media
declaração de variáveis
real n1,n2,media;
início
escreva(“Digite a nota 1: ”);
leia(n1);
escreva(“Digite a nota 2: ”);
leia(n2);
media(n1+n2)/2;
se(media >= 6)
escreva(“Aprovado”);
senão
escreva(“Reprovado”);
fim_algoritmo
Exercícios:
1 – Uma agência de empregos precisa de um programa para analisar as características dos candidatos e
determinar as suas funções, conforme a tabela abaixo:
IDADE
SEXO
FUNÇÃO
Até 30 anos
M
Guia Turístico
Mais que 30 anos
M
Gerente Administrativo
Até 40 anos
F
Recepcionista
Mais que 40 anos
F
Gerente de Compras
2 – A nota final de um estudante é calculada a partir de três notas atribuídas, respectivamente, a um trabalho
de laboratório, a uma avaliação semestral e a um exame final. A média das três notas mencionadas obedece
aos pesos a seguir:
Faça um programa que receba as três notas, calcule e mostre a média ponderada e o conceito que
segue a tabela:
3 – Faça um programa que receba um número inteiro e verifique se é par ou impar.
4 – Criar um programa para criar um menu de opções na tela, assim:
1 – Quadrado
2 – Retângulo
3 – Triângulo
De acordo com a opção desejada, leia os dados necessários para calcular a
área da respectiva opção.
Mostrar a área calculada.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
15
5 – Uma agência bancária possui dois tipos de investimentos, conforme o quadro a seguir. Faça um programa
que receba o tipo de investimento e o valor do investimento e que calcule e mostre o valor corrigido de
acordo com o tipo de investimento.
6 - Faça um programa que receba a altura e o sexo de uma pessoa e que calcule e mostre o seu peso ideal,
utilizando as seguintes fórmulas:
7 - Um supermercado deseja reajustar os preços de seus produtos usando o seguinte critério: o produto
poderá ter seu preço aumentado ou diminuído. Para o preço ser alterado, o produto deve preencher pelo
menos um dos requisitos a seguir:
VENDA MÉDIA
PREÇO ATUAL
% DE AUMENTO
% DE DIMINUIÇÃO
MENSAL
< 500
< R$ 30,00
10
>= 500 E < 1200
>= R$ 30,00 e < R$ 80,00
15
>= 1200
>= 80,00
20
8 - Faça um programa que apresente o menu a seguir, permita ao usuário escolher a opção desejada, receba
os dados necessários para executar a operação e mostre o resultado. Verifique a possibilidade de opção
inválida e não se preocupe com restrições, como salário negativo.
Menu de opções
1. Imposto
2. Novo salário
3. Classificação
Digite a opção desejada.
Na opção 1: receber o salário de um funcionário, calcular e mostrar o valor do imposto usando as regras a
seguir:
SALÁRIO
PERCENTUAL DO IMPOSTO
Menor que R$ 500,00
5%
De R$ 500,00 a R$ 850,00
10%
Acima de R$ 850,00
15%
Na opção 2: receber o salário de um funcionário, calcular e mostrar o valor do novo salário, usando as regras
a seguir:
SALARIO
AUMENTO
Maior que R$ 1500,00
R$ 25,00
De R$ 750,00 (inclusive) a R$ 1500,00 (inclusive)
R$ 50,00
De R$ 450,00 (inclusive) a R$ 750,00
R$ 75,00
Menor que R$ 450,00
R$ 100,00
Na opção 3: receber o salário de um funcionário e mostrar sua classificação usando a tabela a seguir:
SALARIO
CLASSIFICAÇÃO
Até R$ 700,00 (inclusive)
Mal remunerado
Maiores que R$ 700,00
Bem remunerado
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
16
9 - Faça um programa para resolver equações do 2º grau.
ax2 + bx + c= 0
Δ =b2 – 4 * a * c
Δ < 0  não existe raiz real
Δ = 0  existe uma raiz real
x = (-b) / (2 * a)
Δ > 0  existem duas raízes reais
x1 = (-b +
) / (2 * a)
x2 = (-b ) / (2 * a)
10 – ESTRUTURAS DE REPETIÇÃO
Uma estrutura de repetição é utilizada para fazer com que um pedaço (trecho) do programa seja
executado n vezes, ou seja, quando um trecho do algoritmo ou até mesmo o algoritmo inteiro precisa ser
repetido. O número de repetições pode ser fixo ou estar atrelado a uma condição. Assim, existem
estruturas para tais situações.
Existem 3 tipos de comandos de repetição:
para
enquanto
repita até que
10.1 – Para
Essa estrutura de repetição é utilizada quando se sabe o número de vezes que um trecho do
algoritmo deve ser repetido.
Forma geral:
para ivalor inicial até valor final faça [passo n]
inicio
comando1;
comando2;
...
Fim para
O comando1 e o comando2 serão executados utilizando-se a variável i como controle 1, e seu
conteúdo vai variar do valor inicial até o valor final. A informação do passo está entre colchetes porque
é opcional. O passo indica como será a variação de controle. Por exemplo, quando for indicado passo 2,
a variável de controle será aumentada em 2 unidades a cada iteração até atingir o valor final. Quando a
informação do passo for suprimida, isso significa que o incremento ou o decremento da variável de
controle será de 1 unidade.
Quando houver apenas um comando a ser repetido, os marcadores de bloco inicio e fim poderão
ser suprimidos.
Exemplos:
para i1 até 10 faça
escreva(i);
O comando escreva(i) será executado dez vezes, ou seja, para i variando de 1 a 10. Assim, os
valores de i serão: 1, 2, 3, 4, 5, 6, 7, 8, 9 e 10.
1
Utilizamos uma variável que será incrementada a cada repetição, isto é, a cada repetição contamos +1 na variável, até
um valor de acordo com o número de vezes que queremos repetir.
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
17
para j1 até 9 faça passo 2
escreva(j);
O comando escreva(j) será executado cinco vezes, ou seja, para j variando de 1 a 10, de 2 em 2.
Assim, os valores de j serão: 1, 3, 5, 7 e 9.
10.2 – Enquanto
Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que um trecho do
algoritmo deve ser repetido, embora também possa ser utilizada quando se conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A repetição será feita enquanto a condição
mostrar-se verdadeira.
Existem situações em que o teste condicional da estrutura de repetição, que fica no início, resulta
em um valor falso logo na primeira comparação. Nesses casos, os comandos de dentro da estrutura de
repetição não serão executados.
Forma geral:
enquanto(condição) faça
comando1;
Enquanto a condição for verdadeira, o comando1 será executado.
enquanto(condição) faça
início
comando1;
comando2;
fim enquanto
Enquanto a condição for verdadeira, o comando1 e o comando2 serão executados.
Exemplo:
Simulação:
x1;
y5;
enquanto(x < y) faça
início
xx + 2;
y y + 1;
fim enquanto
x
1
3
5
7
9
y
5
6
7
8
9
Valores
Valores iniciais
Valores obtidos dentro da estrutura de
repetição
10.3 – Repita
Essa estrutura de repetição é utilizada quando não se sabe o número de vezes que um trecho do
algoritmo deve ser repetido, embora também possa ser utilizada quando se conhece esse número.
Essa estrutura baseia-se na análise de uma condição. A repetição será feita enquanto a condição
mostrar-se verdadeira.
A diferença entre a estrutura enquanto e a repita é que nesta última os comandos serão repetidos
pelo menos uma vez, já que a condição de parada se encontra no final.
Forma geral:
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
18
repita
comandos;
até(condição);
repita os comandos até a condição se tornar verdadeira.
Exemplo:
Simulação:
x1;
y5;
repita
xx + 2;
y y + 1;
até(x >= y)
x
1
3
5
7
9
y
5
6
7
8
9
Valores
Valores iniciais
Valores obtidos dentro da estrutura de
repetição
Exercícios:
1 – Analise os trechos de algoritmos abaixo e escreva qual seria a saída de cada um.
a) para i1 até 20 faça
escreva(“O valor de i é: “,i);
b) para i10 até 1 faça
escreva(i);
c) para i15 até 1 faça passo -2
escreva(i);
d) para i10 até 1 faça passo
escreva(i);
e) para i0 até 10 faça passo 2
escreva(i);
2 – Faça a simulação dos seguintes trechos de algoritmos:
a)
Simulação:
x1;
y1;
enquanto(x <= 5) faça
início
yy * x;
x x + 1;
fim enquanto
x
y
Valores
b)
Simulação:
x1;
y1;
repita
yy * x;
x x + 1;
até(x = 6)
x
y
Valores
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
19
3 – Criar um algoritmo que mostre a soma dos números pares inteiros positivos de 1 a 50.
4 – Escreva um algoritmo que imprima todos os números inteiros de 200 a 100 (em ordem decrescente).
5 – Faça uma Programa que receba a idade, o peso e o sexo de 10 pessoas. Calcule e imprima:
 total de homens;
 total de mulheres;
 média das idades dos homens;
 média dos pesos das mulheres.
6 – Criar um programa que leia 3 notas (dentro de uma estrutura de repetição) e calcule a média
aritmética.
7 – Faça um programa (Eleição) para realizar a simulação de uma urna eletrônica, ou seja, a apuração
dos votos de 3 candidatos (1,2 e 3), votos brancos (opção 0) e votos nulos(qualquer outra opção).
Suponha que nesta urna votam 10 pessoas.
8 – Uma universidade deseja fazer um levantamento sobre 10 alunos para os seguintes levantamentos:
Quantos alunos são do sexo masculino (M) e quantos são do sexo feminino (F)
Qual a média de idade dos alunos
Qual a média de idade das alunas
A média de altura dos alunos
A média de altura das alunas.
9 - Um cinema, certo dia, cada espectador respondeu a um questionário, que perguntava a sua idade e a
opinião em relação ao filme, seguindo os seguintes critérios: (2,0)
Opinião
Significado
A
Ótimo
B
Bom
C
Regular
D
Ruim
E
Péssimo
A entrada de dados sobre a opinião deve ser validada. O final da pesquisa será controlado com a
resposta S (sim) ou N (não) para um novo espectador.
Construa um programa que, lendo esses dados, calcule e apresente:
• Quantidade de pessoas que respondeu a pesquisa.
• Média de idade das pessoas que responderam a pesquisa.
• Porcentagem de cada uma das respostas.
10 – Faça um programa que receba dois números (um intervalo) e retorne quantos números impares
existe neste intervalo.
11 – Faça um programa que calcule o fatorial de um número.
12 – Faça um algoritmo para:
a) Ler um valor x qualquer
b) Calcular Y = ( x+1)+(x+2)+(x+3)+(x+4)+(x+5)+…(x+100).
13 – Fazer um algoritmo que calcule e escreva a soma dos 50 primeiros termos das seguinte série:
1000 997 994 991
...
soma =
1
2
3
4
Algoritmos e Estruturas de Dados 1 – Prof. Eduardo
20
14 – Sendo S = 1 + 1 + 1 + 1 + 1 + . . . + 1 , um somatório de N (definido pelo usuário)
termos,
22 33
44
55
NN
Faça um algoritmo para calcular S para um número N.
15 – Kléber tem 1,50 metros e cresce 2 cm por ano, enquanto Valdívia tem 1,10 e cresce 3 cm por ano.
Construa um algoritmo que calcule e mostre quantos anos serão necessários para que Valdívia seja
maior que Kléber.
16 – Faça um algoritmo que mostre a tabuada de um número.
Download

algoritmos e estruturas de dados i