rafaello503 Temat założony przez niniejszego użytkownika |
tablica dwumiarowa » 2017-02-13 11:39:39 Witam, potrzebuje waszej pomocy w napisaniu programu który będzie losował cyfry ze zbioru cyfr: {1,2,3,4,5,6,7,8,9}. Cyfry w losowaniu mogą sie powtarzać.
Działanie programu: a) Wyświetli nazwę programu, datę utworzenia i autora b) Zadeklaruje tablicę dwumiarową 5x26 (5kolumn i 26 wierszy) c) wprowadzana jest liczba wierszy która będzie wypełniona liczbami. (zabezpiecz aby nie dało się wprowadzić liczby większej od liczby wierszy) d) Zdefiniuj funkcję z parametrem (parametr ustala liczbę wypełnionych wierszy w tablicy) e) W ostatnim wierszu umieści sumy każdej kolumny tablicy f) Wyświetli cała tablicę z podsumowaniem na ekranie (wiersze tablicy w oddzielnych liniach jedne pod drugą)
Wiem że może to nie jest trudne ale to nie moja dziedzina i dla mnie to czarna magia. Serdecznie dziękuje z góry za pomoc.
/edit: Wiadomość przywrócona przez administratora. |
|
latajacaryba |
» 2017-02-13 11:45:20 Rozumiem, że liczby mają być losowane do komórek tablicy (1-9)? PS. d) Zdefiniuj funkcję z parametrem (parametr ustala liczbę wypełnionych wierszy w tablicy) |
Rozumiem, że ta funkcja dostaje info ile ma być wypełnionych komórek w danym wierszu i wypełnia je losowymi liczbami 1-9? |
|
rafaello503 Temat założony przez niniejszego użytkownika |
» 2017-02-13 11:51:36 * |
|
latajacaryba |
» 2017-02-13 12:16:46 Mam nadzieję, że o to chodziło. Powinno być dobrze, ale nie lubie zbytnio korzystać z tablic wielowymiarowych więc na wszelki wypadek sprawdź ;) #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
bool Wypelnij( int tabl[][ 5 ], int liczba_w, int kol ) { srand( time( NULL ) ); if( liczba_w > 25 || kol > 4 ) { cout << "zbyt duza liczba kolumn lub wierszy\n"; return false; } tabl[ liczba_w ][ kol ] = 0; for( int i = 0; i < kol; i++ ) { tabl[ liczba_w ][ i ] =(( rand() % 9 ) + 1 ); tabl[ liczba_w ][ kol ] += tabl[ liczba_w ][ i ]; } return true; }
int main() { int tab[ 26 ][ 5 ] = { 0, 0, 0, 0, 0 }; Wypelnij( tab, 1, 4 ); for( int i = 0; i < 5; i++ ) cout << tab[ 1 ][ i ] << endl; return 0; }
Działanie - do funkcji podajesz wiersz i liczbę kolumn które mają być wypełnione. Masz 5 komórek [] [] [] [] [] A w ostatniej ma być suma poprzednich, wiec np. (a) (b) (c) (a+b+c) (0) Nie robiłem zabezpieczeń typu wpisanie liczby mniejszej niż 1 itp. [/b] |
|
rafaello503 Temat założony przez niniejszego użytkownika |
» 2017-02-13 12:24:47 * |
|
latajacaryba |
» 2017-02-13 12:24:49 Nie do końca rozumiem, przecież funkcja wpisuje liczby w kolmuny które sam wybierasz. Może być jedna a mogą być 4. Chyba, że chodzi Ci o samo wyświetlanie? |
|
rafaello503 Temat założony przez niniejszego użytkownika |
» 2017-02-13 12:27:53 * |
|
latajacaryba |
» 2017-02-13 12:32:37 Jeśli chcesz, by program losował liczby do komórek, w ostatniej podawał sumę i wyświetlił je wszystkie to spoko, tylko nie naraz, musimy wstawić instrukcje Sleep, bo inaczej zestawy liczb będą się powtarzać, zamień main'a na to: int main() { int tab[ 26 ][ 5 ] = { 0, 0, 0, 0, 0 }; for( int i = 0; i < 26; i++ ) { Wypelnij( tab, i, 4 ); Sleep( 1000 ); for( int j = 0; j < 5; j++ ) { cout << "tab[" << i << "]" << "[" << j << "] : " << tab[ i ][ j ] << endl; if( j == 4 ) cout << endl; } } return 0; }
PS. dodaj bibliotekę windows.h #include <windows.h> Jeśli to nie jest to, to przykro mi, masz bazę pod program, jeśli chcesz zmienić ilość wyświetlanych wierszy/kolumn wystarczy pozmieniać kilka cyferek. |
|
« 1 » 2 |