Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Название: организация программ с использованием подпрораммСодержание книги
Поиск на нашем сайте
ЦЕЛЬ ЗАДАНИЯ: 1. Получение навыков в написании программ с использованием подпрограмм-процедур и подпрограмм-функций. 2. Изучение механизма передачи параметров по значению и ссылке. ПОСТАНОВКА ЗАДАЧИ: Дано несколько массивов чисел. Длины массивов заданы в варианте. Требуется в каждом массиве найти наибольший и наименьший элементы и напечатать их. Вычисление максимальной и минимальной величин оформить в виде процедуры, глобальные параметры в процедуре не использовать.
СОДЕРЖАНИЕ ОТЧЕТА: 1. Постановка задачи для конкретного варианта 2. Блок-схему алгоритма. 3. Текст программы. 4. Результаты счета.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ: 1. Если в качестве исходной информации в процедуру передается массив, то его следует передавать по ссылке для экономии памяти, так как в этом случае при вызове процедуры не образуется локальный массив. 2. Несмотря на то, что обрабатываемые массивы имеют разную длину, они описываются в программе как массивы одного и того же типа, так как при обращении к процедуре типы соответствующих формальных и фактических параметров должны совпадать. 3. Конкретные длины массивов должны быть описаны в разделе констант. 4. Приведенная ниже программа упорядочивает по не убыванию три массива разной длины (10, 5, 8) и выводит их на печать. ПРОГРАММА: PROGRAM MAS; TYPE A=ARRAY[1..20] OF REAL; VAR X,Y,Z:A; I,N: INTEGER; D:TEXT; (* ПРОЦЕДУРА ВВОДА *) PROCEDURE WWOD(K:INTEGER; VAR M:A); VAR J: INTEGER; BEGIN WRITELN('ВВЕДИТЕ',K:3,' ЭЛЕМЕНТОВ МАССИВА'); FOR J:=1 TO K DO READ(M[J]); READLN END; (* ПРОЦЕДУРА СОРТИРОВКИ МАССИВОВ *) PROCEDURE UP(K:INTEGER;VAR M:A); VAR I,J:INTEGER; C: REAL; BEGIN FOR J:=K DOWNTO 2 DO FOR I:=1 TO J-1 DO IF M[I]>M[I+1] THEN BEGIN C:=M[I+1]; M[I+1]:=M[I]; M[I]:=C END END; (* ПРОЦЕДУРА ВЫВОДА *) PROCEDURE WUWOD(K:INTEGER;VAR M:A;L:BOOLEAN); VAR J:INTEGER; BEGIN FOR J:=1 TO K DO begin IF L THEN WRITE(M[J]:6:2); WRITE(D,M[J]:6:2) END; WRITELN; WRITELN(D) END; BEGIN ASSIGN(D,'LAB11.DAT'); REWRITE(D); WWOD(10,X); WWOD(5,Y); WWOD(8,Z); WRITELN(D,'ИСХОДНЫЕ МАССИВЫ'); WRITELN(D); WRITELN(D,'МАССИВ X'); WUWOD(10,X,FALSE); WRITELN(D,'МАССИВ Y'); WUWOD(5,Y,FALSE); WRITELN(D,'МАССИВ Z'); WUWOD(8,Z,FALSE); WRITELN(D); UP(10,X); UP(5,Y); UP(8,Z); WRITELN('МАССИВЫ ПОСЛЕ ПЕРЕСТАНОВКИ '); WRITELN; WRITELN(D,'МАССИВЫ ПОСЛЕ ПЕРЕСТАНОВКИ '); WRITELN(D); WRITELN(D,'МАССИВ X');WRITELN('МАССИВ X'); WUWOD(10,X,TRUE); WRITELN(D,'МАССИВ Y');WRITELN('МАССИВ Y'); WUWOD(5,Y,TRUE); WRITELN(D,'МАССИВ Z');WRITELN('МАССИВ Z'); WUWOD(8,Z,TRUE); WRITELN(D,'РАБОТУ ВЫПОЛНИЛ ИВАНОВ И.И.'); CLOSE(D) END. Результаты работы программы
ИСХОДНЫЕ МАССИВЫ МАССИВ X 5.00 9.00 8.00 7.00 2.00 0.00 2.00 6.00 5.00 9.00 МАССИВ Y 8.00 3.00 0.00 1.00 6.00 МАССИВ Z 9.00 4.00 0.00 6.00 2.00 4.00 6.00 7.00 МАССИВЫ ПОСЛЕ ПЕРЕСТАНОВКИ МАССИВ X 0.00 2.00 2.00 5.00 5.00 6.00 7.00 8.00 9.00 9.00 МАССИВ Y 0.00 1.00 3.00 6.00 8.00 МАССИВ Z 0.00 2.00 4.00 4.00 6.00 6.00 7.00 9.00 РАБОТУ ВЫПОЛНИЛ ИВАНОВ И.И. Контрольные вопросы: 1. Чем отличается подпрограмма функция от подпрограммы процедуры? 2. Что называется фактическим и формальным параметром? 3. В чем разница передачи данных по ссылке и по значению? ЛАБОРАТОРНАЯ РАБОТА №11 НАЗВАНИЕ: ОРГАНИЗАЦИЯ ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ МОДУЛЕЙ ЦЕЛЬ ЗАДАНИЯ: Получение практических навыков в написании программ с использованием МОДУЛЕЙ ПОСТАНОВКА ЗАДАЧИ: Дано два одномерных массива. Требуется вычислить функцию
где S1 и K1 - сумма и число положительных элементов первого массива, S2 и K2 - сумма и число отрицательных элементов второго массива. Для вычисления суммы и числа положительных или отрицательных элементов массива использовать одну и ту же процедуру, размещенную в модуле. Процедура должна позволять решать задачи при числе элементов массива N <= 100.
СОДЕРЖАНИЕ ОТЧЕТА: 1. Постановка задачи для конкретного варианта. 2. Исходный текст модуля и программы, блок - схему алгоритма. 3. Результаты выполнения программы.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ 1. МОДУЛЬ - это автономно компилируемая программная единица, включающая в себе различные компоненты раздела описаний (типы, константы, переменные, процедуры и функции). Модуль сам по себе не является выполняемой программой - его объекты используются другими программными единицами. Все программные ресурсы модуля можно разбить на две части: объекты, прямо предназначенные для использования другими программами или модулями, и объекты рабочего характера. В соответствии с этим модуль, кроме заголовка, имеет две основные части, называемые интерфейсом и реализацией. Заголовок модуля составляется из служебного слова UNIT и следующего за ним имени модуля. Заголовок завершается символом ";" (точка с запятой). Для правильной работы среды ТУРБО-ПАСКАЛЯ это имя должно совпадать с именем дискового файла, в котором помещается исходный текст модуля. Если, например, имеем заголовок UNIT GLOBAL; то исходный текст соответствующего модуля должен размещаться в дисковом файле GLOBAL.PAS. Интерфейсная часть начинается со служебного слова INTERFACE, за которым следует совокупность обычных описаний. Часть реализации начинается служебным словом IMPLEMENTATION и содержит описание подпрограмм, объявленных в интерфейсной части. В ней могут объявляться локальные для модуля объекты, вспомогательные типы, константы и переменные. Завершает модуль, как и программу, служебное слово END и символ точка. Описанию подпрограммы, объявленной в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок, в котором можно опускать список формальных параметров (и тип результата для функции), так как они уже описаны в интерфейсной части. Но если заголовок подпрограммы приводится в полном виде, т.е. со списком формальных параметров и объявлением результата, он должен совпадать с заголовком, объявленным в интерфейсной части, например: unit cmplx; interface type complex=record re,im: real end; procedure addс(x,y:complex; var z:complex); implementation procedure addс; begin z.re:=x.re+y.re; z.im:=x.im+y.im end end.
В этом модуле описан тип complex и процедура addс сложения комплексных чисел. Модуль компилируется точно таким же образом, как и обычные подпрограммы. Но так как модуль не является непосредственно выполняемой единицей, то в результате его компиляции образуется дисковый файл с расширением.TPU, при этом имя файла берется из имени файла с исходным текстом модуля. Для того чтобы получить доступ к интерфейсным объектам модуля необходимо указать в программе имя нужного TPU - файла. Соответствующая конструкция называется спецификацией используемых модулей и имеет следующий вид: USES U1,U2,U3; где USES- служебное слово, U1,U2,U3- имена используемых модулей. Эта спецификация должна идти непосредственно после заголовка программы. При наличии спецификации используемых модулей в данной программе считаются известными все описания из интерфейсных частей подключенных модулей. К интерфейсным объектам модуля можно обращаться в программе точно так же, как если бы они были описаны в самой этой программе. 2. Правильность работы программы проверить на следующих тестовых задачах: А) 1-ый массив N=10. элементы с 1-го по 5-ый равны 4 элементы с 6-го по 10-ый равны -2 2-ой массив N=5 все элементы массива равны -3
ОТВЕТ: Z=1.75
Б) 1-ый массив N=5 все элементы массива равны 5 2-ой массив N=3 все элементы массива равны 2
ОТВЕТ: Z ВЫЧИСЛИТЬ НЕВОЗМОЖНО Контрольные вопросы: 1. Что называется модулем? 2. Какова структура модуля? 3. На какие части разбиты программные ресурса модуля? 4. В чем отличие локальных и глобальных переменных? 5. Как обеспечить доступ к интерфейсным объектам модуля?
Содержание
|
||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-12-10; просмотров: 392; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.20 (0.006 с.) |