русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Правительство Российской Федерации


Дата додавання: 2014-11-27; переглядів: 879.


Інколи доводиться розв’язувати задачі, в яких важливо не якесь певне значення як результат ( що може повертатися підпрограмою-функцією ), а декілька значень різних функцій ; або, взагалі, може не бути потреби в жодному значенні, але потрібно виконати деяку сукупність дій, в тому числі, можливо, видати результати на друк. Для цих випадків призначена підпрограма-процедура.

Процедура явно не повертає висхідного значення. Буває таке, що вона сама просто виконує якусь задачу. Наприклад, введення чи виведення масивів даних, розв’язок системи рівнянь, тощо. Однак процедура може спілкуватися з програмою , що її викликала, змінюючи значення переданих їй параметрів.

Процедури описуються на початку програми, в якій вони будуть використовуватися. Опис процедури служить для визначення її змісту та зіставлення з нею деякого імені, за яким її можна було б відшукати і активізувати при потребі. Опис починається заголовком:

PROCEDURE <ім’я> ( <список параметрів-значень та їх типів > ;

VAR <список параметрів-змінних та їх типів > )

<ім’я> –-ідентифікатор процедури, яке не набуває ніяких значень.

Параметри-значення– це параметри, які передаються процедурі по значенням. Це локальні змінні, стартові значення котрих задаються при виклику ПП. Їх значення залишаються в “стековій” пам’яті і є недосяжними для головної програми. Стек заповнюється лише на час виконання ПП. Комірки, відповідні параметрам-значенням, одразу заповнюються конкретним вмістом, заданим у виклику ПП. Всі дії з параметрами-значеннями в ПП є насправді діями над підставленими у виклик змінними.

Параметри-змінні – глобальні параметри, що розміщуються в пам’яті нарівні з всіма змінними головної програми. Вони передаються процедурі за посиланням. Перед їх описом стоїть службове слово VAR.

Процедура може зовсім не мати параметрів. Тоді вона не сполучається із визивною програмою.Процедура активізується, тобто починає виконуватися , за допомогою оператора процедури:

<ім’я процедури> (<список фактичних параметрів >) ;

Важливим моментом в розумінні механізму роботи процедури є передача параметрів,тобто заміна формальних параметрів на фактичні. Для локальних і глобальних параметрів цей процес проходить по-різному.

Передача параметрів позначенню відбувається так. Коли зустрічається в програмі звернення до процедури, спочатку обчислюються значення аргументу , що передається із головної програми, потім результат обчислення присвоюється відповідному формальному параметру процедури. В подальшому зміни значення такого параметра, що відбуваються в процедурі, ніяк не відбиваються на значенні відповідного фактичного параметра в головній програмі.

Передача параметра за посиланням ( по адресі ) відбувається дещо інакше. Аргумент, що передається в ПП, в головній програмі повинен бути змінною, але не константою і не виразом. Коли відбувається звернення до процедури, остання одержує не значення аргументу, а його адресу. При кожній згадці в процедурі параметра-змінної, компілятор буде звертатися до області пам’яті, відведеної для аргументу в головній програмі. Таким чином, кожна зміна значення формального параметра фактично буде і зміною значення відповідного аргументу. Отже, параметри-змінні можна назвати вихідними , бо в ході виконання процедури їх значення змінюються і повертаються в головну програму.

Механізм передачі параметрів схематично можна зобразити так:

 

PROCEDURE PR( a1 : T1 ; a2 : T2 ;...; VAR u1 : T1 ; u2 : T2 ;...);


PR ( b1 , b2 , ……… .., v1 , v2 , …………….) ;

 

Таким чином, на місце параметра-значення можна підставляти безпосередньо значення, а на місцях параметрів-змінних можуть бути лише ідентифікатори змінних.

Приклад . Визначити, скільки разів і в які дні кожного із трьох місяців зими були перевитрати електроенергії при нормі N за добу, якщо витрати фіксувалися щодобово.

 

PROGRAM PEREVITR ;

TYPE ENERG = ARRAY[1..31] OF REAL ;

VAR GRUD , SICH , LUT : ENERG ;

N : REAL;

KG , KS , KL : INTEGER ;

{Кількість перевитрат в кожний із місяців }

PROCEDURE VVED ( M:INTEGER ; VAR X : ENERG ) ;

VAR I : INTEGER ;

BEGIN

FOR I := 1 TO M DO READ ( X[I])

END ; { Процедура введення масиву }

PROCEDURE VIVED ( M : INTEGER ; VAR X:ENERG ) ;

VAR I : INTEGER ;

BEGIN

FOR I := 1 TO M DO WRITE ( X[I] : 5 :1 )

END ; { Процедура виведення на екран масиву }

PROCEDURE VITR ( M : INTEGER ;

VAR X : ENERG ;

VAR K : INTEGER ) ;

VAR I : INTEGER ;

 

BEGIN

K := 0 ;

FOR I := 1 TO M DO

IF X[I]>N THEN BEGIN K:= K+1 ;

WRITELN ( I ,’ ‘, X[I] ) END

END ; { Процедура визначення кількості і днів перевитрат }

BEGIN

READ ( N ) ; WRITELN ( ‘ Норма N = ‘ , N ) ;

WRITELN ( ‘ ГРУДЕНЬ ‘ ) ;

VVED ( 31 , GR ) ;VIVED ( 31 ,GR) ; WRITELN ;

VITR ( 31 ,GR , KGR ) ; WRITELN ( ‘KGR = ‘ , KGR ) ;

WRITELN ( ‘ СІЧЕНЬ ‘ ) ;

VVED ( 31 , SICH) ; VIVED ( 31 , SICH ) ; WRITELN ;

VITR ( 31 , SICH , KS ) ; WRITELN ( ‘ KS = ‘ , KS ) ;

WRITELN ( ‘ ЛЮТИЙ ‘ ) ;

VVED ( 28, LUT ) ; VIVED ( 28 , LUT ); WRITELN ;

VITR ( 28 , LUT , KL ) ; WRITELN ( ‘ KL = ‘ , KL )

END .

Послідовність дій при виклику підпрограми-процедури майже така сама . як і для підпрограми-функції. Тільки результатом процедури може бути не одне значення, і вони передаються головній програмі не через ім’я підпрограми, а через параметри-змінні. Після виконання тіла підпрограми–процедури управління передається саме в ту точку головної програми, звідки викликалася процедура.

Насамкінець слід зауважити, що викладений вище матеріал є основами програмування на мові Турбо Паскаль . Можливості мови цим не обмежуються . Всім . хто має наміри поглибити знання про ТП, рекомендується ознайомитися з літературою.

Правительство Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего профессионального образования
"Национальный исследовательский университет
"Высшая школа экономики"

 

Московский институт электроники и математики Национального исследовательского университета «Высшая школа экономики»

 

Факультет информационных технологий и вычислительной техники

 

 

Лабораторный практикум

 

по курсу «Операционные системы»

для направления 230100.62 «Информатика и вычислительная техника» подготовки бакалавра

 

 

Лабораторная работа №1

 

«Базовый набор команд ОС Unix»

 

Методическое пособие

 

 

Кафедра «Информационно-коммуникационные технологии»

 

 

Москва 2014г.


УДК 681.3

 

Фомин С.С. Базовый набор команд ОС Unix. Методические указания по проведению лабораторной работы. – М.: МИЭМ НИУ ВШЭ, 2014. – 27с.

 

 

В данных методических указаниях приводятся сведения (формат и основные ключи) об основном наборе команд операционной системы Unix. Пособие позволяет получить навыки начальной работы практически в любой реализации ОС Unix. Предназначено для студентов, обучающихся по направлению «Информатика и вычислительная техника» и слушателей курсов повышения квалификации.

Пособие носит практический характер и может быть использовано для индивидуального обучения.

 

© МИЭМ НИУ ВШЭ, 2014



<== попередня лекція | наступна лекція ==>
Процедури . | Розв’язок задач лінійного програмування за допомогою EXCEL


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн