metod_15.03.04_atppp_oaip_up_2016 (Методические документы), страница 9

PDF-файл metod_15.03.04_atppp_oaip_up_2016 (Методические документы), страница 9 Абитуриентам (9531): Другое - 1 семестрmetod_15.03.04_atppp_oaip_up_2016 (Методические документы) - PDF, страница 9 (9531) - СтудИзба2017-07-08СтудИзба

Описание файла

Файл "metod_15.03.04_atppp_oaip_up_2016" внутри архива находится в папке "Методические документы". PDF-файл из архива "Методические документы", который расположен в категории "". Всё это находится в предмете "абитуриентам" из 1 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "абитуриентам" в общих файлах.

Просмотр PDF-файла онлайн

Текст 9 страницы из PDF

Новое значение В передается в программу, азначение А нет. Поэтому в основной программе будет А=5, В=8.Если в процедуру нужно передать в качестве параметра не просто однозначение, а массив, то в этом случае фактически параметрами является имямассива. При этом формальный параметр указывается после слова VAR вместе стипом массива. Само же описание массива делается в разделе TYPE основнойпрограммы.В языке программирования Паскаль допускается использование процедурбез параметров.

В этом случае отсутствует как формальные, так и фактическиепараметры.Пример: Определить длину окружности С, площадь круга S, (радиуса = R)удаление L центра окружности от начала координат. X, Y – координаты центраокружности.1й вариантyRyLxxProgram Ex;Var R:Real;(*радиус*)X,Y,:Real; (*центр*)C:Real; (*длина окружности*)S:Real; (*S круга *)L:Real; (*Удаление центра*)Procedure Round;BeginC:=2*Pi*R;S:=Pi*SQR(R);L:=SQRT (SQR(X)+SQR(Y));46End;BeginWriteln (‘Ввод);Read (r,x,y);Round; (*вызов процедуры*)Writeln (‘Длина окр-ти=’,C:6:2);Writeln (‘S круга=’,S:6:2);Writeln (‘Удал-е центра=’,L:6:2);End.2й вариантProgram Ex;Var R,X,Y,C,S,L:Real;Procedure Round (R,X,Y:Real; Var C,S,L);BeginC:2*Pi*R;S:=Pi*SQR (R);L:=SQRT (SQR (X)+ SQR (Y));End:BeginWriteln (‘Ввод’);Read (R,X,Y);Round (R,S,Y,S,L,C);Writeln (‘Длина окружности=’,C:6:2);Writeln (‘S круга=’,S:6:2);Writeln (‘Удаление центра’,L:6:2);End.5.2.

Стандартные процедурыЭто, в первую очередь, процедуры ввода и вывода Read, readln, write,writeln. С ними вы знакомы.В циклах Repeat, While и For можно использовать еще две процедуры –Break и Continue. Процедура Break позволяет досрочно выйти из цикла, недожидаясь выполнения условий выхода.Процедура Continue позволяет начать новую итерацию цикла, даже еслипредыдущая не завершена.Пример: В массиве целых чисел найти первое отрицательное число и вывести егона экран.Фрагмент программыFor I:=1 to N do {поиск отрицательного числа}BeginIf A[i]>=0 thenContiniue; {не отр.=> на след.

число}Writeln (‘1-ое отриц. число=’, A[i]);BreakEnd;47Процедура Exit служит для досрочного выхода из программы. Дело в том,что безусловный переход с использованием оператора goto можно осуществлятьдалеко не из каждого места программы и не в любое место программы. Так,например, нельзя с его помощью перейти из основной программы вподпрограмму или выйти из подпрограммы. Для этой цели используетсяпроцедура Exit.Пример: Функция, обращает первое отрицательное число в массиве.Function Minus--------------------BeginMinus:=0For i:=1 to N doIf T[i]<0 thenBeginMinus:=T[i];Exit{досрочный выход из фун-и}ENDEnd;Существует множество стандартных процедур, которые работают с файлами:Halt(1) - остановка,Halt(0) - завершение,Halt=Halt(0).5.3.

Описание функцийОписание функции в основном аналогично описанию процедуры, однакоесть и отличия. Результатом работы функции является одно значение. Типрезультата задается в заголовке.Общий вид заголовка функции:Function имя функции (список формальных параметров):тип результата.Если функция изменяет значения формальных параметров – переменныхили значения глобальных по отношению к данной функции переменных, тоговорят, что функция имеет побочный эффект.Применениефункцииспобочнымэффектомнарушаетструктурированность программы, поэтому их использование нежелательно.Среди входящих в функцию операторов должен обязательноприсутствовать хотя бы один оператор присваивания, в левой части которогостоит имя функции.

Этот оператор и определяет значение, вырабатываемоефункцией. При вызове функции передача фактических параметров производитсятак же, как и при вызове параметра.Пример: Найти разность двух факториалов: F=m!-k!Program P1;Var F,M,K:Integer;Function Fact (N:Integer):Integer;Var P,I:Integer;BeginP:=1;48For I:=2 to N doP:=P*I;Fact:=P;End;BeginWriteln (‘Ввод М,К’);Readln (M,K);F:=Fact (M) – Fact (K);Writeln (‘F=’,F:5);End.Внутри функции имена N,P,I являются локальными.

Результат вычисленияфакториала обозначается именем функции Fact. В основной программепеременные F,M,K являются глобальными. При вычислении значения F дваждыпроисходит обращение к функции Fact(M) и Fact(k) прямо в правой частиоператора присваивания. При этом вызов функции м. делать непосредственновнутри выражения, подобно тому, как используются стандартные встроенныефункции, например Sin(x).Пример: вычислить длину гипотенузы.S=h/tgНProgram Dlina;Const Pi=3.14159;Var H:Real;Betta:Real;Function S(M:Real;Betta:Real):Real;Var x:Real;Begin x:=Betta*Pi/180;S:=H/(sin(x)/cos(x));End;Begin x:=Betta*Pi/180;S:=H/9sin(x)/cos(x));End;Begin Write (‘Ввести Betta,H’);Readln (Betta,H);Write (‘S=’,s(H,Betta):10:4);End;Вызов функции осуществляется непосредственно в операции ввода.5.4. Стандартные функцииОнивамизвестны:этоарифметические,алгебраическиеитригонометрические функции.

Кроме того, есть функция конца строки: Eoln - endof line.5.5. Итерация и рекурсияИтерация (от лат. повторение) - повторение, применение какой – либоматематической.49Пример: Вычислить сумму ряда:S=a1+a2+….+anS1=a1S2=a1+a2S3=a1+a2+a3S4=a1+a2+a3+a4…………………S=a1+a2+…+anРекурсия (от лат. возвращение) - вычисление последующего значения рядачерез предыдущее. Последовательность, в которой соседние значения связаныформулой, называется рекурсивной.Пример: Арифметическая прогрессия: a1, a2=a1+d, a3=a2+d, an=an-1+dПример.BeginIf (n=0) or (n=1) then Factorial:=1Else begin F:=1For i:=2 to n doF:=f*i;Factorial:=f;End;End;Begin Writeln (‘Введите N’);Readln (N);Writeln (‘факториал=’,Fact);End.Пример.Program Rekursion;Var fact:real;N:integer;Function Factorial (N:integer):real;BeginIf (N=0) or (N=1) then factorial:=1Else factorial:=factorial (N-1)*n;End;Beginwriteln (‘Введите N’);Readln (N);Fact:=factorial (N);Writeln (‘факториал=’,fact);End.Здесь первый вызов функции происходит в основной программе, а затем,начинается рекурсивный вызов внутри функции.В языке программирования Паскаль есть возможность обращенияпроцедуры или функции к самой себе.

При этом циклическую часть программыможно составить без операторов цикла. Способ обращения процедуры или50функции к самой себе называется рекурсией. С помощью рекурсии удобнопредставлять те задачи, которые сводятся к подзадачам того же типа, но меньшейразмерности.Вычисление факториала можно представить опять через факториал.N!=n(n-1)!-рекурсивная формула.Представление факториала в виде последовательности операций умножения – этоитерационный процесс. n!= 1*2*3…n-итерационная формула. Итерацияпрограммируется с помощью циклов.Пример: Вычисление факториала.Program Iteracion ;Var fact: real;N:integer;Function factorial (n: integer):real;Var f:real;I: integer;Пример.

В 13 веке итальянский математик Фибоначчи сформулировал задачу:”Некто поместил пару кроликов в некое место, огороженное со всех сторонстеной, чтобы узнать, сколько пар кроликов родится в течении года, если черезмесяц пара кроликов производит на свет другую пару, а рожают со второгомесяца после своего рождения.Program Krolik;Var kr:integer; (*число кроликов*)N:Integer; (*число месяцев*)Function fib(n:integer):integer;BeginIf (n=1) or (n=2) then fib:=1Else fib:=fib(n-1)+fib(n-2)End;BeginWriteln(‘ввести N’);Readln (N);Kr:=fib (N); (*вызов ф-и*)Writeln (kr:5);End.5.6.

Побочный эффект рекурсииВ теле подпрограммы известны, то есть доступны все объекты, описанные вобъемлющем блоке, в том числе и имя самой подпрограммы. Внутри телаподпрограммы возможен вызов самой подпрограммы. Параметры и функциииспользующие вызовы “самих себя“, называются рекурсивными. Допустиматакже косвенная рекурсия, при которой параметр А вызывает параметр В, а тот, всвою очередь, вызывает С, который вызывает первоначальный параметр А.Рекурсия достаточно широко применяется в программировании, чтоосновано на рекурсивной природе многих математических алгоритмов.

В языкепрограммирования Паскаль нет никаких ограничений на рекурсивные вызовыподпрограмм, необходимо только понимать, что каждый очередной рекурсивный51вызов приводит к образованию новой копии локальный объектов подпрограммы ивсе эти копии, соответствующие цепочке активизированных и неактивизированных рекурсивных вызовов, существующих независимо друг отдруга.При выполнении функций возникает один неожиданный эффект, причинойкоторого является изменение значений нелокальных переменных в теле функции.Если в некоторой функции имеются конструкции, например, операторыприсваивания, изменяющие значения переменных, описанных в объемлющихблоках, то может возникнуть ситуация, при которой значения выражения,использующего вызов такой функции, зависит от порядка следования операторов,что является потенциальным источником ошибок и поэтому крайненежелательно.

Описанная ситуация называется побочным эффектом рекурсии.Пример:Program Side Effect;Var a,z :integer;Function change (x: integer): integer;BeginZ:=z-x; {изменяем значение нелокальной переменной}Change:= sqr (x)End;BeginZ:=10; a:=change (z); writeln(a,z);Z:=10; a:=change (10)*change (z);Writeln(a,z);Z:=10; a:=change (z) * change(10);Writeln (a,z)End.Выполнение этой программы приводит к следующему результату на дисплее:100010000-1000Т.е.

два последних присваивания переменной а дают различный результат,хотя правила вычисления выражений предлагают равноправные сомножители.Следует всячески избегать такой зависимости функции от глобальных поотношению к ней переменных. Заметим, что современные языки, например, Adaсодержит прямые запреты на подобные действия.5.7. Предварительное описание (ссылки вперед)Объявления констант и переменных в любом блоке располагаются передскобками Begin ...End (в этих скобках заключены сами операторы). Поэтомукомпилятору никогда не приходится иметь дело с оператором, содержащимконстанты и переменные, которых он не знает, это вызовет во время компиляциисообщение об ошибке.

Все это справедливо и в отношении подпрограмм (т.е.функций и процедур). Программист обязан следить за правильным порядкомследования определений (описаний).Пример :52Program Demo;Var a, b ,c : real ;Procedure Ring (var s , l : real ; d : real);Begin L:=3.14 *d; {длина окружности }S:=cir (d) ; {компилятор еще не знает о функции cir}End;Function Cir (d: real): real; {площадь круга }Begin cir:= 3.14* sqr(d) / 4;End;………………………………………………………………………Очевидный выход – поменять порядок строк так, чтобы функция Cir былаопределена перед процедурой Ring(…) .Однако можно и иначе.Действия:1. Оставить подпрограмму (функцию cir) на своем месте, вычеркнув из еезаголовка все параметры: Function cir;2. Вставить полный заголовок там, где ему надлежит бытью, т.е. передподпрограммой, которая его вызывает.Function cir (d: real): real;1.

После полного заголовка добавить слово Forward.6. РЕГУЛЯРНЫЕ ТИПЫ6.1. Одномерный массив, или переменные с индексамиМассив – это упорядоченный набор однотипных элементов. Под массивомпонимается конечная совокупность данных одного типа, упорядоченных позначениям индекса. Каждый элемент массив обозначается именем массива ииндексом. Индекс заключается в квадратные скобки.Если в программе используется массив, он должен быть описан в разделетипов или в разделе переменных.Описание в разделе переменных:Var имя массива: Array [тип индекса] of тип элемента;Тип индекса может быть любым простым типом, кроме Real и Integer (Boolean,Char, перечислимый, ограниченный).Тип элементов массива – это базовый тип, из которого составлен массив.Это может быть любой простой или сложный тип – вообще любой допустимый вязыке программирования Паскаль.Var A: Array [1..5] of Real;Это массив из пяти действительных чисел: А[1], А[2], А[3], А[4], А[5].Обычно нумерация начинается с единицы и заканчивается каким-нибудьположительным числом.

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