[Pascal]Zamiana walut - problem przy tworzeniu kalkulatora


(Croos22) #1

Witam.

Mam problem z pascalem ponieważ dostałem zadanie stworzyć prosty bądź bardziej rozbudowany kalkulator walut.

W związku z tym mam pytanie w jaki sposób mogę zrobić wybór walut. Chodzi mi o jakieś przypisanie np. euro pod 1 dolar pod 2. Trzeba skorzystać z pętli ale kombinuje już ponad dwie godziny i jak pomysłu nie było tak nie ma. A tak przy okazji interesowało by mnie jeszcze zaokrąglanie. Nie liczę na gotowca. Z góry za każdą pomoc dziękuje


(Drobok) #2

zależy od struktury programu, jeśli chcesz zrobić jakieś menu itd możesz skorzystać z instrukcji wyboru case, jeśli natomiast chcesz mieć coś w stylu rozpoznawania liter po liczbie mógłbyś spróbować zapisać sobie jakąś tablicę następnie wyciągnąć ostatni znak z wpisanej liczby i potem porównać do tablicy za pomocą pętli. Oczywiście w takim wypadku wymagane byłoby wyciągnięcie samych liczb z podanego ciągu zamiana na real czy coś podobnego.


(Croos22) #3

Na razie zrobiłem prosty sposób. Pomnożyłem zmienną w moim przypadku x przez 3,96534374 do tego chciałem zaokrąglić zrobiłem tak lecz nie podziałało writeln(x:0:0); A co do wyboru nie ma prostszego sposobu ponieważ nie za bardzo było by mi wyskoczyć z rzeczami których jeszcze nie miałem.


(Drobok) #4

piszesz writeln(x:0:Y); gdzie Y to liczba miejsc po przecinku w twoim wypadku to 2 więc piszesz writeln(x:0:2);

co do wyboru jeśli nie chcesz użyć case to skorzystaj z kilku if'ów. Czy też tablicy tak jak wcześniej napisałem. Chodź wątpię byś ją przerabiał skoro nie masz jeszcze case'a


(system) #5

pascal-blad-petla-repeat-t412713.html#p2639656

Tutaj opisałem jak tworzę podstawowy program w pascalu (taka rama programu bez której nawet nie zaczynam nic robić :slight_smile: ). Jeśli umiesz kombinować a nie znasz bardzo dobrze pascala to dasz sobie radę :wink:.


(Drobok) #6


(system) #7

W sumie racja. Najlepiej jakby napisał program typu: Jaką walutę chcesz wymienić? (PLN,EUR,USD) i teraz IF'y i potem wybiera na jaką i znów kilka IF'ów. Innej opcji nie widzę.


([alex]) #8

Wystarczy z pliku wczytać tablice z walutami i kursami:

Przykład pliku:

PLN 1

USD 2.9420

EUR 4.1090

CHF 3.0610

wczytać do tablicy:

Tb:array of record Name:String; Recount:Real; end;

Do przeliczania wczytujesz dwie nazwy, wyszukujesz je w tablice:

Value:=OldValue*Tb_.Recount/Tb[k].Recount;_

czyli np konwersja 100 PLN na EUR

OldValue:=100;

PLN ma indeks 0, czyli i:=0;

EUR ma indeks 2, czyli k:=2;

Value:=100*1/4.1090


(Drobok) #9

Skoro nie miał jeszcze case'a to wątpię żeby miał pliki czy tablice rekordów ;p

więc odsyłam do poprzedniej zacytowanej przezemnie wypowiedzi ;]