Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sitkin_Informatika_Programmirovanie_v_DELPHI.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
600.56 Кб
Скачать

Пример4.1

Разработаемпроектыдлявычислениязначениявыражения

za

x25

  • a2

y25

(y2)25

,

гдеxиyпеременные,aконстанта с использованием подпрограмм,помещённых всобственный(пользовательский) модуль.

В предыдущей работе уже были разработаны функция и проце-дураdrobдля вычисления значения типового выражения. Здесь оста-ётся только создать свой модуль и переместить функцию и процедуруиз проектов в пользовательский модуль в соответствии с его структу-рой. Затем наш модуль необходимо подключить к обоим проектам,чтобы они смогли воспользоваться подпрограммами, как и раньше, ноужерасположеннымивмодуле.Посколькуобеподпрограммыбудут

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

UNITMy_Unit;

INTERFACE

functiondrob1(t:real):real;proceduredrob(t:real;vard:real);IMPLEMENTATION

proceduredrob(t:real;vard:real);

constc=5;vart1, t2:real;begin

t1:=sqr(t)+c;t2:=sqrt(abs(t))+c;d:=t1/t2;

end;

functiondrob1(t:real):real;

constc=5;vart1, t2:real;begint1:=sqr(t)+c;

t2:=sqrt(abs(t))+c;drob1:=t1/t2;

end;

END.

UNITMy_Unit;

INTERFACE

consta=3;

varx,y,z,z1,z2,z3:real;

functiondrob1(t:real):real;proceduredrob(t:real;vard:real);IMPLEMENTATION

constc=5;

vart1,t2:real;

proceduredrob(t:real;vard:real);

begin

t1:=sqr(t)+c;t2:=sqrt(abs(t))+c;d:=t1/t2;

end;

functiondrob1(t:real):real;

begin

t1:=sqr(t)+c;t2:=sqrt(abs(t))+c;drob1:=t1/t2;

end;

END.

В первом варианте (слева) подпрограммы перенесены в разделреализации модуля, а их заголовки продублированы в разделе описа-ний,чтобыподпрограммыбылидоступныизвнешней среды.

Во втором вариантето же, плюс перенесены в раздел описа-ний модуля константаaи переменныеx,y,zи др., что даёт возмож-ность не объявлять одно и то же дважды в проектах, а один раз в мо-дуле. Кроме того, в разделе реализации объявлена константаcи пе-ременныеt1иt2теперьвнеподпрограммиоднократно.Онибудут,как и раньше, «видны» обеим нашим подпрограммам, но «не видны»тем, кто подключит этот модуль, т.к. объявлены в разделе реализации(для внутренних нужд модуля). А вот константаaи переменныеx,y,zобъявленывразделеописанийи«видны»ивнутри,ивнемодуля.

Задание

Создать пользовательский модуль и перенести в него пользова-тельскиеподпрограммыизпредыдущейработы.Подключитьмодулькобоимпроектам.

Содержаниеотчёта

  • цельработыизадание(сисходнымвыражением);

  • текстпользовательскогомодуля;

  • текстымодулейпроектов;

  • примерработыприложенийсуказаниемкомпонентовформы;

  • выводыпоработе.

Контрольныевопросы

  1. Скакойцельювпрограммированиииспользуютмодули?

  2. Чтотакоемодуль,каковаихклассификация?

  3. Каковаструктурамодуля,каквключитьмодульвпроект?

  4. Чемопределяетсяобластьвидимостипеременнойвмодуле?

  5. Вкакомслучаемодульбудетсодержатьтолькоразделописаний?

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

АЛГОРИТМЫВЕТВЛЕНИЙ

Цель работыприобретение умений разработки и программнойреализацииразветвляющихся алгоритмов.

Разветвляющийся алгоритмалгоритм, в котором на опреде-лённом этапе выбор очередного выполняемого действия производит-сяврезультате анализаусловия.

В программированииусловиеэто переменная или выражениелогического типа, т.е. такие, которые могут принимать одно из двухвозможных значений:True(истина) илиFalse(ложь). Обычно логи-ческоевыражениестроитсяизлогическихпеременных,операцийсравнения, логических и арифметических операций. Основные логи-ческие операции и результаты их выполнения над логическими аргу-ментами(операндами) представлены втабл.5.1.

Таблица5.1

Таблицаистинностидляосновныхлогическихопераций

Логические

операнды

Логическиеоперации

A

B

Логическоеотрицание

notA

Логическоеумножение(и)

AandB

Логическоесло-жение(или)

AorB

False

False

True

False

False

False

True

True

False

True

True

False

False

False

True

True

True

False

True

True

Логическиеоперациимогутвыполнятьсятольконадоперан-дами (переменными или выражениями) логического типа. Результатоперации–значениеTrueилиFalse.Операцияnotявляетсяодно-

местной и может выполняться только над одним операндом. Опера-цииandиorвыполняются минимум над двумя операндами, но могутбыть распространены на несколько операндов. В этом случае резуль-тат операцииandпринимает значениеTrue, если все операнды при-няли значенияTrue, иFalseво всех остальных случаях. Результатоперацииorпринимает значениеTrue, если хотя бы один из операн-довпринялзначениеTrue.

Коперациям(отношениям)сравненияотносят:меньше(<);меньше или равно (<=); больше (>); больше или равно (>=); равно (=);не равно (< >). Двойные неравенства записываются с использованиемлогическихопераций,например,(x>1)and(x<2).

Логические операции имеют следующий приоритет: в первуюочередь выполняетсяnot,затемandи в последнюю очередьor.Операции сравнения имеют низший приоритет по сравнению с логи-ческими и арифметическими операциями. Порядок выполнения опе-рацийможноустанавливатьспомощьюскобок.

Для логических переменных и выражений остаётся справедли-войконструкцияоператораприсваивания,например,a:=x>3;b:=(x>y)and(y<=0);c:=aorb;. Сначала вычисляется значение (TrueилиFalse) выражения, стоящего справа, а затем оно присваиваетсяпеременнойслева.Логическиепеременные,какидругие,должныбытьобъявленывразделе описаний

vara,b,c:boolean;x,y:real;

Впрограммированиивозможностьреализоватьразветвляю-щийся алгоритм обеспечивается условными операторами и операто-рамивыбора.