Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pascal - Sortowanie rekordów w bazie danych

13 Cze 2016 04:46 1134 12
  • Poziom 5  
    siemka
    Mam problem z sortowaniem rekordów w bazie danych. Nie chce mi sie skompilować ponieważ mam gdzieś błąd. Męczę ten temat juz dosyć długo dlatego teraz postanowiłem zwrócić sie o pomoc .
    Kod: pascal
    Zaloguj się, aby zobaczyć kod
  • Poziom 37  
    Szklana kula jeszcze nieczynna, nie wiemy jaki "błąd gdzieś jest".
  • Poziom 5  
    Błąd mam w tej części kodu, chyba że macie inny pomysł na to sortowanie.
    Kod: pascal
    Zaloguj się, aby zobaczyć kod
  • Poziom 37  
    Pawelmyjak napisał:
    Błąd mam w tej części kodu, chyba że macie inny pomysł na to sortowanie.


    Myślę że nie zrozumiałeś o szklanej kuli.
    Jaki błąd, Im bardziej dla Ciebie niezrozumiały, tym bardziej przydatny komuś kto pascal zna.
    To rada dla wszystkich początkujących: chcecie żeby pomóc bo macie "jakiś błąd", ale go nie zamieszczacie. Twórcy kompilatora nie dają komunikatów o błędach aby się znęcać, ale by wskazać, co należy poprawić.

    Ja np nie wkleję kodu i nie spróbuję, bo nie mam platformy pascala, ale kiedyś zęby na tym zjadłem. Myślę że wielu podobnie potrafi pomóc.
  • Poziom 40  
    Ja tam w ogóle nie widzę wywołania procedury sortuj() - z parametrami, które przyjmuje... Po wciśnięciu klawisza 8 wywołujesz jakąś sort, której nie zdefiniowałeś...
    Poza tym nie siedzę w Pascalu, ale jakieś dziwne wydaje mi się to zagnieżdżenie procedury zamien_dane w sortuj.
  • Poziom 5  
    Po kliknięciu 8 program przechodzi do podmenu w którym są różne opcje sortowania których nie mogę zrobić. Trochę przerobiłem program i procedure sortuj ale dalej to nie działa.

    Kod: pascal
    Zaloguj się, aby zobaczyć kod


    A oto błąd kompilatora:
    Code:


    Compile Project, Target: baza.exe: Exit code 1, Errors: 5
    baza.pas(206,11) Error: Type mismatch
    baza.pas(206,21) Error: Type mismatch
    baza.pas(207,15) Error: Type mismatch
    baza.pas(208,15) Error: No default property available
    baza.pas(208,15) Fatal: Syntax error, "THEN" expected but "[" found

  • Poziom 40  
    Dalej obstaję przy tym, że procedura sortuj wymaga podania parametru - przedtem dwóch, teraz jednego... Nie wnikając w to, jak i czy działa, na pewno nie możesz jej wywołać nie podając żadnego parametru:
    Kod: delphi
    Zaloguj się, aby zobaczyć kod
  • Poziom 5  
    Mam podany parametr procedury sortuj, nie mogę dobrze napisać procedury sortuj która ułoży rekordy od najmniejszego do największego.
  • Poziom 37  
    Albo ja czegoś nie rozumiem, albo Ty.
    Jak są biedy kompilacji to o jakim działaniu programu mowa?
    Z poprzedniej wersji źródeł? Niektóre platformy IDE pozwalają na uruchomienie ale w oparciu o poprzednie źródła, i nie robią tego niezauważenie. Jaka jest platforma tego Pascala?
    Sprzeczne parametry też wykluczają, żeby program się kompilował, a w konsekwencji wykonywał.

    Pawelmyjak napisał:
    Mam podany parametr procedury sortuj, nie mogę dobrze napisać procedury sortuj która ułoży rekordy od najmniejszego do największego.


    szczerze, w tym mocno chaotycznym przekazie trudno marzyć, aby cokolwiek napisać. Pomagamy Ci na odległość (czy próbujemy), przy "niezgodnościach zeznań" trudno liczyć na cokolwiek.

    Pawelmyjak napisał:


    A oto błąd kompilatora:
    Code:


    Compile Project, Target: baza.exe: Exit code 1, Errors: 5
    baza.pas(206,11) Error: Type mismatch
    baza.pas(206,21) Error: Type mismatch
    baza.pas(207,15) Error: Type mismatch
    baza.pas(208,15) Error: No default property available
    baza.pas(208,15) Fatal: Syntax error, "THEN" expected but "[" found


    Nie błąd kompilatora, bo on (na tym poziomie) nie ma błędów, tylko błąd kompilacji.

    W liniach 206 do 208 masz problemy, ale wklejony komunikat raczej nie przystaje do źródeł, powstał na jeszcze innych źródłach. Wczorajsze błędy kompilacji do dzisiejszego stanu źródeł to można sobie darować.
  • Użytkownik usunął konto  
  • Poziom 23  
    Jak dla mnie to nie masz zdefiniowanej bezparametrowej procedury Sort, a ją wołasz. To musi dać błąd kompilacji. Procedura w procedurze jest jak najbardziej poprawna, ale nie analizowałem czy to prawidłowo działa.
    Jeżeli masz problem z procedurą sortowania to wyrzuć (zakomentuj) jej zawartość. Niech nic nie robi. Zwalcz błąd kompilacji, a potem dopiszesz (dokopiujesz) resztę.
    Całość robi wrażenie nieprzemyślanej. W kilku miejscach pytasz usera o numer rekordu. Zrób z tego procedurę i wołaj ją tam gdzie jest potrzebna, najlepiej na początku procedury, która wykonuje punkt menu. Tam samo umieściłbym też ClrScr. Sama pętla główna programu ma być prosta. Pomyśl o wykorzystaniu instrukcji case, która jest właśnie do tego.
  • Poziom 10  
    W procedurze "sortuj" parametr r zadeklarowałeś jako rekord ("ksiegarnia"), a w pętli odwołujesz się do niej jak do tablicy.

    Co do całego programu, to raz działasz na zmiennych globalnych i procedurach bezparametrowych ( co jest złą praktyką, ale działać będzie) a raz procedurach z parametrami. I pewnie stąd błąd. Do tego jedyną procedurę z parametrami "sortuj" wywołujesz bez parametrów.
    Poza tym masz pod koniec programu samotny blok begin; end; zapewne miała być to procedura "sort".
  • Poziom 23  
    Przerobiłem twój program i troche go udoskonaliłem, np troszkę zautomatyzowałem zapis i odczyt - z menu nie jest już potrzebny. Nie jest całkiem dobry, ale się kompiluje i działa jeżeli użytkownik nie chce go zabić. Kompilowany na Borland Pascal. Teraz wygląda tak:

    Kod: Pascal
    Zaloguj się, aby zobaczyć kod