Вариант 5.

advertisement
Лабораторная работа № 14
ТЕМА: Реализация алгоритмов с множествами в виде программ.
ЦЕЛЬ РАБОТЫ: Закрепление знаний о множественных типах данных; о
принципах работы с множествами; составление, ввод и выполнение программ с
использованием множеств.
ОБОРУДОВАНИЕ: Персональный компьютер, задания лабораторной работы
по вариантам.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ: Borland Turbo Pascal 7.0
1. ОСНОВНЫЕ СВЕДЕНИЯ
Множеством в Паскале называется набор значений какого-нибудь порядкового
типа, подчиняющийся специфическим правилам.
В программе множество записывается в виде списка
этих значений в квадратных
скобках.
Например: [7, 5, 0, 4] или ['п', 'ж', 'л'].
Множество не должно состоять более чем из 256 элементов и не должно содержать
элементов с порядковыми номерами меньше нуля и больше 255.
2. ВЫПОЛНЕНИЕ РАБОТЫ
2.1.
2.2.
2.3.
2.4.
Составьте и выполните программу согласно вариантам заданий.
Проверьте полученный результат.
Выполните анализ ошибок, опишите действия по их устранению.
Запишите листинг программы в тетрадь.
Варианты заданий:
Вариант 1. Сформировать и вывести на экран множество из n символов латинского
алфавита (n<20). Если вводимая буква уже есть в множестве, выдать
соответствующее сообщение. Обратите внимание, что вводимые буквы могут быть
и прописными, и строчными, поэтому при выводе в цикле For параметр цикла
принимает все значения для букв латинского алфавита от A до z.
Вариант 2. Дана строка символов. Удалить из нее все знаки препинания.
Вариант 3. Дан текст на русском языке. Определить, каких букв больше – гласных
или согласных.
Вариант 4. Дан текст на русском языке. Найти количество согласных букв в
последнем слове.
Вариант 5. Дано натуральное число n. Напечатать в возрастающем порядке все
цифры, которых нет в записи данного числа.
3. КОНТРОЛЬНЫЕ ВОПРОСЫ
Вариант 1,3. Какие операции над множествами вы знаете? Как в Паскале
обозначаются операции над множествами?
Вариант 2,4. Сколько способов описания множеств вы знаете? Как объявляются
множества?
Вариант 5. Как в Паскале обозначается проверка на вхождение элемента в
множество?
Для учителя
Вариант 1.
Program Mnog_Sim;
Const N=20;
Var S : Set Of Char;
B : Char;
I : Integer;
Begin
S := [];
For I:=1 To N Do
Begin
Writeln (’Введите букву’);
Readln(B);
If B In S Then
Writeln(’Буква ’,B,’ уже есть’)
Else
S:=S+[B];
End;
Writeln(’Буквы, входящие в множество’);
For B:=’A’ To ’z’ Do
If B In S Then
Write(B:2);
End.
Вариант 2.
var str, str1 : string;
L, i : integer;
m : set of char;
begin
m:=['.', ',', '!', ':', ';', '?', '-'];
writeln('Введите текст');
readln(str); L:=length(str); str1:='';
for i:=1 to L do
if not(str[i] in m) then str1:=str1+str[i];
str:=str1;
writeln('Преобразованный текст ', str);
end.
Вариант 3.
program mn_10;
const
glasn=['а','е','и','о','у','ы','э','ю','я'];
soglas=['б','в','г','д','ж','з','й','л','м',
'н','р','к','п','с','т','ф','х','ц','ч','ш','щ'];
var
st: string;
g,s,i:integer;
begin
write('Введите строку ');
readln(st);
g:=0; s:=0;
for i:= 1 to length(st) do
if st[i] in glasn then
inc(g)
else if st[i] in soglas then
inc(s);
if g> s then writeln('Гласных больше')
else if g< s then
writeln('Согласных больше')
else writeln('Согласных и гласных букв поровну');
readln; end.
Вариант 4.
Program mn_7;
uses crt;
type let=' а'..'я';
var sogl:set of let;
s:string;
I,k:byte;
begin
writeln('введите текст, заканчивающийся точкой');
readln(s);
if s[length(s)]<>'.' then s:=s+'.';
sogl :=['п','ф','х','т','с','к','ч','ш','щ','ц', 'б','в','г','д','ж','з','л','м','н','р'];
i:= length(s);
while s[i]<>' ' do begin if s[i] in sogl then k:=k+1; i:=i-1;end;
writeln(k);
readln;
end.
Вариант 5.
program mn_5;
var m:set of 0..9;
n,o,i:integer;
begin write('введите число:');
readln(n);
m:=[0,1,2,3,4,5,6,7,8,9];
while n>0 do
begin o:=n mod 10;
n:=n div 10;
if (o in m) then m:=m-[o]
end;
writeln('цифры, которых нет в числе');
for i:=0 to 9 do
if i in m then write(i,',');
readln;
end.
Download