Buscar

apostila-ap-i-2014

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

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

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ê viu 3, do total de 30 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

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

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ê viu 6, do total de 30 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

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

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ê viu 9, do total de 30 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

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 
2014 
 
SUMÁRIO 
 
1 Conceitos básicos de lógica de programação e algoritmos ........................................................... 2 
2 Variáveis ....................................................................................................................................... 3 
3 Instruções Básicas ......................................................................................................................... 4 
4 Estrutura de decisão – if – if/else .................................................................................................. 8 
5 Estrutura de Repetição (laço) - while .......................................................................................... 14 
6 Estrutura de Repetição (laço) - for .............................................................................................. 19 
7 Vetor – Matriz Unidimensional .................................................................................................. 21 
8 Matrizes Bidimensionais ou variáveis indexadas bidimensionais .............................................. 25 
 
 
 
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 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(“Texto que 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 programa 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); 
} 
 
7 
 
 
Exercícios de fixação 
1. Faça um programa 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. Faça 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. Faça 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. Faça um algoritmo para calcular 
e apresentar a média ponderada do aluno. 
5. Uma doceira levou pães de mel para vender em uma feira de gastronomia. Faça um algoritmo que 
calcule o lucro obtido pela doceira na feira, baseando-se na quantidade vendida e no preço de custo e 
preço de venda da unidade, considerando que o valor gasto pela doceira com o aluguel do stand foi de 
R$ 500.00. 
6. Faça 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. 
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, faça 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. 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. 
9. 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$ 3.00. 
10. Faça 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. 
8 
 
 
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 
 
 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!"); 
 } 
} 
 
9 
 
 
 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 
estiverem escritas 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); 
 
 if(media >= 6) 
 { 
 imprima("\nAprovado"); 
 } 
 else 
 { 
 imprima("\nReprovado"); 
 } 
} 
 
Exercícios de fixação 
1. Faça um algoritmo que leia um número e informe se ele é par ou ímpar. 
2. Faça um algoritmo que leia um número inteiro e apresente uma das três mensagens: “Número igual a 
zero”; “Número positivo”; ou “Número negativo”. 
3. Faça 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. 
 
10 
 
 
4. Faça 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. 
5. Faça um algoritmo que receba uma quantidade de tempo representada em horas e minutos. Depois, 
apresente esse tempo convertido em minutos. 
6. Faça 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. 
7. O IMC (índice de massa corporal) é muito utilizado para analisar se uma pessoa está acima ou abaixo do 
peso, de formaque: 
- 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. 
8. 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, faça 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. 
9. Faça um programa 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 tem a mesma idade 
ou qual é a mais velha. 
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. 
 
 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 
11 
 
 
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. 
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); 
 } 
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. 
12 
 
 
 else 
 { 
 if (n2 > n3) 
 { 
 imprima("\n Maior número é: " + n2); 
 } 
 else 
 { 
 imprima("\n Maior número é: " + n3); 
 } 
 } 
} 
 
� 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 dois números inteiros e apresente a mensagem "Os dois números devem 
ser diferentes de zero!" se for digitado pelo menos um número igual a zero. Caso contrário, calcule e 
apresente a soma dos números. 
2. Faça 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 o dobro do número. 
3. Uma loja está fazendo uma liquidação, sendo que o desconto é baseado nos seguintes dados dos 
produtos: preço e cor da etiqueta ('P' – Preta, 'A' - Azul ou 'V' - Verde). 
Faça um algoritmo que leia os dados do produto e informe se o produto possui ou não possui desconto e 
o valor a ser pago pelo produto. Caso haja desconto, esse é atribuído da seguinte forma: 
• Não será fornecido desconto para os produtos com etiqueta preta; 
• 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 demais produtos o cliente receberá um desconto de 10%. 
13 
 
 
4. 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. 
5. Em uma universidade está sendo realizado um congresso internacional, no qual os inscritos, no momento 
da inscrição, podem escolher se participarão dos minicursos e se precisarão de tradução simultânea. O 
valor da inscrição é calculado da seguinte forma: 
• Valor base: R$ 50.00; 
• Valor para participar dos minicursos: acréscimo de R$ 20.00 ao valor base; 
• Valor para a tradução simultânea: acréscimo de R$ 10.00 ao valor base. 
Faça um algoritmo em que o usuário informa se deseja participar dos mini-cursos (S ou N) e se precisa 
de tradução simultânea (S ou N). Depois, calcule e informe o valor da inscrição a ser pago pelo usuário. 
6. 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 
Faça 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. 
7. Uma loja está fazendo uma liquidação, sendo que o desconto é baseado nos seguintes dados dos 
produtos: preço, possui desconto? ('S' - Sim ou 'N' - Não) e cor da etiqueta ('A' - Azul ou 'V' - Verde). 
Faça um algoritmo que leia os dados do produto e informe se o produto possui ou não possui desconto e 
o valor a ser pago pelo produto. Caso haja desconto, esse é atribuído da seguinte forma: 
- Nos produtos com preço de R$ 100.00 ou mais e que possuem a etiqueta azul o cliente pagará a 
metade do preço; 
- Nos demais produtos o cliente receberá um desconto de 10%. 
8. 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 
 
 
 
9. Construaum 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). 
10. 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. 
Faça 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. 
 
while (<condição>) 
{ 
... 
<instrução(ões) realizada(s) enquanto a condição for verdadeira> 
... 
} 
 
15 
 
 
� 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, calcule 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 
 
16 
 
 
* 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); 
} 
 
17 
 
 
Exercícios de fixação 
1. Faça um programa que leia a idade e o sexo (f – feminino ou m – masculino) de 15 pessoas, calcule e 
imprima. 
a. A quantidade de mulheres. 
b. A quantidade de homens menores de idade. 
2. Faça um algoritmo que solicite 10 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 negativos; 
c. o maior número positivo. 
3. A administração de uma rodoviária anotou dados das 40 pessoas que chegaram em um determinado 
ônibus na cidade. Para cada pessoa foi preenchida uma ficha com a idade e a procedência (c - Capital, i - 
Interior, o - Outro estado). 
Faça um algoritmo que leia os dados, calcule e imprima: 
a. a quantidade de pessoas maiores de idade. 
b. a quantidade de pessoas vindas da capital e que tem mais que 60 anos. 
c. o percentual de pessoas que vieram do interior. 
4. Faça um algoritmo que solicite 10 números inteiros ao usuário, calcule e imprima: 
a. O dobro de cada número positivo. 
b. A quantidade de números negativos. 
* Considere que o usuário nunca digitará o número 0 (zero). 
5. Faça um algoritmo que imprima todos os números existentes entre 100 e 200 (inclusive os dois). 
6. Faça um algoritmo que imprima os números existentes entre 30 e 60 (inclusive os dois), em ordem 
decrescente. 
7. Uma loja guarda os seguintes dados sobre cada um dos 150 produtos que revende: preço de custo, preço 
de venda e tipo (V – vestuário e C – Calçado). Faça um algoritmo que leia os dados dos 150 produtos, 
calcule e imprima: 
a. Para cada produto, o lucro que proporciona. 
b. Quantidade de calçados vendidos. 
8. Em uma pesquisa um cinema solicitou os seguintes dados para os entrevistados: sexo e a quantidade de 
filmes que assistiu no segundo semestre de 2013. Faça um algoritmo que leia os dados de 50 pessoas, 
calcule e imprima: 
a. Para cada pessoa, apresente a informação se é mulher ou homem. 
b. A quantidade de homens que assistiram mais que 10 filmes. 
c. O percentual de mulheres entrevistadas. 
9. Faça um programa que leia um número e imprima uma mensagem indicando se ele é par ou não. Porém, 
este programa deve se repetir até que o usuário digite zero. 
18 
 
 
10. Foi realizada uma pesquisa de algumas características dos alunos de uma escola, para a qual foram 
coletados os seguintes dados referentes a cada aluno: 
• Turno ("D - Diurno", "N - Noturno"); 
• Salário - para indicar que o aluno não possui emprego deve ser atribuído 0 (zero) ao salário; 
• Idade. 
Faça um algoritmo que leia os dados dos alunos, sendo que a leitura é encerrada quando a idade digitada 
for igual a -1, determine e escreva: 
• A média dos salários dos alunos entre 18 e 25 anos; 
• O percentual de indivíduos menores de idade que estudam no período noturno e possuem 
emprego. 
11. Em uma eleição presidencial, existem 3 candidatos. Os votos foram registrados em fichas, sendo que 
cada ficha contémum 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. 
12. Faça um programa que leia sempre dois números e imprima o quadrado do menor número. O programa 
deverá ser finalizado somente quando o usuário digitar o valor zero para os dois números. 
13. Faça um programa que solicite ao usuário 10 números e, depois da leitura, informe qual foi o maior valor 
informado. 
14. 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 
19 
 
 
15. 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, faça um programa 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. 
 
16. 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 ficará mais 
alta que João.7 
� Não use fórmulas prontas e sim o comando de repetição while para resolver o problema. 
 
6 Estrutura de Repetição (laço) - for 
No for, as instruções sã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:"); 
{ 
 int num, soma=0; 
 for (int cont=0; cont<20; cont++) 
 { 
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. 
20 
 
 
 soma = soma + num; 
 cont++; 
 } 
 imprima("Soma: " + soma); 
} 
 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); 
} 
 
Exercícios de fixação 
1. Faça um algoritmo que imprima todos os de 50 a 90, em ordem crescente. 
2. Faça um algoritmo que imprima os números de 20 a 200, em ordem decrescente, de dois em dois. 
3. Faça um algoritmo que calcule a soma dos termos da seguinte série: 
 10 20 30 40 50 60 ... 1000 
4. Faça um algoritmo que calcule a média dos termos da seguinte série: 
 10 15 20 25 30 ... 500 
5. Faça um algoritmo que calcule o produto dos 10 primeiros termos da seguinte série: 
 5 10 15 20 25 30 ... 
6. 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 
7. Faça um algoritmo que calcule a soma dos 20 primeiros números da série: 
 5 -10 15 -20 25 -30 ... 
8. Faça um algoritmo que calcule e apresente a soma dos 30 primeiro termos da série: 
 
 
9. Faça um algoritmo que calcule e apresente o valor de S, sendo que: 
 
 
10. Fazer um algoritmo que calcule o fatorial de 5. 
Exemplo: 5! = 5*4*3*2*1 
11. 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 
480 - 475 + 470 - 465 ... 
10 11 12 13 
S = 2 - 4 + 6 - 8 + ... 20 
 1 2 3 4 10 
21 
 
 
12. Faça 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. 
13. Escreva um algoritmo para gerar os primeiros n termos 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 
14. Escreva um algoritmo para gerar os primeiros n termos 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 
15. Faça 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 
16. Faça um algoritmo que calcule o valor de S, sendo que: 
S = 10! + 8! + 6! + ...+ 2! 
17. Faça 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,… 
 
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]; 
� Exemplo2: Declaração de um vetor letras de 6 elementos do tipo char. 
22 
 
 
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áriocolocar 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: Programa 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]; 
23 
 
 
 } 
 mediaGeral = somaMedia/5; 
 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: Programa 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("Entre com o número " + i); 
 } 
 for (int i=4; i>=0; i--) 
 { 
 imprima(“ “ + num[i]); 
 } 
} 
 
 Exercícios de fixação 
1. Faça um programa 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. Faça um programa 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. Faça um programa 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. Faça um programa que leia dados de um vetor A, com 10 elementos inteiros. Depois, calcule e imprima 
quantas vezes o primeiro elemento aparece no vetor. 
5. Faça um programa que leia 5 números inteiros diferentes (não repetidos) e guarde em um vetor, calcule e 
imprima: 
24 
 
 
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. 
6. Faça um programa 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 
 
7. Faça um programa 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. 
8. Faça um programa 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. 
9. Faça um programa 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. 
10. Faça um programa 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. 
11. Faça um programa 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: 
25 
 
 
- 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. 
12. Faça um programa 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]; 
 
 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 
A[0][1] = 15 
Indica que o elemento da linha 
0 e coluna 1 é 15. 
26 
 
 
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"); 
 } 
} 
 
���� 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]; 
27 
 
 
 } 
 } 
 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) Faça um programa 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) Faça um programa que leia os dados de uma matriz de inteiros 5x5 e crie um vetor preenchido com 
os elementos da diagonal principal dessa matriz. Imprima a matriz e o vetor resultante. 
 
3) Implementar um programa 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
 
4) 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 
 
0 100 5.00 
1 50 16.00 
2 30 20.00 
... ... 
49 50 3.00 
 0 1 
 Linhas Colunas 
Faça um programa que: 
28 
 
 
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. 
 
5) Faça um programa que leia uma matriz cujo conteúdo é a população dos 10 municípios mais 
populosos de cada um dos 27 estados brasileiros (i = estado, j = município) 
• 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 27 estados. 
• Imprima a média da população de cada estado. 
 
6) Faça um programa 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. 
 
7) Faça um programa 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. 
 
8) Faça um programa que leia uma matriz, de ordem 3x3. Depois, calcule e imprima o maior elemento 
e quantas vezes ele aparece nessa matriz. 
 
9) Faça um programa que leia uma matriz A, ordem 4x4, e imprima os seguintes dados: 
a. Produto dos elementos da diagonal principal. 
b. Soma dos elementos da diagonal secundária. 
Exemplo: Na tabela a seguir, os elementos em negrito fazem parte da diagonal principal e os 
elementos sublinhados fazem parte da diagonal secundária. 
 
 
 
 
 
29 
 
 
 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 
 
10) Faça um programa 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. 
 
11) Faça um programa que leia dois vetores A e B com 3 elementos inteiros cada. Construir uma matriz 
C (3x2), com a seguinte formação: a primeira coluna deverá ser formada pelos elementos do vetor A 
e a segunda coluna pelos elementos do vetor B. 
 
12) Elabore um programa 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