Você está na página 1de 83

1

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E


TECNOLOGIA DO RIO GRANDE DO NORTE
CAMPUS JOÃO CÂMARA

COMANDOS EM JAVA

Nickerson Fonseca Ferreira


nickerson.ferreira@ifrn.edu.br
Comandos em Java
2

 A partir de agora vamos traduzir todos os


comandos que aprendemos em Portugol para a
linguagem JAVA.
 Vamos iniciar com a declaração de variáveis.
PORTUGOL JAVA
nome: caractere String nome;
idade: inteiro int idade;
valor: real double valor;
bool: logico boolean bool;
Comandos em Java
3

PORTUGOL
Comandos em Java
4

JAVA
Comandos em Java
5

 Para atribuir valor a uma variável utilizamos o


símbolo =.
PORTUGOL JAVA
nome: caractere String nome;
idade: inteiro int idade;
valor: real double valor;
bool: logico boolean bool;

 String nome = “”;


 int idade = 0;
 double valor = 0.0;
Comandos em Java
6

JAVA
Comandos em Java
7

 Para ler algum dado de entrada em Portugol


utilizávamos o leia(variavel).

Scanner in = new Scanner(System.in);


leia(idade) int idade = in.nextInt();
Comandos em Java
8

JAVA
Comandos em Java
9

 Para escrever os dado de saída em Portugol


utilizávamos o escreval(variavel).

escreval(idade) System.out.println(idade);
Comandos em Java
10

escreval(“Teste”) System.out.println(“Teste”);

escreval(“Sua idade é: ”, idade)

System.out.println(“Sua idade é: ” + idade);


Vamos praticar!
11
Exercício
12

 Crie um algoritmo em Java que leia um número


inteiro, calcule seu dobro e mostre o resultado.

Scanner in = new Scanner(System.in);


leia(idade) int idade = in.nextInt();

escreval(idade) System.out.println(idade);
1

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E


TECNOLOGIA DO RIO GRANDE DO NORTE
CAMPUS JOÃO CÂMARA

COMANDO CONDICIONAL EM JAVA

Nickerson Fonseca Ferreira


nickerson.ferreira@ifrn.edu.br
Comando Condicional
2

PORTUGOL
Comando Condicional
3

JAVA
Vamos praticar!!
4

JAVA
Exercício
5

 Crie um algoritmo que leia a nota de um aluno e


mostre se ele está: aprovado (acima de 60), em
recuperação (abaixo de 60) ou reprovado por
média (abaixo de 20).
Java - Estruturas de Decisão,
Repetição e Arrays
Professor:
Vilson Heck Junior
vilson.junior@ifsc.edu.br
Agenda

• Estruturas de Decisão:
– if;
– Clausulas em Java;
– switch;
– Exercícios;
• Estruturas de Repetição:
– while;
– do ... while;
– for;
– Exercícios;
• Arrays:
– Unidimensionais;
– Bidimensionais;
– Exercícios.
Java

ESTRUTURAS DE DECISÃO
Estruturas de Decisão – if

VisuALG: Java:

se (<clausula>) entao if(<clausula>)


... {
senao //Opcional ...
... }
fimse else //Opcional
{
...
}
Verificação de Clausulas

Operadores Relacionais Java


Maior: >
Menor: <
Maior ou Igual: >=
Menor ou Igual: <=
Igual: ==
Diferente: !=
Não: (inversão) ! Atenção
E: &&
OU: ||
Estruturas de Decisão – Ex:
Scanner entrada = new Scanner(System.in);
int x;
System.out.print("Digite um valor: ");
x = Integer.parseInt(entrada.nextLine());
if ( x > 0) {
System.out.println("O número é positivo!");
} else {
System.out.println("O número é negativo ou neutro!");
}
Estruturas de Decisão – Ex:
Scanner entrada = new Scanner(System.in);
int x;
System.out.print("Digite um valor: ");
x = Integer.parseInt(entrada.nextLine());
if ( (x >= 1) && (x <= 10) ) {
System.out.println("Pertence ao intervalo 1..10!");
} else {
System.out.println("NÃO pertence ao intervalo 1..10!");
}
Estruturas de Decisão – switch
VisuALG:
x: inteiro Java:
x <- 10 int x = Integer.parseInt(entrada.nextLine());
escolha (x) switch(x)
caso 1: {
case 1:
escreva(“Um”)
System.out.println(“Um”);
caso 2:
break;
escreva(“Dois”) case 2:
outrocaso: System.out.println(“Dois”);
escreva(“Desconhecido”) break;
fimescolha default:
System.out.println(“Desconhecido”);
break;
}
Estruturas de Decisão

EXERCÍCIOS
Exercícios

1. Ler 3 números fracionários do teclado e


informar se o primeiro é maior do que a soma
dos dois últimos;
2. Calcular a multa: Leia a velocidade de um carro
e a velocidade máxima para a rua:
1. Informe 50 reais se estiver até 10km/h acima;
2. Informe 100 reais se estiver entre 11km/h e 30km/h
acima;
3. Informe 300 reais se estiver acima de 31km/h acima;
Exercícios

3. Ler 3 valores em qualquer ordem e escrever eles


em ordem crescente;
4. Escrever se um ano informado pelo usuário é
bissexto ou não. Um ano é bissexto quando é
(divisível por 400) ou é (divisível por 4 e não por
100);
5. Ler 2 valores fracionários e perguntar qual
operação aritmética o usuário quer fazer com
eles. Usar switch..case. Informar o resultado da
operação.
Java

ESTRUTURAS DE REPETIÇÃO
Estruturas de Repetição – while

VisuALG: Java:

enquanto (<clausula>) faca while(<clausula>)


... {
fimenquanto ...
}
Estruturas de Repetição – do

VisuALG: Java:

repita do
... {
ate (<clausula>) ...
} while (<clausula>);

Sentidos Opostos!
Estruturas de Repetição – for

VisuALG: Java:
x: inteiro int x;
para x de 1 ate 10 faca for( x=1; x <= 10; x++)
... {
fimpara ...
}
Interrompendo Repetições

• Para parar qualquer estrutura de repetição a


qualquer momento, usamos o comando:
break;
• Ex:
for(int x = 0; x <= 10; x++)
{
System.out.println(x);
if(x == 5)
{
break;
}
}
Forçando Próxima Iteração

• Para pular para a próxima iteração em qualquer estrutura de


repetição, a qualquer momento, usamos o comando:
continue;
• Ex:
for(int x = 0; x <= 10; x++)
{
System.out.println();
System.out.print(“Número: “);
if(x == 5)
{
continue;
}
System.out.print(x);
}
Estruturas de Repetição

EXERCÍCIOS
Exercícios

1. Informar todos os números de 1000 a 1999 que


quando divididos por 11 obtemos resto = 5.

2. Colocar estas duas linhas iniciais no método Main():


Random rnd = new Random(); //Inicia Aleatório
int x = rnd.nextInt(100); //Gera um número aleatório (0 – 99)
1. Faça um laço de repetição que solicite ao usuário digitar
um número;
2. O laço encerra quando o usuário acertar o número;
3. Se o número do usuário for menor que o oculto,
escrever: “MAIOR”, se o número do usuário for maior que
o oculto, escrever: “MENOR”.
Java

ARRAYS
Arrays Unidimensionais

VisuALG:
var
nome: vetor [n1..n2] de <tipodado>
inicio
nome[indice] <- valor
escreva(nome[indice])
fimalgoritmo

Java:
<tipodado>[ ] nome = new <tipodado>[tamanho];
nome[indice] = valor;
System.out.println(nome[indice]);
Arrays Unidimensionais
• Exemplo de criação e uso de Array:
int[]numeros = new int [5];
int valor = 0; valor = numeros[2];
numeros[3] = 5;
numeros[0] = 3;
numeros[1] = 4;
numeros[2] = 10;
numeros[4] = 1;
numeros: 3 4 10 5 1
valor 10
Índices: 0 1 2 3 4
Arrays Bidimensionais
• Definição: Arrays Bidimensionais – Matrizes!
– Imagens;
– Equações matemática, principalmente geometria;
– Tabelas;
– Entre outros exemplos.
Ano/ Cafezinhos Pães Biscoitos Bolos Cucas
Produto
2006 3650,00 63875,00 10950,00 36500,00 7665,00
Exemplo: 2007 3454,00 74345,00 12043,00 46342,00 9234,00
Relação de vendas
2008 3789,00 61023,00 11324,00 29345,00 8235,00
de uma padaria:
2009 4002,00 75432,00 14034,00 40123,00 8945,00
2010 3876,00 79345,00 9231,00 39423,00 7983,00
2011 3953,00 64567,00 10234,00 37345,00 6235,00
Arrays Bidimensionais

• Uso:
<tipodado>[ ][ ] nome = new <tipodado>[n][m];
nome[x][y] = valor;
System.out.println(nome[x][y]);

• Onde:
– n é o número de linhas;
– m é o número de colunas;
– x é o índice de uma linha;
– y é o índice de uma coluna.
Arrays Bidimensionais

• int[][] matriz = new int[5][4];


• matriz[0][0] = 4;
• matriz[4][3] = 5;
• matriz[3][1] = 2;
• matriz[1][2] = 7; Índices 0 1 2 3
0 4
1 7
2
3 2
4 5
Arrays

EXERCÍCIOS
Exercícios

• Lista de números:
1. Armazenar um array de 10 números inteiros:
• Solicitar ao usuário que informe cada um destes
números; ou
• Gerar 10 números aleatórios para o array:
– Random rnd = new Random(); //Inicia Aleatório [Fora do laço]
– array[indice]= rnd.nextInt(100); //Gera um número aleatório
2. Mostrar o array na sequência adquirida/gerada;
3. Colocar todo o array em ordem crescente;
4. Mostrar o array ordenado na tela.
1

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E


TECNOLOGIA DO RIO GRANDE DO NORTE
CAMPUS JOÃO CÂMARA

COMANDOS DE REPETIÇÃO

Nickerson Fonseca Ferreira


nickerson.ferreira@ifrn.edu.br
Introdução
2

E se eu
quisesse repetir
a frase 1000x
??
Antes de começar!
3

 Contadores: utilizados para realizar o controle dos


laços de repetição. Normalmente são
incrementados ou decrementados.
 cont = cont + 1
 Acumuladores: utilizados para realizar somatórios
e acumular o valor total. Normalmente recebe o
próprio valor incrementado de outros valores.
 soma = soma + cont
Comandos de repetição
4

 São utilizados quando é necessário repetir várias


vezes um determinado trecho de código.
 A quantidade de repetições pode ser fixa ou
depender de uma condição (expressão lógica).
 Os comandos de repetição também são conhecidos
como laços de repetição.
 Podem ser de três tipos:
 Repetição com testes no início;
 Repetição com testes no fim;

 Repetição com variável de controle.


Repetição com teste no início
5

 Esta estrutura repete uma sequência de comandos


enquanto uma determinada condição (expressão
lógica) for VERDADEIRA.
 A expressão lógica fica localizada no início da

estrutura do comando, ou seja, se o valor da


expressão for falsa, não executa o bloco NENHUMA
vez.

while (<expressão lógica>) {


<sequencia de comandos>
}
Repetição com teste no início
6

 Voltando ao algoritmo do papagaio...


 Como faríamos para escrever a frase 1000x ??
Repetição com teste no início
7
Repetição com teste no fim
8

do {
<sequencia de comandos>
} while <expressão lógica>;

 do: indica o início do laço de repetição.


 while <expressão lógica>: indica o fim da
sequência de comandos a serem repetidos.
 Como a condição é apenas no fim da estrutura, a
sequência de comandos é executada pelo menos
uma vez.
Repetição com teste no fim
9

do {
<sequencia de comandos>
while <expressão lógica>;

 A cada momento que a execução do programa


chega no comando while <expressão lógica>, a
expressão lógica é avaliada.
 Se ela for VERDADEIRA, a execução retorna para o
início do bloco;
 Caso contrário, a execução continua com o primeiro
comando após o bloco.
Repetição com teste no fim
10

 Crie um algoritmo que escreva os números de


1 a 5.
Comparação
11

 while;
 Testeno Início;
 A sequência de comandos é repetida zero ou mais
vezes;
 do… while;
 Testeno Fim;
 A sequência de comandos é repetida 1 ou mais vezes;
Repetição com variável de controle
12

 O número de repetições é conhecido.


 Uma variável de controle é utilizada para realizar
as repetições.
 Fixamos os valores iniciais, finais e o passo
(incremento) dessa variável.
 Estrutura “for”
for (<variável>; <limite>; <incremento>){

<sequencia de comandos>

}
Repetição com variável de controle
13

<variável> É um contador (do tipo inteiro) que


Ex: int cont = 0; controla o número de repetições do
laço. E também determina o valor
inicial.
<limite> Determina o valor máximo da variável.
Ex: cont < 100;
passo <incremento> É opcional. Determina o incremento
Ex: cont++; que será acrescentado à variável de
controle. Quando omitida, o valor é 1.
Repetição com variável de controle
14

 Quando o programa alcança este ponto, é


acrescentado a variável o valor <incremento>
e comparado a <limite>. Se a variável for
menor ou igual, a sequência de comandos será
executada mais uma vez. Caso contrário,
prossegue-se para o primeiro comando após o
fechamento do bloco for (}).
Repetição com variável de controle
15

 Crie um algoritmo para escrever os número de 1 a


5.
Exercício
16

 Crie um algoritmo que leia um número e escreva a


sequência de zero até o número.
 Crie um algoritmo que leia um número e escreva a
sequência decrescente até o zero.
 Crie um algoritmo que recebe 2 números e
multiplica o num1 pelo num2 através de somas
repetidas. (ex: 2 e 3 = 2 + 2 + 2).
1

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E


TECNOLOGIA DO RIO GRANDE DO NORTE
CAMPUS JOÃO CÂMARA

EXERCÍCIOS

Nickerson Fonseca Ferreira


nickerson.ferreira@ifrn.edu.br
EXERCÍCIO Nº 1
2

 Implemente um algoritmo que leia um número e


uma opção de listagem. Com base nessa opção,
escreva a sequência dos números em ordem
crescente (de zero até o número) ou decrescente
(do número até zero).

 1 – CRESCENTE
 2 - DECRESCENTE
EXERCÍCIO Nº 2
3

 Implemente um algoritmo que leia um número e


realize a soma dos números entre zero e o número
lido.

 OBS:: utilize um acumulador para a soma e o


contador para a quantidade de repetições do
comando.
EXERCÍCIO Nº 3
4

 Crie um algoritmo que recebe 2 números e


multiplica o num1 pelo num2 através de somas
repetidas. (ex: 2 e 3 = 2 + 2 + 2).
Exercícios sobre estruturas de repetição

UTFPR – Curitiba – prof. Leonelo Almeida – IF61A/IF71A Computação 1

Atenção: apesar de ser possível resolver os problemas com qualquer estrutura de repetição,
sempre procure identificar a que melhor se adequa à solução do problema.

Simples

1. Crie um algoritmo que, dado um número informado pelo usuário, imprima a tabuada
dele de 1 a 10. Use o formato de apresentação (considerando que o usuário informou
o número 5):
5 x 1 = 5
5 x 2 = 10
...

2. Modifique o algoritmo anterior, de maneira que o usuário também informe o início e o


fim da tabuada. Por exemplo: usuário solicitando a tabuada do número 6, com início
em 5 e fim em 8.
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48

3. Modifique o algoritmo do exercício 1, de maneira que sejam impressos somente as


multiplicações da tabuada cujo resultado seja um número par.

4. Agora modifique o exercício anterior, considerando agora somente os resultados que


forem ímpares.

5. Construa um algoritmo que, dado o primeiro elemento e a razão de uma progressão


aritmética (PA), imprima todos os n primeiros elementos da PA, onde n também é
informado pelo usuário. Lembre-se que uma PA pode ser crescente ou decrescente.

6. Agora faça outro algoritmo semelhante ao anterior, só que agora considerando


progressões geométricas.

7. Faça um algoritmo que leia tantos números quanto o usuário desejar e imprima a
soma deles.

8. Faça um algoritmo que permita ao usuário informar a idade de quantas pessoas ele
desejar. Após isso o algoritmo deve informar a soma das pessoas maiores de idade e a
média de idade das pessoas maiores de idade informadas.

9. Agora altere o algoritmo anterior, de maneira que ele imprima o percentual de


pessoas considerando as faixas de idade: 0-17 anos, 18 a 35 anos, 35 a 50 anos, 50 a 65
anos e maiores de 65 anos. Lembrete: a soma dos percentuais das faixas deve totalizar
100%.
Intermediários

10. A sequência de Fibonacci tem papel importante na explicação de fenômenos naturais.


Ela é também bastante utilizada para fins estéticos, pela sua reconhecida harmonia.
Exemplo disso foi sua utilização na construção do Partenon, em Atenas. A sequência
dá-se inicialmente por dois números 1. A partir do terceiro elemento usa-se a
expressão: elementon = elementon-1 + elementon-2. Exemplo de sequência: 1, 1, 2, 3, 5,
8. Construa um algoritmo que imprima na tela os n primeiros elementos da sequência
de Fibonacci, onde n é informado pelo usuário.

11. Modifique o algoritmo do exercício 2 do nível Simples, de maneira que o fim da


tabuada possa ser menor que o início. Neste caso, a tabuada deve ser decrescente,
nos demais deve imprimir a tabuada de maneira crescente. Por exemplo, usuário
informando a tabuada do número 4, com início em 6 e fim em 3.
4 x 6 = 24
4 x 5 = 20
4 x 4 = 16
4 x 3 = 12

12. Faça um algoritmo que, dada uma sequência de 9 valores, diga se ela representa uma
progressão aritmética.

13. Construa uma calculadora que permita realiza somas, subtrações, multiplicações e
divisões. Considere que o usuário pode acumular resultados, como em uma
calculadora normal.

14. Crie um algoritmo que permita que um usuário informe ATÉ 10 números reais
positivos. Após isso, o algoritmo deve informar a média e o desvio padrão amostral
dos valores informados.

15. Um circo deseja saber qual o preço ideal dos ingressos, de acordo com a cidade que
visitam. Para tanto, eles descobriram que em média 120 pessoas comparecem em
cada sessão, quando o preço do ingresso é R$ 5,00. A partir disso, a cada redução de
R$ 0,50 há um aumento de público, que difere em cada cidade. Cada sessão tem um
custo de R$ 200,00 ao circo. Faça um programa que, dado o número adicional de
pessoas a cada redução de R$ 0,50 no preço do ingresso, imprima a tabela de lucro de
cada sessão. Considere a variação de preço entre R$ 5,00 e R$ 1,00. Informe também
ao usuário, qual é o valor de ingresso que gera o maior lucro. Dica: para testar o
algoritmo, considere taxas de aumento de 26 e 30 pessoas.

Avançados

16. Construa um algoritmo para o jogo da velha. Esse jogo consiste em um tabuleiro de
dimensão 3x3 de valores O ou X. Os usuários devem informar a linha e a coluna que
desejam preencher. A partir da terceira jogada de cada jogador é necessário verificar
se houve algum ganhador. Também é possível que o resultado do jogo seja empate
(nenhum jogador preencheu uma coluna, uma linha ou uma diagonal).

17. A delegacia de polícia da pequena cidade de Springfield conta com somente 3 políciais:
o chefe de polícia Clancy, e os policiais Eddie e Lou. Como é de se esperar, esse
pequeno contingente de policiais não consegue atender imediatamente a todos os
chamados policiais. Portanto, você foi contratado para criar um sistema de
atendimento, de maneira que cada um dos policiais fique com um conjunto
equilibrado de chamados. Considere os requisitos:
 Cada ocorrência deve ser de um tipo: Direção Perigosa, Barulho, Bebedeira,
Homer;
 Cada ocorrência deve ser de um nível de gravidade: Baixo, Médio, Alto;
 Toda ocorrência do tipo Homer tem nível de gravidade alto;
 Novas ocorrências devem ser atribuídas ao policial com menos ocorrências;
 Ocorrências do tipo Homer sempre são atribuídas ao chefe de polícia;
 A cada registro de ocorrência o sistema deve imprimir um resumo da quantidade
de ocorrências de cada policial, o número de ocorrências do tipo Homer e o
percentual de ocorrências do tipo “Direção Perigosa” em relação do total de
ocorrências cadastradas.

18. Faça um programa que desenhe na tela losangos ou triângulos utilizando somente o
caractere “%” (veja exemplos abaixo). O usuário é quem escolhe o que deve ser
impresso. O usuário também deve ter a opção de escolher o tamanho (em linhas) da
figura a ser desenhada.

%
%%%%%
%%%%%%%%%
%%%%%%%%%%%%%
%%%%%%%%%
%%%%%
%

%
%%%
%%%%%
%%%%%%%
%%%%%%%%%
Exercícios – Recursividade

1. Implemente um método recursivo que receba como entrada um número inteiro


positivo N e retorne o seguinte cálculo:

1 + 2 + 3 + 4 + ... + N.

2. Implemente um método recursivo que receba como entrada um número inteiro


positivo N e retorne o seguinte cálculo:

3. Implemente um método recursivo que receba como entrada dois números inteiros x e
k e retorne o valor da operação xk. Não utilize o método Math.pow() do Java. Utilize
apenas multiplicação.

4. Os números Tribonacci são definidos pela seguinte recursão

Implemente um método recursivo que receba por parâmetro um número inteiro positivo
N e mostre e retorne o N-ésimo número da sequência de Tribonacci.

5. Os números de Pell são definidos pela seguinte recursão

Exemplo de números desta sequência são: 0, 1, 2, 5, 12, 29, 70, 169, 408, 985...
Implemente um método recursivo que receba como entrada um número N e retorne o N-
ésimo número de Pell.
LISTA DE EXERCÍCIOS – JAVA BÁSICO

1. Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e
mostre-a expressa em dias. Leve em consideração o ano com 365 dias e o mês com 30.
(Ex: 3 anos, 2 meses e 15 dias = 1170 dias.)

2. Fazer um programa que imprima a média aritmética dos números 8,9 e 7. A média dos
números 4, 5 e 6. A soma das duas médias. A média das médias.

3. Informar um saldo e imprimir o saldo com reajuste de 1%.

4. Escrever um algoritmo que lê:

- a porcentagem do IPI a ser acrescido no valor das peças


- o código da peça 1, valor unitário da peça 1, quantidade de peças 1
- o código da peça 2, valor unitário da peça 2, quantidade de peças 2

O algoritmo deve calcular o valor total a ser pago e apresentar o resultado.

Fórmula : (valor1*quant1 + valor2*quant2)*(IPI/100 + 1)

5. Crie um algoritmo que leia o valor do salário mínimo e o valor do salário de um usuário,
calcule a quantidade de salários mínimos esse usuário ganha e imprima o resultado.
(1SM=R$788,00)

6. Desenvolva um algoritmo em Java que leia um número inteiro e imprima o seu


antecessor e seu sucessor.
Universidade Federal de Uberlândia - UFU
Faculdade de Computação - FACOM
Lista de exercı́cios de programação em linguagem Python

Exercı́cios: comandos condicionais


1. Faça um programa que receba dois números e mostre qual deles é o maior.
2. Leia um número fornecido pelo usuário. Se esse número for positivo, calcule a raiz
quadrada do número. Se o número for negativo, mostre uma mensagem dizendo que o
número é inválido.
3. Leia um numero real. Se o número for positivo imprima a raiz quadrada. Do contrário,
imprima o numero ao quadrado.
4. Faça um programa que leia um número e, caso ele seja positivo, calcule e mostre:
• O número digitado ao quadrado
• A raiz quadrada do número digitado
5. Faça um programa que receba um número inteiro e verifique se este número é par ou
ı́mpar.
6. Escreva um programa que, dados dois números inteiros, mostre na tela o maior deles,
assim como a diferença existente entre ambos.
7. Faça um programa que receba dois números e mostre o maior. Se por acaso, os dois
números forem iguais, imprima a mensagem Números iguais.
8. Faça um programa que leia 2 notas de um aluno, verifique se as notas são válidas e
exiba na tela a média destas notas. Uma nota válida deve ser, obrigatoriamente, um
valor entre 0.0 e 10.0, onde caso a nota não possua um valor válido, este fato deve ser
informado ao usuário e o programa termina.
9. Leia o salário de um trabalhador e o valor da prestação de um empréstimo. Se a
prestação for maior que 20% do salário imprima: Empréstimo n~
ao concedido, caso
contrário imprima: Empréstimo concedido.
10. Faça um programa que receba a altura e o sexo de uma pessoa e calcule e mostre seu
peso ideal, utilizando as seguintes fórmulas (onde h corresponde à altura):
• Homens: (72.7 ∗ h) − 58
• Mulheres: (62, 1 ∗ h) − 44, 7
11. Escreva um programa que leia um número inteiro maior do que zero e devolva, na tela, a
soma de todos os seus algarismos. Por exemplo, ao número 251 corresponderá o valor
8 (2 + 5 + 1). Se o número lido não for maior do que zero, o programa terminará com a
mensagem “Número inválido”.
12. Ler um número inteiro. Se o número lido for negativo, escreva a mensagem “Número
inválido”. Se o número for positivo, calcular o logaritmo deste numero.
13. Faça um algoritmo que calcule a média ponderada das notas de 3 provas. A primeira e
a segunda prova têm peso 1 e a terceira tem peso 2. Ao final, mostrar a média do aluno
e indicar se o aluno foi aprovado ou reprovado. A nota para aprovação deve ser igual ou
superior a 60 pontos.

1
14. A nota final de um estudante é calculada a partir de três notas atribuı́das entre o intervalo
de 0 até 10, respectivamente, a um trabalho de laboratório, a uma avaliação semestral
e a um exame final. A média das três notas mencionadas anteriormente obedece aos
pesos: Trabalho de Laboratório: 2; Avaliação Semestral: 3; Exame Final: 5. De acordo
com o resultado, mostre na tela se o aluno está reprovado (média entre 0 e 2,9), de
recuperação (entre 3 e 4,9) ou se foi aprovado. Faça todas as verificações necessárias.

15. Escreva um programa que leia um inteiro entre 1 e 7 e imprima o dia da semana corres-
pondente a este numero. Isto é, domingo se 1, segunda-feira se 2, e assim por diante.

16. Escreva um programa que leia um inteiro entre 1 e 12 e imprima o mês correspondente
a este numero. Isto é, janeiro se 1, fevereiro se 2, e assim por diante.

17. Faça um programa que calcule e mostre a área de um trapézio. Sabe-se que:

(basemaior + basemenor) ∗ altura


A=
2
Lembre-se a base maior e a base menor devem ser números maiores que zero.

18. Faça um programa que mostre ao usuário um menu com 4 opções de operações ma-
temáticas (as básicas, por exemplo). O usuário escolhe uma das opções e o seu pro-
grama então pede dois valores numéricos e realiza a operação, mostrando o resultado e
saindo.

19. Faça um programa para verificar se um determinado número inteiro e divisı́vel por 3 ou
5, mas não simultaneamente pelos dois.

20. Dados três valores, A, B, C, verificar se eles podem ser valores dos lados de um triângulo
e, se forem, se é um triângulo escaleno, equilátero ou isóscele, considerando os seguin-
tes conceitos:

• O comprimento de cada lado de um triângulo é menor do que a soma dos outros


dois lados.
• Chama-se equilátero o triângulo que tem três lados iguais.
• Denominam-se isósceles o triângulo que tem o comprimento de dois lados iguais.
• Recebe o nome de escaleno o triângulo que tem os três lados diferentes.

21. Escreva o menu de opções abaixo. Leia a opção do usuário e execute a operação esco-
lhida. Escreva uma mensagem de erro se a opção for inválida.

Escolha a opç~
ao:
1- Soma de 2 números.
2- Diferença entre 2 números (maior pelo menor).
3- Produto entre 2 números.
4- Divis~
ao entre 2 números (o denominador n~ao pode ser zero).
Opç~
ao

22. Leia a idade e o tempo de serviço de um trabalhador e escreva se ele pode ou não se
aposentar. As condições para aposentadoria são

• Ter pelo menos 65 anos,


• Ou ter trabalhado pelo menos 30 anos,
• Ou ter pelo menos 60 anos e trabalhado pelo menos 25 anos.

2
23. Determine se um determinado ano lido é bissexto. Sendo que um ano é bissexto se
for divisı́vel por 400 ou se for divisı́vel por 4 e não for divisı́vel por 100. Por exemplo:
1988, 1992, 1996

24. Uma empresa vende o mesmo produto para quatro diferentes estados. Cada estado
possui uma taxa diferente de imposto sobre o produto (MG 7%; SP 12%; RJ 15%; MS
8%). Faça um programa em que o usuário entre com o valor e o estado destino do
produto e o programa retorne o preço final do produto acrescido do imposto do estado
em que ele será vendido. Se o estado digitado não for válido, mostrar uma mensagem
de erro.

25. Calcule as raı́zes da equação de 2o grau.

Lembrando que:

−b ± ∆
x=
2a
Onde

∆ = B 2 − 4ac

E ax2 + bx + c = 0 representa uma equação de 2o grau.

A variável a tem que ser diferente de zero. Caso seja igual, imprima a mensagem “Não
é equação de segundo grau”.

• Se ∆ < 0, não existe real. Imprima a mensagem N~


ao existe raiz.
• Se ∆ = 0, existe uma raiz real. Imprima a raiz e a mensagem Raiz única.
• Se ∆ ≥ 0, imprima as duas raı́zes reais.

26. Leia a distância em Km e a quantidade de litros de gasolina consumidos por um carro


em um percurso, calcule o consumo em Km/l e escreva uma mensagem de acordo com
a tabela abaixo:

CONSUMO (Km/l) MENSAGEM


menor que 8 Venda o carro!
entre 8 e 14 Econômico!
maior que 12 Super econômico!

27. Escreva um programa que, dada a idade de um nadador, classifique-o em uma das
seguintes categorias:

Categoria Idade
Infantil A 5a7
Infantil B 8 a 10
Juvenil A 11 a 13
Juvenil B 14 a 17
Sênior maiores de 18 anos

28. Faça um programa que leia três números inteiros positivos e efetue o cálculo de uma das
seguintes médias de acordo com um valor numérico digitado pelo usuário:

3

(a) Geométrica: 3 x∗y∗z
x+2∗y+3∗z
(b) Ponderada: 6
1
(c) Harmônica: 1
+ y + z1
1
x
x+y+z
(d) Aritmética: 3

29. Faça uma prova de matemática para crianças que estão aprendendo a somar números
inteiros menores do que 100. Escolha números aleatórios entre 1 e 100, e mostre na
tela a pergunta: qual é a soma de a + b, onde a e b são os números aleatórios. Peça a
resposta. Faça cinco perguntas ao aluno, e mostre para ele as perguntas e as respostas
corretas, além de quantas vezes o aluno acertou.

30. Faça um programa que receba três números e mostre-os em ordem crescente.

31. Faça um programa que receba a altura e o peso de uma pessoa. De acordo com a tabela
a seguir, verifique e mostra qual a classificação dessa pessoa.

Altura Peso
Até 60 Entre 60 e 90 (Inclusive) Acima de 90
Menor que 1,20 A D G
De 1,20 a 1,70 B E H
Maior que 1,70 C F I

32. Escrever um programa que leia o código do produto escolhido do cardápio de uma lan-
chonete e a quantidade. O programa deve calcular o valor a ser pago por aquele lanche.
Considere que a cada execução somente será calculado um pedido. O cardápio da lan-
chonete segue o padrão abaixo:

Especificação Código Preço


Cachorro Quente 100 1.20
Bauru Simples 101 1.30
Bauru com Ovo 102 1.50
Hamburguer 103 1.20
Cheeseburguer 104 1.70
Suco 105 2.20
Refrigerante 106 1.00

33. Um produto vai sofrer aumento de acordo com a tabela abaixo. Leia o preço antigo,
calcule e escreva o preço novo, e escreva uma mensagem em função do preço novo (de
acordo com a segunda tabela).

PREÇO ANTIGO PERCENTUAL DE AUMENTO


até R$ 50 5%
entre R$ 50 e R$ 100 10%
acima de R$ 100 15%

34. Leia a nota e o número de faltas de um aluno, e escreva seu conceito. De acordo com a
tabela abaixo, quando o aluno tem mais de 20 faltas ocorre uma redução de conceito.

4
PREÇO NOVO MENSAGEM
até R$ 80 Barato
entre R$ 80 e R$ 120 (inclusive) Normal
entre R$ 120 e R$ 200 (inclusive) Caro
acima de R$ 200 Muito caro

NOTA CONCEITO (ATÉ 20 FALTAS) CONCEITO (MAIS DE 20 FALTAS)


9.0 até 10.0 A B
7.5 até 8.9 B C
5.0 até 7.4 C D
4.0 até 4.9 D E
0.0 até 3.9 E E

35. Leia uma data e determine se ela é válida. Ou seja, verifique se o mês está entre 1 e 12,
e se o dia existe naquele mês. Note que Fevereiro tem 29 dias em anos bissextos, e 28
dias em anos não bissextos.
36. Escreva um programa que, dado o valor da venda, imprima a comissão que deverá ser
paga ao vendedor. Para calcular a comissão, considere a tabela abaixo:

Venda mensal Comissão


Maior ou igual a R$100.000,00 R$700,00 + 16% das vendas
Menor que R$100.000,00 e maior ou igual a R$80.000,00 R$650,00 +14% das vendas
Menor que R$80.000,00 e maior ou igual a R$60.000,00 R$600,00 +14% das vendas
Menor que R$60.000,00 e maior ou igual a R$40.000,00 R$550,00 +14% das vendas
Menor que R$40.000,00 e maior ou igual a R$20.000,00 R$500,00 +14% das vendas
Menor que R$20.000,00 R$400,00 +14% das vendas

37. As tarifas de certo parque de estacionamento são as seguintes:


• 1a e 2a hora - R$ 1,00 cada
• 3a e 4a hora - R$ 1,40 cada
• 5a hora e seguintes - R$ 2,00 cada
O número de horas a pagar é sempre inteiro e arredondado por excesso. Deste modo,
quem estacionar durante 61 minutos pagará por duas horas, que é o mesmo que pagaria
se tivesse permanecido 120 minutos. Os momentos de chegada ao parque e partida
deste são apresentados na forma de pares de inteiros, representando horas e minutos.
Por exemplo, o par 12 50 representará “dez para a uma da tarde”. Pretende-se criar um
programa que, lidos pelo teclado os momentos de chegada e de partida, escreva na tela
o preço cobrado pelo estacionamento. Admite-se que a chegada e a partida se dão com
intervalo não superior a 24 horas. Portanto, se uma dada hora de chegada for superior
à da partida, isso não é uma situação de erro, antes significará que a partida ocorreu no
dia seguinte ao da chegada.
38. Leia uma data de nascimento de uma pessoa fornecida através de três números inteiros:
Dia, Mês e Ano. Teste a validade desta data para saber se esta é uma data válida. Teste
se o dia fornecido é um dia válido: dia > 0, dia ≤ 28 para o mês de fevereiro (29 se o
ano for bissexto), dia ≤ 30 em abril, junho, setembro e novembro, dia ≤ 31 nos outros
meses. Teste a validade do mês: mês > 0 e mês < 13. Teste a validade do ano: ano ≤
ano atual (use uma constante definida com o valor igual a 2008). Imprimir: “data válida”
ou “data inválida” no final da execução do programa.

5
39. Uma empresa decide dar um aumento aos seus funcionários de acordo com uma tabela
que considera o salário atual e o tempo de serviço de cada funcionário. Os funcionários
com menor salário terão um aumento proporcionalmente maior do que os funcionários
com um salário maior, e conforme o tempo de serviço na empresa, cada funcionário irá
receber um bônus adicional de salário. Faça um programa que leia:

• o valor do salário atual do funcionário;


• o tempo de serviço desse funcionário na empresa (número de anos de trabalho na
empresa).

Use as tabelas abaixo para calcular o salário reajustado deste funcionário e imprima o
valor do salário final reajustado, ou uma mensagem caso o funcionário não tenha direito
a nenhum aumento.

Salário Atual Reajuste(%) Tempo de Serviço Bônus


Até 500,00 25% Abaixo de 1 ano Sem bônus
Até 1000,00 20% De 1 a 3 anos 100,00
Até 1500,00 15% De 4 a 6 anos 200,00
Até 2000,00 10% De 7 a 10 anos 300,00
Acima de 2000,00 Sem reajuste Mais de 10 anos 500,00

40. O custo ao consumidor de um carro novo é a soma do custo de fábrica, da comissão


do distribuidor, e dos impostos. A comissão e os impostos são calculados sobre o custo
de fábrica, de acordo com a tabela abaixo. Leia o custo de fábrica e escreva o custo ao
consumidor.

CUSTO DE FÁBRICA % DO DISTRIBUIDOR % DOS IMPOSTOS


até R$12.000,00 5 isento
entre R$12.000,00 e 25.000,00 10 15
acima de R$25.000,00 15 20

41. Faça um algoritmo que calcule o IM C de uma pessoa e mostre sua classificação de
acordo com a tabela abaixo:

IMC Classificação
< 18,5 Abaixo do Peso
18,6 - 24,9 Saudável
25,0 - 29,9 Peso em excesso
30,0 - 34,9 Obesidade Grau I
35,0 - 39,9 Obesidade Grau II(severa)
≥ 40,0 Obesidade Grau III(mórbida)

6
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CENTRO TECNOLÓGICO
Departamento de Informática e de Estatística

Exercícios – Lista 6 (Arrays unidimensionais – Exercícios Iniciais)


Disciplina: INE5603 (20072) - Programação Orientada a Objetos I Turma: 0138D
Professora: Carla Merkle Westphall

1. Escreva um main Java que preenche um array de tamanho 10 com números lidos pelo teclado.
2. Escreva um main Java que solicita 8 inteiros ao usuário e guarda esses valores em um array. Depois o
programa deve descobrir e exibir qual a posição do elemento de maior valor.
3. Escreva um main Java que solicita 5 valores ao usuário, armazena esses valores em um array chamado
vet1 de inteiros. Depois, copia o conteúdo desse array para um segundo array chamado vet1. O
programa deve imprimir os dois arrays na tela.
4. Modifique o exercício 3 de forma que o conteúdo de vet1 seja copiado para vet2 de forma invertida.
Veja o exemplo:

Vetor Original Vetor Invertido

1 5 0 4 9 9 4 0 5 1

Detalhe: o programa deve ser genérico de forma que independente do tamanho do vetor, a inversão será
realizada corretamente.
5. Escrever um main Java que lê 20 números reais e armazena esses valores em um array. O programa
deve calcular a média aritmética dos valores do vetor e imprimir todos os valores menores do que a
média calculada.
6. Crie uma classe denominada OperaComArray, que tenha como atributo um array de inteiros que deve
ser iniciado no construtor da classe – o tamanho do array deve ser recebido como parâmetro e os valores
do array devem ser gerados aleatoriamente dentro do construtor. Crie e teste métodos para:
a. retornar a soma dos elementos do array
b. retornar a média dos valores do array
c. retornar o último elemento do array
d. retornar o maior elemento do array
e. verificar se um número “x” passado como parâmetro existe no array. O método deve retornar
true ou false.
7. Escreva uma classe Profe que tem dois arrays como atributo da classe. O primeiro array armazena
os nomes dos professores. O segundo array armazena o tempo de profissão de cada um dos professores.
Implemente o construtor que preenche os arrays com valores lidos pelo teclado. O construtor recebe o
tamanho dos arrays no seu parâmetro. Escreva também um único método para mostrar os valores dos
arrays. Faça uma classe de teste (main Java) para invocar os métodos implementados.
8. Defina uma classe ArrayExemplo cujo único atributo seja um array de unidimensional de
números inteiros denominado arrayInt. Escreva dois métodos construtores para esta classe. O
primeiro deve receber como parâmetro a dimensão de array e deve gerar seus valores aleatoriamente
(entre 0 e 49). O segundo construtor não deve receber parâmetros, mas deve gerar internamente um
número aleatório (entre 10 e 20 = (int)(Math.random( )*11 +10)) e esta deve ser a dimensão do array e,
em seguida, os valores para este array devem ser lidos de teclado. Esses arrays devem ser impressos
através de um único método, externo aos construtores.

-1-
Universidade Federal de Uberlândia - UFU
Faculdade de Computação - FACOM
Lista de exercı́cios de programação em linguagem C

Exercı́cios: Vetores e Matrizes

1 Vetores

1. Faça um programa que possua um vetor denominado A que armazene 6 números intei-
ros. O programa deve executar os seguintes passos:

(a) Atribua os seguintes valores a esse vetor: 1, 0, 5, -2, -5, 7.


(b) Armazene em uma variável inteira (simples) a soma entre os valores das posições
A[0], A[1] e A[5] do vetor e mostre na tela esta soma.
(c) Modifique o vetor na posição 4, atribuindo a esta posição o valor 100.
(d) Mostre na tela cada valor do vetor A, um em cada linha.

2. Crie um programa que lê 6 valores inteiros e, em seguida, mostre na tela os valores lidos.

3. Ler um conjunto de números reais, armazenando-o em vetor e calcular o quadrado das


componentes deste vetor, armazenando o resultado em outro vetor. Os conjuntos têm
10 elementos cada. Imprimir todos os conjuntos.

4. Faça um programa que leia um vetor de 8 posições e, em seguida, leia também dois va-
lores X e Y quaisquer correspondentes a duas posições no vetor. Ao final seu programa
deverá escrever a soma dos valores encontrados nas respectivas posições X e Y .

5. Leia um vetor de 10 posições. Contar e escrever quantos valores pares ele possui.

6. Faça um programa que receba do usuário um vetor com 10 posições. Em seguida deverá
ser impresso o maior e o menor elemento do vetor.

7. Escreva um programa que leia 10 números inteiros e os armazene em um vetor. Imprima


o vetor, o maior elemento e a posição que ele se encontra.

8. Crie um programa que lê 6 valores inteiros e, em seguida, mostre na tela os valores lidos
na ordem inversa.

9. Crie um programa que lê 6 valores inteiros pares e, em seguida, mostre na tela os valores
lidos na ordem inversa.

10. Faça um programa para ler a nota da prova de 15 alunos e armazene num vetor, calcule
e imprima a média geral.

11. Faça um programa que preencha um vetor com 10 números reais, calcule e mostre a
quantidade de números negativos e a soma dos números positivos desse vetor.

12. Fazer um programa para ler 5 valores e, em seguida, mostrar todos os valores lidos
juntamente com o maior, o menor e a média dos valores.

13. Fazer um programa para ler 5 valores e, em seguida, mostrar a posição onde se encon-
tram o maior e o menor valor.

1
14. Faça um programa que leia um vetor de 10 posições e verifique se existem valores iguais
e os escreva na tela.
15. Leia um vetor com 20 números inteiros. Escreva os elementos do vetor eliminando ele-
mentos repetidos.
16. Faça um programa que leia um vetor de 5 posições para números reais e, depois, um
código inteiro. Se o código for zero, finalize o programa; se for 1, mostre o vetor na ordem
direta; se for 2, mostre o vetor na ordem inversa. Caso, o código for diferente de 1 e 2
escreva uma mensagem informando que o código é inválido.
17. Leia um vetor de 10 posições e atribua valor 0 para todos os elementos que possuı́rem
valores negativos.
18. Faça um programa que leia um vetor de 10 números. Leia um número x. Conte os
múltiplos de um número inteiro x num vetor e mostre-os na tela.
19. Faça um vetor de tamanho 50 preenchido com o seguinte valor: (i + 5 ∗ i)%(i + 1), sendo
i a posição do elemento no vetor. Em seguida imprima o vetor na tela.
20. Escreva um programa que leia números inteiros no intervalo [0,50] e os armazene em um
vetor com 10 posições. Preencha um segundo vetor apenas com os números ı́mpares
do primeiro vetor. Imprima os dois vetores, 2 elementos por linha.
21. Faça um programa que receba do usuário dois vetores, A e B, com 10 números inteiros
cada. Crie um novo vetor denominado C calculando C = A - B. Mostre na tela os dados
do vetor C.
22. Faça um programa que leia dois vetores de 10 posições e calcule outro vetor contendo,
nas posições pares os valores do primeiro e nas posições impares os valores do se-
gundo.
23. Ler dois conjuntos de números reais, armazenando-os em vetores e calcular o produto
escalar entre eles. Os conjuntos têm 5 elementos cada. Imprimir os dois conjuntos e o
produto escalar, sendo que o produto escalar é dado por: x1 ∗ y1 + x2 ∗ y2 + ... + xn ∗ yn .
24. Faça um programa que leia dez conjuntos de dois valores, o primeiro representando o
número do aluno e o segundo representando a sua altura em metros. Encontre o aluno
mais baixo e o mais alto. Mostre o número do aluno mais baixo e do mais alto, juntamente
com suas alturas.
25. Faça um programa que preencha um vetor de tamanho 100 com os 100 primeiros natu-
rais que não são múltiplos de 7 ou que terminam com 7.
26. Faça um programa que calcule o desvio padrão de um vetor v contendo n = 10 números,
onde m é a media do vetor.
v
u n
u 1 X
Desvio Padr~ao = t (v[i] − m)2
n−1
i=1

27. Leia 10 números inteiros e armazene em um vetor. Em seguida escreva os elementos


que são primos e suas respectivas posições no vetor.
28. Leia 10 números inteiros e armazene em um vetor v. Crie dois novos vetores v1 e v2.
Copie os valores ı́mpares de v para v1, e os valores pares de v para v2. Note que cada
um dos vetores v1 e v2 têm no máximo 10 elementos, mas nem todos os elementos são
utilizados. No final escreva os elementos UTILIZADOS de v1 e v2.

2
29. Faça um programa que receba 6 números inteiros e mostre:

• Os números pares digitados;


• A soma dos números pares digitados;
• Os números ı́mpares digitados;
• A quantidade de números ı́mpares digitados;

30. Faça um programa que leia dois vetores de 10 elementos. Crie um vetor que seja a
intersecção entre os 2 vetores anteriores, ou seja, que contém apenas os números que
estão em ambos os vetores. Não deve conter números repetidos.

31. Faça um programa que leia dois vetores de 10 elementos. Crie um vetor que seja a união
entre os 2 vetores anteriores, ou seja, que contém os números dos dois vetores. Não
deve conter números repetidos.

32. Leia dois vetores de inteiros x e y, cada um com 5 elementos (assuma que o usuário não
informa elementos repetidos). Calcule e mostre os vetores resultantes em cada caso
abaixo:

• Soma entre x e y: soma de cada elemento de x com o elemento da mesma posição


em y.
• Produto entre x e y: multiplicação de cada elemento de x com o elemento da mesma
posição em y.
• Diferença entre x e y: todos os elementos de x que não existam em y.
• Interseção entre x e y: apenas os elementos que aparecem nos dois vetores.
• União entre x e y: todos os elementos de x, e todos os elementos de y que não
estão em x.

33. Faça um programa que leia um vetor de 15 posições e o compacte, ou seja, elimine as
posições com valor zero. Para isso, todos os elementos à frente do valor zero, devem ser
movidos uma posição para trás no vetor.

34. Faça um programa para ler 10 números DIFERENTES a serem armazenados em um


vetor. Os dados deverão ser armazenados no vetor na ordem que forem sendo lidos,
sendo que caso o usuário digite um número que já foi digitado anteriormente, o programa
deverá pedir para ele digitar outro número. Note que cada valor digitado pelo usuário
deve ser pesquisado no vetor, verificando se ele existe entre os números que já foram
fornecidos. Exibir na tela o vetor final que foi digitado.

35. Faça um programa que leia dois números a e b (positivos menores que 10000) e:

• Crie um vetor onde cada posição é um algarismo do número. A primeira posição é


o algarismo menos significativo;
• Crie um vetor que seja a soma de a e b, mas faça-o usando apenas os vetores
construı́dos anteriormente.

Dica: some as posições correspondentes. Se a soma ultrapassar 10, subtraia 10 do


resultado e some 1 à próxima posição.

36. Leia um vetor com 10 números reais, ordene os elementos deste vetor, e no final escreva
os elementos do vetor ordenado.

3
37. Considere um vetor A com 11 elementos onde A1 < A2 < · · · < A6 > A7 > A8 >
· · · > A11, ou seja, está ordenado em ordem crescente até o sexto elemento, e a partir
desse elemento está ordenado em ordem decrescente. Dado o vetor da questão anterior,
proponha um algoritmo para ordenar os elementos.

38. Peça ao usuário para digitar dez valores numéricos e ordene por ordem crescente esses
valores, guardando-os num vetor. Ordene o valor assim que ele for digitado. Mostre ao
final na tela os valores em ordem.

39. Escreva um programa que leia um número inteiro positivo n e em seguida imprima n
linhas do chamado Triangulo de Pascal:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
...

2 Matrizes

1. Leia uma matriz 4 x 4, conte e escreva quantos valores maiores que 10 ela possui.

2. Declare uma matriz 5 x 5. Preencha com 1 a diagonal principal e com 0 os demais


elementos. Escreva ao final a matriz obtida.

3. Faça um programa que preenche uma matriz 4 x 4 com o produto do valor da linha e da
coluna de cada elemento. Em seguida, imprima na tela a matriz.

4. Leia uma matriz 4 x 4, imprima a matriz e retorne a localização (linha e a coluna) do


maior valor.

5. Leia uma matriz 5 x 5. Leia também um valor X. O programa deverá fazer uma busca
desse valor na matriz e, ao final, escrever a localização (linha e coluna) ou uma mensa-
gem de “não encontrado”.

6. Leia duas matrizes 4 x 4 e escreva uma terceira com os maiores valores de cada posição
das matrizes lidas.

7. Gerar e imprimir uma matriz de tamanho 10 x 10, onde seus elementos são da forma:
A[i][j] = 2i + 7j − 2 se i < j;
A[i][j] = 3i2 − 1 se i = j;
A[i][j] = 4i3 − 5j 2 + 1 se i > j.

8. Leia uma matriz de 3 x 3 elementos. Calcule a soma dos elementos que estão acima da
diagonal principal.

9. Leia uma matriz de 3 x 3 elementos. Calcule a soma dos elementos que estão abaixo da
diagonal principal.

10. Leia uma matriz de 3 x 3 elementos. Calcule a soma dos elementos que estão na diago-
nal principal.

4
11. Leia uma matriz de 3 x 3 elementos. Calcule a soma dos elementos que estão na diago-
nal secundária.

12. Leia uma matriz de 3 x 3 elementos. Calcule e imprima a sua transposta.

13. Gere matriz 4 x 4 com valores no intervalo [1, 20]. Escreva um programa que transforme
a matriz gerada numa matriz triangular inferior, ou seja, atribuindo zero a todos os ele-
mentos acima da diagonal principal. Imprima a matriz original e a matriz transformada.

14. Faça um programa para gerar automaticamente números entre 0 e 99 de uma cartela de
bingo. Sabendo que cada cartela deverá conter 5 linhas de 5 números, gere estes dados
de modo a não ter números repetidos dentro das cartelas. O programa deve exibir na
tela a cartela gerada.

15. Leia uma matriz 5 x 10 que se refere respostas de 10 questões de múltipla escolha,
referentes a 5 alunos. Leia também um vetor de 10 posições contendo o gabarito de
respostas que podem ser a, b, c ou d. Seu programa deverá comparar as respostas
de cada candidato com o gabarito e emitir um vetor denominado resultado, contendo a
pontuação correspondente a cada aluno.

16. Faça um programa para corrigir uma prova com 10 questões de múltipla escolha (a, b,
c, d ou e), em uma turma com 3 alunos. Cada questão vale 1 ponto. Leia o gabarito, e
para cada aluno leia sua matricula (número inteiro) e suas respostas. Calcule e escreva:
Para cada aluno, escreva sua matrı́cula, suas respostas, e sua nota. O percentual de
aprovação, assumindo média 7.0.

17. Leia uma matriz 10 x 3 com as notas de 10 alunos em 3 provas. Em seguida, escreva
o número de alunos cuja pior nota foi na prova 1, o número de alunos cuja pior nota foi
na prova 2, e o número de alunos cuja pior nota foi na prova 3. Em caso de empate
das piores notas de um aluno, o critério de desempate é arbitrário, mas o aluno deve ser
contabilizado apenas uma vez.

18. Faça um programa que permita ao usuário entrar com uma matriz de 3 x 3 números
inteiros. Em seguida, gere um array unidimensional pela soma dos números de cada
coluna da matriz e mostrar na tela esse array. Por exemplo, a matriz:

5 -8 10
1 2 15
25 10 7

Vai gerar um vetor, onde cada posição é a soma das colunas da matriz. A primeira
posição será 5 + 1 + 25, e assim por diante:

31 4 3

19. Faça um programa que leia uma matriz de 5 linhas e 4 colunas contendo as seguintes
informações sobre alunos de uma disciplina, sendo todas as informações do tipo inteiro:

• Primeira coluna: número de matrı́cula (use um inteiro)


• Segunda coluna: média das provas
• Terceira coluna: média dos trabalhos
• Quarta coluna: nota final

Elabore um programa que:

5
(a) Leia as três primeiras informações de cada aluno
(b) Calcule a nota final como sendo a soma da média das provas e da média dos
trabalhos
(c) Imprima a matrı́cula do aluno que obteve a maior nota final (assuma que só existe
uma maior nota)
(d) Imprima a média aritmética das notas finais
20. Faça programa que leia uma matriz 3 x 6 com valores reais.
(a) Imprima a soma de todos os elementos das colunas ı́mpares.
(b) Imprima a média aritmética dos elementos da segunda e quarta colunas.
(c) Substitua os valores da sexta coluna pela soma dos valores das colunas 1 e 2.
(d) Imprima a matriz modificada.
21. Faça um programa que leia duas matrizes 2 x 2 com valores reais. Ofereça ao usuário
um menu de opções:
(a) somar as duas matrizes
(b) subtrair a primeira matriz da segunda
(c) adicionar uma constante às duas matrizes
(d) imprimir as matrizes
Nas duas primeiras opções uma terceira matriz 3 x 3 deve ser criada. Na terceira opção
o valor da constante deve ser lido e o resultado da adição da constante deve ser arma-
zenado na própria matriz.
22. Faça um programa que leia duas matrizes A e B de tamanho 3 x 3 e calcule C = A ∗ B.
23. Faça um programa que leia uma matriz A de tamanho 3 x 3 e calcule B = A2 .
24. Na matriz de 20x20 abaixo, quatro números ao longo de uma linha diagonal foram mar-
cadas em negrito. O produto desses números é 26 * 63* 78 * 14 = 1788696.

08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48

6
Qual é o maior produto de quatro números adjacentes em qualquer direção (cima, baixo,
esquerda, direita, ou na diagonal) na matriz de 20x20?

25. Faça um programa para determinar a próxima jogada em um Jogo da Velha. Assumir que
o tabuleiro é representado por uma matriz de 3 x 3, onde cada posição representa uma
das casas do tabuleiro. A matriz pode conter os seguintes valores -1, 0, 1 representando
respectivamente uma casa contendo uma peça minha (-1), uma casa vazia do tabuleiro
(0), e uma casa contendo uma peça do meu oponente (1).
Exemplo:

-1 1 1
-1 -1 0
0 1 0

Você também pode gostar