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.

Konwerter jednostek w Pascal-u

bbiidduull 11 Wrz 2008 21:54 2383 10
  • #1 11 Wrz 2008 21:54
    bbiidduull
    Poziom 28  

    Witam. Chciałbym zrobić konwerter jednostek w pascalu ale mam mały problem. Nie wiem jak mam zrobić np.

    Co masz???
    1- Ohm
    2- k Ohm
    3- M Ohm

    i wybieram np 2

    Podaj wartosc w k Ohm:

    i podaje 2

    i pokazuje mi wyniki

    Wynik w Ohm: 2000
    Wynik w M Ohm: 0,002

    Zeby nie było ze nic nie robie wiec zrobiłęm kawałek

    Const

    k=1000;
    m=1000000;

    Var
    wybor:word;
    jednostka1:word;
    jednostka2:word;
    jednostka3:word;

    Begin
    Writeln('Co masz???');
    Writeln('1- Ohm');
    Writeln('2- k Ohm');
    Writeln('3- M Ohm');
    Writeln;
    Writeln;
    Readln(wybor);

    i teraz nie wiem co dalej. mógł by ktoś mnie podprowadzic ? :)

    P.S. Wie moze ktos jak wyświetlać liczby z 2 miejscami po przecinku ???

    0 10
  • Pomocny post
    #2 11 Wrz 2008 22:18
    telemah
    Poziom 27  

    A czego tu nie rozumieć ?

    Po prostu musisz sobie zrobić osobne procedury albo etykiety dla każdego rodzaju przeliczeń czyli osobną dla Mohm, Kohm ,Ohm . Następnie układasz algorytm np coś takiego.

    Wybór jednostki wejściowej

    Mohm
    Kohm
    Ohm

    i teraz wybierasz sobie rodzaj jednostki
    następnie z klawiatury zczytujesz wybór z menu

    i teraz musisz mieć wszystkie możliwe przypadki

    ohm -> Kohm
    ohm -> Mohm

    Kohm ->Ohm
    Kohm ->Mohm

    Mohm->Ohm
    Mohm->Kohm


    I wtedy

    jeśli jednostka = ohm wtedy uruchom procedury:

    ohm->Kohm
    ohm->Mohm

    wszystkie przypadki musisz uwzględnić.

    następnie program realizuje potrzebne procedury i pyta czy ma zaczynać przeliczanie od nowa , albo czy ma zacząć od nowa + zmiana jednostki

    zmienną możesz zastosować typu Integer , a przeliczanie jednostek odbywać się ma oczywiście poprzez dzielenie / mnożenie na koniec wyświetlenie wyniku . Możesz sobie założyć kilka stałych żeby przez nie dzielić/mnożyć dane.

    Pamiętaj że musisz przewidzieć wszelkie ewentualności nie przewidzenie wszystkich możliwości = jaja jak berety i zwiecha programu lub jego totalne zapętlenie w nieskończoność które równa się resetowi kompa
    :D dlatego pamiętaj o okresowym zapisywaniu zmian bo "kto rzadko save'uje ten w nocy pracuje" :cry:

    Ogólnie większość pracy to ułożenie odp. algorytmu reszta to już tylko przełożenie wszystkiego na konkretny język z uwzględnieniem różnych panujących w nim zasad oraz składni . Radzę załatwić sobie jakiś dobry kurs a najlepiej książkę .Warto też pouczyć się programowania obiektowego ale tak czy inaczej bez programowania strukturalnego ciężko Ci będzie cokolwiek bardziej złożonego napisać.

    Pascal jest całkiem fajny i nietrudny do nauki - ale jeśli go zrozumiesz i dobrze poznasz to później z innymi językami też Ci powinno nieźle iść.

    Pozdro :D

    0
  • #3 11 Wrz 2008 22:39
    bbiidduull
    Poziom 28  

    Zaczełem sie dopiero dzisiaj uczyc paskala i już iwem prawie wszystko. :) Wszytko prawie mam ale jak dziele to mi wywala cos takiego
    2.0000000000000000E+0000

    jak temu zaradzic ?

    0
  • #4 11 Wrz 2008 22:51
    telemah
    Poziom 27  

    Jeśli chodzi o zmienną typu integer to są problemy z jej dzieleniem spróbuj użyć np. zmiennej "double;" , można też rozbić liczbę i wpisać w tablicę .Radzę tak jak mówiłem kupić książkę i uczyć się od podstaw - niestety tablice do dla początkującego trudna rzecz - ale do przejścia tyle że wszystko trzeba sobie w głowie wyobrażać i po prostu pojąć co nieco.

    0
  • #5 11 Wrz 2008 23:02
    bbiidduull
    Poziom 28  

    ja zrobiłem i działa narazie dobrze na instrukcja grupującej Begin End i warunkowej ale nie moge sobie poradzic na tych liczbach bo mi za duzo po przycinku pokazuje :)

    0
  • #6 11 Wrz 2008 23:08
    telemah
    Poziom 27  

    Mówię Ci zakup porządną książkę i ryj wszystko po kolei pisząc programik dla każdego ważniejszego rozdziału - jak będziesz się uczył wszystkiego po kolei to bedzie z tego większy pożytek , ja uczyłem się "jak leci" i miałem sporo problemów żeby poukładać sobie we łbie całą posiadaną wiedzę.

    0
  • #7 12 Wrz 2008 00:02
    bbiidduull
    Poziom 28  

    jestem technik informatyk i programowanie mam 7 godzin w tygodniu wiec chyba sie czegos w szkole naucze

    Dodano po 48 [minuty]:

    Oto mój konwerter. :) zachęcam do przetestowania i zgłoszenia o ewentualnych błędach :) Może powstanie cały cykl "Konwerter jednostek elektronicznych" ? Kto wie ? :)

    0
  • #8 12 Wrz 2008 18:34
    telemah
    Poziom 27  

    Działa a to najważniejsze

    ale ja bym zrobił to ciut inaczej również inaczej wizualnie.Załącz kod źródłowy swojego programu - niech początkujący programiści sobie go przeanalizują , ja zastosował bym w niektóych miejscach "ReadKey" wtedy nie trzeba by było naciskać entera po wyborze jednostki wejściowej. Tylko wtedy trzeba by użyć modułu CRT i zastosować łatkę(problem z działaniem na komputerach szybszych niż 200Mhz) lub ew. stosować jakiś nowszy kompilator pascala niż popularny TP czy BP.

    0
  • #9 12 Wrz 2008 20:21
    bbiidduull
    Poziom 28  

    Ja używam programu Free Pascal IDE. Własnie a jak zoblokowac litery bo jak sie wcisnie np. h to sie program wyłączy

    kod źródłowy w załączniku

    P.S. Jak moge wykożystać pascal w elektronice ?

    0
  • #10 12 Wrz 2008 22:31
    telemah
    Poziom 27  

    bbiidduull napisał:
    Ja używam programu Free Pascal IDE. Własnie a jak zoblokowac litery bo jak sie wcisnie np. h to sie program wyłączy



    Dlatego właśnie powinieneś użyć modułu CRT i jego funkcji READKEY wtedy
    nie trzeba naciskać enter-a gdyż program monitoruje czy nie nacisneliśmy jakiegoś klawisza, następnie porównujemy kod ASCII naciśniętego klawisza z kilkoma opcjami , każda z nich włącza inną procedurę , inne niechciane klawisze blokujemy używając wykluczenia Else i podajemy do uruchomienia dla wszystkich niechcianych klawiszy procedurę menu co spowoduje że program na niechciane klawisze nie będzie reagował.

    Ps.Program przy readline i wpisaniu litery wyłącza się dlatego , że komputer nie wie co zrobić gdy pod zmienną podstawimy znak który nie mieści się
    w zakresie obejmującym konkretny tym zmiennej - np litery w przypadku zmiennej Integer itp..

    0
  • #11 13 Wrz 2008 00:46
    bbiidduull
    Poziom 28  

    ale ja się dopiero ucze programowania i tlyko znam podstawy

    0