• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tablica 2D - Wyswietlanie liczb wiekszych niz 5, parzystych, podzielnych przez 6...

Object Storage Arubacloud
0 głosów
494 wizyt
pytanie zadane 24 marca 2020 w C i C++ przez matt21mcr Nowicjusz (220 p.)
edycja 24 marca 2020 przez matt21mcr

Witam,

Napisalem czesc programu, wypelniajacy tablice 7x8 liczbami losowymi calkowitymi z zakresu od -5 do 256. Na wyjsciu ma program wyswietlac:

1. Wszystkie elementy wieksze od 5...
2. Znaleźć wszystkie elementy parzyste i je wywietlić
3. Znaleźć liczby podzielne przez 6 i je pokazac
4. Znaleźć wszystkie elementy mniejsze od zera i pokazać.

W miarę mozliwosci uzywac funkcje.

Na ten moment mam taki kod:

#include <iostream>
#include <time.h>
#include <cstdlib>
#include <windows.h>
#define MAXRAND 66;
#define SIZE 6;
using namespace std;
int main() {
   
    int x, y;
    int rand_tab[ 7 ][ 8 ];
    {
       
        cout << "Tablica 7x8 o przedziale losowych liczb od -5 do 256" << endl << endl;
        srand( time( 0 ) );
        for( y = 0; y < 7; y++ )
        {
            for( x = 0; x < 8; x++ )
            {
                rand_tab[ y ][ x ] =(( rand() % 251 ) - 5 );
               
                cout << rand_tab[ y ][ x ] << " ";
            }
            cout << endl;
        }
       
       
       
    } return 0;
}

Z góry dziękuję za jakąkolwiek pomoc w rozwiązaniu tych zadan.

Próbuję np. w ten sposób:

for( p1 = 0; p1 < 251; p1++ )
{
    for( p2 = 0; p2 < 251; p2++ )
    {
        if(( tab[ y ] ) > a &&( tab[ x ] ) > b )
        {
            cout << tab[ y ] <<;
        }
    }
}

ale no wiem, że to nie jest własciwe wyjscie...

 

Pozdrawiam :-)

komentarz 24 marca 2020 przez tkz Nałogowiec (42,000 p.)
Piszesz w C, czy C++? Czy cztery punkty mają być jednym, czy na wyjściu mają być 4 różne zbiory?

3 odpowiedzi

0 głosów
odpowiedź 24 marca 2020 przez DragonCoder Nałogowiec (36,500 p.)

Nie napisales w czym dokladnie masz problem. Jako ze wiesz jak dziaja tablice i petle to:

1. Przelatujesz cala tablice w petli for i porownujesz czy dany elemnt jest wiekszy od 5, jesli tak to go wyswietlasz/zapisujesz w innej tablicy itd

2. lecisz przez tablice i uzywasz operacji modulo %, mysle, ze definicje liczb parzystych znasz

3. znowu modulo, choc teoretycznie kazda z liczb bedzie podzielna przez 6, ale z reszta, a Ty chyba chcesz bez reszty

4. podpunkt 1. tylko ze mniejsze od 0

W miarę mozliwosci uzywac funkcje.

Opakuj kazdy z tych podpunktow przekazujac tablice 2D.

0 głosów
odpowiedź 24 marca 2020 przez matt21mcr Nowicjusz (220 p.)
W C++. Najlepiej, gdyby to były funkcje, czyli gdyby przy wyjsciu byly od razu wszystkie 4 zbiory, ale niekoniecznie.... Nie mam punktu zaczepienia :-(
0 głosów
odpowiedź 24 marca 2020 przez tangarr Mędrzec (154,860 p.)

Przerobiłem twój kod, tak aby nakierować cię na używanie funkcji.

#include <iostream>
#include <time.h>
#include <stdlib.h>

using namespace std;

constexpr int m = 8;
constexpr int n = 7;

int losuj(int min, int max) {
    return rand() % (max - min + 1) + min;
}

void losujElementyTablicy(int tablica[m][n], int min, int max) {
    cout << "Tablica " << n << "x" << "8 o przedziale losowych liczb od " << min << " do " << max << endl << endl;
    for( int y = 0; y < m; y++ ) {
        for( int x = 0; x < n; x++ ) {
            tablica[y][x] = losuj(min, max);
            cout << tablica[y][x] << " ";
        }
        cout << endl;
    }
}

void wypiszLiczbyWiekszeNiz5(int tablica[m][n]) {

}

void wypiszParzysteLiczby(int tablica[m][n]) {
    
}

void wypiszLiczbyPodzielnePrzez6(int tablica[m][n]) {
    
}

void wypiszLiczbyMniejszeOd0(int tablica[m][n]) {
    
}

int main() {
    const int min = -5;
    const int max = 256;
    
    srand(time(0));
    
    int rand_tab[m][n];
    losujElementyTablicy(rand_tab, min, max);
    
    wypiszLiczbyWiekszeNiz5(rand_tab);
    wypiszParzysteLiczby(rand_tab);
    wypiszLiczbyPodzielnePrzez6(rand_tab);
    wypiszLiczbyMniejszeOd0(rand_tab);
    
    return 0;
}

Jedyne co musisz zrobić to zaimplementować puste funkcje.
Jak skończysz to podziel się kodem. Wtedy pokaże ci jak to można zgeneralizować jeszcze bardziej (Niech żyją funkcje! Nigdy więcej ctrl+c, ctrl+v).

komentarz 25 marca 2020 przez matt21mcr Nowicjusz (220 p.)

Problem z debugera wyswietla sie taki:

// function definition is not allowed here //

Są trzy bledy, obowiazuja one:

-Wypisz liczby podzielne przez 6
-Wypisz liczby mniejsze od 0
-Główną funckję main()

Wszystkiego probowalem... :-(

komentarz 25 marca 2020 przez matt21mcr Nowicjusz (220 p.)
using namespace std;

constexpr int m = 8;
constexpr int n = 7;

int losuj(int min, int max) {
    return rand() % (max - min + 1) + min;
}

void losujElementyTablicy(int tablica[m][n], int min, int max) {
    cout << "Tablica " << n << "x" << "8 o przedziale losowych liczb od " << min << " do " << max << endl << endl;
	for( int y = 0; y < m; y++ ) {
		for( int x = 0; x < n; x++ ) {
			tablica[y][x] = losuj(min, max);
			cout << tablica[y][x] << " ";
		}
		cout << endl;
	}
}

void wypiszLiczbyWiekszeNiz5(int tablica[m][n]) {
	cout << "Wykaz liczb większych, niż cyfra 5" << endl;
	for( int y = 0; y < m; y++ ) {
		for( int x = 0; x < n; x++ ) {
			if( tablica[ y ][ x ] > 5 )
			 cout << tablica[ y ][ x ] << " ";

		}
		cout << endl;
	}
}

void wypiszParzysteLiczby(int tablica[m][n]) {
  cout << "Wykaz liczb parzystych z macieży" << endl;
  for( int y = 0; y < m; y++ ) {
		for( int x = 0; x < n; x++ ){
		if(tablica[y][x]%2==0)
		{
			cout<<tablica[y][x]<<" ";
		}
		cout << endl;
	}
}


void wypiszLiczbyPodzielnePrzez6(int tablica[m][n]) {

}

void wypiszLiczbyMniejszeOd0(int tablica[m][n]) {

}
int _tmain(int argc, _TCHAR* argv[]) {
    const int min = -5;
    const int max = 256;

    srand(time(0));

    int rand_tab[m][n];
    losujElementyTablicy(rand_tab, min, max);

	wypiszLiczbyWiekszeNiz5(rand_tab);


    wypiszParzysteLiczby(rand_tab);
    wypiszLiczbyPodzielnePrzez6(rand_tab);
    wypiszLiczbyMniejszeOd0(rand_tab);

	system("Pause");

    return 0;
}
}

 

komentarz 25 marca 2020 przez matt21mcr Nowicjusz (220 p.)
Po wyłączeniu tej funkcji, program startuje bez problemu wiec zastanawiam sie, gdzie moze byc problem w tym przypadku...
komentarz 25 marca 2020 przez matt21mcr Nowicjusz (220 p.)
Miales racje, brakowało ' } '.

Teraz jeszcze dwie funkcje, bede probowal... :-)
komentarz 25 marca 2020 przez matt21mcr Nowicjusz (220 p.)
Ukonczone, uklony!!! :-)

Podobne pytania

+2 głosów
3 odpowiedzi 1,203 wizyt
0 głosów
0 odpowiedzi 123 wizyt
0 głosów
1 odpowiedź 834 wizyt
pytanie zadane 21 listopada 2020 w Matematyka, fizyka, logika przez kornelia Nowicjusz (120 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...