(pascal) کمک برای نوشتن برنامه

rezamasoom

New Member
سلام دوستان کسی می تونه با توربو پاسکا این برنامه رو واسم بنویسه ؟:d

برنامه ای بنویسید که مقدار خرید مشتری را از ورودی خوانده و چنانچه مقدار خرید او بین 50-100 هزار تومان باشد تخفیف 0.5 % و اگر بیش از 100 هزار تومان باشد تخفیف 10 % را قائل شود و مقدار تخفیف و مبلغ قابل پرداخت را در خروجی چاپ کند .
 

scorpino

New Member
به نام خدا
پاسکال زیاد یادم نمونده چون زیاد ازش خوشم نمیومد.این کد رو تند تند توی نت پد نوشتم واست...
تست کن ببین کار میکنه یا نه...
کد:
program test;
uses dos,wincrt;
var a,b,c,i,sum:integer;
BEGIN
{start of program}
write('tedade mavarede kharid ra benevisid:');
readln(a);
for i:=1 to a do
begin
write('gheymate jense shomare ',i,' : ');
readln(b);
sum:=sum+b;
end;
if (sum>50000) and (sum<100000) then
c:=sum-((sum * 0.5)/100);
else if sum>100000 then
c:=sum-((sum * 10)/100);
else
c:=sum;
writeln('kolle mablaghe kharide shoma ',sum,' mibashad.');
writeln('ba ehtesabe ',sum-c,' toman takhfif mablaghe ghabele pardakhte shoma ',c,' toman mibashad');

end.
{program finished my firend ;)}
 

rezamasoom

New Member
یه مشکل واسم پیش اومده..
اینه کخه موقع نمایش مبلغ .. عدد رو به صورت اعشاری نشون میده ! نمیدونید چی کار بایا بکنم که مبلغ رو تو خروجی مثلا 100000 نشون بده ؟
 

scorpino

New Member
توی پاسکال بحثی بود به نام طول میدان خروجی ها و...
از اون برای خروجی استفاده کن..
یا میتونی از تابع round() استفاده کنی برای اون متغییر هایی که اعشاری نشون میدن...
خودتم یکم تلاش کن که برنامه نویس بشی...
موفق باشی...
 

rezamasoom

New Member
آقا تشکر بالاخره تونستم اون برنامه رو بنویسم :d
حالا یه برنامه دیگه :)

برنامه ای بنویسید که یک عدد را از ورودی بگیرد و ارقامش را به صورت ستونی در خروجی چاپ کند ؟

تشکر
 

scorpino

New Member
این برنامه رو برات نوشتم اما اعداد رو از آخر به اول چاپ میکنه!
یعنی اول آخرین عدد رو ..تا برسه به اولین عدد!
کد:
program adad;
uses crt,dos;

var number,b:integer;

	
	
Begin
	write('Please enter a number : ');
	readln(number);
	while number>0 do
		begin
			b=number mod 10;
			writeln(b);
			number=number DIV 10;
		End;
End.


اگه برعکسشو میخوای میتونی توی یه آرایه ذخیرشون کنی و از آخر به اول آرایه رو چاپ کنی.
که اینم واست نوشتم اما فکر کنم با الگوریتم بهتری بشه نوشتش که متاسفانه الان به ذهنم نمیاد.

کد:
program adad;
uses crt,dos;

var number,b,i:integer;
	wow:array[1..100] of integer;

	
	
Begin
	i:=1;
	write('Please enter a number : ');
	readln(number);
	while number>0 do
			begin
				wow[i]:=number mod 10;
				number:=number DIV 10;
				i=i+1;
			End;
			
	for i:=100 to 1 do
	writeln(wow[i]);
	
End.
 

rezamasoom

New Member
تشکر آقای Scorpino واقعا کارت درسته :d
کارمو راه انداختی ... واقعا ممنون
 

جدیدترین ارسال ها

بالا