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

Program w Delphi - praca na zaliczenie semestru

smigas 04 Maj 2011 12:15 2114 7
  • #1 04 Maj 2011 12:15
    smigas
    Poziom 12  

    Witam,
    mam wielką prośbę - mam do napisania program w Delphi, a nie za bardzo wiem jak to zrobić.

    Treść polecenia:
    Zaprojektuj aplikację tworzącą spis liczb, liter i cyfr występujących w wybranym pliku tekstowym.

    Interfejs programu powinien posiadać menu, w którym będą przyciski do:
    *wyjścia z programu
    *otwarcia okna z info o autorze i programie (wizytówka)
    *otwarcia okna wyboru pliku tekstowego
    *otwarcia pliku ze spisem liczb i liter
    *otwarcie okna wydruku.
    W oknie z indeksami, indeksy powinny być wyświetlane alfabetycznie.
    W oknie wydruku trzeba umieścić przycisk wydruku spisu i przycisk anulowania wydruku. Kod źródłowy musi być podzielony na sekcje.

    Prezentacja programu odbywa się przy klasie. Kryteria oceny: pomysł, wykonanie, objaśnienie kodu źródłowego.

    Bardzo proszę o pomoc. W załączniku moje źródła, dopiero co zaczynam z programowaniem.

    Źródła, jakie udało mi się zgromadzić są poniżej w PDFie:

    0 7
  • #2 04 Maj 2011 21:06
    pirotechnik1212
    Poziom 14  

    Możesz dokładniej opisać co oznacza "spis liczb, liter i cyfr występujących w wybranym pliku tekstowym", czy ma to wyglądać np. tak:

    a - występuje 10 razy
    b - występuje 4 razy

    O coś takiego chodzi?

    0
  • #3 05 Maj 2011 02:45
    Ilmarinen
    Poziom 12  

    Cały program można wykonać umiejętnie wykorzystując komponenty zawarte w Delphi.

    Jedyną trudnością jest opracowanie algorytmu przeszukującego plik tekstowy.
    Można do tego użyć własności znaków ASCII. Tworzymy tablice o 255 elementach może być typy byte lub integer nazwijmy ja TAB.

    Na początku programu zerujemy wartości w tablicy.

    Potem zmieniamy wszystkie litery na małe (jest do tego jakaś instrukcja lowercase czy coś).

    Następnie odczytujemy znak po znaku tekst i inkrementujemy element tablicy o indeksie równym dziesiętnej reprezentacji znaku ASCII.(przyda sie ord()) Np. dla litery 'a' jest to 65 i w tablicy pod indeksem 65 dodajemy jedynkę. Robimy tak aż nie skończy nam sie tekst.

    W wyniku tych operacji dostajemy tablice zawierającą liczebność danych kodów ASCII w tekście od razu posortowaną alfabetycznie jedyne co musimy zrobić to wyświetlić tą tablicę w odpowiedni sposób.

    Zmieniamy indeks tablicy na literę (instrukcja chr()) a obok zwracamy wartość elementu tablicy o danym indeksie.

    Na twoim miejscu do zapisywania otwierania i edytowania tekstu użyłbym komponentów Memo, savedialog i opendialog można to zrobić dosłownie kilkoma kliknięciami i może 5 linijkami kodu.

    Do tworzenia menu jest spacjialny komponent wrzuca sie go na formularz klika dwokrotnie i można edytować nazwy przycisków w menu.

    Do zamykania programu można użyć instrukcji ''Close;''

    Okienko z autorem jest trochę trudniejsze ale tak
    Tworzymy nowy formularz "file -> new -> form" mamy 2 formy. Nowy Formularz zmniejszamy o polowa dla odróżnienia.

    Na pierwszej dodajemy przycisk.

    Klikamy 2 razy w przycisk i w kodzie wpisujemy nazwę nowo stworzonego formularza np "form2."

    Teraz kompilujemy program, kompilator zapyta czy dodać nowy formularz. Klikamy ok.

    Teraz wpisujemy form2.showmodal powinna sie wyświetlić podpowiedź

    Kompilujemy i działa.

    Co do drukowania jest komponent printdialog trzeba go wykorzystać.

    0
  • #4 05 Maj 2011 11:37
    smigas
    Poziom 12  

    pirotechnik1212 napisał:
    Możesz dokładniej opisać co oznacza "spis liczb, liter i cyfr występujących w wybranym pliku tekstowym", czy ma to wyglądać np. tak:

    a - występuje 10 razy
    b - występuje 4 razy

    O coś takiego chodzi?


    dokładnie chodzi o program który przeszukuje cały tekst i tworzy spis
    ilości liczb, ilości cyfr i ilości liter ,oraz np liczby a =1 liczby b=2

    Sekcje programów jakie są potrzebne to :
    1)wczytywanie dokumentu tekstowego all dokumentu.
    2)wyświetl go na ekranie w memo1
    3)a)dokonaj spisu liczb
    b)dokonaj spisu cyfr
    c)dokonaj spisu liter
    4)wyświetl wyniki w memo2 posortowane alfabetycznie
    5)zapisz wyniki z memo2 do pliku txt posortowane
    6)drukuj wyniki z memo2
    7)anuluj drukowanie z memo
    8)instrukcja obsługi programu
    9warunki licencji

    0
  • #5 05 Maj 2011 13:23
    Ilmarinen
    Poziom 12  

    Program podzielony będzie na sekcje za pomocą obsługi zdarzeń np przycisków
    1 przycisk do otwierania i ładowania teksu
    2 do przeszukiwania
    itd.

    tu widzę problem z tymi liczbami o już tego sie w prosty sposób nie obejdzie
    trzeba będzie wyszukiwać w tekscie zbitki cyfr np '142' a potem biorąc pod uwagę ich długość dopisywać do jakiejś tablicy dodatkowej

    co do drukowania to trzeba sie pobawić z komponentem printdialog jak juz pisałem

    0
  • #6 06 Maj 2011 16:43
    blue_17
    Poziom 32  

    Proponuję prostsze rozwiązanie choć tylko do 255 znaków w pliku :)

    http://4programmers.net/Artyku%C5%82y_do_poprawy/%C5%81a%C5%84cuchy

    I tu jeszcze coś pomocnego (jest nawet załączony kod z Delphi)

    https://www.elektroda.pl/rtvforum/topic1017941.html

    Tu ogólnie dostępne funkcje operujące na łańcuchach

    http://4programmers.net/Delphi/%C5%81a%C5%84cuchy/Operacje

    Pozdrawiam

    0
  • #7 08 Maj 2011 01:34
    smigas
    Poziom 12  

    dzięki wielkie szkielet programu wrzucę jutro ,zostało tylko dopisanie algorytmów do komponentów

    Dodano po 2 [godziny] 9 [minuty]:

    Pomysł z projektem 1 w załączniku
    pomysł 2 to tabela zamiast editów tylko gorzej z wykonaniem :( nie za bardzo wiem co i jak z tabelą .
    Zostało najtrudniejsze (napisanie algorytmów )
    Może ktoś bardziej "siedzi" w delphi i pomoże ??

    projekt spakowany w rar

    załącznik 2 poprawiony ;)

    0
  • #8 20 Maj 2011 19:23
    smigas
    Poziom 12  

    Program prawie mam, wyświetla znaki, cyfry, litery i liczy itd. Użyłem do tego tabeli ASCII. Jeżeli robię tablicę 255 elementową to nie pokazuje mi wszystkiego czyli polskich znaków (ą, ś, ć itd.). Czy ktoś może zobaczyć co jest nie tak? (tabela jest od 32 do 126 znaków).
    Program jest w załączniku.

    0