-
سوال در مورد پروسیجر
با عرض سلام خدمت اساتید خودم
از یکی می خوام procudure رو تو پاسکال برام قشنگ توضیح بده
مثلا فرض کنید تو بلاک اصلی دو تا متغیر داریم می خواهیم یه procedure رو صدا بزنیم که یه سری عملیات رو این متغیرها انجام بده بعد مقدار جدید رو دوباره برگردونه به بلاک اصلی و بقیه برنامه رو ادامه بده...
اولا چه جوری اون پروسیجر رو صدا بزنیم
ثانیا چه جوری مقدار رو برگردونیم
ممنون میشم اگه کمک کنید
-
کد:
uses crt;
var
x1,x2,sum:integer;
procedure Sum(x1,x2:integer);
begin
sum:=x1+x2);
write(sum);
end;
begin
readln(x1,x2);
Sum(x1,x2);
end.
-
پروسیجر و تابع دو قسمت از یک برنامه اصلی هستند که برای کم کردن دوباره نویسی یک عملیات تکراری استفاده میشوند
-
نگفتی چه جوری مقدار رو برگردونیم به بلاک اصلی
ممنون
-
اگه میخوای مقدار برگردونی باید از فانکشن استفاده کنی
کد:
uses crt;
var
x1,x2,sumkol:integer;
function sum(x1,x2:integer):integer;
begin
sumkol:=x1+x2;
sum:=sumkol;
end;
begin
readln(x1,x2);
write(sum(x1,x2));
end.
-
خیلی ممنون
خیلی بدردم خورد
-
آقا یه سوال دیگه
فرض کن ما تو متغیرهامون یه آرایه n تایی تعریف کردیم
حالا تو بلاک اصلی اول تعداد خانه های ارایه رو از ورودی میگیریم بعد یه مقدار
حالا می خوایم تعداد خانه های ارایه و اون مقدار برن تو یه پروسیجر
حالا تو اون پروسیجر چک کنه که آیا ارایه پر شده یا نه اگه پر شده یه پیغام بده از برنامه خارج بشه
در غیر این صورت به ادامه ارایه اون مقدار جدید رو اضافه کنه
البته گرفتن مقدار جدید تو یه حلقه قرار داره
-
تو زبان پاسکال حتما باید طول آرایه مشخص باشه وگرنه خطا پیش می اآد
-
یه آرایه 50 تایی تعریف کردیم
حالا چه جوری میشه
ممنون
-
حالا شد
کد:
uses crt;
var
a:array[1..50]of integer;
i,j:integer;
procedure check_full_array(x:integer);
begin
if i<50 then
a[i]:=x;
end;
begin
for i:=1 to 50 do
begin
read(j);
check_full_array(j);
end;
for i:=1 to 50 do
write(a[i]);
readln;
end.