Escolar Documentos
Profissional Documentos
Cultura Documentos
Vimos que uma variável pode ter somente um valor em um determinado instante.
Agora a noção de variável será estendida a uma coleção de variáveis denominada conjunto.
Quando se organiza um problema para ser resolvido usando um computador,
encontramos outros problemas agregados. Um dos problemas é entender o relacionamento
entre os itens dados.
Para entender o relacionamento é necessário entender os dados deste problema.
Normalmente os dados são formados por elementos simples, tais como: números inteiros,
dígitos binários, cadeia de caracteres, ou por um conjunto de itens simples. A escolha certa
dos itens de dados é um passo para a solução do problema. As diversas maneiras em que os
itens de dados são logicamente relacionados, definem diferentes estruturas de dados.
As estruturas de dados são classificadas como primitivas e não-primitivas.
Estruturas de dados primitivas já foram vistas: números inteiros, números reais, caracteres,
valores lógicos e ponteiros. O nome estruturas de dados primitivas é dado a estas estruturas
pelo fato de os computadores possuírem um conjunto de instruções para manipulá-los.
Uma estrutura de dados não-primitiva muito usual — um número complexo — é
descrita a seguir. Um número complexo é uma estrutura de dados não-primitiva porque alguns
computadores não possuem instruções para manipulá-lo, porém algumas linguagens de
programação permitem tais operações, exemplo: FORTRAN e PL/I.
Sejam u = x + yi e v = a + bi dois números complexos, onde i = − 1 e x, y, a, e b são
números reais. As operações aritméticas que podem ser executadas com estes números são:
u + v = (x + a) + (y + b)i
u - v = (x - a) + (y - b)i
u * v = (x * a - y * b) + (x * b + y * a)i
u / v = (x * a + y * b) + (y * a - x * b)i
(a * a + b * b)
Algoritmo Estatistica
1. Ler a relação
Leia (NOME1, NOTA1, NOME2, NOTA2, NOME3, NOTA3, NOME4, NOTA4, NOME5, NOTA5)
2. Obter a média
MEDIA (NOTA1 + NOTA2 + NOTA3 + NOTA4 + NOTA5) / 5.0
3. Testar a nota do primeiro estudante
Se NOTA1 > MEDIA
Então escreva (NOME1)
4. Testar a nota do segundo estudante
Se NOTA2 > MEDIA
Então escreva (NOME2)
5. Testar a nota do terceiro estudante
Se NOTA3 > MEDIA
Então escreva (NOME3)
6. Testar a nota do quarto estudante
Se NOTA4 > MEDIA
Então escreva (NOME4)
7. Testar a nota do quinto estudante
Se NOTA5 > MEDIA
Então escreva (NOME5)
8. Terminar
Fim
Note que este algoritmo só funciona para 5 estudantes. E se o problema fosse para 200
estudantes? Se fosse utilizada esta lógica anterior seriam necessárias 200 variáveis para os
nomes e 200 variáveis para as notas.
Uma melhor solução para o problema é utilizar um conjunto para os nomes e um
conjunto para as notas dos estudantes. Para criar essa solução deve-se fazer as variáveis nota e
nome corresponderem aos conjuntos notas e nomes, respectivamente. Se a relação contém
cinco estudantes, a variável nome significa um conjunto ordenado de cinco elementos, com
cada elemento nesse conjunto representando uma cadeia de caracteres. Utilizando esta
notação é necessário um índice para selecionar um elemento particular no conjunto ordenado.
Por exemplo, para obter o nome do quarto estudante, utilizaremos a seguinte notação
NOME[4]. Assim, a variável NOME[1] indica o nome do primeiro estudante.
Quando um índice é associado ao nome dado a um conjunto, a variável resultante é
chamada de variável indexada. Tal índice pode ser também uma variável. No exemplo
anterior, NOME[i] refere-se ao quarto elemento da relação quando i for igual a 4. As variáveis
que são utilizadas com índice devem ser do tipo inteiro.
Com o conhecimento que possuímos, agora podemos definir um vetor como um
conjunto ordenado que contém um número fixo de elementos. O elemento de um vetor pode
ser um número inteiro, um número real ou uma cadeia de caracteres, porém todos os
elementos de um vetor devem ser do mesmo tipo.
Um vetor também é conhecido como um conjunto monodimensional.
Utilizando vetores, o Algoritmo Estatistica fica da seguinte forma:
1. Ler a relação
Para i = 1, 2, ..., 5 faça
Leia (NOME[i], NOTA[i])
4. Terminar
Fim
Para atribuir um valor a uma variável indexada basta utilizar o mesmo procedimento
feito para variáveis simples, somente indicando qual posição desta variável receberá o valor
desejado. Assim, para atribuir o valor 100 à quinta posição do vetor X, usamos a notação X[5]
100.
Exercícios
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
15 31 23 15 75 23 41 15 31 85
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
15 31 23 75 41 85
com m = 6
8. Uma imobiliária tem 25 vendedores entre seus empregados. Cada venda feita por um
vendedor é registrada da seguinte maneira:
Deve-se utilizar um método para detectar o final da leitura dos dados. Menções especiais
devem ser dadas aos vendedores com os dois totais mais altos. Projetar o algoritmo e o
programa para que o nome destas duas pessoas realçadas.
2) Amplie o exercício anterior emitindo um relatório com todos os números pares que você
leu.
3) Determine qual o menor e o maior valor existente no vetor do exercício número 10.
4) Faça um algoritmo que imprima quantos dos valores do exercício número 10 são maiores
que a média desses valores.
8) Faça um algoritmo que leia 20 palavras, e após a leitura, realiza um processo qualquer que
inverta os caracteres de cada uma das palavras.
9) Faça um algoritmo que leia, nome, idade e sexo de N pessoas. Após a leitura faça:
a) Escreva o nome, idade e sexo das pessoas cuja idade seja maior que a idade da
primeira pessoa.
b) Escreva o nome e idade de todas as mulheres.
c) Escreva o nome dos homens menores de 21 anos.
10) Faça um algoritmo para ler 20 valores e que imprima os que são maiores que a média dos
valores.
11) Faça um algoritmo que leia nome e notas (total de 12) de N alunos de um colégio. Após a
leitura faça:
a) Escreva o nome e a média dos alunos aprovados (Média >= 7.0).
b) Escreva o nome e a média dos alunos em Recuperação (5.0 >= Média < 7.0).
c) Escreva o nome e a média dos alunos reprovados (Média < 5.0).
d) Escreva o percentual de alunos aprovados.
e) Escreva o percentual de alunos reprovados.
13) Faça um algoritmo que crie uma tabela no vídeo do computador com todos os caracteres
ASCII, sendo que deverá ser impresso o caracter, bem como o seu valor decimal.
14) Um teste composto por 10 questões foi proposto numa classe de n alunos. Cada
questão admite as alternativas identificadas pelas letras A, B, C, D e E. Para cada aluno tem-
se o registro contendo o seu nome e as suas respostas. Sendo dado o gabarito das questões
faça um algoritmo que:
a) Escreva uma relação contendo o nome e o número de acertos de cada aluno;
b) Determine quantos alunos acertaram as questões 1 e 2 e tiveram 7 acertos;
c) Escreva o nome do aluno, que obteve a melhor nota e do que teve a pior nota;
15) Faça um algoritmo que leia 10 valores numéricos inteiros. Após a leitura emita um
relatório com cada valor diferente e o número de vezes que o mesmo apareceu no vetor.
16) Dado uma ralação de N nomes, faça um algoritmo que verifique se uma determinada
pessoa está neste vetor. O Nome da pessoa a ser pesquisada deverá ser lido, bem como os
nomes a serem colocados no vetor.
17) Dado uma frase, faça um algoritmo que determine qual a consoante mais utilizada.
18) Faça um algoritmo que leia N letras e armazene cada uma em uma posição de memória.
Coloque no vetor, após a última letra lida, o caracter “$”, indicando final dos caracteres
21) Dado que para cada aluno de uma turma de “N” alunos se tenha, o seu nome, e as notas
das 8 avaliações. Faça um algoritmo que:
a) Calcule a Percentagem de alunos cujo nome comece com a letra “A”;
b) Para cada aluno imprima uma mensagem dizendo se o aluno tem ou não notas
repetidas;
c) Determine quantos alunos tem pelo menos duas notas acima de 7;
d) Escreva o nome e a média de cada aluno;
23) Em uma cidade do interior, sabe-se que, de janeiro a abril de 1976 (121 dias), não
ocorreu temperatura inferior a 15o C nem superior a 40o C. As temperaturas verificadas em
cada dia estão disponíveis em um computador. Faça um algoritmo que calcule e escreva:
a) a menor temperatura ocorrida;
b) a maior temperatura ocorrida;
c) a temperatura média
d) o número de dias nos quais a temperatura foi inferior a média à temperatura média.
24) Um armazém trabalha com 100 mercadorias diferentes identificadas pelos números
inteiros de 1 a 100. O dono do armazém anota a quantidade de cada mercadoria vendida
durante o mês. Ele tem uma tabela que indica, para cada mercadoria, o preço de venda.
Escreva um algoritmo para calcular o faturamento mensal do armazém. A tabela de preços é
fornecida seguida pelos números das mercadorias e as quantidades vendidas. Quando uma
mercadoria não tiver nenhuma venda, é informado o valor zero no lugar da quantidade.
25) Uma grande firma deseja saber quais os três empregados mais recentes. Fazer um
algoritmo para ler um número indeterminado de informações (máximo de 300) contendo o
número do empregado e o número de meses de trabalho deste empregado e escrever os três
mais recentes.
Observações: A última informação contém os dois números iguais a zero. Não existem
dois empregados admitidos no mesmo mês.
Exemplo:
EMPREGADOS
224 1731 2210 4631 … 526
1 2 3 4 300
MESES
17 3 9 2 … 10
1 2 3 4 300
28) Para cada nota de compra , tem-se o nome do produto comprado, o valor e o imposto
(ICMS = 17%). Faça um algoritmo que leia e escreva o nome, o valor e imposto de cada
produto. Bem como o valor total bruto, o imposto total cobrado e o valor total líquido de
todas as notas. Considere 500 notas.
29) Uma empresa deseja fazer um levantamento do seu estoque. Para isto possui para cada
tipo de produto, o seu nome, o valor unitário e a sua quantidade em estoque. A empresa deseja
emitir um relatório contendo, o nome, quantidade, valor, unitário e o saldo ( valor total ) em
estoque de cada tipo de produto. Ao final se deseja saber quantos tipos de produtos existem
em estoque e o saldo de todos os produtos.
30) Faça um algoritmo que leia 10 nomes e os guarde na memória. Após a leitura escreva
todos os nomes que são palíndromos. Uma palavra palíndromo é aquela que a sua leitura é a
mesma da esquerda para a direita e vice-versa. Exemplo: ARARA, ANA, etc.
Fontes
Exercícios 1,2,3.
Salvetti, D. D., Barbosa, L. M., Algoritmos, São Paulo, Makron Books, 1998
Internet