Ir para conteúdo
Doguinho programador

alguem capaz de responder exercicio de matriz

Recommended Posts

Será dado a você uma matriz de tamanho  NxM, inicialmente contendo o n ́umero 0 em cada uma das posições, e Q operacoes a serem realizadas sobre essa matriz. Cada operacao é composta de 5 numeros inteiros X1, Y1, X2, Y2 e K, onde (X1, Y1) indicam o canto superior esquerdo e (X2, Y2) o canto inferior direito do retangulo definido por esse par de pontos. O ultimo dos 5 inteiros,representado pelo inteiro K, indica a cor que deverá ser usada para pintar o retangulo dado naquela operacao. Sua tarefa é, dadas Q operacoes (Q

retangulos), imprimir a matriz resultante depois de todas elas.

Entrada:

A primeira linha da entrada possui dois inteiros N, M e Q, indicando as dimensoes da matriz e o numero de opera ̧coes. Depois, haverão Q linhas, contendo os 5 inteiros X1, Y1, X2, Y2 e K que representam as bordas do retangulo e a cor com a qual ele deve ser pintado, como indicado acima.

Saıda:

A saıda deve conter N linhas com M inteiros cada separados por um espaco em branco, representando a matriz apos a realizacao de todas as operacoes

 

 

Exemplos

Entrada

3 3 2

0 0 1 1 4

2 0 2 1 8

Saıda

4 4 0

4 4 0

8 8 0

 

Entrada

2 3 3

0 0 1 1 6

0 2 0 2 1

1 0 1 1 5

Sa ́ıda

6 6 1

5 5 0

 

Segue algoritmo que consegui até agora, mas ainda assim, não consigo entender como sobrescrever e pintar a matriz...

Citar

#include<iostream>
using namespace std;
#define max 50
int main()
{

    int i, j, a, b, n, m, q;
   int matriz[max][max];
   int x1[max]; 
   int x2[max]; 
   int y1[max];
   int y2[max];
   int k[max];


   //entrada da primeira linha
   while ((n<1 || n>50) && (m<1 || m>50) && (q<1 || q>50))
   {
    cin>>n>>m>>q;
   }

   //zerando matriz
   for (int i=0; i<n; i++)
   {
        for (int j=0; j<m; j++)
        {
            matriz [i][j]=0;
        }
   }

    //vetor de cor e de operacao
   i=0;
    while (i<q)
    {
        x1[i]= -1;
        x2[i]= n;
        y1[i]= -1;
        y2[i]= m;
        k[i]= 0;
    }
    i=0;

    //recebendo as coordenadas
    while (i<q)
    {
        while ( (x1[i]<0 || x1[i]>x2[i]) && 
                (x2[i]>=n) && 
                (y1[i]<0 || y1[i]>y2[i]) &&
                (y2[i]>=m) && (k[i]<1 || k[i]>9))
        {
            cin>>x1[i]>>y1[i]>>x2[i]>>y2[i]>>k[i];
        }
        i++;
    }

    //pintando a paradinha
    for (int i=0; i<q; i++)
    {
        for (int a=x1[i]; a<=x2[i]; a++)
        {
            for (int b=x1[i]; b<y2[i]; b++)
            {
                matriz[a][b] = k[i];
            }
        }
    }

    //imprimindo a matriz
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<m; j++)
        {
            if (j== m-1)
            {
                cout<< matriz[i][j]<<endl;
            }
                else 
                {
                    cout<<matriz[i][j]<<endl;
                }
        }
    }

return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Werlang
      Olá. Sou o criador da plataforma gladCode, onde você cria gladiadores desde sua aparência, atributos físicos e mentais até a programação de seu comportamento, e os coloca para lutar contra gladiadores de outros jogadores em uma arena virtual.A programação do comportamento deles conta com uma série de funções, e uma vez dentro da arena eles se comportam de maneira autônoma, sem intervenção de seu mestre.
      Segue o link para o vídeo promocional da plataforma:
       
       
      Visitem a gladCode no site https://gladcode.tk
      Ou a página do Facebook: https://www.facebook.com/gladcode/
      Seria uma honra ter a visita de vocês no site, bem como esclarecer todas suas dúvidas.
       
    • Por MateusOFCZ
      Olá, gostaria de saber como eu faço para mostrar uma imagem diferente ao acessar o site...
      Eu precisaria mostrar a imagem linkada, ou seja, quando clickar na imagem ela levará você para um link, porém cada imagem tem um link diferente, como faço isso?
      Caso você não tenha entendido seria uma espécie de "anúncios" em meu site, toda vez que reentrar nele irá mostrar uma imagem diferente, e essa imagem será linkada, e os links também serão diferentes um do outro.
    • Por anderx
      Prezados, boa tarde.
       
      Eu estou fazendo um programa em C que o usuário digite uma sequencia de caracteres e imprima somente valores numéricos e também mostrar os seus respectivos valores correspondentes a tabela ASC. Eu utilizei dois vetores , um para receber os caracteres e um outro para copiar apenas os valores numéricos, mas eu não estou conseguindo transferir somente os valor numéricos para o outro vetor. Alguém tem alguma dica de como posso transferir somete os números ? O código abaixo: 
       
      #include <stdio.h>
      #include <string.h>
      int main () {
      char str1[30] ={0};
       int str2[30];
      int i=0;
      scanf ("%s",str1);
      for(i=0; i<strlen(str1);i++) {
        str1*=1;
      str2=str1;

      printf("%c : : %d\n",str2,str2);
      }
          return 0;
      }
       
    • Por Yuri Fernandes da Silva
      Olá, sou um membro novo do fórum e estou estudando por conta a linguagem c++ pela internet..
       
      Durante meus estudos, me surgiu uma dúvida em relação ao conteúdo descrito no título desse fórum, mais especificamente com um compilador online (estudo no meu serviço, nos horários vagos)
       
      Essa foi a mensagem de erro que apareceu no compilador Online "C++ Shell":   In function 'int main()': 10:66: error: expected primary-expression before '<' token
       
      Esse foi o código que criei:
       
       
      //Exercício 
      #include <iostream>
      using namespace std;
      int main ()
      {
          int num;
          
          num=12;
          if ((num >=3 && num <=6) || (num > 9 && num < 15) || (num>15 && <20)) {
              cout <<"\n\nValor aceito\n";
          }else{
              cout <<"\n\nnao aceito\n";
          }
          return 0;
      }
       
       
      Agradeço desde já a atenção.
    • Por Lincoln Ferreira de Jesus
      Olá, estou começando a aprender a linguagem c++ e eu gostaria de saber alguns exemplos de jogos feitos com puro c++ sem engine nem nd. Pra eu ter uma noção de quanto um desenvolvedor vai sem usar uma engine =) obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.