Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Название: организация программ с использованием подпрорамм↑ ⇐ ПредыдущаяСтр 7 из 7 Содержание книги
Поиск на нашем сайте
ЦЕЛЬ ЗАДАНИЯ: 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; просмотров: 302; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.10.117 (0.009 с.) |