View Full Version : برنامه خرد کردن پول به زبان پاسکال
qanewaisi
پنج شنبه 20 خرداد 1389, 09:51 صبح
سلام
لطفا هرکی این برنامه رو داره و یا توضیحاتی درباره این برنامه داره اینجا بزاره.
با تشکر
qanewaisi
پنج شنبه 20 خرداد 1389, 10:23 صبح
الگوریتم خرد کردن پول به سکه های 50و20و10و5و2و1 تومانی
1- شروع
2- A=0,d=0
3- A را از ورودی بگیر
4- D=a/50
5- اگر d>0 ، آنگاه d,50 را چاپ کن
6- A=a-(d*50)
7- D=a/20
8- اگر d>0 ، آنگاه d,20 را چاپ کن
9- A=a-(d*20)
10- D=a/10
11- اگر d>0 ، آنگاه d,10 را چاپ کن
12- A=a-(d*10)
13- D=a/5
14- اگر d>0 ، آنگاه d,5 را چاپ کن
15- A=a-(d*5)
16- D=a/2
17- اگر d>0 ، آنگاه d,2 را چاپ کن
18- A=a-(d*2)
19- اگر a>0 ، a,1 را چاپ کن
20- پایان
qanewaisi
پنج شنبه 20 خرداد 1389, 10:40 صبح
اینم برنامه ای هست که من نوشتم!
فقط نمی دونم چرا کار نمی کنه
Program add;
Var a,b,c:integer;
var d:real;
begin
a:=1000;
d:=0;
d:=a/50;
if d>0
then writeln(' 50 => ',d);
a=a-(d*50);
d:=a/20;
if d>0
then writeln(' 20 => ',d);
a=a-(d*20);
d:=a/10;
if d>0
then writeln(' 10 => ',d);
a=a-(d*10);
d:=a/5;
if d>0
then writeln(' 5 => ',d);
a=a-(d*5);
d:=a/2;
if d>0
then writeln(' 2 => ',d);
a=a-(d*2);
if a>0
then writeln(' 1 => ',a);
end.
(البته اصلا پاسکال تو ذهنم نمونده وگرنه اینجا تایپک نمی زدم)
Felony
پنج شنبه 20 خرداد 1389, 11:42 صبح
1. از تگ کد برای قرار دادن کد استفاده کنید .
2. کدنویسیتون رو اصلاح کنید ، خیلی کثیف و ناخوانا هستش .
3. کدتون پر از خرده اشکاله .
4. کد تصحیح شده رو براتون قرار دادم ، البته من الگوریتمتون رو بررسی نکردم که ببینم برنامتون درست کار میکنه یا نه و وفقط کدی که گزاشته بودید رو تغییر دادم تا اجرا بشه :
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
Var
A, D: Integer;
begin
Writeln('Enter an integer number : ');
Readln(A);
D:= A div 50;
if D>0 then
begin
writeln(' 50 => ',D);
A:= A-(D*50);
end;
D:= A div 20;
if D>0then
begin
writeln(' 20 => ',D);
A:= A-(D*20);
end;
D:= A div 10;
if D>0then
begin
writeln(' 10 => ',D);
A:= A-(D*10);
end;
D:= A div 5;
if D>0 then
begin
writeln(' 5 => ',D);
A:= A-(D*5);
end;
D:= A div 2;
if D>0 then
begin
writeln(' 2 => ',D);
A:= A-(D*2);
end;
if A>0 then
writeln(' 1 => ',A);
Readln;
end.
qanewaisi
پنج شنبه 20 خرداد 1389, 15:18 عصر
1. از تگ کد برای قرار دادن کد استفاده کنید .
2. کدنویسیتون رو اصلاح کنید ، خیلی کثیف و ناخوانا هستش .
3. کدتون پر از خرده اشکاله .
4. کد تصحیح شده رو براتون قرار دادم ، البته من الگوریتمتون رو بررسی نکردم که ببینم برنامتون درست کار میکنه یا نه و وفقط کدی که گزاشته بودید رو تغییر دادم تا اجرا بشه :
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
Var
A, D: Integer;
begin
Writeln('Enter an integer number : ');
Readln(A);
D:= A div 50;
if D>0 then
begin
writeln(' 50 => ',D);
A:= A-(D*50);
end;
D:= A div 20;
if D>0then
begin
writeln(' 20 => ',D);
A:= A-(D*20);
end;
D:= A div 10;
if D>0then
begin
writeln(' 10 => ',D);
A:= A-(D*10);
end;
D:= A div 5;
if D>0 then
begin
writeln(' 5 => ',D);
A:= A-(D*5);
end;
D:= A div 2;
if D>0 then
begin
writeln(' 2 => ',D);
A:= A-(D*2);
end;
if A>0 then
writeln(' 1 => ',A);
Readln;
end.
دوست عزیز واژه دیگه ای به جای " کثیف " به ذهنوتون نمی رسید ؟؟؟ (من که گفتم پاسکال رو تقریبا یادم رفته) شما که گفتین برنامه اجرا میشه !!،این کجاش اجرا میشه ؟ به هر حال تشکر
qanewaisi
پنج شنبه 20 خرداد 1389, 15:20 عصر
دوستان لطفا کمک کنید که این برنامه تکمیل بشه! فقط دستورهای نمایشی رو یادم رفته(مثلا برای چاپ عدد اعشاری کامل بدون نمایش علمی )
Felony
پنج شنبه 20 خرداد 1389, 19:56 عصر
دوست عزیز واژه دیگه ای به جای " کثیف " به ذهنوتون نمی رسید ؟؟؟ (من که گفتم پاسکال رو تقریبا یادم رفته)
ناراحت نشو اصولا به این کدها کثیف یا بد بو میگن ، نحوه کدنویسی ( کثیف یا ... ) ربطی به یاد رفتن سینتکس زبان نداره !
یعنی تورفتگی کد یا ... تو زبان های برنامه نویسی مختلف با هم فرق داره ؟!
من برنامه رو با Console دلفی تصحیح کردم ، چون سیستم عامل من ویندوز 7 نسخه 64 بیت هست روش پاسکال نصب نمیشه که بخوام با پاسکال تست کنم ولی در Console دلفی درست عمل میکنه ، تنها مشکل مربوط به این قسمت هست ( چون تو کنسول دلفی نوشتمش ) :
{$APPTYPE CONSOLE}
uses
SysUtils;
با این تعویضش کن :
uses WinCrt;
چون پاسکال کتابخانه ای به نام Sysutils نداره ، باقی کد مشکلی نداره .
SAASTN
پنج شنبه 20 خرداد 1389, 23:10 عصر
این تابع رو نوشتم که تقسیماتو تو یه string بر می گردونه. یه دستی به سرش بکشین میشه به اون صورتی که تو پاسکال می خواین درش آورد:
function DevideMoney(Money: Integer): String;
const
Coins : array [0 .. 5] of Integer = (50, 20, 10, 5, 2, 1);
var
I, D: Integer;
begin
Result := '';
for I := 0 to Length(Coins) - 1 do
begin
D := Money div Coins[I];
if D > 0 then
begin
Result := Format('%s %d => %d,', [Result, Coins[I], D]);
Money := Money mod Coins[I];
end;
end;
end;
tdkhakpur
پنج شنبه 20 خرداد 1389, 23:29 عصر
تمام حالتهای خرد کردن یک وجه 50 را با توجه به وجه های 2و 5و 3 را نشان میدهد.
program Project1;
uses
SysUtils;
var
buff : array [0..100] of integer;
c : integer;
procedure calculate(rial, item, c : integer);
var
i: integer;
begin
if (rial-item)>0 then
begin
buff[c] := item;
if (rial-5)>0 then
calculate(rial-5, 5, c+1);
if (rial-3)>0 then
calculate(rial-3, 3, c+1);
if (rial-2)>0 then
calculate(rial-2, 2, c+1);
end
else
begin
writeln('{');
for i:=0 to c do
write(buff[i],',');
write('}');
readln;
end;
end;
begin
c := 0;
calculate(50, 5, 0);
end.
qanewaisi
جمعه 21 خرداد 1389, 16:48 عصر
سلام
دوستان ببخشید که دیر جواب دادم!
از همه شما ممنونم.
من خودم برنامه رو با توجه به چیزی که آقای ماهان داده بودند کمی اصلاح کردم و شد چیزی که می خواستم :
program Project1;
Var
A, D , C: Integer;
begin
Writeln('Enter an integer number : ');
Readln(A);
C:= A;
D:= A div 200;
if D>0 then
begin
writeln(' 200 => ',D);
A:= A-(D*200);
end;
A:= C ;
D:= A div 100;
if D>0 then
begin
writeln(' 100 => ',D);
A:= A-(D*100);
end;
A:= C ;
D:= A div 50;
if D>0 then
begin
writeln(' 50 => ',D);
A:= A-(D*50);
end;
A:= C ;
D:= A div 20;
if D>0then
begin
writeln(' 20 => ',D);
A:= A-(D*20);
end;
A:= C ;
D:= A div 10;
if D>0then
begin
writeln(' 10 => ',D);
A:= A-(D*10);
end;
A:= C ;
D:= A div 5;
if D>0 then
begin
writeln(' 5 => ',D);
A:= A-(D*5);
end;
A:= C ;
D:= A div 2;
if D>0 then
begin
writeln(' 2 => ',D);
A:= A-(D*2);
end;
A:= C ;
if A>0 then
writeln(' 1 => ',A);
Readln;
end.
به هر حال از همه شما ممنونم.
me.enik
دوشنبه 15 خرداد 1391, 19:14 عصر
من برنامه رو با Console دلفی تصحیح کردم ، چون سیستم عامل من ویندوز 7 نسخه 64 بیت هست روش پاسکال نصب نمیشه
گرچه زیاد مربوط به این تاپیک نمیشه ولی
من free pascal رو تست کردم, مشکلی نداشته.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.