мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
pascal:procfandfun [20/09/2012 10:37] ocapascal:procfandfun [20/09/2012 10:43] oca
Строка 1: Строка 1:
 ====== Процедуры и функции ====== ====== Процедуры и функции ======
  
 +==== Процедуры ====
 На уровне идей, всё ниже сказанное относится не только к языку Паскаль, но и к большинству других языков программирования. Исключением являются конкретные языковые конструкции (имён процедур), которые даны именно для Паскаля и некоторые механизмы реализации. На уровне идей, всё ниже сказанное относится не только к языку Паскаль, но и к большинству других языков программирования. Исключением являются конкретные языковые конструкции (имён процедур), которые даны именно для Паскаля и некоторые механизмы реализации.
  
 **Процедура (подпрограмма)** -- большой (более или менее) фрагмент кода, который описан специальным образом один раз, но может вызываться из разных мест программы. Процедурами, а точнее -- **вызовами** стандартных процедур, являются многие "популярные" команды, такие, как команды ввода/вывода (//write//, //writeln//, //read// и //readln//).  **Процедура (подпрограмма)** -- большой (более или менее) фрагмент кода, который описан специальным образом один раз, но может вызываться из разных мест программы. Процедурами, а точнее -- **вызовами** стандартных процедур, являются многие "популярные" команды, такие, как команды ввода/вывода (//write//, //writeln//, //read// и //readln//). 
  
-**Функции** -- это специальный вид процедур, которые **возвращают** значения заранее оговоренного типа, т.е. вызовы функций могут заменять значения указанного типаНапример:+Следует различать **описание** и **вызов** процедур.
  
-y:=sin(x);                    // +==== Функции ==== 
-m:= round( i/j + frac(q) );   // + 
-writeln(round(y));            //+**Функции** -- это специальный вид процедур, которые **возвращают** значения заранее оговоренного типа, т.е. вызовы функций могут заменять значения указанного типа в выражениях или в качестве параметров других процедур и функций. Например: 
 + 
 +y:=sin(x);                    // // 
 + 
 +m:= round( i/j + frac(q) );   // // 
 + 
 +writeln(round(y));            // //
  
 Их описание и применение несколько отличается от описания и применения просто "чистых" процедур. Их описание и применение несколько отличается от описания и применения просто "чистых" процедур.
Строка 15: Строка 22:
 Во многих современных версиях языков программирования, функции могут использоваться как процедуры. Например: Во многих современных версиях языков программирования, функции могут использоваться как процедуры. Например:
  
-while keypressed do readkey;     //+while keypressed do readkey;     // //
  
 Обратное - неверно. Неверный пример: Обратное - неверно. Неверный пример:
  
 x:= z+read(z); // x:= z+read(z); //
 +
  
 Процедуры можно разделять по нескольким критериям. В данном случае, говоря о стандартных процедурах, процедуры неявно различаются по месту расположения кода. А именно:  Процедуры можно разделять по нескольким критериям. В данном случае, говоря о стандартных процедурах, процедуры неявно различаются по месту расположения кода. А именно: