dawidsj Napisano Grudzień 19, 2013 Zgłoś Share Napisano Grudzień 19, 2013 Witam. Mam pewien problem. Jestem początkujący dlatego piszę o pomoc. Napisałem program który służy mi do przeliczania cen (na potrzeby Mamy) i trochę nie wygodnie jest pisać liczby z kropką zamiast przecinka. Poczytałem trochę że można to zrobić za pomocą instrukcji Val tylko niestety jeszcze nie mam o niej pojęcia i nie wiem jak i w którym miejscu jej użyć. Prosiłbym o pomoc / nakierowanie jak się jej używa. Pozdrawiam. Niżej mój programik. program p1; uses crt; var metry, cena,s, sztuki, cm:real; d:char; c:integer; begin repeat clrscr; writeln('Witaj. Wybierz co chcesz robic:'); writeln; writeln('1 - Obliczanie ceny za ... metrow sznurka'); writeln('2 - Obliczanie ceny za ... dodatków:)'); writeln('3 - Obliczanie ceny za 1 dodatek'); writeln('4 - Obliczanie ceny za x cm sznurka'); readln(c); case c of 1: begin writeln; writeln('Podaj cena za 1 metr'); writeln; readln(cena); writeln('Podaj ile masz metrow sznurka'); writeln; readln(metry); writeln; s:=cena*metry; writeln('Cena za ',metry:0:0,' metrow sznurka wynosi:',s:0:2); end; 2: begin writeln; writeln('Podaj cene za jednego koralika / dodatek'); writeln; readln(cena); writeln('Podaj ilosc koralikow / dodatkow'); readln(sztuki); writeln; s:=cena*sztuki; writeln('Cena za ',sztuki:0:0,' sztuk wynosi: ',s:0:2); end; 3: begin writeln; writeln('Podaj ilosc dodatkóww opakowaniu'); readln(sztuki); writeln; writeln('Podaj cene za nie'); readln(cena); writeln; s:=cena/sztuki; writeln('Cena za 1 sztuke wynosi:',s:0:2); end; 4: begin writeln; writeln('Podaj cene za 1 metr'); readln(cena); writeln('Podaj za ile cm interesuje Cie cena'); readln(cm); s:=(cena*cm)/100; writeln('Cena za ',cm:0:0,' cm sznurka kosztuje : ',s:0:2); end else writeln('Wybrano dzialanie ktorego nie ma !'); end; writeln('Czy chcesz wyjsc ? T-Tak | N-Nie'); readln(d); until d='t'; d:=readkey; end. Link do komentarza Udostępnij na innych stronach More sharing options...
babubabu Napisano Grudzień 20, 2013 Zgłoś Share Napisano Grudzień 20, 2013 http://4programmers.net/Delphi/Val http://4programmers.net/Delphi/StringReplace Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Grudzień 20, 2013 Zgłoś Share Napisano Grudzień 20, 2013 Nie wiem, czy StringReplace jest w Turbo Pascal'u, a podejrzewam, że właśnie w nim pisany jest ten program. Jak podajesz ilość sztuk, to powinieneś pobierać takie wartości do zmiennej typu całkowitego. Bo sztuki nie może być pół. Gdzie mama będzie używać takiego programu? Na Androidzie w aDosBoxie? Pomyśl trochę nad użytecznością takiej aplikacji. Topornie napisany program więcej utrudnia niż ułatwia. A tak skonstruowane menu z całą pewnością jest toporne. program p1; uses crt; var metry, cena,s, sztuki, cm:real; d:char; c:integer; procedure readlnr(var r: real); var s:string; i: integer; begin readln(s); for i:=1 to length(s) do begin if s[i]=',' then s[i]:='.'; end; val(s,r); end; begin repeat clrscr; writeln('Witaj. Wybierz co chcesz robic:'); writeln; writeln('1 - Obliczanie ceny za ... metrow sznurka'); writeln('2 - Obliczanie ceny za ... dodatków:)'); writeln('3 - Obliczanie ceny za 1 dodatek'); writeln('4 - Obliczanie ceny za x cm sznurka'); readln(c); case c of 1: begin writeln; writeln('Podaj cena za 1 metr'); writeln; readlnr(cena); writeln('Podaj ile masz metrow sznurka'); writeln; readlnr(metry); writeln; s:=cena*metry; writeln('Cena za ',metry:0:0,' metrow sznurka wynosi:',s:0:2); end; 2: begin writeln; writeln('Podaj cene za jednego koralika / dodatek'); writeln; readlnr(cena); writeln('Podaj ilosc koralikow / dodatkow'); readlnr(sztuki); writeln; s:=cena*sztuki; writeln('Cena za ',sztuki:0:0,' sztuk wynosi: ',s:0:2); end; 3: begin writeln; writeln('Podaj ilosc dodatkóww opakowaniu'); readlnr(sztuki); writeln; writeln('Podaj cene za nie'); readlnr(cena); writeln; s:=cena/sztuki; writeln('Cena za 1 sztuke wynosi:',s:0:2); end; 4: begin writeln; writeln('Podaj cene za 1 metr'); readlnr(cena); writeln('Podaj za ile cm interesuje Cie cena'); readlnr(cm); s:=(cena*cm)/100; writeln('Cena za ',cm:0:0,' cm sznurka kosztuje : ',s:0:2); end else writeln('Wybrano dzialanie ktorego nie ma !'); end; writeln('Czy chcesz wyjsc ? T-Tak | N-Nie'); readln(d); until d='t'; d:=readkey; end. Link do komentarza Udostępnij na innych stronach More sharing options...
babubabu Napisano Grudzień 20, 2013 Zgłoś Share Napisano Grudzień 20, 2013 No to najwyższa pora przesiąść się z archaicznego Turbo Pascala na Lazarusa albo FPC Link do komentarza Udostępnij na innych stronach More sharing options...
dawidsj Napisano Grudzień 20, 2013 Autor Zgłoś Share Napisano Grudzień 20, 2013 Dziękuje panowie za pomoc. Wiem że może to topornie wygląda, ale opieram się na podstawach. Nie mam jeszcze dużo doświadczenia bo dopiero co zacząłem się w to bawić przez szkołę (I technikum). Od zawsze mnie to ciekawiło (programowanie), daltego chce się rozwijać. @babubabu zainstalowałem Lazarusa, ale to jest coś całkowicie innego niż pisanie w pascalu i trochę nie ogarniam ... Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Grudzień 20, 2013 Zgłoś Share Napisano Grudzień 20, 2013 http://wiki.freepascal.org/Console_Mode_Pascal Link do komentarza Udostępnij na innych stronach More sharing options...
babubabu Napisano Grudzień 20, 2013 Zgłoś Share Napisano Grudzień 20, 2013 Nie. To nie jest zupełnie co innego. To jest dokładnie takie samo programowanie. Piszesz taki sam kod i cisniesz F9 by skompilowac i uruchomić. A że okienka inaczej wygladają? Trzeba się nauczyć. Skoro chcesz się rozwijać to się rozwijaj a nie cofaj. Link do komentarza Udostępnij na innych stronach More sharing options...
dawidsj Napisano Grudzień 20, 2013 Autor Zgłoś Share Napisano Grudzień 20, 2013 Dzięki panowie za rady . Właśnie doszedłem że jest całkowicie to samo, tylko trzeba sobie wybrać Plik->Nowy->Console application. Natomiast ciekawi mnie wybór np. aplikacja, program. Gdzie znajdę przykłady pisania w takowych plikach gdyż tam już nie działa ten sam kod co w Turbo Pascalu. Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Grudzień 20, 2013 Zgłoś Share Napisano Grudzień 20, 2013 http://wiki.freepasc...azarus_Tutorial http://www.youtube.com/watch?v=lyN825ELhmI Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.