Главная » Просмотр файлов » Основы программирования

Основы программирования (947332), страница 26

Файл №947332 Основы программирования (Иванова Г.С. Основы программирования) 26 страницаОсновы программирования (947332) страница 262013-09-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

Схемы алгоритма данной программы с использованием под­программ обоих типов приведены на рис. 5.5.Ниже приведены тексты соответствующих программ.Вариант с и с п о л ь з о в а н и е м ф у н к ц и и :Program ex;Var A,B,C,D,E:real;{глобальные переменные}{описание функции}Function Stf(const X, Y,Z:real):real;Varp:real;{локальная переменная}begin{раздел операторов функции}p:=(X^Y+Z)/2;Stf:=sqrt(p^(p^X)^(p-Yr(p^Z)):end;148J. Модульное программирование{раздел операторов основной программы}BeginWriteLn СВведите длины сторон и диагонали');ReadLn(A,B,C,D,E);]¥гИе1п('Пло1цадь четырехугольника', Stf(AjB,E)+Stf(CyD,E):7:3);End.Вариант с и с п о л ь з о в а н и е мпроцедуры:Program ex;Var A,B,C,D,E:real; SJ,S2:real; {глобальные переменные}{описание процедуры}Procedure Stp(const X, Y,Z:real;var S:real);Varp.real;{локальная переменная}begin{раздел операторов процедуры }p:=(X+Y+Z)/2;S: =sqrt(p *(p'X) Y;?- Y) *(p-Z));end;{раздел операторов основной программы}BeginWriteLnCВведите длины сторон и диагонали);ReadLn{A,B,C,D,E);Stp(A,B,E,Sl); {вызов процедуры}Stp(CyD,E,S2); {вызов процедуры}ЖгИеЬпСПлогцадь четырехугольника \S1+S2;7:3);EndИспользование параметров структурных типов, таких, как массивы,строки (кроме типа string), множества, записи, файлы, имеет одну общуюособенность: тип таких параметров должен быть предварительно объявлен винструкции описания типа type.Например:Туре mas^arrayfl.JOJ о/real;str80=stringf80J;procedure А (M:mas; fout:str80);...Пример 5.2.

Разработать подпрограмму суммирования элементов мас­сива размерности п, п < 10.Поскольку результат - скалярное значение, то будем использовать под­программу-функцию. Описание типа «массив из 10 целых чисел» должнобыть выполнено отдельно в разделе описаний. Новый тип mas затем исполь149Часть I. Основы алгоритмизации и процедурное программированиезуется при объявлении массива а и при объявлении типа массива, передавае­мого через параметр-значение. Полный текст программы представлен ниже.Program ex;Type mas-arrayll.AO] of integer; {тип «массив из 10 целых чисел»}Var aimas;i,n: integer;Function sum(b:mas; n:integer).'integer;Var s: integer;i: integer;Begin s:=0;for i:=I to n do s:=s+b[ij;sum:=s;End;BeginReadLn(n);for i:=l to n do Read(a[i]);ReadLn;WriteLn(VyMMa= \sum(a,n));End5.2. Практикум.

Выделение подпрограмм методомпошаговой детализацииМетод пошаговой детализации позволяет не только разрабатывать алго­ритмы, но и выделять подпрограммы, соблюдая все требования, предъявляе­мые структурным программированием.Пример 5.3. Разработать программу исследования элементарных функ­ций, которая для функций у = sin х, у = cos х, у = tg х, у = In х, у = е^ выпол­няет следующие действия:• строит таблицу значений функции на заданном отрезке с заданнымшагом;• определяет корни функции на заданном отрезке;• определяет максимум и минимум функции на заданном отрезке.Программы такого рода обычно взаимодействуют с пользователем черезменю. В данной программе будет использовано два меню: меню функций, вкотором пользователь будет выбирать функцию, и меню операций, в которомпользователь будет выбирать вид обработки.Меню функций (рис.

5.6, а) должно выводиться на экран при запускепрограммы. После ввода номера функции на экране должно появиться менюопераций (рис. 5.6, б). Введя номер операции, пользователь должен увидетьна экране запрос на ввод данных, необходимых для выполнения этой опера­ции (рис. 5.6, в'д).

Задав данные, пользователь должен получить на экране1505. Модульное программированиеПрофамма исследования функций:1 - sin X2 - cos X3-Inx4-е'^х5 - выходВведите номер функции: _Список операций:1 - получение таблицы значений;2 - определение корней;3 - определение экстремумов;4 - выход.Определите операцию: _аВведите интервал: _Введите погрешность: _1 Введите интервал: _Введите шаг: _Таблица значений функции.1 х=...Корень х=...значение функции в корне у=у=...х=...у=...х=...у=...Нажмите любую клавишу.к.Нажмите любую клавишу.JВведите интервал: _Введите погрешность: _Минимум у=... при х=...Максимум у=...

при х=...Нажмите любую клавишу.Рис. 5.6. Состояния интерфейса профаммы исследования функций:а - меню функций; б - меню операций; в-д - оформление операцийрезультаты. После анализа результатов пользователь должен нажать любуюклавишу, чтобы вернуться в меню операций.Далее пользователь может выбрать другую операцию, а может вернуть­ся в меню функций, если выберет операцию 4 (выход). Вернувшись в менюфункций, пользователь может выбрать другую функцию или выйти из про­граммы.На рис. 5.7 представлена диаграмма переходов состояний интерфейсапользователя, из которого видно, в какой последовательности и по нажатиюкаких клавиш осуществляется переключение форм (экранов) интерфейса.151Часть 1.

Основы алгоритмизации и процедурное программированиех- нажатиелюбойклавишиРис. 5.7. Диаграмма переходов состояний интерфейсапрограммы исследования функцииПри разработке алгоритма методом пошаговой детализации будем ис­пользовать псевдокод. Начинаем разработку алгоритма «сверху», т.е. с реали­зации меню функций.Меню функций работает следующим образом. При запуске программывыводим меню на экран. Затем вводим номер функции и, если номер функ­ции не равен 5, передаем управление меню операций, сообщая ему номервыбранной функции. Когда меню операций завершит свою работу, то на эк­ран вновь необходимо вывести меню функций и опять ввести номер функ­ции:Программа исследования элементарных функций:ВЫВЕСТИ_МЕНЮ_ФУНКЦИЙ.Ввести Номер_функции.Цикл-пока Номер_функции о 5Вызвать МЕНЮ_,ОПЕРАЦИЙ (Номер_функции)ВЫВЕСТИ_МЕНЮ__ФУНКЦИЙ.Ввести Номер_функции.Все-цикл.Конец.На этом шаге определились две подпрограммы: ВЫВЕСТИ_МЕНЮ_ФУНКЦИЙ и МЕНЮ__ОПЕРАЦИЙ (Номер__функции).

ПодпрограммаВЫВЕСТИ_МЕНЮ_ФУНКЦИЙ будет иметь линейную структуру:152J. Модульное программированиеПодпрограмма ВЫВЕСТИ^МЕНЮ^ФУНКЦИИ:ОЧИСТИТЬ_^ЭКРАН.Вывести «Программа исследования функций.»Вывести «1 - sin х;».Вывести «2 - cos х;».Вывести «3 - In х;».Вывести «4 - е'^х;».Вывести «5 - Выход.».Конец подпрограммы.Подпрограмма МЕНЮ_ОПЕРАЦИЙ (Номер_функции) также должнареализовать меню:Подпрограмма МЕНЮ_ОПЕРАЦИЙ (Номерфункции):ВЫВЕСТИ^МЕНЮ_ОПЕРАЦИЙ.Ввести Номер_операции.Цикл-пока Номер_ операции о 4Выбор Номер__ операции:1: Вызвать ТАБЛИЦА (Номер_функции);2: Вызвать КОРЕНЬ (Номер_функции);3: Вызвать МАКСМИН (Номер_функции);Все-выбор.ВЫВЕСТИ_МЕНЮ_ОПЕРАЦИЙ.

.Ввести Номер_ операции.Все-цикл.Конец подпрограммы.Подпрограмма ВЫВЕСТИ_МЕНЮ__ОПЕРАЦИЙ похожа на ВЫВЕСТИ__МЕНЮ_ФУНКЦИЙ:Подпрограмма ВЫВЕСТИ^МЕНЮ__ОПЕРАЦИЙ:ОЧИСТИТЬ_ЭКРАН.Вывести «Список операций:».Вывести «1 - получение таблицы значений;».Вывести «2 - определение корней;».Вывести «3 - определение экстремумов;».. Вывести «4 - выход.».Вывести «Определите операцию: ».Конец подпрограммы.Подпрограмма ТАБЛИЦА(Номер_функции) должна вводить дополни­тельные данные о границах интервала и значении шага:153Часть I. Основы алгоритмизации и процедурное программированиеПодпрограмма ТАБЛИЦА(Номер__функции):ОЧИСТИТЬ__ЭКРАН.Вывести «Введите границы интервала»Ввести А, В.Вывести «Введите шаг».Ввести h.х=АЦикл-пока X < ВЕсли ФУНКЦИЯ(Номер_функции, х, у)то Вывести «х=», х, « у=», уиначе «х=», х, «значение функции не определено»Все-еслиx=x+hВсе-цикл.ОЖИДАТЬ_НАЖАНИЯ__КЛАВИШИ.Конец подпрограммы.Подпрограммы КОРЕНЬ(Номер_функции) и МАКСМИН(Номер_функции) определяются аналогично.

Естественно, они также обращаются к под­программе ФУНКЦИЯ для получения конкретного значения функции в точ­ке.Подпрограмма ФУНКЦИЯ будет возвращать логическое значение: true если значение функции определено, и false - в противном случае. Значениеисследуемой функции в точке х подпрограмма будет возвращать через пара­метр-переменную у:Подпрограмма ФУНКЦИЯ(Номер_функции, х, у):ФУНКЦИЯ=1гиеВыбор Номерфункции:1: y=sin(x);2: y=cos(x);3: Если х>0то у=1п(х)иначе ФУНКЦИЯ=Га18еВсе-если4: у=ехр(х)Все-выборКонец подпрограммы.Таким образом, выполняя пошаговую детализацию программы, мы осу­ществили ее декомпозицию на основную программу и семь подпрограмм(подпрограммы ОЧИСТИТЬ__ЭКРАН и ОЖИДАТЬ^НАЖАНИЯ^КЛАВИШИ являются стандартными процедурами библиотеки управления экраномв т(^кстовом режиме и их можно не учитывать).1545.

Модульное программированиеОсновнаяпрограммаВывести менюфункцийМенюоперацийВывести менюоперацийТаблицаКореньМаксминФункцияРис. 5.8. Иерархия вызовов подпрограмм программы исследованияфункцийРезультат процедурной декомпозиции обычно представляют в виде схе­мы, которая показывает иерархию вызовов подпрограмм (рис. 5.8).В соответствии с рекомендациями структурного программирования реа­лизация и отладка программы также должны выполняться поэтапно. Снача­ла реализуют основную программу, используя вместо подпрограмм следую­щего уровня «заглушки» (подпрограммы, у которых отсутствуют операторымежду begin и end).

Характеристики

Тип файла
PDF-файл
Размер
13,06 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее