Witam. Mam następujący problem: Mam plik tekstowy w którym zapisane są ciągi 0 i 1 o długości 10. I mam tablicę jednowymiarową rekordów o dług10(a,b:integer; i code:boolean). Pola tablicy wyglądają następująco: 1,2; 1,3; 1,4; 1,5; 2,3; 2,4; 2,5; 3,4; 3,5; 4,5;. I na początku pole code = false. Chodzi o to aby wczytać wartość pliku i jeśli =1 to pierwszy rekord tablicy przenieść na jej koniec i code=true, a jeśli =0 to sprawdzać następny element pliku i jeśli =1 to znowu przepisać odpowiadający mu rekord. Niestety coś mi nie wychodzi i źle zamienia pola w tablicy i je wypisuje(np. wszystkiepola code=true pomimo że nie wystąpiła w tym miejscu jedynka. No i program ma wypisywać rekord tablicy tylko jeśli code =true(czyli ma wypisać tyle par liczb ile jest jedynek w ciągu). Proszę o pomoc.
Nie udaje mi się zrozumieć za chińskiego, co program próbuje zrobić.
Masz straszną plątaninę w kodzie, funkcje używają zmiennych globalnych oraz parametrów, nigdzie nie ma początkowych ustawień co do zmiennych globalnych.
Najprościej jak potrafię: Program ma wczytać z pliku ciąg 0 i 1 o 10 elementach. I w tablicy E o długości 10 ma “poprzestawiać” elementy które odpowiadają 1 w ciągu. Czyli jeśli 1 występuje na 1,2 i 7 miejscu ciągu to w tablicy E elementy 1,2 i 7 mają zostać przeniesione na koniec tablicy i podstawić pod te 3 elementy code:=true; I wypisać te elementy na konsoli.
Tablica E ma składowe a,b -> co ma być w tych a i b?
Może lepiej rozpisz co oczekujesz w tablice E dla pliku wejściowego:
1100000000
1000000001
0000000110
skąd mają pochodzić te dane w tablice E dla czego taka a nie inna kolejność;
funkcja init tworzy w tablice E rekordy: 1,2 1,3 1,4 1,5 2,3 2,4 2,5 3,4 3,5 4,5
nie rozumiem co to ma wspólnego z ilością rekordów=3 ani ilością kolumn=10
EDIT:
Nie rozumiem też poco te rekordy przenosić jeżeli wypisując wyniki i tak pomijasz wszystkie gdzie code jest false, jaka różnica pomijać te na początku czy te na końcu? Może prościej napisz na GG.