Помощь - Поиск - Пользователи - Календарь
Полная версия: Новичок и процедуры
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Алек
всем привет.)помогите плиз.объясните доходчиво пожалуйста что такое процедуры и ф-ции в паскале...читал разную литературу, но так толком и не понял(.или ссылу мож какую дайте(посмотреть, blink.gif почитать про них,мож че пойму)))
С уважением ко всем).спасибо!
Алек
спасибо,ща гляну yes2.gif !просто не туда посмотрел.сори)
volvo
А на каком тебе уровне надо? Ну, на самом примитивном - "процедура/функция - практически лобой составной оператор, допустимый с точки зрения синтаксиса языка Паскаль, вынесенный из основного блока программы и оформленный в виде подпрограммы"...

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


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.


Алек
а какие переменные надо писать в скобках Procedure <имя>(.........),а какие в главной программе.и чем они отличаются?мне не понятно какими переменными мы оперируем в этих процедурах,ф-циях... nea.gif
volvo
По приведенной выше ссылке - раздел "Параметры" прочел? Разницу между "формальными" и "фактическими" параметрами уяснил?
Bokul
Цитата
а какие переменные надо писать в скобках 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
М
Bokul, я бы попросил обратить внимание на название раздела и пункт 5 правил... Если у автора вопроса есть непонимание матчасти - это будет продолжаться бесконечно, пускай задает КОНКРЕТНЫЕ вопросы в разделе "Задачи"...

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

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

P.S. я не спорю, я спрашиваю.. smile.gif
erazer89
Хорошая ссылка, только вот хотелось бы скачать не фрагмент книги а всю, не подскажите где взять или как ее скачать?
Bokul
Есть проги типа Teleport, которые позволяют скачать целые сайта, в том числе и книги такого рода. Если появятся вопросы по проге, создай, пожалуйста, тему в Ос о По.
volvo
Цитата
хотелось бы скачать не фрагмент книги а всю

Вот тут лежит: Литература
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.