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

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

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

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

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

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

Таким образом, элемент записи можно указывать как влевой части оператора присваивания, так и в выражениях в правой части. Надэлементами записи можно выполнять все действия, которые допустимы дляданных его типа. Например, если тип элемента записи – целый, то можновыполнять все операции, допустимые для целых данных. Так, для рассмотренногопримера (экзаменационной ведомости) над элементами записи можно, например,выполнить следующие операции:а) ввести значения порядковых номеровRead(C1.N);Read(C2.N);б) вычислить сумму первых двух оценокSumma1 := C1.Ball[1] + C1.Ball[2];Summa2 := C2.Ball[1] + C2.Ball[2];73Обращение к записи в целом, а не только к отдельным её элементам,допускается лишь в операторе присваивания.

Слева и справа от знакаприсваивания при этом должны использоваться имена записей одинакового типа.8.2. Оператор присоединения.Мы отметили, что обращение к элементам записи происходит с помощьюуточнённого имени. Оператор присоединения позволяет упростить обращение кэлементу записи. Имя записи выносится в заголовок оператора присоединения, а вблоке Begin – end используются только имена элементов записи.Оператор присоединения имеет вид:With имя_записи doBeginОператорыEnd;Пример. Для 1-ой экзаменационной ведомости (списка 1) операторприсоединения можно записать так:With C1 doBeginRead(N);Summa := Ball[1] + Ball[3];End;Пример.

Имеется ведомость учащихся с оценками:Иванов Иван2Петров Пётр2Сидоров Сидор 3Составить программу для вычисления среднего балла.Поскольку в каждой строке ведомости представлены данные различноготипа, введём запись с именем СПИСОК, состоящую из двух полей:Name – фамилия и имя – упакованный массив из 15 символов;Ball – оценка – целое число.Для вычисление среднего балла Midball находится сумма всех оценокSumma, которая делится на число студентов N.Program W123;Const N = 3; (* число учащихся в списке *)M = 15; (* максимальная длина Name *)Type T = RecordName: Packed Array [1..M] of Char;Ball: Integer;End;Var Spisok: T;I, K: Integer; (* параметры цикла *)Midball: Real; (* средний балл *)Summa: Integer; (* сумма оценок *)BeginSumma := 0;Writeln(‘ введите таблицу ‘);74For I := 1 to N doBeginFor K := 1 to M doRead(Spisok.Name[K]);Read(Spisok.Ball);Summa := Summa + Spisok.Ball;End;Midball := Summa / N;Writeln(‘----------------------------‘);Writeln(‘ средний балл = ‘, Midball: 5: 2);End.Описание записи сделано в разделе Type, где Т – имя типа.

В разделепеременных Var указано, что переменная СПИСОК тип Т.Раздел операторов состоит из двух циклов: один вложен в другой. Внешнийцикл с параметром I выполняется столько раз, сколько имеется фамилий введомости (в данном случае N = 3). Внутренний цикл с параметром Кпредназначен для ввода фамилии и имени. На фамилию и имя отводится поле из15 позиций. Лишние позиции поля заполняются пробелами. Внутри поляфамилию и имя можно располагать свободно, например:_ _ _ _ Иванов _ Иванили _ _Иванов _ Иван_ _или _ _ _Иванов _ Иван_или _ Иванов_ _ Иван_ _После имени следует оценка.Пример.

Присвоить звание “отличник” тем, у кого по всем предметам пятёрки.Из исходного списка С1, в котором содержатся фамилии и оценки, нужносформировать другой список С2, состоящий из отличников. Для формированиясписков используется массив массивов.Program otl;Const K = 5; (* количество человек *)Type Tip = RecordName: Array [1..K, 1..15] of Char;Math: Array [1..K] of Integer;Phis: Array [1..K] of Integer;Chem: Array [1..K] of Integer;End;Var C1, C2: Tip; (* списки *)I, J, N: Integer; (* параметры циклов *)BeginJ := 0;Writeln(‘ введите фамилию и оценки: ‘);For I := 1 to K doBeginFor N := 1 to 15 do Read(C1.Name[I, N]);Read(C1.math[I], C1.Phis[I], C1.Chem[I]);If (C1.Math[I] = 5) And75(C1.Phis[I] = 5) And(C1.Chem[I] = 5) thenBeginJ := J + 1;C2.Name[J] := C1.Name[I];End;End;If J = 0 then Writeln(‘нет отличников ‘)else BeginWriteln(‘-----------------------‘);Writeln(‘отличники:‘);For I := 1 to J doWriteln(C2.Name[I]);End;End.Пример.

Дан многочлен 4А + 5В – 8С + 16А – 3А + 9К – 1АНайти подобные члены для переменной А и вычислить суммарный коэффициент.Один элемент многочлена можно считать записью, так как он состоит из данныхразличного типа – коэффициента (число) и буквы.Введём обозначения:М1 – элемент многочлена (запись),М2 – результирующий элемент (запись),Coef – коэффициент (элемент записи),Buk – буква (элемент записи),Elem – тип записи,Sum – сумму коэффициентов.Program Ex4;Type Elem = Record(* тип элемента *)Coef: Integer; (* коэффициент *)Buk: Char; (* буква *)End;Var M1: Elem; (* входной элемент *)M2: Elem; (* выходной элемент *)Sum: Integer; (* сумма коэффициентов *)BeginSum := 0;Writeln(‘ введите многочлен ‘);While Not EOLN do(* end of line *)BeginRead(M1.Coef, M1.Buk);If M1.Buk = ‘A’ then Sum := Sum + M1.Coef;End;M2.Coef := Sum;M2.Buk := ‘A’;Writeln(‘подобный член = ‘, M2.Coef: 3, M2.Buk);End.76Запись - это комбинированный тип, сложная переменная с несколькимикомпонентами.

В отличие от массивов компоненты записи (поля ) могут иметьразные типы, и доступ к ним осуществляется не по индексу, а по имени поля.Записи могут входить в качестве компонентов в другие переменные,например, можно сформировать массив записей.К каждому компоненту записи можно обратиться, используя имяпеременной типа записи и имя поля, разделённых точкой.В области действия оператора присоединения With имена переменныхзаписей и полей, указанные в его заголовке, можно опускать.

Трансляторавтоматически формирует полные имена. В области действия оператораприсоединения нельзя изменять элементы списка переменных-записей и полей,указанные в заголовке.Пример. Определить число студентов 1974 г. рождения.Type Student = RecordName: Array [1..15] of Char;Date: Integer;End; { of record }Var Grope: Array [1..30] of Student;K, I: Integer;BeginK := 0;For I := 1 to 30 doWith Grope[I].Date doIf Date = 1974 then K := K + 1;Writeln(K);End.В данном примере в заголовке оператора With стоит Grope[I] – элементмассива, зависящий от параметра I, поэтому оператор присоединения вставленвнутрь цикла по I.8.3. Записи с вариантамиПри определении комбинированного типа в него можно включатьвариантную часть.

Это означает, что разные переменные, хотя они и относятся кодному типу, могут иметь различные структуры. Например, пусть необходимозадать информацию о некотором человеке, указав фамилию и год рождения, атакже, если это мужчина, то сообщить, военнообязанный ли он и какую имеетспециальность; если это женщина, то указать, замужем ли она и сколько имеетдетей:Type Pol = (Mug, Gen);Chel = RecordFam: Array [1..10] of Char;God: 1900..2000;MG: Pol; { заголовок вариантной части }Case Pol ofMug: (Voen: Boolean; Spec: Array [1..15] of Char);Gen: (Zamugem: Boolean; Dety: Integer);77End; (* of record *)Var Ch1, Ch2: Chel;Вариантная часть записи начинается оператором Case и следует за общейчастью; после её окончания в записи не появляться никакие другие поля, поэтомуоператор Case не закрывается служебным словом End.Обычно некоторое поле общей части указывает вариант.

В примере это полеMG, называемое полем признака или дискриминации.Все варианты описываются внутри оператора Case. Каждый вариантхарактеризуется задаваемым в скобках списком описаний присущих емукомпонентов.Перед списком стоит одна или несколько меток. Тип этих метокуказывается в заголовке вариантной части (в отличие от оператора варианта, гдеселектором варианта является выражение, а не тип).

Тип должен быть скалярным(не массивы и не записи), При этом он задаётся именем.В явном виде указывать тип в заголовке не разрешается.Часто для сокращения записи поле признака (дискриминант) включается взаголовок вариантной части:Case MG: Pol ofДля переменной Ch1 типа Chel можно написать следующие операторыприсваивания:Ch1.Fam := ‘Solomatin’;Ch1.God := 1977;Ch1.MG := Mug;Ch1.Voen := True;Ch1.Spec := ‘Programmist’;Задав значение поля признака MG (некоторую константу типа Pol), можноприсваивать новые значения только полям вариантной части, помеченных такойже константой.Хотя никакого контроля поля селектора при обращении к компоненту извариантной части не производится, для надёжности работы программы следуетпридерживаться этого правила.В любой записи может быть только одна вариантная часть, и, если она есть,она должна располагаться за всеми фиксированными полями.Пример.Type Alfa = Array [1..10] of Char;Variety = (Book, Journal, Newspaper);Name = RecordFirst, Last: Alfa;End; (* of Name *)Edition = RecordName1: Name;Title, Publishers: Alfa;Case V: Variety ofBook: (Years: Integer);Journal: (Number: 1..12;Volume: Integer;78YearJ: 1900..2000);Newspaper: (Day: 1..31;Month:1..12;YearN: Integer);End; (* of Edition *)………………………Var E: Edition;…………………….…E.Name1.First := ‘Niklau’;E.Name1.Last := ‘Wirth’;E.Title := ‘Pascal’;E.Publichers := ‘Springer’;E.V := Journal;E.Number := 5;E.Volume := 12;E.YearJ := 1972;В описании записи разрешается использовать только одну вариантнуючасть, причём она должна быть записана после фиксированной части.

Однако ввариантной части, в свою очередь, может появиться вариантная часть,следовательно, могут быть вложенные друг в друга вариантные части.При записи варианта обязательно присутствие круглых скобок, даже если вних ничего не заключается. В этом случае записывается просто: ( ).Пример. Определить площадь геометрической фигуры.X и Y – координаты одного из углов прямоугольника или треугольника илицентра окружности.Area – площадь.Skew – угол наклона одной из сторон прямоугольника.Side1 и Side2 – длины двух смежных сторон прямоугольника.Inclin – угол наклона одной из сторон треугольника.Side – её длина.Angle1 и Angle1 – углы, образованные с нею двумя другими сторонами.Diameter – диаметр окружности.Program Opr;Const Pi = 3.141592;Type Figure = (Triangle, Rectangle, Circle);GeometricFigure = RecordX, Y: Real;Area: Real;Case Shape: Figure ofTriangle: (Inclin, Side, Angle1,Angle2: Real);Rectangle: (Skew, Side1, Side2: Real);Circle: (Diameter: Real);End; (* of record *)Var GFig: GeometricFigure;Begin……………79CaseGFig.ShapeofTriangle:GFig.Area0.5*SQR(GFig.Side)/(cos(GFig.Angle1)/sin(GFig.Angle2)+cos(GFig.Angle2)/sin(GFig.Angle1));Rectangle: GFig.Area := GFig.Side1 * GFig.Side2;Circle: GFig.Area := Pi * SQR(GFig.Diameter) / 4;End; (* of Case *)…………………….End.:=9.

ТИПИЗИРОВАННАЯ КОНСТАНТАТипизированную константу можно использовать как переменную. Еёследует рассматривать как инициализированную переменную, значение которойзадано с самого начала. Применение типизированных констант экономитмашинное время, т.к. начальное присвоение значений уже выполняетсякомпилятором.Типизированные константы задаются, как обычные, но дополнительно ониполучают и свой тип. Необходимо принять во внимание, что заданные значенияимеются в распоряжении программы только при новом ее пуске, а затем могутизменять свое значение. Повторный пуск программы не с самого начала можетдать уже другие значения.Преимущество применения типизированных констант заключается впростоте присвоения начальных значений для переменных.Синтаксис (вид описания):Const имя: тип = значение;9.1.

Простая типизированная константаЗадается как простая переменная.Пример: Const A:Integer=1267;Kol:Real=12,32;Sim:Char =’Z’B:Char=Ord(65);Типизированные константы разрешается использовать в место переменнойв виде параметров в подпрограммах.Типизированная константа представляет собой переменную с заданнымзначением. Т.о., её нельзя использовать в описании других констант или типов.Пример: Const X:Integer=0;Y:Integer=50;Type Mas: Array [X..Y] of Integer; это недопустимо.9.2.

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