Организовать символьные файлы g и f состоящие из n и m символов соответственно. Определить и вывести на экран множество символов входящих одновременно в файлы g и f.
Задания дополнительные.
Из множества целых чисел 1..100 выделить множество чисел на которые делится без остатка число 444. Вывести это множество на экран.
Из множества латинских букв выделить множество состоящее из символов не входящих в множество символов составляющих ваше имя. Вывести это множество на экран.
Определить и вывести на экран множество символов входящих одновременно в имя, отчество, и фамилию, введённые с клавиатуры.
Определить и вывести на экран множество символов входящих только в имя, отчество или фамилию, введённые с клавиатуры.
Определить и вывести на экран множество символов входящих в диапазон '0'..'9' и не входящих в множество символов, составляющих дату рождения, введённую с клавиатуры.
Из множества целых чисел 1..100 выделить множество чисел, являющихся, в свою очередь, квадратами целых чисел.
Из множества целых чисел вводимых с клавиатуры в линейную таблицу из 10-ти элементов, выделить множество чисел кратных минимальному числу этой таблицы.
Организовать символьные файлы g и f состоящие из n и m символов соответственно. Определить и вывести на экран множество символов входящих одновременно в файлы g и f.
15. В возрастающем порядке напечатать все целые числа из диапазона 1..100, представимые в виде n2+m2 (n, m >= 0).
Множества
Понятие множества в языке ПАСКАЛЬ основывается на математическом представлении о множествах: это ограниченная совокупность различных элементов. Для построения конкретного множественного типа используется перечисляемый или интервальный тип данных. Тип элементов, составляющих множество, называется базовым типом.
Множественный тип описывается с помощью служебных слов Set of, например:
type M= Set of B;
Здесь М - множественный тип, В - базовый тип.
Пример описания переменной множественного типа:
type M= Set of 'A'..'D'; var MS : M;
Принадлежность переменных к множественному типу может быть определена прямо в разделе описания переменных:
var C : Set of 0..7;
Константы множественного типа записываются в виде заключенной в квадратные скобки последовательности элементов или интервалов базового типа, разделенных запятыми, например:
['A', 'C'] [0, 2, 7] [3, 7, 11..14].
Константа вида [] означает пустое подмножество.
Множество включает в себя набор элементов базового типа, все подм- ножества данного множества, а также пустое подмножество. Если базовый тип, на котором строится множество, имеет К элементов, то число подм- ножеств, входящих в это множество, равно 2 в степени К. Пусть имеется переменная Р интервального типа:
var P : 1..3;
Эта переменная может принимать три различных значения - либо 1, либо 2, либо 3. Переменная Т множественного типа
var T : Set of 1..3;
может принимать восемь различных значений:
[ ] [1,2] [1] [1,3] [2] [2,3] [3] [1,2,3]
Порядок перечисления элементов базового типа в константах безразличен.
Значение переменной множественного типа может быть задано конструкцией вида [T], где T - переменная базового типа.
К переменным и константам множественного типа применимы операции присваивания(:=), объединения(+), пересечения(*) и вычитания(-):
['A','B'] + ['A','D'] даст ['A','B','D'] ['A'] * ['A','B','C'] даст ['A'] ['A','B','C'] - ['A','B'] даст ['C'].
Результат выполнения этих операций есть величина множественного типа.
К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип, например:
['A','B'] = ['A','C'] даст FALSE ['A','B'] <> ['A','C'] даст TRUE ['B'] <= ['B','C'] даст TRUE ['C','D'] >= ['A'] даст FALSE.
Кроме этих операций для работы с величинами множественного типа в языке ПАСКАЛЬ используется операция inпроверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции - булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения, например:
A in ['A', 'B'] даст TRUE, 2 in [1, 3, 6] даст FALSE.
При использовании в программах данных множественного типа выполнение операций происходит над битовыми строками данных. Каждому значению множественного типа в памяти ЭВМ соответствует один двоичный разряд. Например, множество
['A','B','C','D']
представлено в памяти ЭВМ битовой строкой
1 1 1 1.
Подмножества этого множества представлены строками:
['A','B','D'] 1 1 0 1 ['B','C'] 0 1 1 0 ['D'] 0 0 0 1
Величины множественного типа не могут быть элементами списка вво- да - вывода.
В каждой конкретной реализации транслятора с языка ПАСКАЛЬ количество элементов базового типа, на котором строится множество, ограничено. В TURBO PASCAL количество базовых элементов не должно превышать 256.
Инициализация величин множественного типа производится с помощью типизированных констант:
const seLit: Set of 'A'..'D'= [];
Проиллюстрируем применение данных множественного типа на примере.
Пример. Составить программу, которая вырабатывает и выводит на экран дисплея наборы случайных чисел для игры в "Спортлото 5 из 36".
Для заполнения каждой карточки спортлото необходимо получить набор из пяти псевдослучайных чисел. К этим числам предъявляются два требования:
· числа должны находиться в диапазоне 1..36;
· числа не должны повторяться.
Program Lotto; var nb, k: Set of 1..36; kol, l, i, n: Integer; begin Randomize; WriteLn('ВВЕДИ kol'); ReadLn(kol); nb:=[1..36]; for i:=1 to kol do begin k:=[]; for l:=1 to 5 do begin repeat n:=Random(36) until (n in nb) and not (n in k); k:=k+[n]; Write(n:4) end; WriteLn end end.
Практическая работа 6
Программирование с использованием множеств
Цель работы: познакомить с понятием "множество" в языке программирования Pascal; выработать навыки работы со структурой данных множество.
Общие сведения
Под множеством понимают ограниченный, неупорядоченный набор различных элементов одного типа. В отличие от массивов к элементам множества нет прямого доступа (по индексам этих элементов, как в массивах). Поэтому ввод-вывод множеств производится с использованием операций объединения (при вводе) и проверки принадлежности (при выводе). Под мощностью множества понимают количество элементов, содержащихся в данном множестве.
Перед выполнением работы необходимо ознакомится с правилами описания и использования переменных типа множество, типизированных констант типа множество, переменных, заданных перечислением, изучить допустимые операции над переменными этих типов.
Пример
Пример1: Дан текст. Определить каких букв больше - гласных или согласных. Этапы решения задачи: 1. Составим блок схему программы
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |