Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal
é o seguinte:
) Considere que determinada empresa tem registrado numa tabela, minutos locais de ligação telefônica ao longo de 20 anos. Cada linha representa um ano e cada coluna um mês. Utilizando todos os conceitos aprendidos de lógica de programação, faça um algoritmo que peça para o usuário digitar os valores nesta tabela Esta tabela deve ser armazenada em uma matriz.
Após a digitação de todos os valores, determine e escreva qual foi o consumo médio total de minutos durante os 20 anos. Escreva também o mês e o ano do maior minuto registrado
Codigo
inicio
MINUTOS_LOCAIS,MES_MAIOR,ANO_MAIOR,CONSU_MEDIO: numerico
LIGA_TELE: matriz[1... 12] numerico
LINHA,COLUNA : numerico
para LINHA de 1 ate 12 1 faca
escreva " Digite o ano da "LINHA", ° ano:"
leia ANO[LINHA]
Duvidas:
a matriz eu coloquei os meses do ano que sao 12, e como declarar a matriz de 20 anos? eu to um pouco perdida, alguem por favor pode me ajudar?
Obrigada
olá
eu nao possocolocar por ex para Linha e tal
para coluna e tal
em vez de i e j igual você colocou nao?
e eu acabei implementando o algoritmo
Code
se coluna = 1
entao leia " Digite os valores nesta tabela:",LIGA_TELE[LINHA,COLUNA]
se LINHA = 20
entao leia " Digite os valores nesta tabela:",LIGA_TEL [LINHA,COLUNA]
fim-se
escreva " O Consumo medio total de minutos durante os 20 anos é: " CONSU_MEDIO"
escreva " O mes e o ano do maior minuto registrado:"MES_MAIOR,ANO_MAIOR"
fim
é isso mesmo?
Faça exatamento o que o Kandrade disse, apenas coloque no for interno o calculo a ser feito para guardar a maior media mensal e o ano:
inicio
//A declaração das variaveis:
Inteiro matriz[20][12]; // sendo aqui 20 quantidade de linhas (anos) e 12 quantidade de colunas (meses).
inteiro total=0; //guardará o total dos anos.
inteiro linha=0, coluna=0; //iniciando os contadores de linha e coluna.
inteiro maiorvalor=0; //iniciando o acumulador de maior media mensal e maior ano.
inteiro maiormensal, maiorano;
para (linha=0, linha < 20, linha ++)faça //para pular as linhasou voce pode utilizar um enquanto
para(coluna=0, coluna<12, coluna++)faça
leia(matriz[linha][coluna]);
total=mediatotal+matriz[linha][coluna];//total de linha(ano) recebe o seu valor;
se (maiorvalor<matriz[linha][coluna])faça
maiorvalor=matriz[linha][coluna];
maiormensal=coluna;
maiorano=linha;
fim se;
fim para de coluna;
fim para de linha;
escreva("O maior minuto mensal foi no mes: ", maiormensal, "do ano", maiorano);
fim;Quem é que pensou neste alguritmo quel?
Foi o teu professor?
Decerteza que está doido, porque é necesário muitas variáveis.
Se fosse pedido a media de todos os anos e a maior ligação era muito fácil, mas querem saber qual o ano e mês em que a ligação foi maior, só pode ser de doidos.
Mas eu vou fazer só a média e a maior ligação e depois um mini-exemplo do que é pedido.
Só Média e a maior ligação
Inicio
Declara A
Declara B
Declara soma
Declara maior
Declara N
N=120
http://forum.imasters.com.br/public/style_emoticons/default/excl.gif "imagem"
Escreve-->Qual o numero
A<-- Ler o numero
Escreve-->Qual o numero
B<-- Ler o numero
soma=soma+A+B
Se
A>B
Vedadeiro
A é o maior
Falso
B é o maior
N=N-1
Se
N>0
Verdadeiro
volta para cima ( http://forum.imasters.com.br/public/style_emoticons/default/excl.gif "imagem")
Falso
media=soma:240
Escreve--> media; maior
FIM
mini-exemplo do que é pedido
Inicio
Declara media
Declara aa; ab; ac; ad; ae; af; ag; ah; ai; aj; ak; al;
Declara ba; bb; bc; bd; be; bf; bg; bh; bi; bj; bk; bl;
Declara ca; cb; cc; cd; ce; cf; cg; ch; ci; cj; ck; cl;
"etc. 20 vezes para dar 20 anos"
Escreve-->Quantos minutos de linha teve em janeiro?
aa<-- Ler numero
Escreve-->Quantos minutos de linha teve em fevereiro?
ab<-- Ler numero
Se
aa>ab
verdadeiro
aa=maior
Falso
ab=maior
Escreve-->Quantos minutos de linha teve em março?
ac<-- Ler numero
Se
ac>maior
Verdadeiro
ac=maior
Falso
ac<maior
Escreve-->Quantos minutos de linha teve em abril?
ad<-- Ler numero
"etc. para todas as variáveis"
media=aa+ab+ac "etc." a dividir por 240
Escreve--> media; maior
FIM
Realmente é coisa pra doido pensei que era pra escrever somente o ano e o mes com a maior quantidade de minutos, mas observando bem o que ele pede:
Após a digitação de todos os valores, determine e escreva qual foi o consumo médio total de minutos durante os 20 anos. Escreva também o mês e o ano do maior minuto registrado
Teria que mecher no contador e fazer uma divisão antes da conferencia se ele é maior que o maior minuto, teria que ser feita uma conversão verificar o mes e dividir pelos dias daquele mes tipo:
se(coluna==1)
minutomensal=(matriz[linha][coluna]/31)/1440; //31=dias em janeiro, 1440 = minutos no dia (24*60)
E fazer a comparação, teria assim que ter 12 se's antes da acumulação em um contador.
Estou agora analizar e estou a ver "Matriz".
Não sei utilizar, gostava de saber, sou novo em programação, aprendi umas coisas mas "Matriz" não aprendi.
Talvez o problema fique mais simples do que parece, não sei.
Mas gostava de aprender. Alguém me ensina? :unsure:
Se alguém souber e que queira ensinar-me eu agradeço[/u], agradeço também aquele(s) que me mustratrem um alguritmo em que se use "Matriz". :unsure:
Voce precisa de uma matriz bi-dimensional. A declaração é mais ou menos assim:
LIGA_TELE: matriz[1... 20, 1... 12] numerico
Para preencher todos os valores voce precisa de dois loops encadeado.
para i de 1 ate 20 faca
para j de 1 ate 12 faca
// leia LIGA_TELE[i,j]
Qualquer dúvida volte a postar.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif