Buscar

Algoritmos & Programação I - Apostila 2015-1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

APOSTILA DA DISCIPLINA DE 
ALGORITMOS E PROGRAMAÇÃO I 
 
 
 
 
 
 
Profª Cristina D’Ornellas Filipakis 
Profª Madianita Bogo Marioti 
 
 
 
 
 
 
 
 
 
 
Palmas - TO 
2015 
 
SUMÁRIO 
 
1 Conceitos básicos de lógica de programação e algoritmos ........................................................... 2 
2 Variáveis ....................................................................................................................................... 3 
3 JLive - Instruções Básicas ............................................................................................................. 4 
4 Estrutura de decisão – if – if/else .................................................................................................. 8 
5 Estrutura de Repetição (laço) - while .......................................................................................... 15 
6 Estrutura de Repetição (laço) - for .............................................................................................. 23 
7 Vetor – Matriz Unidimensional .................................................................................................. 25 
8 Matrizes Bidimensionais ou variáveis indexadas bidimensionais .............................................. 29 
 
 
 
2 
 
 
1 Conceitos básicos de lógica de programação e algoritmos 
 
Na filosofia, a lógica é a área que trata das formas do pensamento em geral e das operações intelectuais que 
visam à determinação do que é verdadeiro ou não. A lógica estuda e ensina a colocar “ordem no pensamento”, 
seja para as ações a serem tomadas em nossa vida, seja para criar um programa de computador. 
 
Exemplos de raciocínios lógicos: 
Todo mamífero é um animal. 
Todo gato é um mamífero. 
Logo, todo gato é um animal. 
João é cientista. 
Todo cientista é estudioso. 
Logo, João é estudioso. 
 
O ser humano, mesmo sem estruturar formalmente seu raciocínio, utiliza lógica para realizar as suas atividades, 
ou seja, existe uma sequência para a realização de determinadas tarefas. Por exemplo, para fazer um pão de queijo 
é preciso seguir determinados passos, que são: 
1. Separar os ingredientes: polvilho, sal, leite, óleo, ovo, queijo ralado 
2. Colocar o polvilho em uma tigela grande 
3. Aquecer o sal, o leite e o óleo 
4. Escaldar o polvilho com essa mistura e mexer até ficar uniforme 
5. Acrescentar os ovos e mexer 
6. Enrolar os pães e colocar em uma assadeira 
7. Levar ao forno para assar 
8. Retirar os pães de queijo do forno 
 
A lógica é aplicada a várias ciências (Psicologia, Filosofia etc.), entre elas, a Informática, sendo utilizada em todas 
as suas áreas, desde a construção de hardware até a programação de aplicativos. Na informática, a lógica consiste 
na organização e no planejamento das instruções em um algoritmo, a fim de viabilizar a implantação de um 
programa (HOUAISS, on-line). 
 
A lógica de programação consiste no raciocínio lógico utilizado para a organização de símbolos e instruções na 
programação de computadores. O resultado destes símbolos e instruções organizadas é o algoritmo, que consiste 
em uma sequência finita de instruções para a execução de uma tarefa e resolução de um problema. Todo algoritmo, 
assim como os programas de computadores que serão vistos posteriormente, apresentam a seguinte estrutura: 
 
 
 
3 
 
 
 Entrada(s): informações necessárias para a obtenção das saídas, a partir do processamento. 
 Processamento: operações realizadas nas entradas para obtenção da saída. 
 Saída: resultado do algoritmo, informação resultante do processamento. 
 
2 Variáveis 
 
O computador possui uma área de armazenamento conhecida como memória. A memória do computador pode 
ser entendida como uma sequência finita de espaços de armazenamento que, num dado momento, guardam algum 
tipo de informação, tais como números, uma letra, uma palavra, uma frase, entre outros. 
 
O computador, para poder trabalhar com estas informações, precisa saber a localização da memória em que o 
dado está armazenado. Fisicamente, cada posição de memória possui um endereço único (representado por um 
número hexadecimal) que identifica a localização da informação. Exemplo: 
Endereço Físico Informação 
3000: B712 “João” 
2000: 12EC 12345 
 
A manipulação das posições de memória da máquina é facilitada com a utilização de variáveis, pois estas 
permitem que, ao invés de trabalhar diretamente com os números hexadecimais, seja possível dar nomes diferentes 
às posições de memória reservadas para a utilização durante a execução do programa. Desta forma, o programador 
visualiza o exemplo acima da seguinte maneira: 
Variável Informação 
Nome “João” 
Código 12345 
 
As variáveis representam valores desconhecidos que podem ser alterados de acordo com a situação, isto é, 
armazenam dados temporariamente na memória RAM do computador, no decorrer da resolução dos problemas. 
 
2.1 Tipos de variáveis 
Tipo de Variável (*) Descrição 
int 
Qualquer valor pertencente ao conjunto dos números inteiros (valores exatos, sem 
casas decimais). 
double Qualquer valor pertencente ao conjunto dos números reais. 
char Representa apenas um caractere, ou seja, uma letra. 
* A tabela apresenta apenas os tipos que serão utilizados na disciplina. 
 
4 
 
 
2.2 Declaração de Variáveis – Definição dos Tipos de Dados 
O programador deve reservar uma área de memória para guardar todos os valores que serão lidos e calculados 
antes da definição da sequência de instruções no programa, para que estes possam ser utilizados sempre que 
necessário, no decorrer da execução. Esta ação é denominada de “declaração de variáveis”, na qual é informado 
o tipo de dado que será armazenado (seção 2.1) e qual o nome que será associado ao endereço de memória do 
mesmo. A definição correta do tipo de dado para ser guardado em uma área de memória, representada pela 
variável, é de fundamental importância para solucionar satisfatoriamente o problema e para o funcionamento 
adequado do programa. 
 
Para desenvolver um algoritmo é necessário que se conheça o tipo de informação (dados) que será utilizada na 
resolução do problema. Assim, será possível definir os tipos adequados para as variáveis que serão utilizadas. Na 
declaração das variáveis, além da definição dos tipos, devem-se definir os nomes das variáveis que serão utilizadas 
no programa, prestando atenção nas seguintes especificações: 
 devem começar por um caractere alfabético; 
 podem ser seguidos por mais caracteres alfabéticos ou numéricos; 
 não devem ser usados caracteres especiais (espaço, . , @, $, / etc). 
 letras maiúsculas e minúsculas são consideradas diferentes (sensitive case). 
 
3 JLive - Instruções Básicas 
 
 Estrutura Básica dos Algoritmos, usando o JLive: 
 Declaração de Variáveis 
 Instruções do algoritmo: 
 Entrada de dados 
 Processamento 
 Saída 
 
 Declaração de variáveis (reservar área de memória) 
- Caractere (char): 
char nomeDaVariavel; ou 
char nomeDaVariavel1, nomeDaVariavel2, nomeDaVariavel3; 
- Inteiro (int): 
int nomeDaVariavel; ou 
int nomeDaVariavel1, nomeDaVariavel2, nomeDaVariavel3; 
- Real (double): 
double nomeDaVariavel; ou 
double nomeDaVariavel1, nomeDaVariavel2, nomeDaVariavel3; 
5 
 
 
 Entrada de Dados 
- Caractere (char): 
nomeDaVariavel = leiaChar("Texto que sairá na tela:"); 
- Inteiro (int): 
nomeDaVariavel = leiaInt("Texto que sairá na tela:"); 
- Real (double): 
nomeDaVariavel = leiaDouble("Texto que sairá na tela:"); 
 
 Saída de Dados 
- imprima(nomeVariavel); 
- imprima(“Texto que sai na tela”); 
- imprima(“Textoque sai na tela ” + nomeVariavel ); 
- imprima(“Texto que sai na tela ” + nomeVariavel + “Texto que sai na tela ” + nomeVariavel); 
 
 Operadores Aritméticos: utilizados na realização dos cálculos matemáticos. 
Operador Função 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão 
% Resto da divisão (Módulo) 
++ Incrementa 1 ao operando 
-- Decrementa 1 do operando 
 
 Um exemplo de problema que pode ser resolvido por um computador é a realização do cálculo da soma de 
dois números inteiros. Nesse caso o algoritmo seria o seguinte: 
 
 int num1, num2, soma; 
 
 num1 = leiaInt("Entre com o primeiro número"); 
 num2 = leiaInt("Entre com o segundo número"); 
 
 soma = num1 + num2; 
 
 imprima(“Resultado da soma = ”+soma); 
 
 
Declaração de Variáveis 
Entrada de Dados 
Processamento 
Saída 
6 
 
 
Na execução o algoritmo solicita os seguintes dados ao usuário (que digitou os números 5 e 7, para num1 e 
num2, respectivamente): 
 
 
A saída apresentada na tela é a seguinte: 
 
 
 Outro exemplo que pode ser resolvido por um computador é o cálculo da área de um triângulo, sendo que a 
área do triângulo é igual a base vezes a altura dividido por dois. 
 
 double base, altura, area; 
 
 base = leiaDouble("Entre com a base:"); 
 altura = leiaDouble("Entre com a altura:"); 
 
 area = (base*altura)/2; 
 
 imprima(area); 
 
Exercícios de fixação 
1. Escreva um algoritmo para calcular a área de um quadrado, sendo que o cálculo da área é feito elevando-se 
ao quadrado a medida de um lado. 
2. Escreva um algoritmo para calcular quantas ferraduras são necessárias para equipar todos os cavalos 
comprados para um haras. 
3. Uma professora precisa calcular a média de um aluno que realizou duas provas. Escreva um algoritmo que 
leia duas notas, calcule e imprima a média aritmética do aluno. 
4. Uma professora precisa calcular a média de um aluno. O aluno realizou 3 provas, sendo que a primeira prova 
tem peso 1, a segunda tem peso 2 e a terceira prova tem peso 3. Escreva um algoritmo para calcular e 
apresentar a média ponderada do aluno. 
7 
 
 
5. Uma doceira levou pães de mel para vender em uma feira de gastronomia. Escreva um algoritmo que calcule 
o lucro obtido pela doceira na feira, baseando-se na quantidade vendida e nos preços de custo e de venda da 
unidade, considerando que o valor gasto pela doceira com o aluguel do stand foi de R$ 500.00. 
6. Escreva um algoritmo que leia três números inteiros e positivos (A, B, C) e calcule a seguinte expressão: 
𝐷 = 
𝑅+𝑆
2
 , onde 𝑅 = (𝐴 + 𝐵)2 e 𝑆 = (𝐵 + 𝐶)2. 
7. Antes do racionamento de energia ser decretado, quase ninguém falava em quilowatts, mas agora, todos a 
incorporaram a seu vocabulário. Sabendo que cada quilowatt de energia custa um centésimo do salário 
mínimo, escreva um algoritmo que receba o valor do salário mínimo e da quantidade de quilowatts gasta em 
uma residência, calcule e imprima o valor pago pela residência em questão. 
8. Escreva um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa 
apenas em dias. 
 Considere o ano com 365 dias e o mês com 30 dias. 
9. Escreva um algoritmo que leia o tempo de duração de um evento expresso em segundos e mostre-o expresso 
em horas, minutos e segundos. 
10. Calcular a quantidade de litros de leite necessários e o custo para comprar o leite para alimentar as crianças 
uma determinada creche que contém de três salas, sendo que é fornecida a quantidade de crianças de cada 
sala e sabendo-se que: 
- cada litro de leite alimenta 5 crianças; 
- o litro de leite custa R$ 2.80. 
11. Escreva um algoritmo que leia a quantidade de homens e de mulheres de uma turma e apresente: 
- o total de pessoas na turma; 
- o percentual de mulheres; 
- o percentual de homens. 
12. Uma pessoa precisa calcular a quantidade de cigarros que fumou na vida e a quantidade de dinheiro que já 
gastou com a compra de cigarros, baseando-se nos seguintes dados: o número de anos que ela fuma, o nº de 
cigarros fumados por dia e o preço de uma carteira de cigarros. Escreva um algoritmo que resolva esse 
problema, considerando que: 
- 01 ano tem 365 dias; 
- 01 carteira tem 20 cigarros. 
13. Escreva um algoritmo que calcule e imprima o valor do volume de uma lata, utilizando a fórmula VOLUME 
= 3,14159 * RAIO2 * ALTURA. 
14. A partir da distância entre a cidade origem e destino (em km), calcule quantas horas uma pessoa leva para 
fazer uma viagem, considerando que a velocidade média é 80 km/h. 
15. Escreva um algoritmo que leia dois números inteiros e guarde em duas variáveis A e B. Depois, troque os 
valores das variáveis e apresente os valores trocados. 
8 
 
 
16. Escreva um algoritmo que, a partir da distância entre as cidades origem e destino, calcule quantos litros de 
gasolina serão consumidos e quanto João vai gastar para realizar uma viagem até a casa de sua tia. 
Considerando que: 
a) o carro de João tem um consumo médio de 10 km por litro; 
b) o preço da gasolina no posto em que João abastece o carro é de R$ 3.00. 
Baseando-se nesses fatos, elabore um algoritmo que calcule as informações desejadas. 
17. O custo ao consumidor de um carro novo é a soma do custo de fábrica com a percentagem do distribuidor e 
dos impostos (aplicados ao custo de fábrica). Supondo que a percentagem do distribuidor seja de 28% e os 
impostos de 45%, escrever um algoritmo que leia o custo de fábrica de um carro e escreva o custo ao 
consumidor. 
18. A partir da quantidade de doces fabricados por uma doceira, calcular a quantidade de pacotes de açúcar que 
foram gastos para atender uma determinada encomenda, sabendo-se que a cada 100 doces fabricados são 
gastos 2 (dois) quilos de açúcar e que um pacote de açúcar tem 5 quilos. 
19. Calcular a quantidade de latas de tinta necessárias e o custo para pintar uma determinada casa de três 
cômodos, sendo que são fornecidas as metragens de cada cômodo (em m2) e sabe-se que: 
- Cada litro de tinta pinta 10 metros quadrados (m2) 
- A lata de tinta custa R$ 20,00 
- Cada lata contém 5 litros. 
 
 
4 Estrutura de decisão – if – if/else 
 
Uma estrutura de decisão, também chamada de estrutura de seleção, é utilizada quando é necessário verificar 
condições para a execução de uma determinada instrução ou sequência de instruções. A finalidade dos comandos 
de decisão é testar uma condição e realizar uma ação se a condição for verdadeira, permitindo efetuar um desvio 
no processamento, caso seja falsa. 
 
Operadores Relacionais: utilizados em condições (estruturas de decisão, de repetição etc.) 
Operador Função 
= = Igual a 
> Maior que 
< Menor que 
>= Maior ou igual que 
<= Menor ou igual que 
!= Diferente de 
9 
 
 
 Seleção Simples (comando if) 
Na instrução if (se), se a condição for verdadeira, serão executadas as instruções que estiverem escritas 
dentro do bloco do if. 
if (<condição>) 
{ 
 <instrução(ões) executada(s) apenas se a condição for verdadeira> 
} 
 
 Exemplo: 
A partir de duas notas de um aluno, construa um algoritmo que calcule e apresente a média aritmética do 
aluno e, caso a média seja inferior a 6.0, informe que esse aluno deverá fazer exame. 
 double nota1, nota2, media; 
 
 nota1 = leiaDouble("Entre com a nota 1"); 
 nota2 = leiaDouble("Entre com a nota 2"); 
 
 media = (nota1 + nota2)/2; 
 imprima("Media = " + media); 
 if(media < 6) 
 { 
 imprima("\n O aluno terá que fazer exame!"); 
 } 
 
 Seleção Composta (if .. else) 
Na instrução if .. else (se .... senão), se a condição for verdadeira, serão executadas as instruções que 
estiveremescritas dentro do bloco do if. Caso contrário, serão executadas as instruções que estiverem 
escritas dentro do bloco do comando else. 
if (<condição>) 
{ 
 <instrução(ões) executada(s) apenas se a condição for verdadeira> 
} 
else 
{ 
 <instrução(ões) executada(s) apenas se a condição for falsa> 
} 
 
 Exemplo: 
Algoritmo que lê duas notas de um aluno, calcula e imprime a média desse aluno. Depois, informa se ele 
foi aprovado ou reprovado, sendo que para ser aprovado precisa atingir no mínimo média 6. 
 double nota1, nota2, media; 
 
 nota1 = leiaDouble("Entre com a nota 1"); 
 nota2 = leiaDouble("Entre com a nota 2"); 
 
 media = (nota1 + nota2)/2; 
 imprima("Media = " + media); 
 
10 
 
 
 if(media >= 6) 
 { 
 imprima("\nAprovado"); 
 } 
 else 
 { 
 imprima("\nReprovado"); 
 } 
 
Exercícios de fixação 
1. Escreva um algoritmo que leia um número e informe se ele é par ou ímpar. 
2. Escreva um algoritmo para calcular e apresentar o maior de dois números inteiros. 
3. Escreva um algoritmo que leia as duas notas bimestrais de um aluno e determine a média das notas 
semestral. A partir da média calculada o algoritmo deve imprimir uma das seguinte mensagem: 
“Aprovado”, “Reprovado” ou em “Exame” (a média é 6 para Aprovação, menor que 3 para 
Reprovação e as demais em Exame). 
4. Faça um algoritmo que leia uma letra. Conforme a letra digitada escrever: “F – Feminino”, “M – Masculino” 
ou “Sexo Inválido”. 
5. Faça um algoritmo que leia a idade de uma pessoa e informe se esta é maior ou menor de idade. Caso seja 
maior, informe há quantos anos ela completou 18 anos. 
6. Escrever um algoritmo que lê um conjunto de três valores I, A e B, onde: I é um valor inteiro; A e B são 
quaisquer valores reais. Baseando-se nesses valores: 
a) Se I for igual a 0 (zero) apresentar a soma de A e B. 
b) Se I for diferente de 0 (zero) apresentar os valores de A e B em ordem crescente. 
7. Escreva um algoritmo que leia a quantidade de mulheres e a quantidade de homens em uma turma e depois 
calcule e: 
a. Imprima a quantidade total de pessoas. 
b. Informe ao usuário se a turma possui mais homens, mais mulheres ou se tem a mesma quantidade de 
homens e mulheres. 
8. Escreva um algoritmo que leia os valores de dois lados adjacentes de uma figura geométrica e informe se eles 
representam um quadrado perfeito ou um retângulo. 
*Quadrado perfeito é aquele que possui todos os lados iguais. 
9. A prefeitura abriu uma linha de crédito para os funcionários estatutários. O valor máximo da prestação não 
poderá ultrapassar 30% do salário bruto. Fazer um algoritmo que leia o salário bruto e o valor previsto para 
prestação, e informe se o empréstimo pode ou não ser concedido. 
10. Escreva um algoritmo que leia dois números e apresente os seguintes resultados: 
- A média dos números. 
- Caso os números sejam diferentes: 
 O quadrado do menor. 
 O dobro do maior. 
11 
 
 
11. Escreva um algoritmo que leia dois números e imprima a diferença do maior pelo menor, caso os números 
sejam diferentes. Caso os números sejam iguais, apresente a soma dos mesmos. 
12. Escreva um algoritmo que leia velocidade máxima permitida em uma avenida e a velocidade de um carro que 
passou por ela e: 
a. Caso o motorista esteja dentro da velocidade permitida, apresente a mensagem “Motorista está dentro da 
velocidade permitida!”; 
b. Caso contrário, apresente a mensagem “Motorista ultrapassou a velocidade máxima”, calcule e imprima 
o valor da multa a ser paga por esse motorista. 
 São pagos R$ 10,00 para cada quilômetro que ultrapasse a velocidade máxima. 
13. O IMC (índice de massa corporal) é muito utilizado para analisar se uma pessoa está acima ou abaixo do peso, 
de forma que: 
- O IMC é calculado da seguinte forma: peso/altura2. 
- Considera-se que o IMC ideal para os homens é 22 e para as mulheres é 20.8. 
Escreva um algoritmo para ler os dados de uma pessoa, imprimir o IMC desta e indicar se ela está no peso 
ideal, acima do peso ideal, ou abaixo do peso ideal. 
14. Uma companhia de saneamento calcula o valor da conta de água de acordo com o tipo de consumidor: 
- Residencial: R$ 5.00 de taxa mais R$ 0.05 por m3 gasto; 
- Comercial: R$ 500.00 para os primeiros 80 m3, acrescido de R$ 0.25 por m3 gastos acima dos 80 m3; 
- Industrial: R$ 800.00 para os primeiros 100 m3, acrescido de R$ 0.04 por m3 gastos acima dos 100 m3. 
Baseando-se nessas informações, escreva um algoritmo que leia o tipo do cliente e o seu consumo de água 
em metros cúbicos. Depois, calcule e apresente a conta de água a ser paga pelo cliente. 
15. Escreva um algoritmo que receba a data de aniversário de duas pessoas (pessoa1 e pessoa2), sendo que a data 
consiste em dia, mês e ano. Baseando nestas datas, informe se as duas pessoas têm a mesma idade ou, em 
caso negativo, informe qual é a mais velha. 
 
 Operadores Lógicos 
Uma condição, utilizada nas estruturas de decisão (e de repetição), é formada por uma expressão lógica, que 
compara valores e retorna verdadeiro ou falso. A condição pode ser formada por uma expressão simples, que 
compara apenas um valor (ou seja, testa apenas uma situação). Por exemplo, uma condição formada pela 
expressão lógica num > 10 consiste em uma única comparação, que retornará verdadeiro se o número for maior 
que 10 e falso se o número for menor ou igual a 10. Porém, uma expressão lógica pode ser formada pela 
comparação de dois ou mais valores, testando mais de uma situação. Por exemplo, para verificar se um aluno foi 
aprovado é necessário que dois valores sejam testados, a quantidade de presenças (consideremos o mínimo 51) e 
a média (consideremos o mínimo 6.0), logo, a expressão lógica que compõe a condição que verifica se o aluno 
foi aprovado ou não será formada por duas comparações: media >= 6 e frequência >= 51. 
12 
 
 
Nos casos em que as expressões lógicas são formadas por duas ou mais comparações, os operadores lógicos são 
utilizados para associar a relação de comparação. São vários operadores lógicos, mas nesta disciplina serão usados 
os seguintes: 
Operador Função 
&& Conjunção (e) 
|| Disjunção (ou) 
 
Conjunção (&&): dadas as condições C1 e C2, denomina-se a conjunção de C1 e C2 a proposição C1 && C2 
(leia-se C1 e C2) cuja tabela-verdade é: 
C1 C2 C1 && C2 
V V V 
V F F 
F V F 
F F F 
 
Disjunção ( || ): dadas as condições C1 e C2, denomina-se disjunção de C1 e C2 a proposição C1 || C2 (leia-se 
C1 ou C2) cuja tabela-verdade é: 
P Q P || Q 
V V V 
V F V 
F V V 
F F F 
 
 Exemplo1 - Algoritmo que lê 3 números e informa na tela qual é o maior deles (considerando que o usuário 
não digitará números iguais). 
 double n1, n2, n3; 
 
 n1 = leiaDouble("Entre com o primeiro número:"); 
 n2 = leiaDouble("Entre com o segundo número:"); 
 n3 = leiaDouble("Entre com o terceiro número:"); 
 
 if (n1 > n2 && n1 > n3) 
 { 
 imprima("\n Maior número é: " + n1); 
 } 
 else 
 { 
 if (n2 > n3) 
 { 
 imprima("\n Maior número é: " + n2); 
 } 
 else 
 { 
 imprima("\n Maior número é: " + n3); 
 } 
 } 
 
A proposição C1 && C2 é 
verdadeira se e somente se as duas 
condições forem verdadeiras. 
 
A proposição C1 || C2 é verdadeira 
se pelo menos uma das condições 
for verdadeira. 
13 
 
 
 Exemplo2 - Algoritmo que lê o sexo e a idade de uma pessoa e informa se esta deve se alistar no serviço 
militar ou não, sendo que devem se alistar os homens maiores de idade. 
 int idade; 
 char sexo; 
 
 sexo = leiaChar("Digite o sexo da pessoa:"); 
 idade = leiaInt("Digite a idade da pessoa:"); 
 
 if (idade >= 18&& sexo == 'm') 
 { 
 imprima("\n Deve se alistar no serviço militar!"); 
 } 
 else 
 { 
 imprima("\n Não precisa se alistar no serviço militar!"); 
 } 
 
Exercícios de fixação 
1. Escreva um algoritmo que leia três números e informe se eles são todos iguais ou se não são todos iguais. 
2. Escreva um algoritmo que leia um número inteiro. Caso o número digitado seja par e positivo calcule e 
apresente como resultado a metade deste número. Caso contrário, apresente como resultado o dobro do 
número. 
3. Dados três valores A, B e C, verificar e informar se eles podem ser os comprimentos dos lados de um triângulo 
e, se forem, verificar se compõem um triângulo equilátero, isósceles ou escaleno, sendo que: 
- Triângulo é uma figura geométrica de três lados, onde cada lado é menor do que a soma dos outros dois. 
- Triângulo equilátero: três lados iguais. 
- Triângulo isósceles: dois lados iguais. 
- Triângulo escaleno: todos os lados diferentes. 
4. Escreva um algoritmo que informe se um número digitado está compreendido entre 10 e 50, inclusive os dois. 
Caso não esteja no intervalo indicado, informe se o número vem antes ou depois deste. 
5. Faça um algoritmo que leia o sexo (‘F’ – Feminino ou ‘M’ – Masculino) e o turno de um aluno (‘M’ – 
Matutino ou ‘V’ – Vespertino) e apresente uma das mensagens a seguir: 
 “Bom dia, querida!” 
 “Bom dia, querido!” 
 “Boa tarde, querida!” 
 “Boa tarde, querido!” 
6. Uma barraca que vende uvas e morangos está fazendo uma promoção de forma que, se o cliente comprar mais 
de 1 Kg de frutas ou o valor total da compra ultrapassar R$ 30.00, receberá um desconto de 10% sobre este 
total. Escreva um algoritmo que leia quantidade (em Kg) de uvas e a quantidade (em Kg) de morangos 
compradas por um cliente e informe o valor a ser pago. Considere que o valor do Kg do morango é de R$ 
6.00 e o valor do Kg da uva é R$ 7.50. 
14 
 
 
7. Faça um programa que receba o valor de uma mensalidade escolar, a data de vencimento (dia e mês) e a data 
do pagamento (dia e mês), depois informe o valor a ser pago, sendo que: 
 valor se pagar adiantado - 5% de desconto no valor original da mensalidade; 
 valor com atraso - 5% de acréscimo no valor original da mensalidade. 
8. Crie um algoritmo que leia a idade de uma pessoa e informe a sua classe eleitoral: 
- não eleitor (abaixo de 16 anos); 
- eleitor obrigatório (entre a faixa de 18 até menor de 65 anos); 
- eleitor facultativo (de 16 até 17 anos e de 65 anos ou mais). 
9. Uma livraria está fazendo uma promoção para pagamento à vista em que o comprador pode escolher entre 
dois critérios de desconto: 
 Critério A: desconto de - R$ 0.25 por livro + R$ 7.50 fixo 
 Critério B: desconto de - R$ 0.50 por livro + R$ 2.50 fixo 
Escreva um algoritmo em que o usuário entre com a quantidade de livros que deseja comprar e o programa 
imprime uma das seguintes mensagens: 
 As duas opções oferecem o mesmo desconto; 
 A melhor opção de desconto é o critério A; 
 A melhor opção de desconto é o critério B. 
10. Escreva um algoritmo que leia três números e apresente uma das suas mensagens a seguir: 
 “Todos os números são diferentes a zero” ou “Nem todos os números são diferentes de zero”. 
 Caso todos os números sejam diferentes de zero, calcular o resultado a ser apresentado para o usuário da 
seguinte forma: 
- Se todos os números forem positivos: o resultado é o produto dos números; 
- Se pelo menos um número for positivo: o resultado é a soma dos números; 
- Se todos os números forem negativos: o resultado é a média dos números. 
11. Uma loja está fazendo uma liquidação, sendo que o desconto é baseado nos seguintes dados dos produtos: 
preço e cor da etiqueta ('A' - Azul ou 'V' - Verde). 
Escreva um algoritmo que leia os dados do produto e calcule o valor a ser pago pelo produto, da seguinte 
forma: 
- Nos produtos com preço de R$ 200.00 ou mais e que possuem a etiqueta azul o cliente pagará a metade 
do preço; 
- Nos produtos com preço de R$ 100.00 ou mais e que possuem a etiqueta verde o cliente terá um desconto 
de 25%; 
- Nos demais produtos o cliente receberá um desconto de 10%. 
12. Faça um algoritmo para um caixa eletrônico, considerando que deve-se solicitar ao usuário a valor do saque 
e depois informar quantas notas de cada valor serão fornecidas. Considere que: 
 as notas disponíveis serão as de 1, 5, 10, 50 e 100 reais; 
15 
 
 
 o valor mínimo é de 10 reais e o máximo é de 500 reais, sendo que deve ser apresentada uma mensagem 
de erro caso esse critério não seja respeitado; 
 não precisa se preocupar com a quantidade de notas existentes no caixa. 
 Exemplo: para sacar a quantia de 328 reais, o programa deve fornecer 3 notas de 100, 2 notas de 10, 1 
nota de 5 e 3 notas de 1. 
13. Construa um algoritmo que leia o código de um determinado produto e mostre a sua classificação, utilizando 
a seguinte tabela: 
Código do Produto (CP) Classificação 
1 Alimento não perecível 
2, 3 ou 4 Alimento perecível 
5 ou 6 Material de Limpeza 
Qualquer outro código Inválido 
 
14. Construa um algoritmo para calcular o valor a ser pago pelo período de estacionamento de um automóvel. O 
usuário deverá digitar a hora de entrada e a hora de saída. O valor cobrado pelo estacionamento é: 
- R$ 4,00 para 1 hora de estacionamento 
- R$ 6,00 para 2 horas de estacionamento 
- R$ 1,00 por hora adicional (acima de 2 horas) 
 Considere que o veículo ficou estacionado por hora cheia (desconsidere os minutos). 
15. Uma escola utiliza os seguintes critérios para a obtenção da nota do aluno: 
- O aluno faz duas provas, sendo que o cálculo da média é (Prova1 + Prova2)/2; 
- O aluno deve assistir, no mínimo, 15 aulas para não ser reprovado por falta; 
- O aluno deve atingir, no mínimo, a média 6.0 para ser aprovado. 
Escreva um algoritmo que leia duas notas e quantidade de aulas frequentadas e apresente a situação do aluno, 
de acordo com as instruções abaixo: 
- APROVADO ' atingiu média 6.0 e assistiu pelo menos 15 aulas; 
- REPROVADO POR FALTA ' atingiu ou não a média 6.0, mas não assistiu o mínimo de 15 aulas; 
- VAI PARA EXAME ' assistiu pelo menos 15 aulas, mas não atingiu a média 6.0. 
- Caso o aluno tenha ido para exame, deve ser solicitada a nota do exame e informado se o aluno foi 
APROVADO ou REPROVADO, sendo que o cálculo da nota final é (média+exame)/2 e que o 
aluno deve atingir média 6.0. 
 
5 Estrutura de Repetição (laço) - while 
O laço é a estrutura utilizada para repetir um comando (ou conjunto de comandos) por um determinado número 
de vezes, de acordo com uma condição pré-estabelecida. No comando de repetição while, enquanto a condição 
for verdadeira os comandos serão executados, quando for falsa, o laço é finalizado. 
Obs: O teste da condição é realizado no início da repetição, assim, se na primeira vez a condição for falsa, os 
comandos nunca serão executados. 
 
16 
 
 
while (<condição>) 
{ 
... 
<instrução(ões) realizada(s) enquanto a condição for verdadeira> 
... 
} 
 
 Exemplo1: algoritmo que lê 2 notas de 10 alunos e imprime a média de cada um deles. 
 int cont = 0; 
 double nota1, nota2, media; 
 while (cont < 10) 
 { 
 nota1 = leiaDouble("Entre com a nota 1"); 
 nota2 = leiaDouble("Entre com a nota 2:"); 
 media = (nota1+nota2)/2; 
 imprima("\nMédia: " + media); 
 cont=cont+1; 
 } 
 Exemplo2: algoritmo que lê a quantidade e o preço unitário de 5 produtos comprados por um cliente, 
calcula e imprima: 
 O valor gasto com cada produto. 
 A quantidade de produtos que custam mais que R$ 100.00. 
 int cont = 0, quant, qtMais100=0; 
 double precoUni, valorGasto; 
 while (cont < 5){ 
 quant = leiaInt("Digite a quantidade comprada:"); 
 precoUni = leiaDouble("Digite o valor unitário:"); 
 valorGasto = quant*precoUni; 
 imprima("\n Valor gasto: " + valorGasto); 
 if (precoUni > 100) 
 { 
 qtMais100 = qtMais100+1; 
 } 
 cont=cont+1; 
 } 
 imprima("\n Qt produtos mais caros que R$ 100.00: " + qtMais100); 
 
 Teste de Mesa do Exemplo 2 
 cont quant precoUni valorGasto qtMais100 
Valores iniciais 0 - - - 0 
1 1 2 150.00 300.00 1 
2 2 10 50.00 500.00 1 
3 3 3 35.00 105.00 1 
4 4 5 200.00 1000.00 2 
5 5 1 10.00 10.00 2 
Valores Finais 5 1 10.00 10.00 2 
17 
 
 
 
* O Java e, consequentemente, o JLive, inicializam as variáveis numéricas com zero (0), mas algumas 
linguagens não fazem isso. Assim, na disciplina, consideraremos que a inicialização deverá ser feita 
explicitamente quando for necessário a utilização de um valor inicial (caso de contadores e acumuladores, 
por exemplo). 
 
Saída do exemplo 2: 
Valor gasto com o produto: 300.00 
Valor gasto com o produto: 500.00 
Valor gasto com o produto: 105.00 
Valor gasto com o produto: 1000.00 
Valor gasto com o produto: 10.00 
Quant. de produtos mais caros que R$ 100.00: 2 
 
 Exemplo3: Um comerciante deseja fazer o levantamento do lucro das mercadorias que ele comercializa. 
Para isto, mandou digitar uma linha para cada mercadoria com quantidade em estoque, preço de compra 
e preço de venda. Fazer um algoritmo que leia um número indeterminado de mercadorias até que o usuário 
digite zero na quantidade, determine e escreva o valor total de compra e de venda de todas as mercadorias, 
assim como o lucro total. 
 int quant; 
double preco_compra, preco_venda, total_compra=0, total_venda=0, 
lucro_total=0; 
quant=leiaInt(“Quantidade em estoque da mercadoria:”); 
while(quant!=0) 
{ 
 preco_compra=leiaDouble(“Preço de compra:”); 
 preco_venda=leiaDouble(“Preço de venda:”); 
 total_compra=total_compra+preco_compra; 
 total_venda=total_venda+preco_venda; 
quant=leiaInt(“Quantidade em estoque da mercadoria:”); 
} 
lucro_total=total_venda-total_compra; 
imprima(“Valor total de compra=”+total_compra); 
imprima(“Valor total de venda=”+total_venda); 
imprima(“Lucro total=”+lucro_total); 
 
18 
 
 
Exercícios de fixação 
1. Escreva um algoritmo que leia a idade e o sexo (‘f’ – feminino ou ‘m’ – masculino) de 5 pessoas, calcule e 
imprima. 
a. A quantidade de homens idosos (65 anos ou mais). 
b. A quantidade de mulheres com idade entre 10 e 15 anos. 
2. Faça um programa que leia 5 pares de números e, para cada par, imprima o quadrado do menor número. 
3. Escreva um algoritmo que imprima todos os números existentes entre 100 e 200 (inclusive os dois). 
4. Escreva um algoritmo que solicite 5 números inteiros ao usuário, calcule e imprima: 
a. para cada número, informe se ele é negativo, positivo ou igual a 0 (zero); 
b. a quantidade de números positivos maiores que 15; 
c. a quantidade de números negativos pares. 
5. Escreva um algoritmo que solicite 10 números inteiros ao usuário, calcule e imprima: 
a. A quantidade de zeros; 
b. A metade de cada número par diferente de zero; 
c. O percentual de números ímpares. 
6. Escreva um algoritmo que imprima os números existentes entre 30 e 60 (inclusive os dois), em ordem 
decrescente. 
7. Uma artesã armazena os seguintes dados sobre os produtos que revende: preço de custo com a fabricação e 
preço de venda.. Escreva um algoritmo que leia os dados de 50 produtos que ela tem para vender, calcule e 
imprima: 
a. Para cada produto, o lucro que proporcionará; 
b. A quantidade de produtos com os quais terá mais que R$ 10.00 de lucro; 
c. O percentual de produtos que oferecerão R$ 10.00 de lucro ou menos. 
8. Faça um algoritmo que leia os seguintes dados sobre 80 vendas de uma loja: o valor da compra e o valor em 
dinheiro que o cliente entregou ao caixa da loja para realizar o pagamento. Depois: 
a) Para cada venda apresente: 
 Mensagem VALOR INSUFICIENTE e o valor que falta para completar o pagamento, caso o cliente 
entregue um valor menor que o preço do produto; 
 Mensagem VALOR EXATO, NÃO TEM TROCO, caso o cliente entregue o valor do produto ao 
caixa; 
 Mensagem VALOR SUPERIOR, TEM TROCO e o valor do troco a ser entregue ao cliente, caso o 
cliente entregue um valor maior que o preço do produto. 
b) A quantidade de clientes que entregou o valor exato da compra. 
9. Faça um algoritmo que leia o valor de 5 produtos, calcule e imprima a soma desses valores. 
10. Faça um algoritmo que leia 10 números, calcule e imprima: 
 A soma dos números ímpares; 
 A média dos números pares. 
19 
 
 
11. No final de 2014, foi feito um levantamento de informações dos 500 alunos de uma escola, dos quais foram 
coletados os seguintes dados: idade, sexo e turno (‘d’ – diurno, ‘n’ – noturno). 
Faça um algoritmo que leia os dados dos 500 alunos, calcule e apresente: 
 a média de idade dos alunos; 
 a quantidade de alunos do sexo masculino que estudam no período diurno; 
 a quantidade de alunos com idade entre 15 e 18 anos (inclusive as duas idades) que estudam no período 
noturno. 
12. Um grupo de investidores fez levantamento sobre os hábitos das mulheres que moram em uma pequena cidade 
do interior, para saber se valia a pena abrir um novo salão de beleza na cidade. Para isso, para cada entrevistada 
solicitou os seguintes dados: idade, renda mensal, valor gasto mensalmente com salão de beleza e se acha que 
há necessidade de um novo salão na cidade ('s' - sim ou 'n' - não). Sabendo-se que foram entrevistadas 1500 
mulheres, fazer um algoritmo que calcule e escreva: 
a) a média dos valores gastos com salão por mulheres com idade entre 25 e 45 anos (inclusive as duas); 
b) o número de mulheres que respondeu não; 
c) a quantidade de mulheres que respondeu sim e que tem uma renda mensal menor que um salário 
mínimo. 
 O valor do salário mínimo deve ser lido antes da leitura dos dados da pesquisa 
13. Escreva um algoritmo que leia um número e imprima uma mensagem indicando se ele é par ou não. Porém, 
este algoritmo deve se repetir até que o usuário digite zero. 
14. Construa um algoritmo que permita fazer um levantamento do estoque de vinhos de uma adega, tendo como 
dados de entrada: tipo de vinho (B - Branco, T - Tinto e R - Rosê). Especifique a porcentagem de cada tipo, 
considerando que a quantidade de vinhos é desconhecida (usar como finalizador um tipo de vinho inválido). 
15. Escreva um algoritmo que leia uma quantidade indeterminada de duplas de valores (2 valores de cada vez). 
Para cada dupla, apresentar uma mensagem que indique se ela foi informada em ordem crescente ou 
decrescente. A repetição será encerrada ao serem fornecidos valores iguais para os elementos da dupla. 
Por exemplo, se para uma dupla o usuário digitar o primeiro valor igual a 7 e o segundo valor igual a 4, deverá 
ser apresentada a mensagem decrescente. 
16. Em uma eleição presidencial, existem 3 candidatos. Os votos foram registrados em fichas, sendo que cada 
ficha contém um dos códigos a seguir: 
 1, 2, 3 - Voto para os respectivos candidatos 
 4 - Voto nulo 
 5 - Voto em branco 
Construa um algoritmo que leia as fichas, de forma que a última ficha (que não entre nos cálculos) contém 
valor 0 (zero), calcule e apresente: 
a) a quantidade de eleitores que votaram; 
b) o total de eleitores que não escolheram um candidato (nulos ou brancos); 
c) o número candidato vencedor. 
20 
 
 
17. Foi feita uma pesquisa de audiência de canal de TV em várias casas de uma certa cidade, num determinado 
dia. Para cada casa visitada, foi fornecido o número do canal (4 ou 5) e a quantidade depessoas que o estavam 
assistindo naquela casa. 
Se a televisão estivesse desligada, nada era anotado, ou seja, esta casa não entrava na pesquisa. 
Fazer um algoritmo que: 
- leia um número indeterminado de dados, sendo que o "FLAG" (condição de parada) corresponde ao 
número do canal igual a zero; 
- calcule e apresente: 
a) a quantidade de casas em que se assistia o canal 4; 
b) a quantidade de pessoas que assistiam o canal 5. 
18. Foi feita uma pesquisa para determinar o índice de mortalidade infantil em um certo período. Fazer um 
algoritmo que: 
- Leia inicialmente o número de crianças nascidas no período; 
- Leia, em seguida, um número indeterminado de linhas, contendo, cada uma, o sexo de uma criança morta 
(‘m’ - masculino, ‘f’ - feminino) e o número de meses de vida da criança. A última linha, que não entrará 
nos cálculos, contém no lugar do sexo a letra ‘v’; 
Determine e imprima: 
a) A porcentagem de crianças mortas no período; 
b) A quantidade de crianças do sexo masculino mortas no período; 
c) A quantidade de crianças que viveram 24 meses ou menos no período 
19. Deseja-se fazer um levantamento a respeito da ausência de alunos a primeira prova de Algoritmos e 
Programação. Para cada um dos alunos é informado o número de matricula e a letra ‘A’ ou ‘P’ para o caso de 
o aluno estar ausente ou presente, respectivamente. Fazer um algoritmo que: 
a) leia, inicialmente, a quantidade de alunos da turma; 
b) leia as informações dos alunos da turma; 
c) calcule e apresente a porcentagem de ausência. 
20. Faça um algoritmo que leia o saldo inicial da conta de uma pessoa. Depois, leia um número indeterminado de 
movimentações realizadas por essa pessoa e apresente o saldo final. Os dados das movimentações são tipo (S 
- saque, D - depósito) e valor. Considere que: 
 um valor negativo indica que não existem mais movimentações a serem digitadas; 
 para cada movimentação realizada imprima a mensagem correspondente: "SAQUE REALIZADO" ou 
"DEPÓSITO REALIZADO"; 
 se a pessoa tentar sacar e não houver saldo suficiente na conta, o saque não será efetivado e deverá ser 
apresentada uma mensagem "SALDO INSUFICIENTE". 
21. Escreva um algoritmo que solicite ao usuário o valor de 10 produtos e, depois da leitura, informe qual foi o 
menor valor informado. 
21 
 
 
22. Antes do racionamento de energia ser decretado quase ninguém falava em quilowatts, mas agora, todos a 
incorporaram a seu vocabulário. Sabendo que cada quilowatt de energia custa um centésimo do salário 
mínimo, escreva um algoritmo que: 
 Receba inicialmente o valor do salário mínimo; 
 Leia um número indeterminado de linhas contendo cada uma a quantidade de quilowatts gasta em 
uma residência, sendo que o FLAG é a quantidade de quilowatts negativa; 
 Calcule e imprima: 
a) o valor a ser pago em cada residência; 
b) o valor total pago pelas residências; 
c) o maior valor pago por uma residência. 
23. Uma contadora foi contratada por uma empresa para avaliar o valor a pagar pelos produtos que estão sendo 
expostos em uma feira. Sabendo que o valor de cada produto é calculado a partir de um valor mínimo, faça 
um algoritmo que: 
Receba, inicialmente, o valor mínimo para o produto; 
 Leia um número indeterminado de linhas contendo cada uma os dados de um produto: peso (em gramas) 
e material (‘M’ - Madeira ou ‘A’ - Alumínio), sendo que a leitura deverá ser encerrada quando o usuário 
digitar o peso igual a zero. 
 Calcule e imprima: 
a) para cada produto, informe o valor a ser pago, considerando que: nos produtos de madeira, 
acrescenta-se ao valor inicial R$ 10,00 por grama; e nos produtos de alumínio, acrescenta-se ao valor 
inicial R$ 20,00 por grama; 
b) a média dos preços dos produtos de madeira; 
24. Faça um algoritmo que leia o sexo e a idade de um número indeterminado de pessoas, sendo que o FLAG é a 
idade igual a zero, calcule e imprima o sexo da pessoa mais velha. 
25. Uma universidade deseja fazer um levantamento a respeito de seu concurso vestibular, de forma que para 
cada curso é fornecido o seguinte conjunto de valores. 
 código do curso 
 número de vagas 
 número de candidatos do sexo masculino 
 número de candidatos do sexo feminino 
Fazer um algoritmo que: 
a) realize a leitura das informações dos cursos, sendo que o código de curso igual a zero encerra a leitura; 
b) calcule e escreva, para cada curso: o número de candidatos por vaga; 
c) calcule e escreva a quantidade de cursos que oferecem menos de 50 vagas; 
d) calcule e escreva o total de candidatos do sexo feminino; 
e) determine o maior número de candidatos do sexo masculino e escreva esse número juntamente com 
o código do curso correspondente (supor que não haja empate). 
22 
 
 
26. Fazer um algoritmo que: 
 leia e apresente o código e a altura das moças inscritas em um concurso de beleza. Para cada moça, existe 
uma linha contendo seu código e sua altura. A última linha que não corresponde a nenhuma moça, conterá 
0 (zero) no lugar do código. 
 calcule e escreva a maior altura e quantas moças a possuem. 
 Não utilize vetor ou matriz para resolver o problema. 
27. Uma companhia de teatro planeja dar uma série de espetáculos. A direção calcula que a R$ 5.00 o ingresso, 
serão vendidos 120 ingressos, e as despesas montarão em R$ 200.00. A uma diminuição de R$ 0.50 no preço 
dos ingressos espera-se que haja um aumento de 26 ingressos vendidos. 
Fazer um algoritmo que escreva uma tabela de valores do lucro esperado em função do preço do ingresso, 
fazendo-se variar este preço de R$ 5.00 a R$ 1.00 de R$ 0.50 em R$ 0.50. 
28. Ana tem 5 anos e mende 1.15 metros. João tem 10 anos e mede 1.40 metros. Considerando que Ana cresce 5 
cm ao ano e que João cresce 3 cm ao ano, calcule e informe em quantos anos Ana estará ficar mais alta que 
João.7 
29. Uma empresa foi contratada pela prefeitura de uma cidade para avaliar a indenização que será dada aos 
proprietários de casas que serão derrubadas para a construção de um hospital. Sabendo que o valor da 
indenização de cada casa é calculado a partir de um valor mínimo inicial, faça um algoritmo que: 
a) Receba, inicialmente, o valor mínimo para a indenização; 
b) Leia um número indeterminado de linhas contendo cada uma os dados de uma casa: metragem (m2) e 
classe (‘A’ ou ‘B’), sendo que a leitura deverá ser encerrada quando o usuário digitar a metragem igual a 
zero. 
c) Calcule e imprima: 
 para cada casa, informe o valor a ser pago de indenização ao proprietário, considerando que: 
 nas casas de classe ‘A’, acrescenta-se ao valor mínimo inicial R$ 500,00 por metro quadrado; 
 nas casas de classe ‘B’, acrescenta-se ao valor mínimo inicial R$ 300,00 por metro quadrado. 
 o valor total gasto pela prefeitura com indenização; 
 o maior valor pago para indenizar uma casa de classe ‘B’. 
30. Numa fábrica trabalham homens e mulheres divididos em duas classes: A – os que fazem até 100 peças por 
mês; e B – os que fazem mais de 100 peças por mês. 
Os operários da classe ‘A’ recebe m apenas o salário-mínimo e os operários da classe ‘B’ recebem salário-
mínimo e mais R$ 1.00 por peça. 
Fazer um algoritmo que: 
- Leia inicialmente o valor do salário-mínimo; 
- Leia várias linhas contendo o número do operário e quantas peças ele fabricou no mês. A última linha, 
que servirá de flag (condição de parada), terá o número do operário igual a zero. 
- Calcule e escreva 
a) A classe e o salário de cada operário. 
23 
 
 
b) O número do operário que recebeu o maior salário. 
 Considere que não houve empate. 
c) O valor total da folha de pagamento dos operários da fábrica nesse mês. 
 
6 Estrutura de Repetição (laço) - for 
No for, as instruçõessão executadas até que a condição se torne falsa, ou seja, enquanto a condição for verdadeira. 
Sintaxe: 
for(exp1;exp2;exp3) 
{ 
 instrução 1; 
 instrução 2; 
} 
 
 for versus while 
 Exemplo1: Algoritmo que imprime todos os números de 1 a 5: 
while for 
int cont=1; 
while(cont <=5){ 
 imprima("\nCont: " + cont); 
 cont++; 
} 
for (int cont=1; cont<=5; cont++) 
{ 
 imprima("\nCont: " + cont); 
} 
 
 Exemplo2: Algoritmo que lê 20 números e imprime a soma desses números: 
while for 
int cont=0, num, soma=0; 
while(cont <20){ 
 num=leiaInt("Numero:"); 
 soma = soma + num; 
 cont++; 
} 
imprima("Soma: " + soma); 
int num, soma=0; 
for (int cont=0; cont<20; cont++) 
{ 
 num=leiaInt("Numero:"); 
 soma = soma + num; 
} 
imprima("Soma: " + soma); 
 
 Exemplo3: Algoritmo que calcula o valor de S, sendo que: S = 3+6+9+12+15+18+...+300 
while for 
int S=0, num=3; 
while (num<=300) 
{ 
 S = S + num; 
 num+=3; 
} 
imprima("\nS: " + S); 
int S=0; 
for (int num=3; num<=300; num+=3) 
{ 
 S = S + num; 
} 
imprima("\nS: " + S); 
 
exp1  expressão executada antes de entrar no laço 
exp2  é a condição do for, ou seja, o laço é executado 
enquanto a exp2 for verdadeira, sendo que a condição é 
analisada em toda virada do laço. 
exp3  ao final de cada passagem pelo for a exp3 é 
executada. 
24 
 
 
Exercícios de fixação 
1. Escreva um algoritmo que imprima todos os números de 10 a 50, em ordem crescente. 
2. Escreva um algoritmo que imprima os números de 20 a 200, em ordem decrescente, de dois em dois. 
3. Faça um algoritmo que imprima os 10 primeiros termos da série: 
50 100 150 200 ... 
4. Escreva um algoritmo que calcule a soma dos termos da seguinte série: 
 20 30 40 50 60 ... 500 
5. Escreva um algoritmo que calcule a média dos termos da seguinte série: 
 10 15 20 25 30 ... 1000 
6. Escreva um algoritmo que calcule o produto dos 10 primeiros termos da seguinte série: 
 10 15 20 25 30 ... 
7. Faça um programa que calcule o valor de S, sendo que: 
S = (10X – 20X + 30X – 40X + ... 5000X)/100 
8. Faça um programa que calcule o valor de S, sendo que S é a soma dos 15 primeiros termos da série: 
...
8
20
6
20
4
20
2
20
S
 
9. Fazer um algoritmo que calcule escreva o valor de S, que é a soma dos 15 primeiros termos da série: 
....
23
25
18
20
13
15
8
10
3
5
S
 
10. Escreva um algoritmo que calcule a soma dos 20 primeiros números da série: 
 5 -10 15 -20 25 -30 ... 
11. Escreva um algoritmo que calcule e apresente a soma dos 30 primeiro termos da série: 
 
 
 
12. Fazer um algoritmo que calcule o fatorial de 5. 
Exemplo: 5! = 5*4*3*2*1 
13. Fala um programa que leia um número e apresente o fatorial do mesmo. 
14. Faça um programa que leia 10 números, calcule e apresente o fatorial do maior deles. 
15. Escreva um algoritmo que calcule e apresente o valor de S, sendo que: 
 
 
16. Fazer um algoritmo que solicite ao usuário um número e calcule o fatorial do mesmo. 
Exemplo: 6! = 6*5*4*3*2*1 
17. Escreva um algoritmo que solicite ao usuário dois números e imprima todos os números existentes entre o 
menor e o maior número digitado. 
480 - 475 + 470 - 465 ... 
10 11 12 13 
S = 2 - 4 + 6 - 8 + ... 20 
 1 2 3 4 10 
25 
 
 
18. Escreva um algoritmo para calcular a série Fibonacci até o N-ésimo termo. A série tem a seguinte forma: 
1,1,2,3,5,8,13,21,34,… 
19. Escreva um algoritmo para gerar até o n-ésimo termo de uma progressão aritmética de termo inicial Ti e razão 
r. Todos estes valores deverão ser lidos do teclado. 
Exemplo: 
 Ti = 10 
 r = 2 
 n = 5 
 Resultado PA  10 12 14 16 18 
20. Escreva um algoritmo para gerar até o n-ésimo termo de uma progressão geométrica de termo inicial Ti e 
razão r. Todos estes valores deverão ser lidos do teclado. 
Exemplo: 
Ti = 10 
 r = 2 
 n = 5 
 Resultado PG  10 20 40 80 160 
21. Escreva um algoritmo que leia dois valores inteiros, X e Y, calcule e imprima XY(elevar X à potência de Y). 
Exemplo: 34 = 3*3*3*3 
22. Escreva um algoritmo que calcule o valor de S, sendo que: 
S = 10! + 8! + 6! + ...+ 2! 
23. Faça um algoritmo que calcule e imprima cada elemento da série a seguir: 
220 218 216 ... 22 
 
7 Vetor – Matriz Unidimensional 
Tipo de dado utilizado para representar certa quantidade de variáveis de valores homogêneos, sendo que pode ser 
definido como uma coleção de variáveis de um mesmo tipo e com o mesmo nome, ocupando posições 
consecutivas na memória. Assim, como em outras variáveis os vetores devem ser explicitamente declarados para 
que seja alocado espaço para elas na memória. 
 
 Declaração 
tipo[] nome = new tipo[tam]; 
- tipo  tipo de cada elemento da vetor. Ex. int, char, double, double; 
- nome  nome do vetor. 
- tam  quantidade de elementos que o vetor poderá armazenar(nome[0] até nome[tam-1]). 
 Exemplo1: Declaração de um vetor num de 5 elementos do tipo double. 
double[] num = new double[5]; 
26 
 
 
 Exemplo2: Declaração de um vetor letras de 6 elementos do tipo char. 
char[] letras = new char[6]; 
 Exemplo3: Declaração e inicialização de um vetor vet de 4 elementos do tipo int. 
int[] vet = {3, 5, 4, 8}; 
 Nesse caso, o tamanho do vetor é determinado pelo número de elementos na lista de 
inicializadores. 
 
 Manipulação: corresponde a forma como os dados (elementos) do vetor devem ser acessados, para leitura 
ou alteração. 
- Os elementos são identificados a partir de índices (posição do elemento no vetor), a partir do índice 0 
(zero). 
- Um vetor pode ser representado como um repositório de valores identificados por um índice: 
Índice (posição) 0 1 2 3 4 
Conteúdo (valor) 5 6 8 5 10 
- Para manipular um determinado elemento é necessário colocar o nome do vetor e o índice do elemento. 
Considerando que o vetor acima se chame NUM; 
- O vetor NUM tem 5 posições. 
- O valor contido em NUM[4] é 10. Nesse caso, 4 é o índice e 10 é o conteúdo (valor). 
- NUM[1] = 15  ao executar essa instrução, o valor de NUM[1], que era 6 passa a ser 15. 
- NUM[0] == 6  essa instrução verifica se o valor armazenado na primeira posição é igual a 6 e 
retorna V (true) ou F (false). Nesse caso, retorna falso. 
- A atribuição, consulta e alteração dos valores dos elementos devem ser realizadas de elemento em 
elemento. Por exemplo, o trecho apresentado a seguir, mostra como declarar e preencher um vetor de 
inteiros de 5 posições: 
 int[] num = new int[5]; 
 for (int i = 0; i < 5; i = i + 1) 
 { 
 num[i] = leiaInt("Entre com o número " +i); 
 } 
 
 Exemplo1: Algoritmo que solicita ao usuário as médias de 5 alunos e calcula e imprime a média geral da 
turma. Depois, calcula e imprime a quantidade de medias maiores da média geral da turma. 
 double[] media = new double[5]; 
 double somaMedia=0, mediaGeral; 
 int qtMaiores = 0; 
 for (int i=0; i<5; i=i+1) 
 { 
 media[i] = leiaInt("Entre com a media do aluno " +i); 
 somaMedia = somaMedia + media[i]; 
 } 
 mediaGeral = somaMedia/5; 
27 
 
 
 imprima("Media Geral = " + mediaGeral); 
 
 for (int i=0; i<5; i=i+1) 
 { 
 if (media[i]>mediaGeral) 
 { 
 qtMaiores = qtMaiores+1; 
 } 
 } 
 imprima("Qt. de medias maiores que a média geral:" + qtMaiores); 
 
 Exemplo2: Algoritmo que solicita ao usuário 5 números inteiros e guarda em um vetor, depois, imprime 
o vetor de trás para frente. 
 int[] num = new int[5]; 
 for (int i=0; i<5; i++) 
 num[i] = leiaInt("Entrecom o número " + i); 
 } 
 for (int i=4; i>=0; i--){ 
 imprima(“ “ + num[i]); 
 } 
 
 Exercícios de fixação 
1. Escreva um algoritmo que leia a idade de 10 pessoas e guarde em um vetor, calcule e imprima: 
a) A maior idade. 
b) A quantidade de pessoas que possuem idade igual a maior idade. 
2. Escreva um algoritmo que leia dados de um vetor A, com 5 elementos inteiros. Depois, solicite um número 
ao usuário e informe quantas vezes esse número aparece no vetor. 
3. Escreva um algoritmo que leia as 10 respostas do gabarito de uma prova e guarde em um vetor de caracteres 
G, sendo que a posição do vetor representa o número da questão. A seguir, leia as 10 respostas de um aluno e 
guarde em um vetor R. Depois, realize as seguintes ações: 
a. Imprima os números das questões que o aluno errou. 
b. Informe se o aluno foi aprovado, sendo que é aprovado o aluno que teve 6 ou mais acertos. 
4. Escreva um algoritmo que leia 5 números inteiros diferentes (não repetidos) e guarde em um vetor, calcule e 
imprima: 
a) A posição de cada número par. 
b) A posição do maior elemento do vetor, considerando que não existem valores repetidos. 
5. Escreva um algoritmo que leia dados de um vetor A, com 10 elementos inteiros. Depois, calcule e imprima 
quantas vezes o primeiro elemento aparece no vetor. 
6. Escreva um algoritmo que leia dados de um vetor A, com 10 elementos inteiros. Depois, calcule e imprima 
quantas vezes o último elemento aparece no vetor. 
28 
 
 
7. Faça um algoritmo que leia e imprima um vetor A de 10 posições e a soma de todos os elementos que são 
diferentes do elemento armazenado na primeira posição. 
8. Faça um algoritmo que preencha e imprima um vetor com 100 elementos inteiros de acordo com as 
seguintes instruções: 
 As posições pares devem ser preenchidas com o valor 5; 
 As posições ímpares devem ser preenchidas com os valores da seguinte sequência: 
3 6 9 12 15 . . . 
9. Escreva um algoritmo que leia um vetor A de 10 posições e crie dois vetores B e C, de 5 elementos cada, 
preenchidos da seguintes forma: 
a) vetor B: conterá os valores que estão nas posições pares de A. 
b) vetor C: conterá a soma dos valores correspondentes de A e B. 
EXEMPLO: 
Índice (posição) 0 1 2 3 4 5 6 7 8 9 
Vetor A 45 8 20 13 15 9 10 8 51 14 
 
Vetor B 45 20 15 10 51 
Vetor C 90 28 35 23 66 
 
10. Escreva um algoritmo que leia dados de dois vetores A e B, de 5 elementos inteiros cada. Depois: 
a) construa um vetor C, no qual cada elemento é a diferença dos elementos correspondentes de A e B. 
EXEMPLO: 
Índice (posição) 0 1 2 3 4 
Vetor A 10 8 20 13 15 
 
Vetor B 5 5 10 8 20 
 
Vetor C 5 3 10 5 -5 
b) Informe quantos elementos negativos aparecem em C. 
11. Escreva um algoritmo que leia os dados de dois vetores, NOTA1 e NOTA2, preenchidos com as notas de 10 
alunos, sendo que o índice (posição no vetor) é o código do aluno. Depois, preencha um vetor MEDIAS com 
as médias dos alunos e informe o código de todos os alunos aprovados, considerando que a média mínima 
para aprovação é 6.0. 
12. Escreva um algoritmo que leia dados de dois vetores A e B, com 10 elementos cada. Crie um vetor C, com 
20 elementos, que é a junção de A e B. 
13. Escreva um algoritmo que leia os dados de dois vetores A e B, com 5 caracteres cada, e depois crie e imprima 
um vetor C preenchido com os valores intercalados de A e B. 
29 
 
 
14. Faça um algoritmo que leia os dados e preencha 2 vetores para guardar a idade e o sexo de 10 pessoas, 
sendo que o índice do vetor corresponde ao código da pessoa. Então, após a leitura, imprima: 
a. o código de cada uma das mulheres; 
b. a quantidade de homens menores de 21 anos. 
15. Faça um programa para ler um valor N qualquer (que será o tamanho dos vetores). Posteriormente, leia dois 
vetores (A e B de tamanho N cada um) e depois armazene em um terceiro vetor (C) a soma de cada 
elemento do vetor A com o elemento em posição inversa do vetor B. Ao final, imprima o vetor C. 
Por exemplo, se N = 3: 
C[0] = A[0] + B[2]; 
C[1] = A[1] + B[1]; 
C[2] = A[2] + B[0]). 
16. Escreva um algoritmo que leia, preencha e imprima um vetor A de 10 elementos inteiros. Depois, troque o 
conteúdo das posições pares com o conteúdo das posições ímpares. 
Por exemplo: 
- O conteúdo da posição 0 do vetor deve ser inserido na posição 1 e o conteúdo da posição 1 deve ser 
inserido na posição 0; 
- O conteúdo da posição 2 do vetor deve ser inserido na posição 3 e o conteúdo da posição 3 deve ser 
inserido na posição 2; 
- E assim por diante. 
17. Escreva um algoritmo que leia, preencha e imprima um vetor A de 10 elementos inteiros. Depois, preencha e 
imprima um vetor B de 10 elementos inteiros, que deverá conter os valores das posições pares de A em suas 
posições ímpares e os valores das posições ímpares de A em suas posições pares. 
 
8 Matrizes Bidimensionais ou variáveis indexadas bidimensionais 
Assim como um vetor, matriz é um tipo de dado utilizado para representar uma determinada quantidade de 
variáveis de valores homogêneos, ou seja, do mesmo tipo. Como o próprio nome sugere, possui duas dimensões 
(linha e coluna). 
 
 Forma geral de declaração: 
tipo[][] nome = new tipo[qtLinhas] [qtColunas]; 
 tipo  tipo de cada elemento da matriz. Ex. int, char, float, double; 
 nome  nome da matriz. 
qtLinhas  quantidade de linhas da matriz. 
qtColunas  quantidade de colunas da matriz. 
 
 Exemplo: Declaração de uma matriz de inteiros, chamada mat, com 2 linhas e 5 colunas: 
int[ ][ ] mat = new int [2] [5]; 
 
30 
 
 
 Declaração e inicialização da matriz 
int[][] mat = { {1, 2, 3, 4, 5}, {2,5,6,4,3} }; 
- Nesse caso, o tamanho da matriz é determinado pelo número de elementos na lista de inicializadores, 
no caso acima a matriz recebe 2 linhas e 5 colunas. 
 
 Manipulação do elemento da matriz 
A manipulação dos elementos da matriz bidimensional é feita com a utilização de dois índices, que 
indicam a linha e a coluna, respectivamente, em que elemento está posicionado. 
 
 Exemplo: Matriz A com 3 linhas e 2 colunas: 
 Coluna 0 Coluna 1 
Linha 0 20 15 
Linha 1 10 8 
Linha 2 30 50 
 
 
 Exemplo 1: Lê duas matrizes A e B, de ordem 3x3, e gera uma matriz C, que é a soma das outras duas 
(A+B). Imprime as três matrizes. 
 int[][] A=new int[3][3], B=new int[3][3], C=new int[3][3]; 
 imprima("\nMatriz A\n"); 
 for (int i=0;i<3;i=i+1){ 
 for (int j=0;j<3;j=j+1){ 
 A[i][j]=leiaInt("A["+i+"]["+j+"]:"); 
 imprima(" " + A[i][j]); 
 } 
 imprima("\n"); 
 } 
 imprima("\nMatriz B\n"); 
 for (int i=0;i<3;i=i+1){ 
 for (int j=0;j<3;j=j+1){ 
 B[i][j]=leiaInt("B["+i+"]["+j+"]:"); 
 imprima( " " + B[i][j]); 
 } 
 imprima("\n"); 
 } 
 imprima("\nMatriz C\n"); 
 for (int i=0;i<3;i=i+1){ 
 for (int j=0;j<3;j=j+1){ 
 C[i][j] = A[i][j] + B[i][j]; 
 imprima(" " + C[i][j]); 
 } 
 imprima("\n"); 
 } 
A[0][1] = 15 
Indica que o elemento da linha 
0 e coluna 1 é 15. 
31 
 
 
 
 Exemplo 2: Lê uma matriz 3x3 e imprime os seguintes valores: 
- Soma dos elementos posicionados nas colunas pares. 
- O dobro de cada elemento da segunda linha (linha 1). 
 int[][] mat=new int[2][4]; 
 int somaColPares=0, dobro; 
 
 for (int i=0;i<2;i=i+1){ 
 for (int j=0;j<4;j=j+1){ 
 mat[i][j]=leiaInt("mat["+i+"]["+j+"]:"); 
 imprima(" " + mat[i][j]); 
 
 if (j%2 == 0) 
 { 
 somaColPares = somaColPares + mat[i][j]; 
 } 
 } 
 imprima("\n"); 
 } 
imprima("\nSoma dos elementos das colunas pares: " + somaColPares 
+ "\n"); 
 for (int j=0; j<4;j++) { 
 dobro = 2*mat[1][j]; 
 imprima("\nDobro = " + dobro); 
 } 
 
Exercícios de fixação 
1. Escreva um algoritmo que leia uma matriz, de ordem 3x3. Depois, calcule e imprima quantas vezes o último 
elemento aparece nessa matriz e em que posições (linha e coluna) ele está armazenado. 
2. Escreva um algoritmo que leia os dados de uma matriz de inteiros 5x5 e crie um vetor preenchido com os 
elementos da primeira linha desta matriz. 
3. Escreva um algoritmo que leia uma matriz, de ordem 3x3. Depois, calcule e imprima o maior elemento e 
quantas vezes ele aparece nessa matriz. 
4. Escreva um algoritmo que leia uma matriz A, ordem 4x4, e imprima os seguintes dados: 
a. A soma dos elementos pares; 
b. Produto dos elementos da diagonal principal. 
Exemplo: Na tabela a seguir, a diagonal principal está destacada. 
 Col 0 Col 1 Col 2 Col 3 
Lin 0 2 3 5 10 
Lin 1 11 2 15 7 
Lin 2 2 3 8 9 
Lin 3 10 4 7 10 
 
32 
 
 
5. Escreva um algoritmo que leia os dados de uma matriz de caracteres 5x4, que armazena uma palavra de 4 
letras em cada linha. Depois, calcule e apresente quantas palavras começam e terminam com a mesma letra. 
6. Faça um algoritmo que leia uma matriz M [10, 10] e imprima: 
a. o menor elemento de cada linha da matriz; 
b. quantidade de elementos negativos; 
c. posição ocupada (linha e coluna) por um elemento cujo valor será lido via teclado, após a impressão dos 
valores anteriores. Caso este elemento não exista imprima “o elemento não existente”. 
7. Implementar um algoritmo que leia uma matriz A (2x3) e crie uma matriz B (3x2), sendo que B é a matriz 
transposta de A. Transpor uma matriz significa transformar suas linhas em colunas e vice-versa. 
Exemplo: 1 2 3
4 5 6
1 4
2 5
3 6





















t 
8. Escreva um algoritmo que crie uma matriz, de ordem 8X8, preenchida com a seguinte formação: 
 Todos os elementos da primeira linha são preenchidos com 0; 
 Todos os elementos da segunda linha são preenchidos com 1; 
 Todos os elementos da terceira linha são preenchidos com 2; 
 E assim sucessivamente. 
9. Escreva um algoritmo que leia uma matriz de inteiros 3x4. Depois, crie e imprima 2 vetores, sendo que: o 
primeiro vetor é formado com os elementos da linha 0 da matriz; o segundo vetor é formado pelos elementos 
da coluna 1 da matriz. 
10. Faça um algoritmo que preencha e imprima uma matriz NxN. Depois, apresente o maior elemento de cada 
linha. 
11. Escreva um algoritmo que leia dois vetores A e B com N elementos inteiros cada. Construir uma matriz C 
(2xN), com a seguinte formação: a primeira linha deverá ser formada pelos elementos do vetor A e a segunda 
linha pelos elementos do vetor B. 
12. Uma revendedora de motos faz a folha mensal de pagamento de seus 30 vendedores baseada nos dados 
armazenados em uma matriz (30x2) e um vetor de 30 elementos, sendo que: 
 o vetor armazena a classe do vendedor (‘A’ ou ‘B’); 
 a coluna 0 da matriz corresponde a quantidade de motos pequenas vendidas pelo vendedor; 
 a coluna 1 da matriz corresponde a quantidade de motos grandes vendidas pelo vendedor; 
 o índice do vetor e a linha da matriz correspondem ao código do vendedor. 
Faça um algoritmo que leia os dados da matriz e do vetor, determine e imprima o salário de cada um dos 
vendedores. As informações para o cálculo do salário dos vendedores são: 
 O valor base do salário da classe ‘A’ é R$ 780,00 e da classe ‘B’ é R$ 10000,00; 
 A comissão para cada moto pequena vendida é R$ 100,00; 
 A comissão para cada moto grande vendida é R$ 250,00. 
33 
 
 
13. Uma loja controla o estoque de suas mercadorias armazenando em uma tabela (matriz) a quantidade em 
estoque e o valor unitário das mercadorias, como mostra o exemplo a seguir, sendo que a linha da matriz 
representa o código do produto. 
 Quantidade em estoque Valor unitário 
 
100 5.00 
50 16.00 
30 20.00 
... 
50 3.00 
Escreva um algoritmo que: 
a. Leia os dados de 50 mercadorias e armazene na matriz MERCADORIA. 
b. Calcule e imprima o código e o valor da mercadoria mais barata. 
c. Crie e imprima um vetor TOTAL preenchido com o valor total em estoque de cada uma das 
mercadorias, sendo que o índice do vetor corresponde ao código do produto. 
 Declare a matriz e o vetor com o tipo double. 
14. Escreva um algoritmo que leia uma matriz cujo conteúdo é a população dos 10 municípios mais populosos 
de cada um dos 23 estados brasileiros. 
 
 
 Determine e imprima o número do município mais populoso e o número do estado a que ele pertence. 
 Considerando que a 1ª coluna contém sempre a população da capital do estado, calcular a média da 
população das capitais dos 23 estados. 
 Imprima a média da população de cada estado. 
 
15. Escreva um algoritmo que crie uma matriz A, ordem 100x50, preenchida da seguinte forma. 
 Col 0 Col 1 Col 2 Col 3 ... 
Lin 0 0 1 2 3 ... 
Lin 1 1 2 3 4 ... 
Lin 2 2 3 4 5 ... 
Lin 3 3 4 5 6 ... 
... ... ... ... ... ... 
Depois, imprima a matriz resultante. 
 
34 
 
 
16. As pontuações das provas dos 2000 candidatos do vestibular de uma instituição são armazenadas em uma 
matriz PONT (2000x3), de forma que: 
 a linha da matriz corresponde ao código do aluno; 
 cada coluna da matriz guarda a pontuação de uma prova do candidato: a primeira coluna (0) guarda a 
nota de português; a segunda coluna (1) guarda a nota de matemática; e a terceira coluna (2) guarda 
a nota da redação. 
Baseando-se nessas informações, faça um algoritmo que leia os dados da matriz, determine e imprima: 
a. para cada aluno, o código e a sua pontuação total no vestibular; 
b. a maior nota da redação. 
17. Elabore um algoritmo que leia um vetor A de 5 posições. Após a leitura deste vetor construa uma matriz B 
(5 x 5), definida da seguinte forma: 
 A primeira linha da matriz é gerada pegando-se os elementos do vetor, e subtraindo cada um deles 
de 0; 
 A segunda linha da matriz é gerada pegando-se os elementos do vetor, e subtraindo cada uma deles 
de 1; 
 A terceira linha da matriz é gerada pegando-se os elementos do vetor, e subtraindo cada uma deles 
de 2; 
 E assim sucessivamente; 
Depois, imprima o vetor e a matriz resultante.

Outros materiais