Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

tablica dwumiarowa

Ostatnio zmodyfikowano 2017-02-14 19:55
Autor Wiadomość
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.
P-157635
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?
P-157636
rafaello503
Temat założony przez niniejszego użytkownika
» 2017-02-13 11:51:36
*
P-157638
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ź ;)

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

bool Wypelnij( int tabl[][ 5 ], int liczba_w, int kol ) // wiersz, tablica, bool - czy udalo sie wypelnic
{
    srand( time( NULL ) );
    if( liczba_w > 25 || kol > 4 ) //0,1,2,3   - 4 na sume
    {
        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]
P-157641
rafaello503
Temat założony przez niniejszego użytkownika
» 2017-02-13 12:24:47
*
P-157642
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?
P-157643
rafaello503
Temat założony przez niniejszego użytkownika
» 2017-02-13 12:27:53
*
P-157644
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:
C/C++
int main() {
    int tab[ 26 ][ 5 ] = { 0, 0, 0, 0, 0 };
    for( int i = 0; i < 26; i++ ) // wyswietla wszystkie weirsze, zmien na 22 a wyswietli wiersze od 0 do 21
    {
        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.
P-157645
« 1 » 2
  Strona 1 z 2 Następna strona