Академический Документы
Профессиональный Документы
Культура Документы
Esta apostila contm 80 exerccios elaborados para treinar a resoluo de problemas simples
de programao, utilizando a linguagem SciLab. Os problemas esto agrupados por categoria e
destes, 20% se encontram resolvidos para servir de guia. A repetio da soluo dada em
todos os demais exerccios que ir ajudar a fixar a forma resolver e permitir a resoluo de
problemas mais complexos.
Bom trabalho !
29. Foi feita uma pesquisa entre 1230 assinantes de TV a Cabo para saber quantos filmes, por ms, cada
usurio assiste. Calcular a quantidade mdia de filmes assistidos por ms por usurio
30. Foi feita uma pesquisa em uma casa lotrica com 245 apostadores para saber quanto cada apostador
gasta por ms (aproximadamente) em apostas na sena. Calcular o volume mdio aproximado de
apostas por cliente no ms.
31. Foi feita uma pesquisa em 200 postos dos preos da gasolina, do lcool e do diesel. Ler para cada
posto, os valores da cada combustvel, calcular e imprimir o preo mdio para cada tipo de combustvel
dentre os postos pesquisados.
32. Foi feita uma pesquisa entre 450 pacientes de um hospital. Cada paciente informou a sua idade,
renda mensal e o tempo, em horas, que esperava na fila. Calcular: a idade mdia, a renda mdia
e o tempo mdio de espera para os pacientes pesquisados.
33. Foi feita uma pesquisa entre 1230 assinantes de TV a Cabo sendo perguntado: quantos eram os
canais mais assistidos, quantos filmes, por ms, cada usurio assistia e a idade dos entrevistados.
Calcular a quantidade mdia de canais assistidos, filmes por ms por usurio e a idade mdia dos
usurios.
34. Foi feita uma pesquisa em uma casa lotrica com 245 apostadores para saber: quantas vezes, por
ms, cada apostador fazia suas apostas, quanto apostava por ms (aproximadamente) e em quantos
jogos (sena, federal, mineira, etc). Calcular a mdia de apostas, o valor gasto em apostas e a
quantidade de jogos no ms.
35. Foi feita uma pesquisa em um nmero indeterminado de postos dos preos da gasolina, do lcool e do
diesel. Ler para cada posto, os valores da cada combustvel, calcular e imprimir o preo mdio para
cada tipo de combustvel dentre os postos pesquisados. Os dados terminam quando for digitado um
valor de preo de gasolina igual a Zero.
36. Foi feita uma pesquisa com um nmero indeterminado de pacientes de um hospital. Cada paciente
informou a sua idade, renda mensal e o tempo, em horas, que esperava na fila. Calcular: a idade
mdia, a renda mdia e o tempo mdio de espera para os pacientes pesquisados. Os dados terminam
quando for digitada uma idade negativa.
37. Foi feita uma pesquisa com um nmero indeterminado de assinantes de TV a Cabo sendo
perguntado: quantos eram os canais mais assistidos, quantos filmes, por ms, cada usurio
assistia e a idade dos entrevistados. Calcular a quantidade mdia de canais assistidos, filmes
por ms por usurio e a idade mdia dos usurios. Os dados terminam quando for digitada uma
quantidade negativa de canais de TV.
38. Foi feita uma pesquisa em uma casa lotrica com um nmero indeterminado de apostadores para
saber: quantas vezes, por ms, cada apostador fazia suas apostas, quanto apostava por ms
(aproximadamente) e em quantos jogos (sena, federal, mineira, etc). Calcular a mdia de apostas, o
valor gasto em apostas e a quantidade de jogos no ms. Os dados terminam quando for digitada uma
quantidade apostas por ms igual a Zero.
Contagem
39. Acrescentar no programa do exerccio 4 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
40. Acrescentar no programa do exerccio 11 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
41. Acrescentar no programa do exerccio 15 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
42. Acrescentar no programa do exerccio 18 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
43. Acrescentar no programa do exerccio 19 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
44. Acrescentar no programa do exerccio 22 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
45. Acrescentar no programa do exerccio 24 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
46. Acrescentar no programa do exerccio 25 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
47. Acrescentar no programa do exerccio 35 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
48. Acrescentar no programa do exerccio 36 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
49. Acrescentar no programa do exerccio 38 um contador para calcular quantos conjuntos de dados foram
lidos e imprimi-los juntamente com os resultados finais.
Classificao por faixas
50. Ler as notas de uma turma de 20 alunos e calcular a quantidade de conceitos A, B, C, D e E, de
acordo com a classificao abaixo:
a. de 10 at 8 (inclusive)
Conceito A
b. menor que 8 at 7 (inclusive) Conceito B
c. menor que 7 at 6 (inclusive) Conceito C
d. menor que 6 at 4 (inclusive) Conceito D
e. menor que 4 at 0
Conceito E
51. Ler as notas de uma turma com uma quantidade qualquer alunos, calcular e imprimir o percentual de
alunos para que obteve cada um dos conceitos A, B, C, D e E, de acordo com a classificao abaixo:
a. de 10 at 8 (inclusive)
Conceito A
b. menor que 8 at 7 (inclusive)
Conceito B
c. menor que 7 at 6 (inclusive)
Conceito C
d. menor que 6 at 4 (inclusive)
Conceito D
e. menor que 4 at 0
Conceito E
Os dados terminam com uma nota negativa
52. Ler as distncias de diversas cidades em relao a BH em Km, calcular e imprimir a quantidade e o
percentual de para cada uma das faixas abaixo:
a. At 100 Km
b. Acima de 100 Km at 250 Km
c. Acima de 250 Km at 500 Km
d. Acima de 500 Km at 750 Km
e. Acima de 750 Km
Os dados terminam com uma distncia Zero.
Maior / menor
53. Foi feita uma pesquisa em 200 postos dos preos da gasolina. Ler os valores da cada posto,
calcular e imprimir o valor do menor preo encontrado nos postos pesquisados.
54. Foi feita uma pesquisa entre 450 pacientes de um hospital sobre o tempo, em horas, que eles
esperavam na fila. Calcular o maior tempo de espera para os pacientes pesquisados
55. Foi feita uma pesquisa entre 1230 assinantes de TV a Cabo para saber quantos filmes, por ms, cada
usurio assiste. Calcular a maior e a menor quantidade de filmes assistidos por ms pelos usurios
56. Foi feita uma pesquisa em uma casa lotrica com 245 apostadores para saber quanto cada apostador
gasta por ms (aproximadamente) em apostas na sena. Calcular a maior e a menor aposta feita pelos
clientes no ms.
57. Foi feita uma pesquisa em um nmero indeterminado de postos dos preos da gasolina, do lcool e do
diesel. Ler para cada posto, os valores da cada combustvel, calcular e imprimir o maior e o menor
valor encontrado para cada tipo de combustvel dentre os postos pesquisados. Os dados terminam
quando for digitado um valor de preo de gasolina igual a Zero.
58. Foi feita uma pesquisa com um nmero indeterminado de pacientes de um hospital. Cada paciente
informou a sua idade, renda mensal e o tempo, em horas, que esperava na fila. Calcular: a maior e
menor idade, a maior e menor renda e o maior e menor tempo de espera para os pacientes
pesquisados. Os dados terminam quando for digitada uma idade negativa.
59. Foi feita uma pesquisa com um nmero indeterminado de assinantes de TV a Cabo sendo perguntado:
quantos eram os canais mais assistidos, quantos filmes, por ms, cada usurio assistia e a idade dos
entrevistados. Calcular a maior e menor quantidade de: canais assistidos, filmes por ms por usurio e
a maior e menor idade dos usurios. Os dados terminam quando for digitada uma quantidade negativa
de canais de TV.
60. Foi feita uma pesquisa em uma casa lotrica com um nmero indeterminado de apostadores para
saber: quantas vezes, por ms, cada apostador fazia suas apostas, quanto apostava por ms
(aproximadamente) e em quantos jogos (sena, federal, mineira, etc). Calcular a maior e a menor
aposta, o maior e menor valor gasto em apostas e a maior e menor quantidade de jogos no ms. Os
dados terminam quando for digitada uma quantidade apostas por ms igual a Zero.
Par / Impar, Divisor / Mltiplo, Masculino / Feminino
61. Ler um conjunto indeterminado de nmeros, calcular e imprimir a quantidade de nmeros pares
e impares e o seu respectivo percentual. Os dados terminam quando for digitado um nmero
negativo.
62. Ler um conjunto indeterminado de nmeros, calcular e imprimir a quantidade e o percentual dos
nmeros:
a. Pares
b. Impares
c. Mltiplos de 3
d. Mltiplos de 7
Os dados terminam quando for digitado um nmero negativo.
63. Ler dois nmeros inteiros, descobrir quem o maior e o menor. Imprimir no intervalo desses valores
todos os nmeros divisveis por 9 e os divisveis por 5.
64. Ler um conjunto indeterminado de idades de pessoas e o seu respectivo sexo (M ou F), calcular e
imprimir:
a. A quantidade de Homens e Mulheres do grupo
b. A idade mdia masculina e feminina
c. A maior a menor idade masculina e feminina do grupo
Fatorial
65. Faa um programa que leia um nmero N do teclado e calcule e imprima o seu fatorial
66. Faa um programa que leia dois nmeros do teclado e calcule e imprima a diferena entre o fatorial do
maior e menor nmero (ou seja: X! Y!, onde X > Y)
67. Faa um programa que leia dois nmeros do teclado e calcule e imprima o fatorial da diferena entre
maior e menor nmero (ou seja: (X Y)!, onde X > Y)
Somatrio
68. Faa um programa que leia um nmero N do teclado e calcule e imprima o seguinte somatrio:
H=
+ 1 + 1 + 1 + ... + 1 .
2
3
4
N
G=
+ 3 + 5 + 7 + ... + 99 .
2
3
4
50
21 + 22 + 23 + ... + 250.
250
249
248
21
71. Faa um programa que leia um nmero N do teclado e calcule e imprima o seguinte somatrio:
L=
1 - 2 + 3 - 4 + ... + N .
4
9
16
N2
72. Faa um programa que leia um nmero N do teclado e calcule e imprima o seguinte somatrio:
H=
+ 1! + 2! + 3! + ... + (N-1)! .
2
3
4
N
Repetio de operao
73. Acrescente ao programa do exerccio 3 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
74. Acrescente ao programa do exerccio 17 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
75. Acrescente ao programa do exerccio 27 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
76. Acrescente ao programa do exerccio 39 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
77. Acrescente ao programa do exerccio 42 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
78. Acrescente ao programa do exerccio 58 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
79. Acrescente ao programa do exerccio 61 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
80. Acrescente ao programa do exerccio 70 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
13. Ler um valor de horas, minutos e segundos e converter para o seu equivalente em segundos.
clear; clc;
horas = input("Informe a quantidade de horas: );
minutos = input("Informe a quantidade de minutos: );
segundos = input("Informe a quantidade de segundos: );
segundos = segundos + minutos * 60 + horas * 3600;
mprintf("\nO total de segundos eh de: %d, segundos);
16. Ler o tempo gasto pelo professor em segundos para bolar essa lista de exerccios, transformar
e imprimir no formato de horas:minutos:segundos.
clear; clc;
segundos = input("Informe a quantidade total de segundos gasta: );
horas = segundos / 3600; // cada hora equivale a 3600 segundos nao e ?
segundos = modulo(segundos, 3600); // quantos segundos sobraram ?
minutos = segundos / 60;
// cada minuto equivale a 60 segundos
segundos = modulo(segundos, 60);
// quantos segundos sobraram ?
mprintf("\nO tempo total gasto foi de: %d:%d:%d, horas, minutos, segundos);
19. Fazer um programa que gere uma tabela de converso de milhas/hora para ps/segundo,
comeando em 0 com incremento de 5 milhas/hora. A ltima linha deve conter o valor 65
milhas/hora. (1 milha = 5280 ps)
//
// 1 milha/hora = 5280 pes / 3600 segundos
//
clear; clc;
mprintf("Milhas/Hora\tPes/Segundo\n);
for milhas_por_hora = 0 : 5 : 65
pes_por_segundo = milhas_por_hora * 5280 / 3600; // simples, ne ?
mprintf("%f\t\t\t%f\n, milhas_por_hora, pes_por_segundo);
end
21. Fazer um programa para gerar uma tabela de converso de graus para o valor do seu cosseno
para uma variao de ngulo de 0 a 360 de 15 em 15 graus. Os valores devem ser convertidos para
radianos.
//
// 360 graus = 2 * pi radianos
//
clear; clc;
PI = 3.1416;
mprintf("Graus\tCosseno\n);
for graus = 0: 15 : 360
radianos = graus * 2 * PI / 360;
mprintf(+ "%f\t%f\n, graus, cos(radianos));
end
23. Crie uma tabela para converso de graus C para F para valores de 0C a 100C, com variao
unitria. Sabe-se que para a converso de temperatura usa-se a formula: F = 9 * C / 5 + 32.
clear; clc;
mprintf("Graus C\tGraus F\n);
for grausC = 0 : 1 : 100
grausF = grausC * 9.0/5 + 32;
mprintf("%f\t%f\n, grausC, grausF);
end
27. Foi feita uma pesquisa em 200 postos dos preos da gasolina. Ler os valores da cada posto,
calcular e imprimir o preo mdio dos postos pesquisados.
clear; clc;
soma=0;
for postos = 1 : 1 : 200
preco = input("Entre com o preco do litro de gasolina: );
soma = soma + preco;
end
media = soma / 200;
mprintf("O preco medio eh: %f, media);
32. Foi feita uma pesquisa entre 450 pacientes de um hospital. Cada paciente informou a sua idade,
renda mensal e o tempo, em horas, que esperava na fila. Calcular: a idade mdia, a renda mdia e o
tempo mdio de espera para os pacientes pesquisados.
clear; clc;
somaIdade=0;
somaEspera=0;
somaRenda=0;
for pacientes = 1 : 1 : 450
idade = input("Entre com a idade do paciente: );
renda = input("Entre com a renda do paciente: );
espera = input("Entre com o tempo de espera em horas: );
somaIdade = somaIdade + idade;
somaEspera = somaEspera + espera;
somaRenda = somaRenda + renda;
end
mediaIdade = somaIdade / 450;
mediaRenda = somaRenda / 450;
mediaEspera = somaEspera / 450;
mprintf("\nA media de idade eh: %f, mediaIdade);
mprintf("\nA renda media eh: %f, mediaRenda);
mprintf("\nO tempo medio de espera eh: %f, mediaEspera);
37. Foi feita uma pesquisa com um nmero indeterminado de assinantes de TV a Cabo sendo
perguntado: quantos eram os canais mais assistidos, quantos filmes, por ms, cada usurio
assistia e a idade dos entrevistados. Calcular a quantidade mdia de canais assistidos, filmes por
ms por usurio e a idade mdia dos usurios. Os dados terminam quando for digitada uma
quantidade negativa de canais de TV.
clear; clc;
usuarios=0;
somaCanais=0;
somaIdade=0;
somaFilmes=0;
canais = input("Entre com a quantidade canais assistidos ou -1 para terminar: );
while (canais >= 0)
idade = input("Entre com a idade do usuario: );
filmes = input("Entre com a quntidade de filmes assistidos: );
somaIdade = somaIdade + idade;
somaCanais = somaCanais + canais;
somaFilmes = somaFilmes + filmes;
usuarios = usuarios + 1;
canais = input("Entre com a quantidade canais assistidos ou -1 para terminar: );
end
if (usuarios > 0) then // pra que esse teste ??
mediaIdade = somaIdade / usuarios;
mediaCanais = somaCanais / usuarios;
mediaFilmes = somaFilmes / usuarios;
mprintf("\nA media de canais assistidos eh: %f, mediaCanais);
mprintf("\nA media de idade eh: %f, mediaIdade);
mprintf("\nA quantidade madia de filmes assistidos eh: %f, mediaFilmes);
end
50. Ler as notas de uma turma de 20 alunos e calcular a quantidade de conceitos A, B, C, D e E, de
acordo com a classificao abaixo:
a. de 10 at 8 (inclusive)
Conceito A
b. menor que 8 at 7 (inclusive) Conceito B
c. menor que 7 at 6 (inclusive) Conceito C
d. menor que 6 at 4 (inclusive) Conceito D
e. menor que 4 at 0
Conceito E
clear; clc;
conceitoA=0;
conceitoB=0;
conceitoC=0;
conceitoD=0; conceitoE=0;
for i = 0 : 1 : 20
nota = input("Entre com a nota do aluno : );
if ( nota >= 8 ) then
conceitoA = conceitoA + 1;
elseif ( nota >= 7 ) then
conceitoB = conceitoB + 1;
elseif ( nota >= 6 ) then
conceitoC = conceitoC + 1;
elseif ( nota >= 4 ) then
conceitoD = conceitoD + 1;
else conceitoE = conceitoE + 1;
end
end
1 Soluo
clear; clc;
fatorial = 1;
numero = input("Entre com um numero : );
while (numero > 0)
fatorial = fatorial * numero;
numero = numero - 1;
end
mprintf("O fatorial calculado eh :%f, fatorial);
2 Soluo
clear; clc;
fatorial = 1;
numero = input("Entre com um numero : );
for i = 2 ; 2 : numero
fatorial = fatorial * i;
end
mprintf("O fatorial calculado eh :%f, fatorial);
69. Faa um programa que calcule e imprima o seguinte somatrio:
G=
+ 3 + 5 + 7 + ... + 99 .
2
3
4
50
clear; clc;
G = 0;
j = 1;
for i = 1 : 2 : 99
G = G + i / j;
j=j+1
end
mprintf("O somatorio eh :%f, G);
73. Acrescente ao programa do exerccio 3 a opo de perguntar ao usurio se ele deseja repetir o
programa antes de terminar.
clear; clc;
i=0;
resposta = S; // para entrar no while na primeira vez
while (resposta == "S" | resposta == "s")
salario = input("\nInforme o salario, ou Zero para terminar: );
while (salario > 0)
mprintf("o novo salario com aumento eh: %f, salario *1.25);
i = i + 1;
salario = input("\nInforme o salario, ou Zero para terminar: ");
end
mprintf("\nForam informados %f salrios., i);
resposta = input("\n\nDeseja executar novamente ? (S/N) ");
end