"Nietykalny" element tablicy

0

Witam wszystkich - dopiero zaczynam swoją przygodę z programowaniem i napotkałem problem, za który nie wiem jak się zabrać. Poszukałem trochę na ten temat ale niestety nie znalazłem odpowiedz. Otóż sprawa wygląda następująco.

Mój program pobiera już wypełnioną tablicę z pliku tekstowego - dajmy na to taką:

int tablica [10] = {0, 3 ,6 ,0, 2, 5, 11, 7, 0, 9};

Chciałbym móc przeprowadzać na tej tablicy różne operacje. Dla przykładu zmieniać wartości jej elementów. Oczywiście problem jest trywialny, niestety jest jeden haczyk- nie mogę zmieniać komórek, które mają już przypisaną wartość (czyt. różną od zera).
Powiedzmy jeśli chciałbym zrobić tak:

tablica[0] = 1;  //zmiana wartości 0 na wartość 1

a potem

tablica[0] = 0; // zmiana z powrotem na wartość 0

To program wykona tą instrukcje, jednak jeśli chicałbym zrobić w ten sposób:

tablica[1] = 4 //zmiana wartości 3 na 4

lub

tablica[1] = 0 //zmiana wartości 3 na 0

To program wyświetli komunikat o tym, że nie może zmieniać treści początkowej zadania.
Nie wiem jak mógłbym zaimplementować taki warunek, który mówiłby programowi, że wartości już nadpisanych nie może w żaden sposób zmieniać.
Mam nadzieję, że wszystko przedstawiłem dosyć jasno - chodzi mi o język C++

1

Zrób sobie klasę która będzie zarządzała tą tablicą.
Udostępnij na zewnątrz funkcję np: setValue(int index, int value) która będzie ustawiała wartość po wcześniejszym sprawdzeniu czy aktualna wartość jest zerowa i można ją zmienić czy nie.

1

Druga tablica booleanów o rozmiarze tej tablicy z intami, która jest inicjalizowana na początku zależnie od każdego elementu z tablicy z intami a potem sprawdzanie przy próbie zapisu do tablicy z intami czy dany element w tablicy z booleami jest false czy true i powinno działać zgodnie z oczekiwaniami.

0

Podsunęliście mi pewien pomysł i zrobiłem kopie mojej tablicy. Następnie w warunku if porównywałem wartości elementów kopii i jeśli były różne od zera to program wyrzucał wspomniany komunikat - czyli wszystko działa tak jak powinno i wyszło super. Dziekuje bardzo :-)

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