Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Новичок и процедуры

Автор: Алек 5.01.2007 3:40

всем привет.)помогите плиз.объясните доходчиво пожалуйста что такое процедуры и ф-ции в паскале...читал разную литературу, но так толком и не понял(.или ссылу мож какую дайте(посмотреть, blink.gif почитать про них,мож че пойму)))
С уважением ко всем).спасибо!

Автор: Bokul 5.01.2007 3:43

http://zeus.sai.msu.ru:7000/programming/bp70_lr/lr9.shtml

Автор: Алек 5.01.2007 4:13

спасибо,ща гляну yes2.gif !просто не туда посмотрел.сори)

Автор: volvo 5.01.2007 4:18

А на каком тебе уровне надо? Ну, на самом примитивном - "процедура/функция - практически лобой составной оператор, допустимый с точки зрения синтаксиса языка Паскаль, вынесенный из основного блока программы и оформленный в виде подпрограммы"...

Так понятнее?

Автор: Bokul 5.01.2007 4:26

Процедуры/функции служат для упрощения читабельности кода, а также разбивают программу на меньшие подпрограммы, тем самым упрощая ее логику. Также выгодно использовать подпрограммы, если некоторое действие повторяется - вместо копирования кода, мы вызываем процедуру/функцию. Какая разница между ними (процедурами/функциями)? Функция через себя может возвращать результат, процедура - нет. Вот и все отличия.


function Somme(a,b:integer):integer;
begin
Somme:=a+b;// так мы возвращаем результат через функцию. С процедурами так нелья.
end;

var temp:integer;
begin
writeln('Function : ',somme(3,5));
temp:=3+5;
writeln('Without function : ',temp);
readln;
end.



Автор: Алек 5.01.2007 4:40

а какие переменные надо писать в скобках Procedure <имя>(.........),а какие в главной программе.и чем они отличаются?мне не понятно какими переменными мы оперируем в этих процедурах,ф-циях... nea.gif

Автор: volvo 5.01.2007 4:53

По приведенной выше ссылке - раздел "Параметры" прочел? Разницу между "формальными" и "фактическими" параметрами уяснил?

Автор: Bokul 5.01.2007 4:54

Цитата
а какие переменные надо писать в скобках Procedure <имя>(.........),а какие в главной программе.и чем они отличаются?

Переменные можешь писать какие хочешь. Тебе такой вопрос: где ты пишешь переменные в главной программе? Ведь их можно писать в разных местах.

var global:byte;{глобальная переменная. К ней ты имеешь доступ с любой точки программы и на протяжении всего ее существовании}

procedure proc(local:byte);{local существует только во время вызова процедуры, она локальна}
begin
global:=local;
end;

var data:byte;{существует на протяжении всей работы программы, но ты не можешь обращаться к ней с подпрограмм.}
begin
global:=0;
data:=4;
proc(data);
writeln(global);
readln;
end.



Цитата
мне не понятно какими переменными мы оперируем в этих процедурах,ф-циях.

А мне не понятно что ты спросил..

Автор: volvo 5.01.2007 4:57

М
Bokul, я бы попросил обратить внимание на название раздела и пункт 5 правил... Если у автора вопроса есть непонимание матчасти - это будет продолжаться бесконечно, пускай задает КОНКРЕТНЫЕ вопросы в разделе "Задачи"...


Автор: Bokul 5.01.2007 5:03

Цитата
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

Я же не решаю конкретную задачу, а привожу примеры для лучшего понимания. Разве этого делать нельзя?

P.S. я не спорю, я спрашиваю.. smile.gif

Автор: erazer89 13.02.2007 5:25

Хорошая ссылка, только вот хотелось бы скачать не фрагмент книги а всю, не подскажите где взять или как ее скачать?

Автор: Bokul 13.02.2007 5:29

Есть проги типа Teleport, которые позволяют скачать целые сайта, в том числе и книги такого рода. Если появятся вопросы по проге, создай, пожалуйста, тему в Ос о По.

Автор: volvo 13.02.2007 5:29

Цитата
хотелось бы скачать не фрагмент книги а всю

Вот тут лежит: http://forum.pascal.net.ru/index.php?s=&showtopic=3224&view=findpost&p=26682