[Pascal] Proble z bazą danych, źle działa

0

Witam,
uczę się aktualnie Pascala z dobrego kursu w necie. Teraz skończyłem przerabiać podstawy bazy danych i chciałem trochę udoskonalić tą, dołączoną do kursu. Chciałem zrobić, aby można było swobodnie poruszać sie między "kontaktami" (poprzedni, następny), ale coś nie działa, niewiem czemu. Gdzy dodam pierwszy kontakt, program przeskakuje do podglądu, i to do jakiegoś pustego kontaktu, a powinien wrócić do menu.

Oto Kod

Uses CRT;                                                      {1}
                                                               {2}
Var                                                            {3}
  Imie,nazwisko,telefon:array[1..30] of string;                {4}
  c,c2:char;                                                   {5}
  iloscosob:byte;                                              {6}
  t1:byte;                                                     {7}
  nawigacja:Char;                                              {8}
                                                               {9}
PROCEDURE Wprowadz;                                            {10}
Begin                                                          {11}
  ClrScr;                                                      {12}
  Iloscosob:=iloscosob+1;                                      {13}
  Write('Imie : ');                                            {14}
  ReadLn( imie[iloscosob] );                                   {15}
  Write('Nazwisko : ');                                        {16}
  ReadLn( nazwisko[iloscosob] );                               {17}
  Write('Telefon : ');                                         {18}
  ReadLn( telefon[iloscosob] );                                {19}
End;                                                           {20}
                                                               {21}
PROCEDURE Wyswietl;                                            {22}
Begin                                                          {23}
 Repeat                                                        {24}
  ClrScr;                                                      {25}
  WriteLn('Imie     : ',imie[t1] );                            {26}
  WriteLn('Nazwisko : ',nazwisko[t1] );                        {27}
  WriteLn('Telefon  : ',telefon[t1] );                         {28}
  WriteLn;                                                     {29}
  WriteLn('1 - Poprzedni    |    Nastepny - 2');               {30}
  WriteLn('          Powrót do menu - 3');                     {31}
   Repeat                                                      {32}
    Read(nawigacja);                                           {33}
   Until (nawigacja='1') Or (nawigacja='2') Or (nawigacja='3');{34}
  If nawigacja='1' Then t1:=t1+1;                              {35}
  If nawigacja='2' Then t1:=t1-1;                              {36}
  Until nawigacja='3';                                         {37}
End;                                                           {38}
                                                               {39}
Begin                                                          {40}
  Iloscosob:=0;                                                {41}
  Repeat                                                       {42}
  ClrScr;                                                      {43}
  WriteLn('1. Nowy wpis');                                     {44}
  WriteLn('2. Wyswietlenie wpisu');                            {45}
  WriteLn('3. Koniec programu');                               {46}
    Repeat                                                     {47}
      c:=readkey;                                              {48}
    Until (c>='1') AND (c<='3');                               {49}
  If c='1' Then Wprowadz;                                      {50}
  If c='2' Then                                                {51}
   Repeat                                                      {52}
    ClrScr;                                                    {53}
    Write('Numer wpisu ? (1..', iloscosob ,') :');             {54}
    ReadLn(t1);                                                {55}
   Until (t1>=1) AND (t1<=iloscosob);                          {56}
   Wyswietl;                                                   {57}
  Until c='3';                                                 {58}
End.                                                           {59}

Dla ułatwienia ponumerowałem linijki :D

Mam nadzieję, że ktoś będzie mi w stanie pomóc, bo utknąłem w miejscu :( Kombinowałem długo, niewiem w czym problem.

Z góry dzięki

0
profesorek92 napisał(a)

...Gdzy dodam pierwszy kontakt, program przeskakuje do podglądu, i to do jakiegoś pustego kontaktu, a powinien wrócić do menu.

pewnie dlatego że na poczatku zmienna t1 wskazuje na "nieawiadomoco" :P

0
Misieksoft napisał(a)
profesorek92 napisał(a)

...Gdzy dodam pierwszy kontakt, program przeskakuje do podglądu, i to do jakiegoś pustego kontaktu, a powinien wrócić do menu.

pewnie dlatego że na poczatku zmienna t1 wskazuje na "nieawiadomoco" :P

To akurat na pewno nie. t1 zdefiniowane jest w 52 linijce, ale dzięki za próbe pomocy.

Posiedziałem jeszcze 20 min i udało mi się to naprawić, działa :)

Więc temat raczej do wyloty. Proszę moda o usunięcie :)

0

To akurat na pewno nie. t1 zdefiniowane jest w 52 linijce, ale dzięki za próbe pomocy.

Posiedziałem jeszcze 20 min i udało mi się to naprawić, działa :)

Więc temat raczej do wyloty. Proszę moda o usunięcie :)

EDIT

sory, w 55 linijce

0

ot, następnym razem napisz ( [glowa] ):

<code class="delphi">tutaj kod</code>
i będziesz mieć kod z pokolorowaną składnią i ponumerowanymi linijkami automatycznie ...

uses cos;

begin
  write('test');
end.
0
profesorek92 napisał(a)

To akurat na pewno nie. t1 zdefiniowane jest w 52 linijce, ale dzięki za próbe pomocy.

Mów do słupa słup jak d...
Choćby nawet było zdefiniowane w 69 linijce a ta linijka nie zostanie wywołana poniewaz nie spełniony jest warunkek wcisniencia klawiasza "2" to GUZIK CI Z TEJ DEKLARACJI

Jezeli potrafisz to przesledz działanie programu krok po kroku isam zobaczysz że ten kawałek kody w którym jest ta deklaracja jest pomijany podczas dodawania nowego rekordu.

A jezeli nie umiesz to musisz mi uwierzyc. I można to załatwic jedna linjkką kodu tak gdzie na poczatku programu ustawiasz ilośc na 0 tam eż ustaw t1 na 1.

Posiedziałem jeszcze 20 min i udało mi się to naprawić, działa :)

Kiedys musiało sie udac :D

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