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

Rozmiar tablicy

Ostatnio zmodyfikowano 2014-03-08 23:49
Autor Wiadomość
BrutalxD
Temat założony przez niniejszego użytkownika
» 2014-03-07 00:36:43
Ale mi chodzi o powiększenie miejsca w strukturze, a nie poprawiania połowy całkiem sporego programu, ponadto nie jestem obyty z wektorami i obczajenie istoty errora by mi zajęło trochę czasu.
P-105788
pekfos
» 2014-03-07 08:38:00
Akurat z 'istotą errora' nie powinieneś mieć żadnych problemów. To jeden z popularniejszych typów błędów.
Zamiast przekazywać tablica, przekazuj tablica.data(), lub zmień oczekiwany przez funkcję typ na std::vector<Rozwiazania>&.
P-105789
Adik80
» 2014-03-07 12:32:16
Albo poprostu stworz tablice na stercie:
Rozwiazanie * tablica = new Rozwiazanie[ 1000000 ];

+ gdzies na koncu main dodac delete [] tablica;
P-105800
BrutalxD
Temat założony przez niniejszego użytkownika
» 2014-03-08 18:09:53

Adik80 chodzi Ci o to, żeby zrezygnować ze struktury i zastąpić ją tablicą dynamiczną? Czym się różniej takowa tablica od trójwymiarowej?

pekfos nie zrozumiałem tego co napisałeś. Co to znaczy " przekazuj tablica.data(), lub zmień oczekiwany przez funkcję typ na std::vector<Rozwiazania>&." nie jestem w stanie zrozumieć tego zdania. Próbuję wklejać podane przez was linijki kodu do mojego programu, ale najwidoczniej gdzieś popełniam błąd.

C/C++
#include<iostream>
#include<windows.h>
using namespace std;
//struktura
struct Rozwiazania
{
    unsigned sudoku[ 9 ][ 9 ];
};

//Tutaj występują funkcje liczące


// Cały main
main()
{
    char znak;
    cout << "\n\n\n";
    unsigned const N = 6300; // max to 6433, program się wyłącza jak się zwiększy
    Rozwiazania tablica[ N ];
    unsigned ilosc = 0;
    do
    {
        cout << "Opcje programu: \n";
        cout << "Rozwiazywanie Sudoku - nacisnij r\n";
        cout << "Generowanie Sudoku - nacisnij g\n";
        znak = getch();
        switch( znak )
        {
        case 'r': rozwiazywanie( tablica, ilosc ); break;
        case 'g': generowanie( tablica, ilosc ); break;
        case 27: break;
        default: cout << "Nieprawidlowy klawisz!\n"; break;
        }
    }
    while( znak != 27 );
   
    return 0;
}

 Jeśli mógłbym prosić to napiszcie w podanym kodzie jak to ma wyglądać, bo szczerze mówiąc trochę na ślepo nanoszę poprawki. A jeśli chodzi o zmianę unsigned sudoku na char sudoku, to program wypisuje zamiast cyfr jakieś buźki, trefle, serduszka i inne znaczki.
P-105872
Monika90
» 2014-03-08 21:28:02
Na początku pliku dopisz #include <vector>
Przed main dopisz int.
Rozwiazania tablica[ N ]; zmień na vector<Rozwiazania> tablica(N);
Funkcje wywołuj, tak:
  rozwiazywanie( &tablica[0], ilosc );
  generowanie( &tablica[0], ilosc );

i chyba będzie OK.
C/C++
#include <vector>
#include<iostream>
#include<windows.h>
using namespace std;
//struktura
struct Rozwiazania
{
    unsigned sudoku[ 9 ][ 9 ];
};

//Tutaj występują funkcje liczące


// Cały main
int main()
{
    char znak;
    cout << "\n\n\n";
    unsigned const N = 6300; // max to 6433, program się wyłącza jak się zwiększy
    vector < Rozwiazania > tablica( N );
    unsigned ilosc = 0;
    do
    {
        cout << "Opcje programu: \n";
        cout << "Rozwiazywanie Sudoku - nacisnij r\n";
        cout << "Generowanie Sudoku - nacisnij g\n";
        znak = getch();
        switch( znak )
        {
        case 'r': rozwiazywanie( & tablica[ 0 ], ilosc ); break;
        case 'g': generowanie( & tablica[ 0 ], ilosc ); break;
        case 27: break;
        default: cout << "Nieprawidlowy klawisz!\n"; break;
        }
    }
    while( znak != 27 );
   
    return 0;
}


A jeśli chodzi o zmianę unsigned sudoku na char sudoku, to program wypisuje zamiast cyfr jakieś buźki, trefle, serduszka i inne znaczki.
Przy wyświetlaniu rzutuj na int.
P-105888
BrutalxD
Temat założony przez niniejszego użytkownika
» 2014-03-08 23:49:43
Wybornie, wszystko śmiga prawidłowo. Wielkie dzięki wszystkim za pomoc :)
P-105900
1 « 2 »
Poprzednia strona Strona 2 z 2