Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Простые процедуры и параметры.Стр 1 из 7Следующая ⇒
ПРОЦЕДУРЫ CF Pascal
Процедуры CF Pascal на самом деле обладают значительно большей гибкостью и мощью, чем было представлено в главе 2. Процедуры могут иметь параметры, могут объявлять внутренние переменные, чьи значения доступны только внутри процедуры, и таким образом защищены от использования извне. Для иллюстрации использования процедур будет разработана небольшая библиотека операций над натуральными числами.
Процедуры – наиболее важная часть CF Pascal (и многих других языков программирования) потому что они позволяют разбить программу на небольшие разделы для лучшего понимания. Каждый раздел в значительной степени самодостаточен, его можно изучать в отдельности. При использовании процедуры нет необходимости читать весь ее текст, обычно достаточно прочитать название процедуры или обобщающий комментарий. В некотором смысле процедура реализует идею функции значения части программы. Преимущество процедур над другими конструкциями CF Pascal в том, что они могут включать любой код и поэтому являются мощным средством для абстрагирования и обобщения. Более того, механизм параметров позволяет обобщить одну процедуру для решения целого класса задач, что позволяет сокращать трудоемкость разработки
Процедуры с параметрами
Процедуры могут быть объявлены с формальными параметрами, таким образом, что данные, сохраненные в состоянии выполнения, могут быть обработаны кодом процедуры, где параметры процедуры заменяются переменными программы. Понятия: оператор процедуры, объявление процедуры, формальные параметры, фактические параметры, правило «все или ничего»
Простые процедуры и параметры. Процедуры, описанные в главе 2 и их формальное значение, описанное в главе 6 позволяют объявить оператор BEGIN и потом вызывать его через процедурное выражение используя только идетификатор процедуры. Объявление добавляет идентификатор в состояние выполнения, значением которого является текст тела процедуры. Например, объявление процедуры:
PROCEDURE SwitchOneTwo; BEGIN Hold: = OneV; OneV: = TwoV; TwoV: = Hold; END.
Может быть написано для обмена значений OneV и TwoV, разрушая значение Hold. Это объявление добавляет пару < SwitchOneTwo, Hold: = OneV; OneV: = TwoV; TwoV: = Hold> к состоянию выполнения и процедурное выражение SwitchOneTwo имеет значение SwitchOneTwo = < s, s(SwitchOneTwo) (s)> = < s, Hold: = OneV; OneV: = TwoV; TwoV: = Hold (s)> = (Hold, OneV, TwoV: = OneV, TwoV, OneV) выраженное как условное присваивание. Эта функция частного значения является значением любого процедурного оператора SwitchOneTwo. Вычислив один раз, мы можем использовать это значение везде, где вызывается эта процедура. Недостатком использования простых процедур является то, что они должны использовать данные из окружающего контекста. В вышеприведенном примере SwitchOneTwo обменивает две определенные переменные, используя определенную временную переменную. Для того, чтобы обменивать другие переменные, потребуется другая процедура. Параметры являются механизмом, который устраняет это ограничение.
Идентификаторы параметров помещаются в заголовке процедуры и используются в тексте как «подставные лица», то есть они фактически только обозначают место, куда будут подставлены переменные, использованные при вызове процедуры в тексте программы. Например, заголовок:
PROCEDURE SwitchThese2(VAR V1, V2, temp: CHAR)
имеет три формальных параметра, которые принимают символьные значения. Тело процедуры может использовать их, скажем, следующим образом.
PROCEDURE SwitchThese2(VAR V1, V2, temp: CHAR); BEGIN Temp: = V1; V1: = V2; V2: = Temp; END
Процедурные выражения могут использовать идентификатор процедуры, со следующими за ним фактическими параметрами, которыми могут быть любые переменные того же типа, что и формальные параметры, которые существуют в момент вызова процедурного выражения. Например, если в программе объявлены переменные Hold, OneV и TwoV, то процедурное выражение
SwitchThese2(OneV, TwoV, Hold)
Выполнит обмен значений OneV и TwoV точно так же как это сделала бы процедура SwitchOneTwo. Но мы также с помощью
SwitchThese2(OneV, AnyV, Hold)
сможем обменять значения OneV и AnyV без всяких изменений в объявлении переменной Switchthese2. Как будто в тексте объявления процедуры формальные параметры были заменены на фактические. В последнем примере
SwitchThese2(OneV, AnyV, Hold) = Hold: = OneV; OneV: = AnyV; AnyV: = Hold = (Hold, OneV, AnyV: = OneV, AnyV, OneV)
Процедуры могут иметь параметры разных типов. Например:
PROCEDURE Copy (VAR F1, F2: TEXT; VAR Ch: CHAR);
Может быть использован как заголовок процедуры, чей оператор BEGIN копирует файл F1 в файл F2 с сохранением структуры строк.
PROCEDURE Copy (VAR F1, F2: TEXT; VAR Ch: CHAR); BEGIN {Copy} WHILE NOT EOF (F1) DO BEGIN WHILE NOT EOLN (F1) DO BEGIN READ(F1, Ch); WRITE(F2, Ch) END READLN(F1); WRITELN(F2) END END {Copy}
Эта процедура может в дальнейшем быть использована с любым существующими файлами, которые подставляются вместо F1 и F2 и любой существующей символьной переменной, которая подставляется вместо Ch. Например:
Copy(INPUT, OUTPUT, temp)
Будет отображать input в output.
|