Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) problemas com matriz...ajuda..


david-ikki

Pergunta

Olá pessoal!!

Boa tarde !

Bom, eu quero fazer um programa que ultiliza uma matriz de 5x8,e deve funcionar da seguinte maneira:

As 5 linhas serão dados fornecido pelo usuario, e depois os outros valores serão preenchido de acordo com os dados que foram fornecido pelo usuario;

ex:

O 1° dado lido na linha 0,0 foi 25, os outro valores das colunas subsequentes em relação á 0,0 como, 0,1..0,2...etc será preenchido da seginte forma 35,45,55,65,75,05,15, e assim sucessivamente até completar a matriz, seguindo sempre esse parametro de preenchimento, se for digitado 2 sera preenchido assim, 12,22,32,42,52,62,72..assim por diante.

Já tentei implementar algumas coisas, + minha dificuldade e na hora de preencher as colunas, pois o programa recebe os valores de 1 a 5 corretamente, + não sei como preencher o resto a partir desses valores

recebidos...

não quero que me falem como resolver o problema envolvendo calculos, mas sim como poderei copiar os valores para dentro das colunas sendo que os valores da linha já foram fornecidos..

Como de veras já devem ter observado, o programa tratara de combinar números apartir de dados fornecidos.

Há, e importante como poderei imprimir em forma de linha coluna, sendo que sera impresso assim;

colhi o dado 25,

sequencialmente sera impresso atrás do numero 25 as colunas da mesma linha, e assim por diante.

pesso ajuda a vocês, pôs estou aprendendo a programar na raça...só através de conteúdo colhido na internet..

Anteciosamente: José Davi

desde já agradeço a atenção..obrigado....

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

Olá david-ikki,

Pelo que entendi, os dados serão preenchidos acrescentando 10 ao dado anterior, referente a aquela linha, correto?

Bem, se for isso mesmo, após o for onde o usuário digita os primeiros valores faça outro for, com um for dentro. Inicialize o for da linha com 0 e da coluna, 1 (pois já foram preenchidos os dados na posição 0). A cada passagem no for interno, faça o calculo para acrescentar 10 ao valor anterior daquela respectiva linha (ex.: matriz[l][c]=matriz[l][c-1]+10;

Para mostrar os dados de forma a ficarem linhas e colunas, você pode mostrar assim (adaptando conforme sua necessidade):

cout <<"Matriz preenchida:";
  for(l=0;l<5;l++)
  {
    cout <<"\n ";
    for(c=0;c<8;c++)
      cout <<" | "<<matriz[l][c];
  }

Espero tê-lo ajudado.

Abraço,

Link para o comentário
Compartilhar em outros sites

  • 0

beleza amigo Péterson...entaõ cara não teve jeito de eu resolver o código, tentei de várias formas + não consegui, li e reli o assunto tratando de matrizes bidimensionais + não deu..valeu pela ajuda...+ se você conseguir fazer o código posta ai para mim analizar e ver onde eu estou errando...

Desde já agradeço...obrigado..To me esforçando o maxímo para aprender..

Link para o comentário
Compartilhar em outros sites

  • 0

David,

O que eu criei foi esse código abaixo:

#include<conio.h>
#include<iostream.h>
void main()
{
  int matriz[5][8],l,c;
  for(l=0;l<5;l++)
  {
    clrscr();
    cout <<"\n Entre com o "<<l+1<<"º número de 5:";
    cin >>matriz[l][0];   
  }
  for(l=0;l<5;l++)
  {
    for(c=1;c<8;c++)
      matriz[l][c]=matriz[l][c-1]+10;
  }
  clrscr();
  cout <<"Matriz preenchida:";
  for(l=0;l<5;l++)
  {
    cout <<"\n ";
    for(c=0;c<8;c++)
      cout <<" | "<<matriz[l][c];
  }
}

Era isso mesmo? Qualquer dúvida é só postar.

Abraço,

Link para o comentário
Compartilhar em outros sites

  • 0

Amigo Péterson, era + ou - o que eu queria, vou tentar fazer o resto do código a partir do que você me passou, pôs já passou uma idéia do que terei que fazer para atingir o meu objetivo..

Essa é a primeira parte, terei que trabalhar com muitas matrizes ainda, para fazer determinadas combinações....

Agradeço a atenção..Desculpe ter tomado o seu tempo...+ no aprendizado tem dessas coisas..agradeço a paciência...

:) :)

OBRIGADO...

Link para o comentário
Compartilhar em outros sites

  • 0

Então amigo Péterson, eu aqui de novo....Bom dia...

Eu mudei um pouquinho o código, eu quero agora é saber como posso salvar um numero daquele vetor numa variável....

Veja código...

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

main(void)

{

int matriz[5][8],l,c,teste;

{

for(l=0;l<5;l++)/* executa bloco enquanto l<5*/

{

printf("\n Entre com a linha [%d]:",l+1);

while((matriz[l][0]<1)||(matriz[l][0]>80)) /*faz teste se matriz[l] está entre 1 e 80

se não estiver volta a pedir valor*/

{

scanf("%d",&matriz[l][0]);

if((matriz[l][0]<1)||(matriz[l][0]>80)) /* se matriz[l] não estiver entre 1 e 80 imprime frase,

o while faz com peça dados novamente*/

{

printf("\nDigite linha %d entre 1 e 80: ",l+1);

}

}

}

}

for(l=0;l<5;l++)

{

for(c=1;c<8;c++)

matriz[l][c]=matriz[l][c-1]+10; /* acrescenta +10 ao valor final da matriz[c] a cada interação*/

if(matriz[l][c-1]>80)

{

/*Não sei se ta certo + a ideia seria colocar um if aqui, pôs acho que a cada interação quando fosse preencher as colunas da linha zero, seria feito um teste para ver

se o valor digitado é maior que 80, caso ultrapasse, eu quero que salve o valor antecessor numa variável.Salvo o valor na variável, a variável será passada para uma função onde conterá um vetor de 80 posições inicializado de 1 à 80, o valor da variável salva é o numero que será procurado no vetor, encontrado o numero, então os valores subseqüentes será copiado para dentro da matriz completando assim o resto dos valores da coluna....

Isso é o que eu pensei, para resolver o meu problema de preencher o restante da coluna sem ultrapassar o valor 80, se tiver uma forma melhor fale por favor, to ficando de cabelo em pé...rsrsrs..

A questão é como conseguirei salvar este valor antecessor numa variável pôs, o resto eu tento fazer, não sei ainda trabalhar direito com vetores bidimensional..

Desde de já agradeço a atenção...*/

}

}

printf("Matriz preenchida:");

for(l=0;l<5;l++)

{

printf("\n ");

for(c=0;c<8;c++)

printf(" %d ",matriz[l][c]);

}

getch();

return(0);

}

não to conseguindo postar com o codebox..como deverei proceder..

Link para o comentário
Compartilhar em outros sites

  • 0

Olá david-ikki,

Bem, pelo que vi sua dúvida maior é fazer com que a matriz não ultrapasse 80. Para isso, pensei em algo mais simples: No if que verifica se está maior que 80, ponha lá dentro o valor daquele número - 80. Exemplo:

for(l=0;l<5;l++)
{
  for(c=1;c<8;c++)
  { //Está faltando essa chave no seu código.
    matriz[l][c]=matriz[l][c-1]+10; /* acrescenta +10 ao valor final da matriz[c] a cada interação*/
    if(matriz[l][c]>80) //Aqui mudei a verificação, observe.
    {
      matriz[l][c] = matriz[l][c]-80;
    }
  }  //Aqui fecha a chave.
}

Teste e informe se dá certo. Ah, para escrever um código, você deve colocar o código entre [ c ode] /*código aqui*/ [ / code]. Só coloquei espaço para que aparecesse o code.

Abraço,

Link para o comentário
Compartilhar em outros sites

  • 0

exemplo: só teste;

#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main(void)
{
  int matriz[5][8],l,c,contl,contc;
  {
     for(l=0;l<5;l++)/* executa bloco enquanto l<5*/
    {
    printf("\n Entre com a linha [%d]:",l+1);
    while((matriz[l][0]<1)||(matriz[l][0]>80)) /*faz teste se matriz[l] está entre 1 e 80 
[code]          


[code
exemplo: só teste;
[code]
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main(void)
{
  int matriz[5][8],l,c,contl,contc;
  {
     for(l=0;l<5;l++)/* executa bloco enquanto l<5*/
    {
    printf("\n Entre com a linha [%d]:",l+1);
    while((matriz[l][0]<1)||(matriz[l][0]>80)) /*faz teste se matriz[l] está entre 1 e 80 
]


[code]exemplo: só teste;
[code]
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
main(void)
{
  int matriz[5][8],l,c,contl,contc;
  {
     for(l=0;l<5;l++)/* executa bloco enquanto l<5*/
    {
    printf("\n Entre com a linha [%d]:",l+1);
    while((matriz[l][0]<1)||(matriz[l][0]>80)) /*faz teste se matriz[l] está entre 1 e 80

Link para o comentário
Compartilhar em outros sites

  • 0

então o primeiro valor da coluna ainda ultrapassa 80, depois fica certo, eu quero que desde o primeiro valor da coluna seja mudado caso passe de 80..

ex:

foi digitado 78 começara de 08;

" "79 " "09;

" "77 " "07;

" "76 " "06;

Fazendo aquele acréscimo de 10,

ex: 06,16,26,36...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...