Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ЛАБОРАТОРНАЯ РАБОТА 6
(множества)
1. const n=3; type номер=1..n;
матрица = array [номер, номер] of real;
НОМ = set of номер:
Описать функцию sum (A, S1, S2), вычисляющую сумму тех элементов матрицы, номера строк и столбцов которых принадлежат соответственно непустым множествам S1 и S2 типа НОМ.
Программа: Введите матрицу A, множества S1 и S2, каждое из 3-х элементов, и вызовите функцию sum (A, S1, S2).
2. Спортлото: 6 из 49.
Составьте программу, в которой загадываются, иначе говоря, создаются 6 разных чисел, значения которых никак не связаны друг с другом, а величина лежит в интервале от 1 до 49.
(Выражение random(49)+1 дает случайное целое число в интервале от 1 до 49).
3. В возрастающем порядке напечатать все целые числа из диапазона 1..255, представимые в виде
n 2 + m 2 , где m,n>=0.
4. type s= set of 0..255;
Описать процедуру print (A), печатающую в убывающем порядке все элементы множества A, имеющего тип S.
Программа: введите множество A (ноль используйте как прекращение ввода) и напечатайте его в убывающем порядке.
5. Дана строка. В алфавитном порядке напечатайте (по разу) все малые латинские буквы, входящие в эту строку ровно один раз.
6. Введите множество, состоящее из 20 целых чисел от 1 до 50. Определите, сколько чисел, у которых первая значащая цифра в десятичной записи есть 1 или 2.
7. Дана строка. Подсчитайте сумму цифр, не входящих в данную строку.
8. Введите множество, состоящее из 15 целых чисел от 0 до 255. Определите, сколько среди них точных квадратов (одинаковые числа считать по разу).
9. type M = set of 0..99;
Описать функцию card (A), подсчитывающую количество элементов в множестве A типа M.
(Например, card ([5,8,23])=3).
Программа: введите множество A (ноль используйте как прекращение ввода). Выдайте, вызвав функцию card, количество элементов A.
10. type letters = set of 'a' .. 'z';
Описать процедуру print (A), печатающую в алфавитном порядке все элементы множества A, имеющего тип letters.
Программа: введите множество A, состоящее из 20 букв, и напечатайте его в алфавитном порядке.
11. Дана строка. В алфавитном порядке напечатайте все малые латинские буквы, не входящие в эту строку.
12. Введите множество, состоящее из 20 целых чисел от 1 до 50. Определите, сколько среди них чисел Фибоначчи.
13. Дана строка из строчных латинских букв. Напечатать все буквы, входящие в строку по одному разу.
14. Дана строка из строчных латинских букв. Напечатать первые вхождения букв в текст, сохраняя их взаимный порядок.
Указание: формируйте множество, в которое очередной элемент добавляется после первой печати.
15. type S = set of 0..100;
Описать функцию sum (A), подсчитывающую сумму нечетных элементов множества A типа S. (Например, sum ([3,4,99,80] = 102)).
Программа: введите множество A (ноль используйте как прекращение ввода). Выдайте, вызвав функцию sum, сумму нечетных элементов множества A.
16. type S = set of 0..50;
Описать функцию p (A), подсчитывающую произведение элементов множества A типа S. (Например, sum ([5,8,23] = 920)).
Программа: введите множество A (ноль используйте как прекращение ввода). Выдайте, вызвав функцию p, произведение элементов множества A.
17. Дана строка. В алфавитном порядке напечатайте (по разу) все малые латинские буквы, входящие в эту строку более одного раза.
18. Введите множество, состоящее из 20 целых чисел от 1 до 50. Определите, сколько чисел, у которых последняя цифра 3, 5 или 7.
19.Дана строка символов. Определить, каких букв больше в этом тексте, больших латинских букв или малых.
20. Создайте множество, состоящее из простых чисел < 255 и дающее при делении на 4 остаток 3. Напечатайте элементы этого множества.
21. Дана строка символов. В возрастающем порядке напечатайте все цифры, входящие в эту строку.
22. Дана строка. В алфавитном порядке напечатайте (по разу) все строчные латинские согласные буквы, входящие в эту строку. Указание: гласные буквы - а, e, i, o, u; остальные - согласные.
23. Введите множество, состоящее из 20 целых чисел от 1 до 100. Определите, сколько среди них чисел, которые не являются числами Фибоначчи.
24. Создайте множество, состоящее из чисел Фибоначчи меньших 255. Напечатайте элементы этого множества в порядке убывания.
25. Введите множество, состоящее из 20 целых чисел от 1 до 100. Определите, сколько среди них простых чисел.
26. Дана строка символов. Подсчитайте количество различных латинских малых букв, входящих в данную строку.
27. Дана строка. В алфавитном порядке напечатайте (по разу) все большие латинские гласные буквы, входящие в эту строку.
Указание: гласные буквы - а, e, i, o, u; остальные - согласные.
28. Дана строка из строчных латинских букв. Напечатайте все буквы, входящие в текст не менее двух раз.
Указание. Просматривая в цикле символы текста, формируйте два множества: одно - содержит уже просмотренные символы, другое - наполняется теми элементами, которые входят в первое множество.
29. Дана строка. Определить, каких букв больше в этом тексте, латинских строчных гласных или согласных.
Указание: гласные буквы - а, e, i, o, u; остальные - согласные.
30. Создайте множество, состоящее из составных чисел < 255. Напечатайте элементы этого множества в порядке убывания.
31. Дана строка. В алфавитном порядке напечатайте (по разу) все малые латинские буквы, входящие в эту строку ровно два раза.
32. Описать функцию "счет", подсчитывающую общее количество цифр и знаков '+', '-' и '*', входящих в данную строку.
Программа: введите строку и с помощью функции "счет" определите число указанных символов.
33. Ввести строку символов, состоящую из латинских букв, цифр и пробелов. Осуществить проверку правильности введенных символов.
34. Спортлото: 5 из 36.
Составьте программу, в которой загадываются, иначе говоря, создаются 5 разных чисел, значения которых никак не связаны друг с другом, а величина лежит в интервале от 1 до 36.
(Выражение random(36)+1 дает случайное целое число в интервале от 1 до 36).
35. Напечатать все натуральные числа от 10 до 32767, в десятичной записи которых нет одинаковых цифр.
*************************************************************************************ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
*************************************************************************************
1. type str=string[100];
Описать функцию count(s), подсчитывающую общее количество цифр и знаков '+', '-' и '*', входящих в строку s.
type str=string[100];
var s1 : str;
k1 : integer;
function count(var s:str) : integer;
var i, k : integer;
begin
k:=0;
for i:=1 to length(s) do
if s[i] in ['0'..'9', '+', '-', '*'] then k:=k+1;
count:=k
end;
begin
writeln('Введите строку');
readln(s1);
k1:=count(s1);
writeln('Количество цифр и знаков - ', k1:5);
end.
Для решения задачи:
- формируем тело программы и описываем переменные;
- создаем функцию count, подсчитывающую общее количество цифр и знаков +, *, - в заданной строке;
- вводим строку s1;
- вызываем функцию count и выводим значение счетчика k1 на экран;
- завершаем работу программы.
Переменные:
в функции count:
s строка (формальный параметр);
i счетчик цикла (локальная переменная);
k общее количество цифр и знаков +, *, - в заданной строке (локальная переменная);
в основной программе:
s1 введенная строка (локальная переменная);
k1 - общее количество цифр и знаков +, *, - в заданной строке s1(фактический параметр).
2. type M=set of 0..99;
Описать функцию card(A), подсчитывающую количество элементов в множестве A типа M (ноль используйте как прекращение ввода). (Например, card([5,8,23])=3.)
type M=set of 0..99;
var b : m;
k1, x : integer;
function card(A:M) : integer;
var p,k : integer;
begin
k:=0;
for p:=0 to 99 do
if p in A then k:=k+1;
card:=k
end;
begin
b:=[ ];
repeat
write('Введите число >0<=99 - ');
readln(x);
b:=b+[x];
until x=0;
k1:=card(b);
writeln('Количество различных элементов множества', k1);
end.
Для решения задачи:
- формируем тело программы и описываем переменные;
- создаем функцию card, подсчитывающую количество элементов в множестве;
- организуем пустое множество;
- в цикле repeat … until вводим числа до тех пор, пока не ввели 0, и дописываем их в множество;
- вызываем функцию card и выводим значение счетчика k1 на экран;
- завершаем работу программы.
Переменные:
в функции card:
A множество (формальный параметр);
p счетчик цикла от 0 до 99 (локальная переменная);
k количество элементов множества А (локальная переменная);
в основной программе:
x введенное число (локальная переменная);
b созданное множество (локальная переменная);
k1 - количество элементов в созданном множестве (фактический параметр).
3. Программа. Дан текст из строчных латинских букв, за которым следует точка. Напечатать первые вхождения букв в текст, сохраняя их исходный взаимный порядок;
var
let : set of 'a'..'z';
s : string;
c : char;
i : integer;
begin
let:=[ ]; {множество букв в рассмотренной части текста}
readln(s);
i:=1;
while s[i]<>'.' do
begin if not(s[i] in let) then {1-е вхождение}
begin write(s[i]);
c:=s[i];
let:=let+[c]
end;
i:=i+1;
end;
writeln
end.
Для решения задачи:
- формируем тело программы и описываем переменные (let множество, состоящее из малых латинских букв);
- организуем пустое множество let;
- вводим строчку s;
- организуем цикл, в котором просматриваем символы строки s до тех пор, пока не встретим ., и проверяем, входит ли этот символ в множество let (т.е. символ малая латинская буква);
- если очередной символ строки не входит во множество let, то этот символ встретился впервые и выводим ее на экран и дописываем в множество;
- завершаем работу программы.
Переменные:
let множество малых латинских букв;
c очередной символ строки;
s введенная строка;
i переменная цикла.