Buscar

[19-1][bcc701]_lista_04_-_estruturas_homogeneas_(matriz_e_vetor) (1)

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 1 
BCC701 – Programação de Computadores I – 2018-02 
Lista de Exercícios 04: Estruturas Homogêneas 
http://www.decom.ufop.br/bcc701/ 
Questão 1. (2014-01) 
Seja o polinômio de grau n, assim definido: P(x) = a1 + a2x1 + a3x2 + a4x3 + ... + anxn-1 + an+1xn 
Escreva um programa que defina o vetor de coeficientes do polinômio, através de um comando de 
atribuição semelhante ao exemplo a seguir: 
 a = [ 2.3 -4.5 0 3.8 ] 
Em seguida, o programa deverá ler um valor para x, calcular e imprimir o valor de P(x). Deverá imprimir, 
também, os coeficientes do polinômio. 
Exemplo 1: 
CÁLCULO DE UM POLINÔMIO 
 
Digite o valor de x: 2.5 
P(2.5) = 50.425 
Coeficientes do polinômio: 2.3 -4.5 0 3.8 
Observação: o vetor do exemplo acima contém dados de um polinômio de grau 3, mas seu programa 
deve estar preparado para tratar um polinômio de qualquer grau. 
 
Questão 2. (2014-01) 
Escreva um programa para calcular e imprimir dados relativos à temperatura em Ouro Preto. Considere 
que, no início do programa, seja declarado o seguinte vetor, que contém a temperatura média de cada dia 
de um mês: 
T = [14.8 15.6 13.5 11.6 17.2 12.8 14.6 16.2 14.3 13.6 12.2 11.4 10.6 15.6 16.3 15.9 16.7 14.6 12.7 18.3 
13.9 15.7 17.3 15.4 14.7 13.3 12.5 11.7 16.7 17.4] 
Seu programa deve calcular e imprimir os seguintes dados: 
a) O dia mais quente do mês e a temperatura média neste dia 
b) O dia mais frio do mês e a temperatura média neste dia 
c) Quantos e quais dias tiveram temperaturas acima de 17 graus 
Exemplo 1: 
TEMPERATURAS MÉDIAS DIÁRIAS DE OURO PRETO DURANTE UM MÊS 
 
O dia 20 foi o mais quente do mês, com uma temperatura de 18.3 graus 
O dia 13 foi o mais frio do mês, com uma temperatura de 10.6 graus 
A temperatura ficou acima de 17 graus em 4 dias, a saber : 5 20 23 30 
Observação: o vetor do exemplo acima contém dados de um mês de 30 dias, mas seu programa deve 
estar preparado para tratar qualquer número de dias. 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 2 
Questão 3. (2014-01) 
Alguns dados referentes ao desempenho de jogadores em uma partida de futebol estão armazenados 
em uma matriz, onde cada linha corresponde a um jogador. Para cada jogador, são armazenados os 
seguintes dados: gols marcados, faltas recebidas, faltas cometidas e distância percorrida. Por exemplo, se 
uma linha da matriz, referente a um jogador, contém os dados 
 [4 10 3 5055] 
isso significa que o jogador fez 4 gols, recebeu 10 faltas, cometeu 3 faltas e percorreu 5055 metros 
durante a partida. 
Escreva um programa que definida uma matriz, através de um comando de atribuição semelhante ao 
exemplo a seguir: 
 D = [ 2 3 1 8000; 4 2 6 12000; 3 4 1 10000] 
O programa deve calcular e imprimir os seguintes dados: 
a) a média de gols dos jogadores 
b) o menor número de faltas recebidas por um jogador 
c) o número total de faltas cometidas 
d) a distância média percorrida pelos jogadores. 
Exemplo 1: 
ESTATÍSTICA ESPORTIVA 
 
Resultados: 
Média de Gols: 3 
Menor Número de Faltas Recebidas: 2 
Faltas Cometidas: 8 
Distância Média Percorrida: 10000 
Observação: a matriz do exemplo acima contém dados de 3 jogadores, mas seu programa deve estar 
preparado para tratar uma matriz referente a um número qualquer de jogadores. 
 
Questão 4. (2014-01) 
O traço de uma matriz quadrada A, de dimensão n x n, é a soma dos elementos de sua diagonal 
principal, ou seja: 
𝒕𝒓𝒂ç𝒐 𝑨 = 𝒂𝒊,𝒊
𝒏
𝒊!𝟏
 
Escreva um programa que defina uma matriz quadrada A , através de um comando de atribuição 
semelhante ao exemplo a seguir: 
 A = [ 2.5 0.23 0; 0 3.82 4; 0 18 0 ] 
Complete o programa para: 
1) imprimir a matriz; 
2) criar um vetor constituído pelos elementos da diagonal principal de A e imprimi-lo; 
3) calcular o traço da matriz; 
4) determinar o número de elementos fora da diagonal principal que são diferentes de 0. 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 3 
Exemplo 1: 
Matriz A: 
 2.50 0.23 0.00 
 0.00 3.82 4.00 
 0.00 18.00 0.00 
Vetor da diagonal: 2.50 3.82 0.00 
Traço(A) = 6.32 
Elementos nulos fora da diagonal principal: 3 
 
Observação: a matriz do exemplo acima é de ordem 3, mas seu programa deve estar preparado para 
tratar uma matriz de qualquer ordem. 
 
Questão 5. (2014-02) 
O coeficiente de atrito, µ, pode ser determinado em um experimento medindo-se a força F necessária 
para mover uma massa m . Quando F é medida e m é conhecida, o coeficiente de atrito pode ser 
calculado por: 
𝝁 = 
𝑭
𝒎×𝒈 , 𝑜𝑛𝑑𝑒 𝑔 = 9,81 𝑚/𝑠
! 
 
 
 
 
Unidades: F em Newton (N); m em quilograma (kg). 
Em seis experimentos foram medidos os valores de F 
Experimento 1 2 3 4 5 6 
m 2 4 5 10 20 50 
F 12,5 23,5 30 61 117 294 
 
Escreva um programa em Scilab para determinar o coeficiente de atrito em cada experimento, 
armazenando os valores calculados em um vetor. Também, calcule o valor médio dos coeficientes de 
atritos de todos os experimentos. 
Considere que dois vetores estão armazenados na memória, um para os valores de m , e outro para os 
valores de F , conforme ilustrado a seguir: 
m = [ 2 4 5 10 20 50 ] 
F = [ 12.5 23.5 30 61 117 294 ] 
As impressões dos resultados devem seguir o modelo de execução abaixo. 
Exemplo 1: 
EXPERIMENTO DOS COEFICIENTES DE ATRITO 
 
VETOR DOS COEFICIENTES: 
0.637105 0.598879 0.611621 0.621814 0.59633 0.599388 
VALOR MÉDIO DOS COEFICIENTES: 0.610856 
 
 
at
rito 
F 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 4 
Questão 6. (2014-02) 
Escreva um programa que leia as temperaturas médias mensais de duas cidades, ao longo de um 
determinado ano, e imprima os nomes dos meses nos quais as duas cidades têm a mesma temperatura 
média. 
Um exemplo de execução do programa é ilustrado a seguir, supondo que são lidos os valores de 
temperaturas médias apresentados na tabela abaixo. 
Mês 1 2 3 4 5 6 7 8 9 10 11 12 
Cidade1 30 24 18 12 22 25 22 19 24 26 29 34 
Cidade2 30 27 20 16 25 25 26 22 24 28 29 38 
 
Exemplo 1: 
Temperaturas médias mensais em 2 cidades 
----------------------------------------- 
Temperaturas médias mensais da cidade 1: [30,24,18,12,22,25,22,19,24,26,29,34] 
Temperaturas médias mensais da cidade 2: [30,27,20,16,25,25,26,22,24,28,29,38] 
 
Meses em que a temperatura média foi igual nas duas cidades: 
Jan Jun Set Nov 
 
Questão 7. (2014-02) 
A posição de navios em uma determinada região costeira pode ser representada por uma matriz M , na 
qual cada posição (x,y) corresponde à coordenada (x,y) da região representada. O valor 1 (um) na linha x 
e coluna y da matriz indica a existência de um navio na coordenada (x, y) da região; 0 (zero) indica 
que não há navio. Considere que a matriz M foi lida e está na memória do computador, tal como ilustrado 
na figura a seguir: 
𝑀 =
0 0 0
0 𝟏 0
𝟏 0 0
0 0 0
0 0 0
𝟏 0 0
0 0 0
0 𝟏 0
0 0 0
0 0 0
0 0 0
0 0 𝟏
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 𝟏
0 0 0
0 0 0
0 0 0
0 0 0
0 𝟏 0
0 0 0
0 0 0
0 𝟏 0
0 0 0
 
 
Conforme esta matriz M , existem 8 navios, nas seguintes coordenadas: 
(2, 2) (2, 8) (3, 1) (3, 4) (6, 3) (6, 9) (8, 5) (8, 8). 
Escreva um programa Scilab que leia uma matriz P, com 5 linhas e 2 colunas, representando 5 palpites 
de um usuário sobre 5 posições em que existe um navio: cada linha representa um palpite, sendo que a 
primeira coluna refere-se à coordenada x e a segunda coluna à coordenada y da posição do navio. Por 
exemplo, se a matriz de palpites do jogador for [ 2, 2; 1, 5; 3, 1; 6, 6; 8, 1], a matriz de palpites P seria: 
𝑃 = 
2 2
15
3 1
6 6
8 1
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 5 
O programa deve determinar quantos palpites correspondem a posições em que realmente existe um 
navio na matriz M, ou seja, quantas coordenadas de navios o usuário acertou. A seguir, um exemplo de 
execução do programa. Não é necessária qualquer validação de entrada de dados. 
Exemplo 1: 
LOCALIZAÇÃO DE NAVIOS 
LEITURA DA MATRIZ (5X2) 
DIGITE SEUS 5 PALPITES: [ 2, 2; 1, 5; 3, 1; 6, 6; 8, 1 ] 
POSIÇÃO (2, 2): ACERTOU ! 
POSIÇÃO (1, 5): ERROU ... 
POSIÇÃO (3, 1): ACERTOU ! 
POSIÇÃO (6, 6): ERROU ... 
POSIÇÃO (8, 1): ERROU ... 
 
QUANTIDADE DE ACERTOS: 2 
 
Questão 8. (2014-02) 
Uma matriz triangular superior é uma matriz quadrada onde todos os elementos abaixo da diagonal 
principal são nulos (com valor zero), conforme ilustrado a seguir: 
 
2 3 8 9 
0 1 4 6 
0 0 2 1 
0 0 0 8 
 
Escreva um programa Scilab que leia uma matriz quadrada, tal como mostrado no exemplo a seguir, e 
indique se ela é uma matriz triangular superior ou não. O programa deve também imprimir a dimensão da 
matriz lida. Não é necessário verificar se a matriz lida á uma matriz quadrada. 
Exemplo 1: 
Classificando uma Matriz Quadrada 
--------------------------------- 
Digite a matriz: [ 2 3 8 9; 0 1 4 6; 0 0 2 1; 0 0 0 8 ] 
 
Dimensão da matriz: 4x4 
A matriz é triangular superior ! 
Exemplo 2: 
Classificando uma Matriz Quadrada 
--------------------------------- 
Digite a matriz: [ 1 1 1; 1 0 1; 0 0 1 ] 
 
Dimensão da matriz: 3x3 
A matriz não é triangular superior. 
 
 
 
Diagonal 
principal 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 6 
Questão 9. (2015-01) 
A administração do RU da UFOP fez uma pesquisa sobre a qualidade das refeições. Vários alunos 
responderam a pesquisa com números de 1 a 5, que representam uma escala de satisfação, a saber: 1 – 
péssima; 2 – ruim; 3 – boa; 4 – muito boa; e 5 – excelente. 
 
As respostas dadas pelos alunos que participaram da pesquisa estão armazenadas em um vetor 
respostas, tal como o mostrado a seguir: 
respostas = [1 2 5 4 2 1 5 4 1 2 5 3 2 1 2 4 2 3 5 1 4 1 2 4 5 5 1 2 3 4 3 4 2 1 5 1 2 4 5 3 1 2 5 4 1 1 2 5 4 3] 
Escreva o código do programa, de modo que o programa gere um vetor contendo o número de vezes 
que ocorreu cada resposta. Ou seja, esse vetor deve conter, em cada posição i, para 1<=i<=5, o número 
de vezes que ocorreu a resposta i. O programa deve imprimir os dados armazenados conforme o formato 
apresentado no exemplo de execução a seguir. 
Exemplo 1: 
Pesquisa sobre a Qualidade do RU 
Resposta Frequencia 
 1 12 
 2 12 
 3 6 
 4 10 
 5 10 
 
Questão 10. (2015-01) 
Uma imagem em preto e branco pode ser armazenada em um computador na forma de uma matriz, 
onde 0 representa a cor preta e 1 representa a cor branca. Por exemplo, a matriz a seguir representaria a 
imagem, em preto e branco, de um triângulo. 
0001000 
0010100 
0100010 
1111111 
Escreva um programa que leia uma matriz que represente uma imagem em preto e branco e inverta as 
cores na imagem, isto é, troque cada 0 por 1 e cada 1 por 0. Por exemplo, se a matriz lida como entrada 
for a matriz acima, o resultado impresso pelo programa deverá ser a seguinte matriz: 
1110111 
1101011 
1011101 
0000000 
Abaixo, um exemplo de execução do programa. 
Exemplo 1: 
Digite uma matriz imagem: 
[ 0 0 0 1 0 0 0; 0 0 1 0 1 0 0; 0 1 0 0 0 1 0; 1 1 1 1 1 1 1 ] 
 
Imagem com cores invertidas: 
 1. 1. 1. 0. 1. 1. 1. 
 1. 1. 0. 1. 0. 1. 1. 
 1. 0. 1. 1. 1. 0. 1. 
 0. 0. 0. 0. 0. 0. 0. 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 7 
Questão 11. (2015-01) 
O Sr. Apu Nahasapeemapetilon é proprietário de uma vendedora de acessórios para computador, a 
Kwik E' Mart. Esta empresa possui 4 lojas e o Sr. Apu mantém um estoque mínimo de produtos em 
todas as lojas: HD (100 unidades); impressora (40 unidades); monitor (50 unidades); notebook (30 
unidades); e tablet (80 unidades). Estas informações podem ser representadas pelos vetores: 
 
produto = [“HD” “impressora” “monitor” “notebook” “tablet”] 
minimo = [ 100 40 50 30 80 ] 
Conforme representado nesses vetores, vemos que a quantidade mínima de HDs é 100 e a quantidade 
mínima de notebooks é 30. 
Os estoques das 4 lojas são representados por uma matriz (estoque), onde cada linha representa o 
estoque de uma determinada loja. Seja a seguinte matriz estoque: 
41 48 32 32 81 estoque da loja 1 
102 38 50 15 85 estoque da loja 2 
100 40 50 30 80 estoque da loja 3 
100 40 50 35 78 estoque da loja 4 
Considere um programa no qual os vetores produto e mínimo, assim como a matriz estoque, já 
foram lidos, no início do programa. Escreva o restante do código desse programa para verificar o estoque 
de cada produto em cada uma das lojas, verificando a ocorrência de uma das seguintes possíveis 
situações em cada loja: 
a) todos os produtos estão de acordo com o estoque mínimo. Neste caso, é impressa uma mensagem 
informando tal situação; ou 
b) são impressos os produtos cujo estoque está abaixo do estoque mínimo e a quantidade que falta 
para atingir esse estoque. 
Abaixo, um exemplo de execução do programa. 
Exemplo 1: 
RELATÓRIO DO ESTOQUE 
Loja Nro 1 
Produto: HD - Faltam 59 unidades 
Produto: monitor - Faltam 18 unidades 
Loja Nro 2 
Produto: impressora - Faltam 2 unidades 
Produto: notebook - Faltam 15 unidades 
Loja Nro 3 
Todos os produtos possuem o estoque mínimo! 
Loja Nro 4 
Produto: tablet - Faltam 2 unidades 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 8 
Questão 12. (2015-01) 
Considere ainda os dados referentes à loja do Sr. Apu Nahasapeemapetilon apresentados na questão 
anterior. Considere um programa em que os dados contidos no vetor produto e na matriz estoque já 
foram lidos, no início do programa. Suponha que esse programa também lê, no início, um vetor preco, 
contendo o preço unitário de cada um dos produtos do estoque, tal como o vetor a seguir: 
preco = [ 102.0 250.0 430.0 980.0 540.0 ] 
Escreva o restante do código desse programa, de maneira que ele leia o número de uma das lojas, ou 
seja, 1 ou 2 ou 3 ou 4, e imprima as quantidades de cada produto no estoque dessa loja, tal como 
mostrado no exemplo de execução a seguir. Além disso, o programa deve imprimir o valor total do 
estoque da loja, isto é, o somatório dos preços unitários de todos os produtos existentes na loja. 
O exemplo abaixo ilustra a execução do programa, considerando o vetor preco mencionado acima. 
OBS: Não é necessária qualquer validação de dados. 
 
Exemplo 1: 
Estoque e Custo Total da Loja 
DIGITE A LOJA (1, 2, 3, OU 4): 3 
HD: 100 impressora: 40 monitor: 50 notebook: 30 tablet: 80 
Custo total do estoque: R$ 114300.00 
 
Questão 13. (2015-02) 
A tabela a seguir contém dados de emissão de CO2 de 7 países, em toneladas per capita, no ano de 
2011: 
Pais Canadá Brasil EUA Rússia índia Japão China 
Emissão CO2 14.07 2.23 16.85 12.60 1.70 9.33 6.60 
fonte: http://mdgs.un.org/unsd/mdg/SeriesDetail.aspx?srid=751 
Considere um programa no qual uma tabela, análoga à tabela acima, é representada por meio de 2 
vetores declarados no início do programa – paises e CO2 – cada qual com n posições, sendo que a 
emissão de CO2 de um dado país do vetor paises é dada na posição correspondente do vetor CO2, tal 
como mostrado a seguir: 
paises = ["Canadá", "Brasil", "EUA", ...] 
CO2 = [ 14.07, 2.23, 16.85, ...] 
Escreva o programa de maneira a calcular e imprimir os seguintes dados:1. a média de emissão de CO2 per capta dos n países; 
2. o nome do país que é o maior emissor de CO2 per capita e a quantidade emitida. 
Um exemplo de execução do programa é mostrado a seguir, supondo-se que a tabela representada no 
programa é a mostrada acima. 
Exemplo 1: 
Emissão de CO2 per capita (em ton/per capita) 
 
Emissão média nos países considerados = 9.054 
Pais maior emissor = EUA (16.85) 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 9 
Questão 14. (2015-02) 
Em um jogo de Batalha Naval, o oceano pode ser representado por uma matriz de duas dimensões, na 
qual cada posição de índice (x,y) contém informação sobre o tipo de navio localizado nesta posição do 
oceano: 1 representa um Couraçado; 2 representa um Contratorpedeiro; 3 representa uma 
Fragata e 0 indica que não existe navio na posição. Por exemplo, no oceano representado pela matriz M 
abaixo, existem 2 Couraçados, nas posições (3,4) e (5,8); 3 Contratorpedeiros, nas posições 
(5,3), (5,6) e (6,1); e também 2 Fragatas, nas posições (1,2) e (5,5). 
x↓ y→ 1 2 3 4 5 6 7 8 
1 0 3 0 0 0 0 0 0 
2 0 0 0 0 0 0 0 0 
3 0 0 0 1 0 0 0 0 
4 0 0 0 0 0 0 0 0 
5 0 0 2 0 3 2 0 1 
6 2 0 0 0 0 0 0 0 
 
No nosso jogo de Batalha Naval, um jogador tenta acertar posições de navios no oceano, dando n 
palpites de posições (x,y). Caso exista um navio em uma posição informada, ele soma pontos, conforme 
o tipo de navio existente, de acordo com a seguinte tabela: 
Número Navio Pontos 
1 Couraçado 20 
2 Contratorpedeiro 30 
3 Fragata 10 
Escreva um programa para a Batalha Naval, onde: 
• uma matriz M, que representa o oceano, é declarada no início do programa; 
• o número n é digitado pelo teclado, seguido de n pares (x, y) 
• o programa calcula e imprime a pontuação do jogador; 
• não é necessário validar a entrada de dados, isto é, supõe-se que o jogador irá digitar posições 
válidas. 
Nos 2 exemplos de execução a seguir, supõe-se que o oceano é representado pela matriz M mostrada 
acima. 
Exemplo 1: 
Batalha Naval 
Digite o número de jogadas: 3 
Jogada 1 
 digite x: 1 
 digite y: 1 
Jogada 2 
 digite x: 4 
 digite y: 2 
Jogada 3 
 digite x: 6 
 digite y: 8 
Pontuação Obtida: 0 pontos 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 10 
Exemplo 2: 
Batalha Naval 
Digite o número de jogadas: 2 
Jogada 1 
 digite x: 2 
 digite y: 6 
Jogada 2 
 digite x: 5 
 digite y: 6 
Pontuação Obtida: 30 pontos 
 
Questão 15. (2015-02) 
Você vai escrever um programa para verificar se resultados de exames de sangue estão dentro dos 
padrões desejados. Os itens do exame de sangue a serem verificados são: Glicose (de 60 a 99 mg/dl); 
ureia (10 a 50 mg/dl); creatinina (0,4 a 1.4 mg/dl); colesterol (0 a 200 mg/dl). Essas informações estão 
podem ser representadas pelos vetores: 
tipo = ["GLICOSE" "UREIA" "CREATININA" "COLESTEROL"] 
minimo = [ 60 10 0.4 0 ] 
máximo = [ 99 50 1.4 200 ] 
 
Os dados de exames de pessoas são representados por uma matriz (exames), onde cada linha 
representa o exame de uma pessoa e cada coluna representa um tipo de exame, na mesma ordem em 
que esses tipos ocorrem no vetor tipo. Por exemplo, a matriz exames a seguir representa exames de 4 
pessoas: 
120 30 0.5 260 Exame da pessoa 1 
82 38 0.7 180 Exame da pessoa 2 
90 40 0.8 170 Exame da pessoa 3 
90 20 0.7 230 Exame da pessoa 4 
Suponha que os vetores tipo, mínimo e máximo são declarados no início do programa. A matriz de 
exames deve ser lida do teclado, durante a execução do programa. O programa deve então determinar, 
para cada exame contido em uma linha da matriz exames, a ocorrência de uma das seguintes possíveis 
situações: 
a) todos os tipos de exame estão dentro dos limites mínimo e máximo desejável. Neste caso, é 
impressa uma mensagem informando que o exame está normal; ou 
b) algum tipo de exame não está dentro dos limites desejáveis. Neste caso, devem ser impressos 
os tipos de exames nessa situação e os valores correspondentes. 
Exemplo 1: 
Digite exames:[120 30 .5 260; 82 38 .7 180; 90 40 .8 170; 90 20 .7 230] 
 
RELATÓRIO DE EXAMES 
Paciente 1 
Glicose: 120 Colesterol: 260 
Valores fora dos limites 
Paciente 2 
Exame normal 
Paciente 3 
Exame Normal 
Paciente 4 
Colesterol: 230 
Valores fora dos limites 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 11 
Questão 16. (2016-01) 
A tabela a seguir mostra resultados dos últimos n jogos entre o Cruzeiro e o Atlético: 
Atlético Cruzeiro 
2 1 
2 3 
2 0 
0 1 
... ... 
1 1 
2 3 
 
Escreva um programa que leia uma matriz com n linhas e 2 colunas, representando a tabela acima, e 
calcule e imprima: o número de jogos vencidos pelo Atlético, o número de jogos vencidos pelo Cruzeiro, e 
o número de empates. Finalmente, imprima uma mensagem informando qual é o melhor time, isto é, 
aquele com maior número de vitórias – nenhuma mensagem deve ser impressa caso os dois times tenham 
mesmo numero de vitórias. 
Dois exemplos de execução do programa são apresentados a seguir. 
Exemplo 1: 
TABELA DE RESULTADOS DE JOGOS: [2 1; 2 3; 2 0; 0 1; 1 1; 2 3] 
VITORIAS DO ATLÉTICO = 2 
VITORIAS DO CRUZEIRO = 3 
EMPATES = 1 
CRUZEIRO É O MELHOR TIME! 
Exemplo 2: 
TABELA DE RESULTADOS DE JOGOS: [2 0; 1 1; 2 2; 0 1; 0 0] 
VITORIAS DO ATLÉTICO = 1 
VITORIAS DO CRUZEIRO = 1 
EMPATES = 3 
 
Questão 17. (2016-01) 
Um cromossomo com n genes pode ser representado por um vetor de n posições. Considerando os 
genes 0 e 1, e dois cromossomos de tamanho n = 16 temos: 
C1 = [ 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ] 
C2 = [ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] 
Definimos cruzamento de C1 e C2 através da combinação de seus genes da seguinte maneira: 
1) Escolher uma posição válida k, 1 ≤ k ≤ n para indicar o ponto de corte; 
2) Copiar os elementos do vetor C1, posições de 1 até k, para um vetor C3; 
3) Copiar os elementos do vetor C2, posições de (k+1) até n, para o mesmo vetor C3. 
4) O vetor C3 é o vetor resultante do cruzamento dos vetores C1 e C2. 
Desta forma, o cruzamento de C1 e C2, com ponto de corte k = 8, resultaria em: 
C3 = [ 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 ] 
Escreva um programa Scilab para ler dois vetores C1 e C2, ler o valor de corte k e efetuar o 
cruzamento desses vetores. 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 12 
Caso o valor lido para k não seja válido, deve-se repetir a solicitação da entrada de k.até que um valor 
válido seja fornecido. Observe que k é um valor inteiro, mas não é necessário verificar se k é inteiro. 
A seguir um exemplo de execução do programa, com os mesmos vetores do exemplo acima, mas com 
outro valor de k: 
Exemplo 1: 
Digite o primeiro vetor: [ 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 ] 
Digite o segundo vetor: [ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] 
Digite o valor do ponto de corte: 11 
 
Vetor resultante do cruzamento: 
1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 
 
Questão 18. (2016-01) 
Um site de compras pela internet é avaliado pelos consumidores de acordo com uma escala de 1 a 5, 
com o seguinte significado: 5 = MUITO BOM, 4 = BOM, 3 = REGULAR, 2 = RUIM, 1 = PÉSSIMO. Escreva 
um programa que leia um vetor de respostas de avaliação de consumidores e imprima os percentuais de 
cada tipo de resposta, conforme ilustrado nos exemplos a seguir. 
Caso o vetor de respostas de consumidores seja vazio, o programa deve imprimir a mensagem 
“Nenhuma avaliação para este site”. 
Exemplo 1: 
AVALIAÇÃO DE SITE DE COMPRAS 
Respostas dos consumidores: [5 5 4 1 4 3 3 5 5 5 4 2 2 5 5 5 4 5 4 5] 
 
Avaliação: 
| MUITO BOM | BOM |REGULAR | RUIM | PÉSSIMO | 
| 50% | 25% | 10% | 10% | 5 | 
Exemplo 2: 
AVALIAÇÃO DE SITE DE COMPRAS 
----------------------------- 
Respostas dos consumidores: [ ] 
 
Nenhuma avaliação para este site. 
 
Questão 19. (2016-01) 
Observe a matriz abaixo, que contém os índices (percentuais) de variação de preços de um conjunto de 
itens do orçamento familiar, obtidos em uma pesquisa durante um período de 6 meses. 
Item Mês 1 2 3 4 5 6 
Alimentos e bebidas 1.3% -1% 2% 3% -0.8% 0.5% 
Transportes 0.5% 0% 0.7% 0% 0.8% 0% 
Habitação 0.6% 0.3% 0.4% -0.3% 1.2% 0.8% 
Saúde e Educação 2.3% 0.5% 0.7% 1.1% 0.4% 1.0% 
Vestuário 1.0% 0.6% 0.4% -0.5% 1.0% 1.5% 
 
Vamos supor, de forma simplificada, que o índice de variação de preço de um dado item, no período de 
pesquisa, seja calculado como a soma das variações mensais. Por exemplo, o índice para o item 
“alimentos e bebidas” seria: 
1.3-1+2+3-0.8+5 = 5 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 13 
Paralelamente, foi feita outra pesquisa para determinar o percentual do orçamento familiar que é 
destinado a cada um desses itens (peso do item no orçamento). O quadro abaixo sintetiza o resultado das 
duas pesquisas: 
Item Variação de Preço Peso 
Alimentos e bebidas 5% 26% 
Transportes 2% 20% 
Habitação 3% 18% 
Saúde e Educação 6% 26% 
Vestuário 4% 10% 
Total 100% 
 
Esses dados permitem calcular o índice de inflação no período como: 
I = (5x26 + 2x20 + 3x18 + 6x26 + 4x10) / 100 = 4.2 
Escreva um programa para ler os seguintes dados: 
1) um vetor contendo os pesos dos itens 
2) uma matriz contendo as variações de preço desses itens em um período de n meses. 
O programa deverá calcular: 
1) o percentual de variação de preço de cada item, armazenando-os em um vetor 
2) o índice de inflação. 
Um exemplo de execução é mostrado a seguir, considerando 4 itens, em um período de 3 meses. 
Exemplo 1: 
INDICE DE INFLAÇÃO 
Pesos dos itens: [40 25 15 20] 
Variação mensal de custo dos itens: [2 3 4; 3 2 2; 3 5 4; 2 3 3] 
 
Índice de inflação = 8.75% 
 
Questão 20. (2016-02) 
Na avaliação de um professor pelos alunos, a nota de cada quesito varia em uma escala de 1 até 5 e só 
possui valores inteiros. Escreva um programa que leia um vetor contendo as notas dadas a um professor 
pelos alunos. Abaixo apresenta-se uma ilustração de avaliação realizada: 
avaliacao = [ 3 3 2 3 3 1 2 3 3 3 3 2 4 1 5 5 3 ] 
Seu programa deve: 
1) Armazenar em uma matriz chamada freq a frequência de ocorrência de cada nota variando de 1 
a 5, conforme ilustrado a seguir para o vetor avaliacao previamente ilustrado: 
1 2 
2 3 
3 9 
4 1 
5 2 
2) Imprimir a matriz freq conforme ilustrado no exemplo de execução a seguir. 
OBS: Você não precisa validar os dados de entrada, podendo supor que todas as posições do vetor de 
notas dadas pelos alunos contêm um valor na faixa de 1 a 5. 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 14 
Exemplo 1: 
AVALIAÇÃO DE PROFESSOR 
Notas dadas pelos alunos: [ 3 3 2 3 3 1 2 3 3 3 3 2 4 1 5 5 3] 
 
Nota Frequência 
 1 2 
 2 3 
 3 9 
 4 1 
 5 2 
 
Questão 21. (2016-02) 
Considere dois vetores já armazenados na memória do computador. Um vetor com os nomes dos 
alunos e outro com as notas semestrais de BCC701 desses alunos. Uma forma de ilustrar esses vetores é 
apresentada a seguir: 
nome = [“Skywalker” “Kenobi” “Solo” “Vader” “Organa” “Amidala” “Finn” “Rey” ] 
nota = [ 5.8 10.0 8.5 4.5 3.2 6.5 3.5 6.4 ] 
Escreva um programa que: 
1) Gere um vetor de índices, Index. Este vetor contém as posições dos elementos do vetor nota 
cujos valores são maiores ou iguais a 6.0 (critério de aprovação); 
2) Utilizando o vetor Index (ou seja, sem utilizar o vetor nota nesse ponto), o programa imprime o 
nome dos alunos que foram aprovados (a partir do vetor nome). 
 
A seguir o vetor Index é ilustrado considerando os vetores nome e nota ilustrados acima: 
Index = [ 2 3 6 8 ] 
Observações: 
• Considere a possibilidade do vetor Index não conter elementos, ou seja, não há aprovados. 
Neste caso, imprima uma mensagem relatando a situação e finalize o programa. 
• No exemplo acima, os vetores tem tamanho 8, mas seu programa deve considerar que os 
vetores nome e nota podem ter um tamanho qualquer, diferente de zero. 
A seguir, duas execuções do programa. 
Exemplo 1: 
UST - Universidade Sideral de Tatooine 
 
Alunos aprovados: 
Kenobi 
Solo 
Amidala 
Rey 
Exemplo 2: 
UST - Universidade Sideral de Tatooine 
 
Nenhum aluno foi aprovado! 
Fim do Programa. 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 15 
Questão 22. (2016-02) 
Escreva um programa que leia uma matriz m e, caso m seja uma matriz quadrada, imprima a soma de 
todos os valores da diagonal principal e da diagonal secundária de m. Se m não for uma matriz quadrada, 
imprime uma mensagem de erro, tal como ilustrado a seguir. 
Exemplo 1: 
SOMA DAS DIAGONAIS 
Digite uma matriz quadrada: [1 2; 3 4; 5 6] 
 
Erro: A matriz não é quadrada. 
Exemplo 2: 
SOMA DAS DIAGONAIS 
Digite uma matriz quadrada: [1 2 3;4 5 6; 7 8 9] 
 
Soma = 30 
 
Questão 23. (2016-02) 
A UFOP promoveu uma gincana entre equipes de alunos, na qual cada equipe deveria cumprir 10 
tarefas. Você vai escrever um programa para apurar o resultado da gincana, conforme explicado a seguir. 
A pontuação atribuída a cada tarefa é especificada na forma de um vetor declarado no início do 
programa, contendo 10 colunas, no qual cada coluna contém a pontuação da tarefa correspondente. O 
vetor deverá ser o seguinte (devendo estar declarado no programa): 
pontuacao = [ 10 7 20 5 12 30 9 10 15 30 ] 
O programa deve ler uma matriz que representa as tarefas que foram concluídas pelas equipes, onde 
cada linha corresponde a uma equipe e cada coluna corresponde a cada uma das 10 tarefas. Cada 
posição (i,j) da matriz contém 1, se a equipe i conseguiu realizar a tarefa j, ou contém 0 caso contrário. A 
cada execução, podem haver números diferentes de equipes, o que é identificado através do número de 
linhas da matriz informada pelo usuário. 
Para ilustrar, uma matriz representando as tarefas realizadas por 3 equipes poderia ser como a 
seguinte: 
gincana = [ 1 0 0 1 1 0 1 1 0 1; 
 0 1 0 1 1 1 0 0 1 0; 
 1 1 1 0 0 0 1 1 0 0 ] 
O programa deve imprimir uma tabela mostrando a pontuação de cada equipe, e também indicar qual 
foi a equipe vencedora, tal como mostrado no exemplo a seguir. 
Exemplo 1: 
Tarefas realizadas por equipe: [1 0 1 1 0 0 1 1 0 1; 
 1 0 0 0 1 1 1 0 1 0; 
 1 1 1 0 0 1 1 0 1 1; 
 1 0 0 1 1 1 1 0 0 0 ] 
Equipe Pontos 
 1 84 
 2 76 
 3 121 
 4 66 
 
A equipe 3 é a vencedora! 
 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 16 
Questão 24. (2017-02) 
A CEMIG está treinando um novo funcionário para realizar as leituras de consumo residencial de 
energia. Esse funcionário percorreu um roteiro pré-estabelecido e registrou o consumo das residências. 
Outro funcionário, mais experiente, veio logo atrás fazendo a leitura das mesmas residências, na mesma 
ordem. Os resultados obtidos pelos dois foram armazenados em dois vetores, um para cada funcionário, e 
são fornecidos através de duas entradas de dados pelo usuário. 
Escreva um programa para calcular os valores absolutos das diferenças entre as leituras dos dois 
funcionários e armazená-las em outro vetor, determinando também a média dos valores armazenados no 
novovetor e imprimindo os resultados na tela, conforme o exemplo a seguir. 
DICA: O valor absoluto de um número é obtido com a função abs do Scliab da seguinte maneira: 
abs(valor), por exemplo, abs(10) resulta em 10, abs(-10) também resulta em 10, e abs(x-y) 
resulta no valor absoluto da diferença de duas variáveis existentes, x e y. 
Exemplo 1: 
Leituras do primeiro funcionário.: [ 1 2 4 5 6 ] 
Leituras do Segundo funcionário..: [ 3 2 5 3 7 ] 
 
As diferenças observadas são: [ 2 0 1 2 1 ] 
Média das diferenças observadas: 1.20 
 
Questão 25. (2017-02) 
A Dona Marina é uma confeiteira muito conhecida em sua cidade e contrata revendedores para vender 
seus bolinhos em grandes eventos populares. Há apenas dois produtos comercializados, o bolinho e uma 
caixinha de suco. Ela deseja premiar o vendedor que lhe proporciona o maior lucro. Para isso, ela 
encomendou um programa em que ela possa fornecer a quantidade de vendas de bolinho e a quantidade 
de vendas de suco realizadas por cada um dos revendedores e o lucro com cada um dos produtos. 
Considere que as quantidades de vendas deverão ser armazenadas em vetores, diretamente definidos a 
partir de entradas do usuário. Seu programa deve criar um outro vetor contendo o lucro obtido por cada 
revendedor e obter aquele que conseguiu o maior valor, conforme o exemplo a seguir. Considere também 
que sempre haverá um vencedor único, ou seja, não é necessário verificar se houve empate. 
Exemplo 1: 
Informe as quantidades de bolinho: [ 5 2 3 10 8 ] 
Informe as quantidades de suco: [ 7 3 2 8 10 ] 
Informe o lucro com bolinho: 4.5 
Informe o lucro com suco: 2.8 
 
O lucro dos vendedores foi: 
1: 42.10 
2: 17.40 
3: 19.10 
4: 67.40 
5: 64.00 
 
O vendedor premiado foi o 4. 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 17 
Questão 26. (2017-02) 
Escreva um programa que, a partir de uma matriz contendo a produção semanal dos operadores de 
máquina de uma fábrica em um determinado período e imprima: 
• O total de operadores e de semanas processadas; 
• O total de produção de cada operador (todas as semanas somadas); 
• O total de produção da fábrica, ao longo de todas as semanas informadas. 
Na matriz fornecida como entrada pelo usuário, cada linha representa um operador e cada coluna 
representa uma semana. O total de semanas e de operadores não é conhecido de antemão, então o 
programa deve encontrar estas informações antes de começar as contagens. 
O exemplo de execução a seguir ilustra um caso em que a matriz corresponde à produção de 4 
operadores, durante 5 semanas. 
OBS: Não é permitido usar função sum do Scilab, os cálculos devem ser feitos usando estruturas de 
repetição. 
Exemplo 1: 
Produção: [10 31 28 11 13; 17 42 33 11 8; 5 34 36 10 15; 16 43 9 44 9] 
 
Total de operadores: 4 
Total de semanas: 5 
 
Produção por operador: 
Operador 1 = 93 
Operador 2 = 111 
Operador 3 = 100 
Operador 4 = 121 
 
Total geral de produção: 425 
 
Questão 27. (2018-01) 
Na cidade de Ouro Preto existem postos de gasolina que vendem seus produtos sem seguir uma 
padronização de preços. Escreva um programa Scilab que: 
1. Leia o vetor POSTO, que armazena os nomes dos postos de gasolina e um vetor PRECO, que 
armazena o preço do litro da gasolina, em reais, vendida pelos postos. Desta forma, um posto cujo 
nome está armazenado na posição k, POSTO(k), tem a gasolina com o preço armazenado em 
PRECO(k). Os valores pertencentes a cada vetor devem ser lidos pelo teclado a partir de uma 
única entrada do usuário; 
2. O programa deverá calcular e imprimir o preço médio do litro de gasolina de todos os postos; 
3. O programa deverá gerar um vetor que conterá os índices (as posições) dos nomes dos postos que 
vendem o litro de gasolina com o preço menor ou igual ao preço médio calculado no item 2. Este 
vetor de índices será utilizado para imprimir o nome e o preço da gasolina correspondente ao 
posto; 
4. As impressões, elemento por elemento, devem seguir o modelo de execução apresentado a seguir. 
Abaixo, exemplos de execução do programa. 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 18 
Exemplo 1 
Vetor dos nomes: ["MadMax" "FuryRoad" "Furious" "Valkyrie" "Petrojuice"] 
Vetor dos preços: [ 3.95 3.44 3.82 3.12 4.01 ] 
 
Preço médio (litro): R$ 3.67 
Vetor de índices: [ 2 4 ] 
Preços <= ao preço médio: 
POSTO VALOR (R$) 
FuryRoad 3.44 
Valkyrie 3.12 
Exemplo 2 
Vetor dos nomes: ["Xell" "Petroroubo" "TChoco" "YpiRango" "Batizada"] 
Vetor dos preços: [ 3 2 3 4 1 ] 
 
Preço médio (litro): R$ 2.60 
Vetor de índices: [ 2 5 ] 
Preços <= ao preço médio: 
POSTO VALOR (R$) 
Petroroubo 2.00 
Batizada 1.00 
 
Questão 28. (2018-01) 
Escreva um programa para fazer uma série de pesquisas de preços de produtos alimentícios. 
Inicialmente o programa deve ler as informações através de entradas do usuário, armazenando-as em 
vetores conforme exemplo a seguir. Os vetores definidos guardam uma correspondência nas informações, 
ou seja, em uma determinada posição k temos a descrição do produto em descr(k), o seu preço em 
preco(k) e o seu código em cod(k). 
Seu programa deve realizar uma série de pesquisas a partir do código do produto digitado pelo usuário. 
Caso o código seja encontrado, o sistema imprime a sua descrição e o seu preço. Caso o código não seja 
encontrado, o sistema emite uma mensagem “Código não encontrado!”. O programa deve encerrar sua 
execução quando o usuário digitar um valor menor ou igual a zero para o código a ser pesquisado. 
Exemplo 1 
Códigos: [ 12 45 58 14 19 11 18 ] 
Preços: [ 10.5 5.4 4.5 8.7 5.3 17.5 3.0 ] 
Descrições: ['Açúcar', 'Feijão', 'Óleo', 'Maionese', 'Macarrão', 'Manteiga', 
'Detergente'] 
 
Digite o código do produto: 58 
Descrição: Óleo 
Preço: R$ 4.50 
 
Digite o código do produto: 99 
Código não encontrado! 
 
Digite o código do produto: 45 
Descrição: Feijão 
Preço: R$ 5.40 
 
Digite o código do produto: -1 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 19 
Questão 29. (2018-01) 
Indiana Jorge é um caçador de mitos que deseja desvendar o mito de que um raio não cai duas vezes 
em um mesmo lugar. Para isso, ele saiu à procura de uma cidade que registre fielmente a incidência de 
raios. De posse destes dados ele mapeou a cidade em quadrados de 1 metro de lado, obtendo um mapa 
retangular. O registro de raios é feito de acordo com as coordenadas dos quadrados considerando os 
índices de linha e de coluna, conforme representado na figura a seguir. Implemente um programa que 
receba como entrada as dimensões em metros da cidade (comprimento e largura) e a quantidade de raios 
registrados. Em seguida, leia as coordenadas de cada um dos raios registrados contabilizando a 
quantidade de raios que caiu em cada quadrado. As coordenadas de cada raio são definidas em um vetor 
contendo o valor da linha e da coluna, respectivamente, em uma única entrada do usuário (vide exemplo). 
O programa deve identificar se existe algum quadrado onde caiu mais de um raio, neste caso, ele 
desmente o mito, informando: "MITO DESMENTIDO!". Caso contrário, ele não consegue desmentir o mito, 
informando: "MITO NÃO DESMENTIDO!". Abaixo é apresentada uma matriz contendo os dados 
registrados para o exemplo de execução a seguir, os números fora da tabela representam as coordenadas 
dos quadrados (índices de linhas e colunas). Considere que todos os dados fornecidos serão sempre 
válidos. No exemplo, o mito foi desmentido porque no quadrado [ 2, 2 ] caíram 2 raios. 
 
 
 1 2 3 4 5 6 7 8 
1 0 0 0 0 0 0 0 0 
2 0 2 0 0 0 0 0 0 
3 1 0 0 0 0 0 1 0 
4 0 0 0 0 0 0 0 0 
5 0 0 0 0 0 0 1 0 
Exemplo 
Comprimento da cidade (metros): 5 
Largura da cidade (metros): 8 
Quantidade de raios:5 
Raio 1: [ 2, 2 ] 
Raio 2: [ 5, 7 ] 
Raio 3: [ 3, 7 ] 
Raio 4: [ 2, 2 ] 
Raio 5: [ 3, 1 ] 
 
MITO DESMENTIDO! 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 20 
Questão 30. (2018-02) 
No jogo “Campo Minado” existe uma área representada por uma matriz (campo), de dimensão 
qualquer, onde o valor 1, armazenado em uma posição (x, y), indica a existência de uma bomba na linha x 
e coluna y. Já o valor 0, indica a ausência de bomba. Exemplo de um campo minado de dimensão (3 x 
10): 
[ 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 0 0 0 1; 
 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1; 
 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 ] 
O jogo começa perguntando o número de jogadores e a quantidade de jogadas. Em cada jogada, cada 
um dos jogadores deve informar um vetor com duas posições [ x, y ], indicando uma linha e coluna do 
campo minado. Podem ocorrer 3 situações: 
1. a posição [x, y] armazena o valor 0, posição livre. Logo o jogador soma 1 ponto; 
2. a posição [x, y] armazena o valor 1, há uma bomba. Logo, o jogador não soma ponto; 
3. a posição [x, y] não é uma posição válida da matriz, está fora do campo. Logo o jogador não 
soma ponto. 
Ao final de todas as jogadas são impressas as pontuações dos jogadores. 
Escreva um programa que faça a leitura do campo minado (campo) pelo teclado de uma única vez. O 
programa cria um vetor ponto, onde cada posição armazena o total de pontos de cada jogador. 
Inicialmente para o jogador i, tem-se ponto(i) = 0. Quando executado, o programa realiza as impressões 
conforme o exemplo de execução abaixo. 
Exemplo 
Campo: [ 1 0 0 0 1 1 0 0 0 1 1 
0 1 0 1 1 0 0 0 1; 1 0 0 1 0 
1 0 0 1 0 1 0 0 1 0 0 0 1 0 
1; 1 0 1 0 1 0 0 1 0 0 0 0 0 
0 0 1 0 0 0 1 ] 
Quantidade de jogadores: 3 
Quantidade de jogadas: 4 
Jogada 1 
 Jogador 1 [x, y]: [1 2] 
 Acertou! 
 Jogador 2 [x, y]: [2 3] 
 Acertou! 
 Jogador 3 [x, y]: [3 3] 
 BOMBA! 
Jogada 2 
 Jogador 1 [x, y]: [4 2] 
 Fora do Tabuleiro! 
 Jogador 2 [x, y]: [4 4] 
 Fora do Tabuleiro! 
 Jogador 3 [x, y]: [3 20] 
 BOMBA! 
Jogada 3 
 Jogador 1 [x, y]: [2 6] 
 BOMBA! 
 Jogador 2 [x, y]: [1 8] 
 ACERTOU ! 
 Jogador 3 [x, y]: [2 12] 
 ACERTOU! 
Jogada 4 
 Jogador 1 [x, y]: [1 1] 
 BOMBA! 
 Jogador 2 [x, y]: [2 2] 
 ACERTOU! 
 Jogador 3 [x, y]: [3 3] 
 BOMBA! 
Pontuação final: 
 Jogador 1: 1 ponto(s) 
 Jogador 2: 3 ponto(s) 
 Jogador 3: 1 ponto(s) 
 
 
 
Universidade Federal de Ouro Preto – UFOP 
Instituto de Ciências Exatas e Biológicas – ICEB 
Departamento de Computação – DECOM 
 
 21 
Questão 31. (2018-02) 
Uma indústria de montagem de equipamentos pesados realiza o planejamento de sua produção com 
base em uma matriz de demandas semanais de peças e uma matriz de preços de diferentes fornecedores 
para as peças demandadas. Na matriz de demandas as linhas representam as semanas, as colunas 
representam as peças, e informação armazenada é a quantidade de peças demandada para as semanas. 
Na matriz de orçamentos as linhas representam as peças, as colunas representam os fornecedores, e a 
informação armazenada é o valor cobrado pelos fornecedores para as peças. Veja abaixo duas tabelas 
que exemplificam o conteúdo de cada uma destas matrizes. 
Tabela de Demandas Tabela de Orçamentos 
 
 
Peça A Peça B 
Semana 1 40 30 
Semana 2 30 50 
Semana 3 60 20 
 
 
 
AX BYD CZ 
Peça A 20 22.35 19.99 
Peça B 32.5 28.90 32.35 
 
A partir do produto interno entre as duas matrizes, é possível determinar o custo semanal em relação a 
cada fornecedor, conforme apresentado a seguir: 
40 30
30 50
60 20
. 20 22.35 19.9932.5 28.9 32.35 =
1775 1761 1770.1
2225 2115.5 2217.2
1850 1919 1846.4
 
Na matriz resultante as linhas representam as semanas e as colunas representam os fornecedores. 
Implemente um programa que leia um vetor contendo os nomes de cada fornecedor, uma matriz 
contendo as demandas, outra matriz contendo os orçamentos e escolha um fornecedor para cada 
semana, imprimindo a semana, o nome do fornecedor e o valor de custo. O fornecedor escolhido será 
aquele com o menor custo na semana. Não é necessário fazer validação dos dados. A seguir um exemplo 
de execução do programa para os dados do exemplo anterior. 
Exemplo 
Fornecedores:[ "AX" , "BYD" , "CZ" ] 
Demandas: [ 40 , 30 ; 30 , 50 ; 60 , 20 ] 
Orçamentos: [ 20 22.35 19.99 ; 32.5 28.9 32.35 ] 
Semana 1: BYD (R$ 1761.00) 
Semana 2: BYD (R$ 2115.50) 
Semana 3: CZ (R$ 1846.40)

Outros materiais