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

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

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

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

Предусмотреть ввод размера обыч­ной стипендии с клавиатуры.1435. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕБольшие программы обычно разрабатывают и отлаживают по частям. Целесообраз­но при.этом, чтобы каждая такая часть, называемая подпрограммой, была оформленатак, чтобы ее можно было использовать при решении аналогичной подзадачи в той жепрограмме или даже при решении других задач. В Borland Pascal реализованы два типаподпрограмм: процедуры и функции.5.1. Процедуры и функцииПроцедуры и функции представляют собой относительно самостоятель­ные фрагменты программы, соответствующим образом оформленные иснабженные именем (программные блоки). По правилам Borland Pascal про­граммные блоки - такие же ресурсы, как типы и переменные. Соответствен­но, они также должны быть описаны перед использованием в разделе описа­ний программного блока, который их использует (основной программы иливызывающей подпрограммы).

Каждый блок имеет такую же структуру, какосновная программа, т.е. включает заголовок, раздел описаний и раздел опе­раторов, но заканчивается не точкой, а точкой с запятой (рис. 5.1).Заголовок блока определяет форму вызова подпрограммы. В разделеописаний блока объявляют внутренние локальные ресурсы блока (перемен­ные, типы, внутренние подпрограммы). Раздел операторов содержит инст­рукции подпрограммы в операторных скобках begin...end.Заголовки процедур и функций описываются по-разному. В отличие отпроцедуры функция всегда возвращает в точку вызова скалярное значение,адрес или строку.

Тип возвращаемого результата описывается в заголовкефункции (рис. 5.2).ЗаголовокблокаРазделописаний•——>РазделоператоровРис. 5.1. Синтаксическая диаграмма конструкции<Программный блок>1445. Модульное программирование- ^ procedure V ИдентификаторСписокпараметров- ^ function V Идентификатор—I I \1^Списокпараметров,<7>]•[результата!\^^Рис. 5.2. Синтаксические диаграммы конструкций<ЗаголоБок процедуры> {а) и <Заголовок функции> (б)Данные для обработки процедуры и функции получают из вызвавшей ихосновной программы или подпрограммы.

Для размещения рабочих полейподпрограммы могут объявлять новые типы и переменные в собственномразделе описаний. Результаты же они обычно должны возвращать вызвавшейпрограмме или подпрограмме.Из основной программы данные могут быть получены:• неявно - с использованием глобальных констант и переменных;• явно - через параметры.Неявная передача данных в подпрограммы. Каждой подпрограммедоступны все ресурсы программного блока, в разделе описаний которого этаподпрограмма объявлена. Ресурсы же основной программы доступны в лю­бой подпрограмме. Они получили название глобальных.В свою очередь локальные ресурсы, объявленные в разделе описанийподпрограммы, из программного блока, в разделе описания которого она оп­ределена, не доступны.

В том случае, если в подпрограмме объявляется ре­сурс, имя которого совпадает с именем глобального ресурса, соответствую­щий глобальный ресурс в подпрограмме становится не доступным, «пере­крывается».Например, на рис. 5.3 в разделе описаний основной программы объявле­на подпрограмма А, в разделе описаний которой объявлена подпрограмма В.Переменная х доступна в обеих подпрограммах, так как она не перекрывает­ся.

Переменная z основной программы в подпрограмме А не доступна, таккак эта подпрограмма перекрывает глобальную переменную z локальной. Вподпрограмме В используется значение z, определенное в подпрограмме А.Опыт показывает, что неявная передача данных в подпрограммы обыч­но приводит к большому количеству ошибок, которые достаточно сложно ис­кать, так как неизвестно, какая подпрограмма с какими глобальными ресур­сами работает.

Кроме того, подпрограммы, использующие глобальные дан145Часть 1. Основы алгоритмизации и процедурное программированиеProgram ex;Var xrreal; z:real;-----t":Procedui^ A;Var z: integer;PrdeodurfesB;Var irtfitegerK^Begin i:=z; x:=5;End;B^gin\-round(x);End;BeginEnd.Рис. 5.3. Перекрытие ресурсов в подпрограммахные, невозможно перенастроить на работу с другими значениями, что сокра­щает возможности их применения. Поэтому желательно использовать явнуюпередачу значений - через параметры.Передача данных через параметры. Список параметров описываетсяв заголовке подпрограммы (рис. 5.4).

Параметры, перечисленные в этом спи­ске, получили название формальных, так как для их размещения не отводит­ся память. При обращении к подпрограмме для каждого параметра должнобыть указано фактическое значение - литерал, константа или переменнаятого же типа, что и формальный параметр. Несоответствие типов и количе­ства формальных и фактических параметров выявляется компилятором (иликомпоновщиком, если вызов подпрограммы происходит из другого модуля см. далее).

Нарушение порядка следования фактических параметров, еслиоvarИдентификатор'-*/ const VU|OLJ11 V уО ОТИПL/7VI параметра [ Т у^Рис. 5.4. Синтаксическая диаграмма конструкции <Список параметров>1465. Модульное программированиеэто нарушение не связано с несовпадением количества параметров или ихтипов, приводит к нарушению логики работы программы и часто может бытьобнаружено только при тестировании программы.В Borland Pascal параметры в подпрограмму могут передаваться тремяспособами:• как значения - в подпрограмму передаются копии значений парамет­ров, и никакие изменения этих копий не возвращаются в вызывающую про­грамму;• как переменные - в подпрограмму передаются адреса фактических па­раметров, соответственно все изменения этих параметров в подпрограмме насамом деле происходят с переменными, переданными в качестве фактичес­ких параметров; такие параметры при описании помечаются служебнымсловом var; в качестве фактических значений параметров-переменных нель­зя использовать литералы\• как неизменяемые переменные (именованные константы) - в подпро­грамму, так же как и в предыдущем случае, передаются адреса фактическихпараметров, но при попытке изменить значение параметра компилятор выда­ет сообщение об ошибке; такие параметры при описании помечаются слу­жебным словом const.Вызов процедур и функций.

И процедура, и функция, используя пара­метры-переменные, могут изменять значения переменных основной про­граммы. Но как отмечалось выше, функция отличается от процедуры тем,что кроме изменения значений параметров-переменных всегда возвращает вточку вызова скалярное значение, строку или указатель. Поэтому в телефункции обязательно наличие специальной переменной с именем функции,которой должно присваиваться значение.

Именно это значение и будет воз­вращено в место вызова функции в качестве ее результата. Вызов функции,таким образом, можно осуществлять в составе выражений везде, где возмож­но использование выражений (в операторе присваивания, в операторе выво­да и т.д.), например:<переменная>:=<имя функции>(<фактические параметры>).Процедура же должна вызываться отдельным оператором, состоящим изимени процедуры и списка фактических параметров:<имя процедуры>(<фактические параметры>).Вызов процедуры и функции по-разному изображается на схеме алго­ритма: вызов функции - в блоке «процесс» или блоке вывода, а для вызовапроцедуры используется специальный блок «предопределенный процесс».Схемы алгоритмов же самих подпрограмм в обоих случаях оформляются от­дельно, причем вместо слова «начало» указывают имя подпрограммы, а вме­сто слова «конец» - указывают слово «возврат» или «return».147Часть 1. Основы алгоритмизации и процедурное программированиеС Начало Ji/С Stf(x,y,z) J..Вводa,b,c,d,e'Ip:=(x+y+z)/2IВыводStrf(.)+Stf(,п{ Конец jС Начало j./Return.IВводa,b,c,d,ep:=(x+y+z)/2Stp(a,b,e,SI)s=v:..ZstMT..iГ81р(х,у,г,5П.Stp(c,d,e,S2)j(ReturnjВыводSHS2fКонецjРис.

5.5. Схемы алгоритмов программы определения площадичетырехугольника с использованием функции {а) и процедуры (б)Пример 5.1. Разработать программу, которая определяет плоидадь четы­рехугольника по заданным длинам сторон и диагонали.Будем считать площадь четырехугольника как сумму площадей двухтреугольников, определенных по формуле Герона. Вычисление площади тре­угольника оформим как подпрограмму. Исходные данные такой подпрограм­мы - длины сторон треугольника. Подпрограмма не должна менять значенияпараметров, поэтому их можно передать как параметры-значения или пара­метры-константы. Результат работы этой подпрограммы - скалярное значе­ние, значит, она может быть реализована как функция. Однако ее также мож­но реализовать как процедуру, которая возвращает результат через параметрпеременную.

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

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

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

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