|
|
تاریخ: یکشنبه 20 بهمن 1387 - 19:59
|
sahar2000
خوب داره پيش ميره
پست: 52
عضو شده در: 4 آذر 1384
امتياز: 481
|
عنوان: خرد كردن سكه ها با پاسكال |
|
|
مسئله :سكه هاي رايج كشور كه عبارتند از : 1،2،5،10،20،50،100،250ريالي را در نظر بگيريد.
برنامه اي بنويسيد كه يك سكه nريالي را از ورودي گرفته ،با توجه به سكه هاي رايج ،آن را با حداقل تعداد سكه ها خرد كند.
من اين مسئله رو به زبان پاسكال به صورت زير نوشتم:
کد: |
var
s1,s2,s3,s4,s5,s6,s7,s8:integer;
a:longint;
begin
read(a);
while a<>0 do
begin
if a>=250 then
begin
s1:=a div 250;
a:=a mod 250;
end
else
if a>=100 then
begin
s2:=a div 100;
a:=a mod 100;
end
else
if a>=50 then
begin
s3:=a div 50;
a:=a mod 50;
end
else
if a>=20 then
begin
s4:=a div 20;
a:=a mod 20;
end
else
if a>=10 then
begin
s5:=a div 10;
a:=a mod 10;
end
else
if a>=5 then
begin
s6:=a div 5;
a:=a mod 5;
end
else
if a>=2 then
begin
s7:=a div 2;
a:=a mod 2;
end
else
if a>=1 then
begin
s8:=a div 1;
a:=a mod 1;
end;
end;
write(s1,' :250 ',s2,' :100 ',s3,' :50 ',s4,' :20 ',s5,' :10 ',s6,':5 ',s7,':2 ',s8,' :1');
read(s1)
end.
|
كه درست هم كار ميكنه.
اما به نظر ميرسه راه حل بهتري براي مسئله باشه .
در واقع با پيدا كردن يه ارتباط منطقي بين سكه هاشايد بشه مسئله رو خيلي كوتاهتر حل كرد.اما من هنوز نتونستم اون رو پيدا كنم .
اگه كسي مي تونه راه حل بهتري براي مسئله داشته باشه كمكم كنه.
مرسي |
|
[ وضعيت كاربر: ]
|
تشکرها از این پست:
|
تاریخ: دوشنبه 21 بهمن 1387 - 14:30
|
sahar2000
خوب داره پيش ميره
پست: 52
عضو شده در: 4 آذر 1384
امتياز: 481
|
عنوان: |
|
|
ممنون Hamid جان ؛
من متوجه برنامه شدم.
بله در حقيقت نكته اين برنامه در استفاده از آرايه اي است كه مقاديرش در ابتداي برنامه تعيين شده اند و چون ما بيشتر با آرايه هايي كار كرديم كه در طول برنامه پر ميشدند اصلا به استفاده از آرايه ها فكر نكردم. البته در كتاب هم اين تمرين قبل از فصل آرايه هاست .
برنامه با استفاده از آرايه ها:
کد: |
const
a:array[1..8]of integer=(250,100,50,25,10,5,2,1);
var
x:longint;
i,r:integer;
begin
read(x);
while x>0 do
Begin
for i:=1to 8 do
begin
r:=x div a[i];
x:=x mod a[i];
writeln(r,'*',a[i]);
end;
end;
read(i)
end.
|
|
|
[ وضعيت كاربر: ]
|
تشکرها از این پست:
|
|
|
صفحه 1 از 1
تمام زمانها بر حسب GMT + 3.5 Hours میباشند
|
|
شما نمی توانید در این بخش موضوع جدید پست کنید شما نمی توانید در این بخش به موضوعها پاسخ دهید شما نمی توانید موضوع های خودتان را در این بخش ویرایش کنید شما نمی توانید موضوع های خودتان را در این بخش حذف کنید شما نمی توانید در این بخش رای دهید
|
|
|