Skocz do zawartości

Zamiana kropki na przecinek.


dawidsj

Polecane posty

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

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

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

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

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...