Главная » Просмотр файлов » В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль

В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618), страница 49

Файл №1107618 В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль) 49 страницаВ.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618) страница 492019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Оба операнда должны принадлежать одному и томуже множественному типу значений. Для простоты при объяснении множественных операций в паскале в качестве операндов будем использовать множественные константы (множества).Пусть А и В — множества. Тогда объединением двух множеств А и Вназывается множество, состоящее из элементов, входящих хоты бы в одноиз множеств А или В (наглядно это изображено на рис. 11.1,а).Например, если в качестве множества А взягь [1, 2, 3, 4, 5 ] , а в качествемножества В — [2, 5, 6, 7, 8 ] , то объединением этих множеств будет множество [1, 2, 3, 4, 5, 6, 7, 8 ] . В теории множеств эта операция обозначаетсяследующим образом: A U В.

В паскале для обозначения этой операции используется знак + (плюс). Таким образом, предыдущий пример объединения двух множеств на паскале запишется в виде [1, 2, 3, 4, 5] + [2, 5, 6,7, 8 ] , что равно множеству [1, 2, 3, 4, 5, 6, 7, 8 ] .Пересечением двух множеств А и В называется множество, состоящееиз элементов, одновременно входящих и в множество А, и в множество В207(наглядно это изображено на рис.

1 1.1,6). Например, если в качестве множеств Л и В использовать множества, приведенные в предыдущем примере,то их пересечение есть множество [2, 5 ] . В теории множеств эга операцияобозначается следующим образом: А Л В. В паскале для обозначенияоперации пересечения множеств используется знак * (звездочка).Пример пересечения двух множеств, приведенных выше, запишется какаб6Рис. 11.1. Операции над множествами.Разностью двух множеств А и В (в теории множеств эта операция обозначается А \ В) называется множество, состоящее из элементов множества А, пе входящих в множество В. Для обозначения этой операции в паскале используется знак — (минус). Например, если в качестве множеств Аи В взять те же самые множества, что были использованы ранее, то разностьмножеств[1, 2, 3, 4, 5][2, 5, 6, 7, 8] есть множество [1, 3, 4](рис.

11.1, в ) .С использованием множественных операций могут строиться множественные выражения дня получения новых множественных значений.При вычислении значений множественных выражений используется старшинство операций, аналогичное старшинству операций при вычисленииарифметических выражений, а именно: в первую очередь вычисляютсязначения выражений, заключенных в скобки, затем выполняются операции *, после чего выполняются операции + и - в порядке их следованияслева направо. Полный синтаксис множественного выражения может бытьзадан следующим образом:множественное выражение ::=*слагаемое->.*,^слагаемое ::=sмножитель< конструктор множества—переменная(———•^ (множественное выражение(предполагается, чтоздесь (переменная) имеет)-множественныйтип).Примеры множественных выражений:[ 1 . 2 . 5 .

6 , 7 ] * [2..6] + [3, 9] (значение выражения равно [2. 3. 5, 6. 9 ] )( [ 3 . 4 . 5 ] + [1. 3. 6. 7] ) * [5 ..7] - [ 6 ] (значение выражения равно [ 5 , 7 ] )Операции отношения. Наряду с рассмотренными выше операциями,над значениями множественного типа определены и некоторые операцииотношения. Операндами операций отношения над множественными значениями в общем случае являются множественные выражения. Среди операций отношения над значениями множественного типа особое месго занимает специальная операция проверки вхождения элемента в множество,обозначаемая служебным словом in.

В отличие от остальных операций отношения, в которых значения обоих операндов относятся к одному и тому же множественному типу значений, в операции in первый операнд должен принадлежать базовому типу, а второй — множественному типу значений, построенному на основе этого базового типа. Результатом операцийотношения, как обычно, является логическое значение (true или false).Пусть А и Вмножества, принадлежащие одному и тому же множественному типу значений, х — значение соответствующего базового типа.В таблице 11.1 приведены операции отношения над множествами в паскале, соответствующая теоретико-множественная запись этих операций и даноих объяснение.Следует отметить, что применение операций < и > над операндами множественного типа недопустимо.Пусть, например, задано описание переменнойМ: set o-f 1..10и выполнен оператор присваивания М: = [2.

3, 5, 7]. Тогда6 in М равно false[3. 5. 7] < М равно trueМ= [ 1 . 2 , 3 . 7 ] равно false[ ] < М равно true(7 in М) and ([7] < М ) равно trueТаблица 11.1Операции отношения над множествамиЗапись на паскале Математ. записьА=ВА=ВЛ*НАФВЛ« ВАС ВА>ВADВX in Ал: е А14. В.Г. АбрамовЗначениеtrueмножества А и Всовпадаютмножества А и Вне совпадаютвсе элементы множества Апринадлежат множеству Ввсе элементы множества Впринадлежат множеству Аэлемент х входитв множество Аfalseв противномслучаев противномслучаев противномслучаев противномслучаеВ противномслучае209Напомним, что поскольку указанные выше конструкции являютсяотношениями, их необходимо — согласно общему правилу — заключатьв круглые скобки, если они входят в состав более сложных выражений.11.4.

Примеры использования множественного типаСледующий пример иллюстрирует типичное использование множественных типов значений.П р и м е р 11.1. В заданной последовательности литер, состоящей избукв латинского алфавита и оканчивающейся точкой, определить общеечисло вхождений в него букв а, е, с, h.Идея решения этой задачи проста: будем по очереди вводить литерыисходной последовательности и для каждой очередной литеры проверять,является ли она одной из интересующих нас букв. Но как делать проверку?Конечно, можно последовательно сравнивать текущую литеру с каждойиз указанных букв, но в этом случае запись будет громоздкая.

С использованием же константы множественного типа, состоящей из заданных в условии букв, и операции отношения in запись того же условия выглядитзначительно короче и нагляднее. Ниже приведена программа, с помощьюкоторой может быть решена поставленная задача.{Пример 11.1.Баула В.Г.ф-т ВМиК МГЦ30.4.87г.Подсчет общего числа вхождений заданных буквa,e,c,h в заданную последовательность литер,оканчивающуюсяточкой}{Пример работы с множеством}program подсчет (i nput., output) ;varчисбк: integer; литера: char;beginчисбк:=0;read(литера);while литера^'.'dcbegin{анализ очередной введенной литеры!if литера in Ca,e,c,h3 then чисбк:=чисбк+1;read(литера)-;end;{печать общего числа вхождений заданных букв}writeln ( ' 0БЫ.ЕЕ _ЧИСЛ0 _ВХОЖДЕНИЙ _РАВН0чисбк)end .В этом примере показано использование постоянных множественныхзначений.

Следующий пример демонстрирует использование переменныхмножественного типа.П р и м е р 11.2. Найти и напечатать в порядке убывания все простыечисла из диапазона 2. .201.210Для решения этой задачи воспользуемся известным методом, называемым "решето Эратосфена", в следующем его варианте. Введем в употребление два множества: Ч — множество анализируемых чисел, П — множествопростых чисел. Начальное значение Ч — это все числа от 2 до 201, а П —пустое множество:Ч = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11,..., 201]П=[]Берем первое число — 2. Оно простое, поэтому заносим его в П (в результате получим П = [ 2 ] ) , из множества Ч удаляем число 2 и все кратныеему числа (в итоге получим Ч = [3, 5, 7, 9, 11,..., 201]).Теперь берем в множестве Ч наименьшее число — в данном случае это 3.Оно простое и потому добавляем его в множество П (в результате получимП = [2, 3]), а из множества Ч удаляем число 3 и все кратные ему числа(в итоге получим Ч = [5, 7, 11,..., 201]).Далее поступаем аналогичным образом.

Очевидно, что в конце концовиз множества Ч будут удалены все элементы, а в множестве П окажутся всепростые числа. Теперь остается просмотреть множество П и напечатать входящие в него простые числа в порядке убывания.Прежде чем выписать программу на паскале, отметим две детали нашегоалгоритма. Во-первых, как удалить из множества Ч некоторое число к?Это реализуется одним оператором: Ч: = Ч — [к]. Аналогично, добавлениечисла к в множество П реализуется одним оператором П: = П + [к]. Во-вторых, как узнать, что из множества Ч удалены все числа? Очевидно, чтов этом случае множество Ч окажется просто пустым, т.е. достаточно выяснить значение отношения Ч = [ ].

Если оно равно true, то множество Чдействительно пусто, и мы выделили все простые числа из заданного диапазона; в противном случае необходимо продолжить выделение простыхчисел.{Пример 11.2. Павлов Б.М.Ф-т ВМиК МГУ2.5.87г.Печать в обратном порядке простых чиселиз диапазона 2..201}{Использование множественного типа}programпростыечисла(output);constN=201;typeMH04HC=set o-f 2 . . N ;varП,Ч:мночис;p,k:2..N;begin{присваиваниеначальныхзначении}Ч : 1 2 . . N Л ; П:=С '.1:{первоепростоечислодиапазона2..N3р : ~14*211repeat{выбор в Ч наименьшего числа)while not(р in Ч> do р:=р+1;{занесение найденного числа в П}П:=П+СрЗ;{удаление из Ч числа р и всех кратных ему чисел}к: =р;repeat Ч:=Ч-Ск3;к:=к+р untilk>N;until Ч=С 3;{печать простых чисел в обратном порядке}•for k:=N downto 2 doif k in П then write(k);wri telnend.ГЛАВА12ФАЙЛОВЫЕ ТИПЫСущественной особенностью всех рассмотренных до сих пор значенийпроизводных типов является наличие в них конечного, наперед заданногочисла компонент.

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

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

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

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

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