Главная » Просмотр файлов » 1611678431-0e68e83522cb9d960ac896aa5d90854d

1611678431-0e68e83522cb9d960ac896aa5d90854d (826635), страница 8

Файл №826635 1611678431-0e68e83522cb9d960ac896aa5d90854d (Билеты - Ответы) 8 страница1611678431-0e68e83522cb9d960ac896aa5d90854d (826635) страница 82021-01-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Соответственно, сравнение двух массивов влогических выражениях типа «равно — не равно» производится сравнением адресов. Примерприсвоения одного массива другому:program UsingDynamicArrays2;varА, В: array of integer;{Описание двух переменных —динамических массивов целочисленныхэлементов}beginSetLength(A, 5);А[0] := 14;В := А;В[0] := 2;{ Установка размера массива А(5 элементов ) }{Присвоение значения 14 нулевомуэлементу массива А}{Присвоение массива А массиву В, теперьпеременные А и В указывают на один итот же массив}{Присвоение нулевому элементу массива Взначения 2, теперь нулевой элементмассива А также имеет значение 2}end.Отметим существенное отличие в работе со строками и динамическими массивами, имеющимиодинаковое внутреннее представление на основе указателей, но разные методы работы.

Дверазные строки, состоящие из одинакового набора символов, считаются равными, а два разныхмассива, содержащие одинаковые элементы, не равны.3. Гибкие массивы21. Записи в языке Паскаль, их представление на машинном уровне, упаковка и выравнивание,записи с вариантамиЗаписи в языке PascalЗапись —структурированныйтипданных.Записиявляютсянеоднородными неупорядоченными структурами с прямым доступом ккомпонентам. Компоненты записи называют полями записи.Обычно запись содержит совокупность разнотипных атрибутов,относящихся к одному объекту.Например, информация о рекордах по бегу у мужчин для открытыхстадионов может содержать следующие атрибутырекордсменстранастатус соревнований (Олимпиада, чемпионат мира)длина дистанциигод рекордавремяСтруктурная диаграмма для записиЗапись может быть объявлена в разделе type:идентификатор типа = Recordполе1: тип;поле2: тип;…полеN: типend;Например,type beg = recordfam: string[25];srtana: string[20];status: boolean; {Олимпиада - true; чемпионат мира - false}dlina: longint;god: 1900..2009;vr: string[15];end;Var a: beg;К каждому элементу записи можно обратиться, используя составное имя,которое имеет следующую структуру:<имя переменной>.<имя поля>Например,a.fam; a.dlina и т.п.Если, например, требуется полю "status" присвоить значение «true», то этоделается так:a.status := true;Поля записи могут иметь любой тип, кроме файла, в частности, сами могутбыть записями.Например,type beg1 = recordfam: string[25];srtana: string[20];status: boolean; {Олимпиада - true; чемпионат мира - false}dlina: longint;god: 1900..2009;vr: record min: longint;sec: realendend;Var a: beg1;Поля такой записи, находящиеся на третьем уровне, идентифицируютсятройным составным именем.

Например,a.vr.mina.vr.secВ программе могут использоваться массивы записей.Любая обработка записей, в том числе ввод и вывод, производитсяпоэлементно.Например,var b: array[1..200] of beg1;...write('Число рекордсменов? '); readln(n);for i:=1 to n dowith b[i] dobeginwrite('Фамилия спортсмена? '); readln(fam);write('Гражданин какой страны спортсмен? '); readln(strana);write('Статус соревнования? '); readln(status);write('Длина дистанции? '); readln(dlina);write('Год проведения соревнования? '); readln(god);write('Время, за которое спортсмен пробежал дистанцию (мин, сек)? ');readln(vr.min, vr.sec);end;...В примере был использован оператор присоединения, который имеетследующий вид:with <переменная типа запись> do <оператор>;Он позволяет, один раз указав имя переменной типа "запись" после словаwith, работать в пределах одного оператора (простого или составного) сименами полей как с обычными переменными, т.е.

не писать громоздкихсоставных имен.Объём памяти, занимаемый записью, определяется суммарным объёмом,занимаемым её полями:type beg1 = recordfam: string[25];{26 байт}srtana: string[20];{21 байт}status: boolean;{1 байт}dlina: longint;{4 байта}god: 1900..2009;{2 байта}vr: record min: longint; {4 байта}sec: real{6 байт}endend;Всего получаем: 26+21+1+4+2+4+6=65 байтМассив, описанный выше, занимает 65 байт × 200 элементов = 13000байт оперативной памяти.Записи с вариантамиПри определении типа записи в нее можно включать вариантную часть.Это означает, что разные переменные, хотя они относятся к одному типу, могутиметь различные структуры.Вариантная часть записи начинается выбором case и следует за общейчастью; после ее окончания в записи не могут появляться никакие другие поля,поэтому case закрывается служебным словом end.Любая запись может иметь только одну вариантную часть, которая должнаразмещаться в конце записи (после фиксированной части).

Однако, внутрикакого-либо варианта, в свою очередь, может присутствовать другая вариантнаячасть, вложенная в первую.При записи варианта (списков элементов) обязательно наличие круглыхскобок, даже если в них ничего не заключается.Структурная диаграмма для записи с вариантамиНапример, пусть необходимо задать информацию о некотором человеке,указав фамилию и год рождения, а также, если это мужчина, то сообщить,военнообязанный ли он и какую имеет специальность, а если это женщина, тоуказать, замужем ли она и сколько имеет детей.Type pol=(m,w);people=recordfam:string[20];godro:1900..2007;case mw:pol ofm: ( voen: boolean; spec: string[15]);w: ( merry: boolean; child: byte)end;var p1, p2: people;Все имена элементов должны быть различными, даже если онивстречаются в разных вариантах.К элементам вариантной части можно обращаться так же, как к элементамфиксированной части записи.P1.mw:=m;p1.voen:=true; p2.child:=2;В процессе выполнения программы в структуру записи включается тотвариант, элементам которого в данный момент было присвоено значение.

Кактолько какому-либо элементу другого варианта присваивается некотороезначение, в структуру записи включается этот вариант, а элементыпредыдущего варианта становятся неопределенными.Данное обстоятельство учитывается и при подсчете объема памяти,отводимого под запись с вариантами. Статические поля учитываются обычнымобразом, а среди вариативной части отыскивается тот случай, где суммарныйобъем памяти для полей максимальный.Type pol=(m,w);people=recordfam:string[20]; {21}godro:1900..2007; {2}case mw:pol of {1}m: ( voen: boolean; spec: string[15]); {1+16=17}w: ( merry: boolean; child: byte) {1+1=2}end;21 + 2 + 1 + max(17, 2) = 41 (байт)Рассмотрим пример работы с записями без вариантов.Задача. Сведения о деталях, хранящихся на складе, содержат следующиеатрибуты: название, количество, стоимость одной детали.

Вывести информациюо детали, суммарная стоимость для которой максимальна.program ex_zap;type detal = record a: string[30]; kol, st: integer; end;var a: array [0..99] of detal; n, i, max: integer;beginwrite('Количество деталей? ');readln(n);for i:=0 to n-1 doWith a[i] dobegin write('Информация об ', i, ' детали: ');readln(a);readln(kol);readln(st);end;max := 0;for i:= 1 to n-1 doif a[max].kol*a[max].st < a[i].kol*a[i].st then max:=i;writeln('Искомая деталь: ',a[max].a, ' стоимостью ',количестве ', a[max].kol);end.a[max].st,'в22. Множества в языке Паскаль, их представление на машинном уровнеМножества в языке PascalМножество — это структурированный тип данных, представляющийсобой набор взаимосвязанных по какому-либо признаку или группе признаковобъектов, которые можно рассматривать как единое целое.

Каждый объект вмножестве называется элементом множества.Все элементы множества должны принадлежать одному из порядковыхтипов, содержащему не более 256 значений. Этот тип называется базовымтипом множества. Базовый тип задается диапазоном или перечислением.Область значений типа множество — набор всевозможных подмножеств,составленных из элементов базового типа. В выражениях на языке Паскальзначения элементов множества указываются в квадратных скобках: [1,2,3,4],['а',‘b','с'], ['a'..'z'].Если множество не имеет элементов, оно называется пустым иобозначается как []. Количество элементов множества называется егомощностью.Множество может принимать все значения базового типа.

Базовый тип недолжен превышать 256 возможных значений. Поэтому базовым типоммножества могут быть byte, char, boolean и производные от них типы.Множество в памяти хранится как массив битов, в котором каждый битуказывает является ли элемент принадлежащим объявленному множеству илинет. Максимальное число элементов множества 256, а данные типа множествомогут занимать не более 32 байт.Число байтов, выделяемых для данных типа множество, вычисляется поформуле:ByteSize = (max div 8) - (min div 8) + 1,где max и min — верхняя и нижняя границы базового типа данного множества.Номер байта для конкретного элемента Е вычисляется по формуле:ByteNumber = (E div 8) - (min div 8),номер бита внутри этого байта по формуле:BitNumber = E mod 8Не имеет значения порядок записи элементов множества внутриконструктора.

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

Тип файла
PDF-файл
Размер
19,07 Mb
Высшее учебное заведение

Список файлов ответов (шпаргалок)

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