Przywrócenie pierwotnej tablicy

0

Piszę kilkanaście mniejszych programów w jednym dużym programie, każdy korzystający z wczytanej tablicy. Np. wczytuje sobie
1 0 5 -6 7
po czym pierwszy program sortuje je np. malejąco, ale w kolejnym chciałbym sprawdzić monotoniczność podanego ciągu. No i tu pojawia się problem, bo program zapamiętuje już te posortowane liczby, a ja chciałbym by sprawdzał to odnośnie tych pierwotnie wczytanych liczb. I podobnie jest z późniejszymi programami. Czy jest jakieś polecenie, które przy każdym kolejnym programie wracało mi do pierwotnej tablicy?

0

Stwórz zmienną temp w której przechowuj oryginalny ciąg.

0

Tak, w podprogramach operować na kopii tej tablicy a nie na jej oryginale. Albo po każdym programie resetować ją do stanu wyjściowego...

0
Ylv napisał(a)

Piszę kilkanaście mniejszych programów w jednym dużym programie, każdy korzystający z wczytanej tablicy.

Najlepszym rozwiązaniem jakie przychodzi mi do głowy to wczytanie danych do macierzy, po czym poszczególnego mniejsze programiki nie modyfikują jej, odczytują jedynie informacje i operują na jej kopii; Podstawowa macierz będzie nietykalna, a kopie bardzo łatwo i szybko zrobić;

Np. wczytujesz w mniejszym programiku podstawową macierz przez parametr bez słów var czy out i możesz ją dowoli modyfikować, przy czym oryginał pozostanie bez zmian, a w ciele procedury/funkcji macierz będzie np. posortowana;

Jednak nic więcej nie mogę napisać na ten temat, ponieważ musiałbym poznać budowę całego programu (także tych mniejszych, które korzystają z oryginalnej macierzy);

0

Nie wiem czy to ma jakieś znaczenie, ale nie piszę żadnych procedur ani funkcji, tylko wszystkie polecenia są zawarte w bloku begin end. a w uses deklaruje tylko zmienne. A czy ten problem mozna rozwiązać poprzez wskaźniki?

2

Nie. Ten "problem" można rozwiązać za pomocą MYŚLENIA. Zdeklaruj dwie tablice. Do jednej wczytaj dane wejściowe. Następnie skopiuj je do drugiej. I teraz przed każdym sortowaniem kopiuj dane z tej pierwszej tablicy do drugiej (a sortuj oczywiście tą drugą). Gdybyś dodatkowo postanowił jednak nauczyc się funkcji/procedur (wiem wiem, musiałbyś przeczytać drugą stronę z kursu, a to zajęłoby niebagatelne 5 minut) to byłoby znacznie prościej.

0

wiem na czym polegają funkcję i procedury, ale nie chcę ich stosować w tym programie

0
Ylv napisał(a)

wiem na czym polegają funkcję i procedury, ale nie chcę ich stosować w tym programie

No to już jest przesada... Kto nie myślący jak neandertalczyk powiedziałby, że stosowanie procedur/funkcji się nie opłaca w jakimkolwiek programie...?! Takich jaj jeszcze nie widziałem;

W sumie... Procedury i funkcje jedynie pozwalają na uniknięcie dublowania kodu wykonującego stricte to samo (reguła DRY), skracają długość kodu i pozwalają zwiększyć jego czytelność; Zbyt mało zalet by je na bieŻąco (Boże, widzisz takie błędy i nie grzmisz) stosować...

Ciekaw jestem jak ten Twój program wygląda i o ile możnaby go zoptymalizować stosując właśnie odpowiednie procedury/funkcje;

Ylv napisał(a)

więc nie znam się na tym za bardzo [...] rozumiem, że mogę irytować swoimi banalnymi pytaniami lepszych ode mnie w tej kwestii, ale chyba po to jest forum dla noobów?

Skoro nie znasz się na tym za bardzo, to nie kwestionuj podpowiedzi kolegów trochę starszych po fachu; Zrozum, że zastosowanie ich w programie sprawi, że łatwiej będzie Ci się odnaleźć w kodzie, czyli będziesz w całości panował nad nim, a nie zastanawiał się i pytał na forum o banały; A jeśli chodzi o forum dla noob'ów - wybacz, ale noob'y w tym dziale nie są zwolnieni z myślenia;

1 użytkowników online, w tym zalogowanych: 0, gości: 1