всем привет.)помогите плиз.объясните доходчиво пожалуйста что такое процедуры и ф-ции в паскале...читал разную литературу, но так толком и не понял(.или ссылу мож какую дайте(посмотреть, почитать про них,мож че пойму))) С уважением ко всем).спасибо!
А на каком тебе уровне надо? Ну, на самом примитивном - "процедура/функция - практически лобой составной оператор, допустимый с точки зрения синтаксиса языка Паскаль, вынесенный из основного блока программы и оформленный в виде подпрограммы"...
Так понятнее?
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 <имя>(.........),а какие в главной программе.и чем они отличаются?мне не понятно какими переменными мы оперируем в этих процедурах,ф-циях...
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. я не спорю, я спрашиваю..
erazer89
13.02.2007 5:25
Хорошая ссылка, только вот хотелось бы скачать не фрагмент книги а всю, не подскажите где взять или как ее скачать?
Bokul
13.02.2007 5:29
Есть проги типа Teleport, которые позволяют скачать целые сайта, в том числе и книги такого рода. Если появятся вопросы по проге, создай, пожалуйста, тему в Ос о По.