Скачать презентацию Множественный тип данных Решение задач Посимвольный ввод Скачать презентацию Множественный тип данных Решение задач Посимвольный ввод

Задачи на множества.pptx

  • Количество слайдов: 16

Множественный тип данных Решение задач Множественный тип данных Решение задач

Посимвольный ввод Type Set. Char : Set of Char; Var i, n : Byte; Посимвольный ввод Type Set. Char : Set of Char; Var i, n : Byte; c : Char; М : Set. Char; Begin Write (‘Укажи размер множества: ‘); Readln(n); M: =[ ] ; For i : =1 to n do Begin Write ( i , ‘ -й элемент: ‘ ) ; Readln (c) ; M : = M + [c]; End; Writeln (‘Ввод завершен’); End.

Построчный ввод Var Str : string; L : byte; Tru : boolean; Begin Write. Построчный ввод Var Str : string; L : byte; Tru : boolean; Begin Write. Ln(‘Введите строку’); Read. Ln(Str); L : = Length(Str); // число введенных символов Tru : = L >0; // true, если не пустая строка //Получить из строки множество букв. MS : = [ ]; For i : = 1 to Length(L ) do MS : =MS + [ S [ i ] ];

Пример 1 Дана не пустая последовательность символов. Требуется построить и напечатать множество, элементами которого Пример 1 Дана не пустая последовательность символов. Требуется построить и напечатать множество, элементами которого являются встречающиеся в последовательности цифры от 3 до 9, буквы от A до F и знаки препинания. Признаком окончания последовательности является символ 0 (ноль).

uses crt; //Подключение модуля работы с экраном var ch: char; s : string; begin uses crt; //Подключение модуля работы с экраном var ch: char; s : string; begin clrscr; //Очистка экрана write ('Введи строку символов (0 -exit): '); s: =''; repeat // Начало цикла read (ch); // Ввод строки символов if (ch in ['3'. . '9']) or (ch in ['A'. . 'F']) or (ch in [', ', '; ', ': ', '-']) then s: =s+ch; // формирование новой строки until ch='0'; writeln(s); end.

Результат Результат

Пример 1 Составить программу, по которой из последовательности натуральных чисел от 2 до N Пример 1 Составить программу, по которой из последовательности натуральных чисел от 2 до N (1 < N ≤ 255) , будут выбраны все простые числа. Пример работы алгоритма «Решето Эратосфена» для N=15 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 5 7 9 11 13 15 5 7 11 13 13

Алгоритм 2 3 4 5 6 7 8 9 10 11 12 13 14 Алгоритм 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3 5 7 5 9 11 13 7 11 13 13 15

Program Eratosfen; Const N=201; Var A, B : Set of 2. . N; K, Program Eratosfen; Const N=201; Var A, B : Set of 2. . N; K, P : integer; Begin { A –исходное множество, В – множество простых чисел} A : = [2. . N]; B : = [ ]; P : = 2; Repeat { Поиск минимального числа в множестве А } While not [P in A] do P : = P+1; { Включение найденного числа в множество В} B : = B + P; K : = P; { Исключение из А чисел, кратных Р } While K<=N do Begin A : = A – [K]; K : = K + P; End Until A = [ ]; {Вывод результата, всех простых чисел множества В} End. For P : = 2 to N do If P in B then Writeln(P);

Пример 2. Дана строка из строчных русских букв. Между соседними словами – запятая, за Пример 2. Дана строка из строчных русских букв. Между соседними словами – запятая, за последним словом – точка. Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово. Алгоритм 1. Ввод строки символов S. Например, S = ‘карета, автобус, машина. ’ 2. Выделить 1 -е слово из строки S. Получим подстроку Slovo = ‘карета‘. 3. Получить из этой подстроки множество букв. Получим MSL 1 = [к, а, р, е, т, ]

4. Выделить из этого множества подмножество гласных букв. MGSL 1 = [а, е] 5. 4. Выделить из этого множества подмножество гласных букв. MGSL 1 = [а, е] 5. Цикл «Пока не конец строки S» . 6. Удалить из строки S подстроку Slovo. S =‘автобус, машина. ’ 7. Выделить 1 -е слово из строки S. Slovo =‘автобус’. 8. Получить из этой подстроки множество букв. MSL = [ а, в, т, о, б, у, с ]. 9. Выделить из этого множества подмножество гласных букв. MGSL = [а, о, у ].

10. Выполним операцию пересечения MS = MGSL 1* MGSL. Получим MS = [а] 11. 10. Выполним операцию пересечения MS = MGSL 1* MGSL. Получим MS = [а] 11. Конец цикла. 12. Если MS < > [ ], то ПЕЧАТАТЬ множество MS, иначе ПЕЧАТАТЬ «НЕТ общих гласных букв» . Получим [ а ].

Написать текст программы, используя следующие блоки: Выделить 1 -е слово из строки S. K Написать текст программы, используя следующие блоки: Выделить 1 -е слово из строки S. K : = Pos( ‘ , ’ , S ); Slovo : = Copy(S , 1 , K - 1) ; Получить из строки множество букв. MS : = [ ]; For i : = 1 to Length(S) do MS : =MS + [ S [ i ] ]; Вывод на печать подмножества букв русского алфавита: S : = ‘ ‘; For C : = ‘a’ to ‘я’ do If C in MS Then S : = S + C; Writeln (‘ Результат ‘, S);

9. Выделить из этого множества подмножество гласных букв. Получим MGSL = [а, о, у 9. Выделить из этого множества подмножество гласных букв. Получим MGSL = [а, о, у ]. 10. Выполним операцию пересечения MS = MGSL 1* MGSL. Получим MS = [а] 11. Конец цикла. 12. Если MS < > [ ], то ПЕЧАТЬ множество MS, иначе ПЕЧАТЬ «НЕТ общих гласных букв» . Получим [ а ]. Написать текст программы, используя следующие блоки: Выделить 1 -е слово из строки S. K : = Pos( ‘ , ’ , S ); Slovo : = Copy(S , 1 , K - 1) ; Получить из строки множество букв. MS : = [ ]; For i : = 1 to Length(S) do MS : =MS + [ S [ i ] ]; Вывод на печать подмножества букв русского алфавита: S : = ‘ ‘; For C : = ‘a’ to ‘я’ do If C in MS Then S : = S + C; Writeln (‘ Результат ‘, S);

type Mounth=(J, F, Mar, Apr, May, Iun, Iul, Aug, Sep, Ouc, Nob, Dec); Day. type Mounth=(J, F, Mar, Apr, May, Iun, Iul, Aug, Sep, Ouc, Nob, Dec); Day. Week = (Mon, Tue, Wed, Thi, Thr, Sat, Sun); // дни недели rabday = set of Mon. . Thr; // Рабочие дни var Winter, Spring, Summer, Autumn: set of Mounth; day: Day. Week; begin Winter: =[Dec, J, F]; Spring: =[Mar, Apr, May]; Summer: =[Iun, Iul, Aug]; Autumn: =[Sep, Ouc, Nob]; end.

Домашнее задание Домашнее задание