Главная » Просмотр файлов » Говорухин В., Цибулин Б. Компьютер в математическом исследовании

Говорухин В., Цибулин Б. Компьютер в математическом исследовании (1185927), страница 35

Файл №1185927 Говорухин В., Цибулин Б. Компьютер в математическом исследовании (Говорухин В., Цибулин Б. Компьютер в математическом исследовании.djvu) 35 страницаГоворухин В., Цибулин Б. Компьютер в математическом исследовании (1185927) страница 352020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Возвращаемым значением по умолчанию является результат последне- го оператора из тела'процедуры, однако существуют и другие возможности, о ко- торых будет сказано ниже. Тип результата работы процедуры зависит от типа возвращаемого значения. Например, процедура с именем Г, вычисляющая сумму пе- ременных х и у, выглядит следующим образом: > Г: ргос(х,у): х«у; епщ ?:= ргос (х, у) х + у еЫ рпхс Функции, процедуры и модули 185 Приведем два результата обращения к этой процедуре: > Г(п хи П( ч) ) .

Г(1. 9): и "~ Мп(ч) 10 Для написания процедур в Мар!е имеется ряд команд и служебных слов, кроме указанного выше обязательного минимального набора. Эти команды и слова позволяют описывать переменные, управлять выходом нз процедуры, сообщать об ошибках, Формальньш параметр процедурь! можно явно описать, указав его тип после двух двоеточий, следую!цпх за именем параметра. В этом случае при обра!цении к процедуре Мар!е проверит тип фактического параметра и выведет сообщение об ошибке в случае его несовпадения с типом форматьпого параметра.

Пример: > 9;=ргос(ы и п(ооег) 1 2 епо ргос: > 9(123456799); !524!578750!9052! » 9(11/2): 5 гог 9 ехрестл !Г> 1л( ггвииеп(. и то Ье о( (уре !п(ечег. пот гесе1чЕО Пч2 Еше одним способом передачи данных из процедуры является изменение значения входных параметров. При помощи описания еча1п можно присваивать переменным, выступающим в качестве входных параметров, значения внутри процедуры. Отметим, что присваивать фактическим параметрам возвращаемые значения следует только перед выходом из процедуры, что связано со спецификой обработки выражений внутри процедур.

Пример: > Г>=ргос(х: ечл)п) х:-!О. х; епп ргос: 7";= ргос(хпгча1п) х:= 1О; х епх) ргос ' ((р): ги Р !О После заголовка процедуры может следовать описательная часть процедуры, отделяющаяся от него пробелом. В атой части описываются локальные и глобальные переменные, используемые процедурой. Локальные переменные доступны только внутри тела процедуры, и опн пе конфликтуют с одноименными глобальными и локальными переменными других процедур. Следует помнить, что при выполнении операций с локальными переменными производится только один уровень оценивания, см, пример в следующем разделе.

Все переменные, описанные во внешнем по отношению к процедуре блоке, являются для нее глобальными. Изменения глобальных переменных внутри тела процедуры действительны и за ее пределами. Для определения локальных переменных, используемых только внутри данной процедуры, применяется описатель 1оса1. Перечислить глобальные переменные можно при помощи описателя 910!)е1, который должен размещаться в описательной части процедуры. Во избежание накладок с использованием имен рекомендуется описывать все переменные, встречающиеся в процедуре, Если в теле процедуры встречаются неописанные переменные, стоящие в левой части оператора , в36 - Глава 7. йроараааивоеаэие э нар(е присваивания или фигурирующие в качестве переменной цикла, то Мар!е выводит предупреждение и автоматически описывает их как локальные. Приведем пример: > геыаг(: Ч; а: Х: 1:-4; ! (:=4 > аг-ргьс() 1аса1 Ч; Й1ЬЬа1 ), ~:-): ):-2-1.

Х:-3, епс ргос: Иагп~пд, "Х" аа Чер1)сЧЬ!у йес1агей 1оса1 (с ргосеппге "а" > а(): > 1. ); Х; После опнсателей в процедуре может стоять указатель на параметры: орыапа ОРТ; Термин ОРТ может принимать одно нз следующих значений: геачепчЬег (ускоряет выполнение процедур н делает рекурсивные процедуры более эффективными), срегаьог (аналогичен заданию процедуры-функции) и некоторыедругие (ьш1ьчп, эуатепч, агг(м, ась! е, Ь гасе, раей айе н Соруг) дЬЬ). После опнсателей идет тело процедуры, которое может содержать команды н другие процедуры. Для выхода из процедуры в любом месте ее тела используется команда ЙЕТОЙИ(ЧАЕ ).

Здесь ЧА(. — возвращаемое значение. Если в процедуре несколько операторов йЕТОйИ, то возвращаемые значения могут быть даже различных типов. Для аварийного выхода из процедуры в случае возникновения ошибки и сообщения о случившемся используется команда ЕЙЙОЙ("техт" ), где гехт — сообщение, которое должно появиться на экране в аварийной ситуации, Для вывода предупреждающих сообщений используется команда ИАЙИ1ИЯ (см/ справку Мар1е), Схематично общий вид процедуры можно изобразить следующим образом: ИАИЕ:-ргсс(РАЙ)::суре)...., РАЙК::Фурах) 1оса1 ЧН.),....ЧАЬИ: Й)сЬа! ЧАЙ)„ ...ЧАЙИ: орьчопа ОРТ: ЕХРЙ); ЕХРй2:...

ЙЕТОЙИ(геа)); ,Еййрй("Еггсг Чп ргссесчгй,.паве");...ЕХРЙР; йпб, Йгсс; ,здесь ЕХРй1„ЕХРЙ2; .. „ЕХРЙИ вЂ” группы операторов Мар!е, Приведем пример, демон,ст13ирующий ращ возможностей при конструировании процедур, Описываемая процедура преобразует отрицательное число в по вожитальное. Если входным па- Функции, процедуры и модули 187 раметром является нуль, то выводится сообщение об ошибке; для положительных чисел выводится массив, содержащий само число, его квадрат и куб; > ехапр: ргос(х.:полег!с) 9)оЬа) г: )оса) у.н; ор(1оиа гекееоег; ат х<О Слеп йЕ(Ойн(-х); е)! 1 х-О слеп Еййсй(етаг1аше х-О"): 11; [х,х"2,х"3): епб: ехагар х< ргос (хглимемс) )оса) у, кп В)оЬН х; орбоп геаыгпьег; их<0(ьеп КЕт()К)Ч[-х) еИх= Обып ЕККОК(')гаг(аыех=О') епб)Е; [х, х"2, х"3] епб ргос Обратимся к процедуре с различными входными параметрами: > ехапр(-)); ехамр(О); ехазр(Э): ) Еггог, (!и ехазр) Уаг!аЫ е х-О [3,9, 27) Продемонстрируем эффективность использования параметров на примере гнпееЬег, которая сохраняет промежуточные результаты процедуры в памяти.

Опишем рекурсивную процедуру т! Ы, вычисляющую число Фибонначи, и аналогичную ей процедуру 1102, не использующуюпараметр гевепй)ег. В процедурах тип поппед1пС указывает на целые положительные числа: > Г!Ы . ргос (и;:поппе91пс) орс!оп геаепЬег; 11 п < 2 Слеп п е)ае 11Ы(п-))<11Ы(п-2) епб 11; епб ргос; Г!Ь2 : РГОС (П:;ПОППЕ91ПС) 1г п < 2 ььеп п е)ае 11ь2(п-1)+11ь2(п-2) еоб 1 1: епб ргсс: Теперь обратимся к процедурам, выводя время нх выполнения: » Е1зе(Г(Ы(ЭО)): Мзе(Г1Ь2(ЭО)): .024 103.033 Эффект использования параметра геаевЬег очевиден. Иногда процедура должна уметь обрабатывать различное число входных параметров.

В этом случае при описании процедуры не обяаательно указыватьявно количество и тип параметров. Число фкктических параметров можно узнать внутри тела процедуры при помощи команды оагдз, а обращаться к ним нужно как к элементам массива агдз. Приведем пример процедуры без предварительно описанных параметрок 188 Глава 7.

программирование в нар(е > ехамр;=ргос() )оса) п; и:=пагдв; 1Г пагдв-2 Спел гесцгп "Число паранетров равно 2", аг)в[1!-агдв[23 епо' тт; [пагдд.агдв) епс ргос: Обратинси х процедуре с различннн числон параиетров > ехаир(а.Ь,ст, ехазр(а.Ь): [ 3. и, ь, с 1 Чоело лоро иетрое раино 2а — Ь Для вывода дополнительной информации о работе процедуры при ее отладке можно использовать команду цвег(пто.

Первый параметр команды задает помер уровня вложенности, при котором будет выводиться информация, а второй — имя процедуры, в которой находится обращение к команде. Уровень вложенности определяется глобальной переменной 1пто1еуе1. Поясним сказанное примером: > т -ргос(х,у) цаегтпто(2 Г,"Били введены:",х,у): х"2+у 2 егс > тото)ече)[Г).=2: > т().2); Били введена.

) 2 5 Обработка процедур и возможные ошибки При работе в Мар!е могут возникать ошибки, которые связаны со спецификой обработки обращений к процедурам. При обращении к процедуре Мар!е в первую очередь анализирует на правильность ее имя, затем входные параметры, после чего выполняет тело процедуры. Число фактических параметров может быть меньше числа описанных параметров процедуры. В этом случае ошибка возникнет только тогда, когда недостающий параметр понадобится для выполнения команд.

Например; > [.=ргос(а. Ы т( а<0 Слеп ргтпс("Значение первого параиетра отрицательно"), е)ве рю пС(сам "Значение второго параиетра. ". сопуегС(Ь.ССгтпд))); епо тт; епо ргос: > 1(-)): Значение первого параметра отрицательно > т(1), Еггог, (тп т) т цвев а 2по агдцмепС. Ь, иысЬ 1в и1вв1пд 1().З): Значение еторого параметра: 3 При обращении к процедурам следует помнить, что многие операции выполняются только с переменными определенного типа и важно соответствие типа фактического параметра типу, требуемому в операторах тела процедуры. Например, использование в качестве фактического параметра процедуры т из предьшушего примера символьной переменной а приведет к ошибке при проверке условия: Функции, процедуры и модули 189 > Г(а.Ь): Еггог.

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

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

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