Задания для подготовки к работе. 1. Изучить комбинированный и множественный типы данных.
1. Изучить комбинированный и множественный типы данных.
2. Разработать алгоритм и составить программу для решения каждой из двух задач соответствующего варианта. Если не указано иначе, словом считать последовательность символов, не содержащую пустых символов (символов с кодами меньшими 33), буквами считать буквы латинского алфавита.
3. Подобрать наборы тестовых данных.
Варианты заданий
1. а. Определить день недели для данной даты, если известен день недели какой-либо даты.
б. Даны две строки s1 и s2. Для каждого слова w строки s1 вывести слово строки s2, каждая неповторяющаяся буква которого есть в слове w.
2. a. Найти частное от деления двух данных комплексных чисел. Действия над комплексными числами оформить подпрограммами.
б. Дан текст, заканчивающийся точкой. Вывести все буквы, входящие в текст не менее двух раз.
3. a. Анкета школьника включает в себя Ф.И.О., номер школы, номер класса и оценки по пяти предметам. Вывести фамилии трех лучших учеников данного класса.
б. Вывести в убывающем порядке цифры, которые входят в запись данного длинного целого числа только один раз.
4. a. Дан массив из n натуральных чисел (n - const). Вывести цифры, которых нет в записи данных элементов массива.
б. Упорядочить массив, каждый элемент которого представляет собой время (запись из трех полей: часы, минуты и секунды). Сравнение времени t1 с t2 оформить подпрограммой.
5. a. Даны адреса n человек ( n - const). Вывести фамилии людей, живущих в разных городах по одинаковым адресам или сообщить, что таких людей нет.
б.С клавиатуры вводятся неотрицательные целые числа, не превы-шающие 255. Признак конца ввода - ноль. Получить множество всех делителей введенных чисел.
6. a. Вектор задается координатами начальной и конечной точек. Определить максимальное число коллинеарных векторов из данного множества векторов.
б. Дано слово w1 и строка s. Найти в строке s такое слово w2, чтобы любая гласная встречалась хотя бы в одном из слов w1 или w2.
7. a. На двух полях шахматной доски находятся слон и король. Определить, может ли слон сделать ход, чтобы объявить шах королю.
б. Даны две строки s1 и s2. Для каждого слова w строки s1 вывести слово строки s2, которое содержит множество гласных букв слова w.
8. a. Известна дата и день недели некоторого события. Определить, на какой день недели приходится начало года.
б. С клавиатуры вводится текст. Признак конца ввода - точка. Вывести все согласные, которых нет ни в одном слове.
9. a. Круг задается радиусом и координатами центра. Имеется n кругов (n£20). Определить, в каком из кругов находится наибольшее число кругов из данного множества кругов.
б. Даны две строки s1 и s2. Для каждого слова w строки s1 вывести слово строки s2, которое содержит хотя бы одну согласную букву слова w.
10. a. Решить квадратное уравнение с комплексными коэффициентами. Действия с комплексными числами оформить подпрограммами.
б. Даны две непустые последовательности целых чисел, содержащие числа из сегмента [1; 255]. Каждая из последовательностей завершается нулем. Найти множество таких чисел из первой последовательности, которых нет во второй, и определить количество этих чисел.
11. a. Дан массив записей. Каждая запись содержит сведения о студенте группы: фамилию и оценки по пяти предметам. Удалить записи о студентах, имеющих более одной неудовлетворительной оценки. Вывести фамилии этих студентов.
б. Дан текст, заканчивающийся точкой. Вывести гласные буквы, которые входят более чем в одно слово.
12. a. Найти сумму nдробей в виде несократимой дроби. Дробь предста-вить записью из двух полей: числителя и знаменателя. Использовать подпрограммы для ввода, вывода, сокращения дроби и для нахождения суммы дробей.
б. Дан текст, состоящий из слов, пробелов и знаков препинания (запятая, точка с запятой, двоеточие), завершающийся точкой. Найти множество начальных букв неоднобуквенных слов.
13. a. Дан массив дробей, представленных записями. Определить наибольшую дробь. Использовать подпрограммы для ввода, вывода дроби и сравнения двух дробей.
б. Вывести буквы, которых нет в тексте, вводимом с клавиатуры. Признак конца ввода - точка.
14. a. В массиве записей хранится многочлен Pn(x) по убыванию степеней. Каждая запись содержит показатель степени и коэффициент члена. Получить значение многочлена при данном x. Члены с нулевыми коэффициентами в массив не включаются.
б. Дан текст, заканчивающийся точкой. Вывести первые вхождения каждой латинской буквы.
15. a. Дан массив записей. Каждая запись содержит фамилию и адрес человека (город, улица, дом, квартира). Вывести фамилии двух человек, в адресах которых разные только улицы, или сообщить о том, что таких людей нет.
б. Дана квадратная матрица. Определить множество номеров строк и столбцов, элементы которых упорядочены.
16. a. Установить, предшествует ли в пределах одного года дата d1 дате d2 и, если предшествует, то на сколько дней.
б. Дана строка. Вывести буквы, которые встречаются в каждом из слов данного предложения.
17. a. Первого января года был понедельник. Определить по данной дате день недели и его порядковый номер в году.
б. Дана строка. Вывести все гласные, которые есть хотя бы в одном слове.
18. a. Вычислить значение квадратного трехчлена az2+bz+c с комплекс-ными коэффициентами a, b, c в комплексной точке z. Действия с комплексными числами оформить подпрограммами.
б. С клавиатуры вводятся неотрицательные целые числа, не превышающие 255. Признак конца ввода - ноль. Получить множество общих делителей введенных чисел.
19. a. Даны координаты n фигур на шахматной доске и координаты слона. Определить, сможет ли слон за один ход перейти на данное свободное поле p.
б. Даны две строки s1 и s2. Для каждого слова w строки s1 вывести слово строки s2, каждая повторяющаяся буква которого не входит в слово w.
20. a. В массиве записей хранится следующая информация о спортсме-нах: фамилия, вид спорта, лучший результат этого спортсмена. Видом спорта могут быть: прыжки в длину, прыжки в высоту,
тяжелая атлетика. Определить лучшего спортсмена в заданном виде спорта. Использовать подпрограммы для ввода массива и для определения лучшего спортсмена.
б. Дан массив из n натуральных чисел. Вывести цифры, которые есть в каждом из чисел.
21. a. На двух заданных полях шахматной доски находятся конь и пешка. Определить, угрожает ли конь пешке.
б. Дан массив из n натуральных чисел. Вывести те цифры, которых нет в записи хотя бы одного из чисел массива.
22. a. Круг задается радиусом и координатами центра. Определить, найдется ли среди данных десяти кругов круг, лежащий внутри другого круга.
б. Дан текст, состоящий из слов, пробелов и знаков препинания (запятая, точка с запятой, двоеточие), завершающийся точкой. Найти множество однобуквенных слов текста.
23. a. Даны координаты n фигур на шахматной доске и координаты ладьи. Определить, сможет ли ладья за один ход перейти на данное свободное поле p.
б. Дана квадратная матрица. Определить множество чисел niтаких, что строка с номером niи столбец с номером ni не содержат нулевых элементов.
24. a. Определить время, прошедшее от t1 до t2. Время представлено записью из трех полей: часы, минуты, секунды (t1< t2).
б. Дан текст из латинских строчных букв. Вывести все буквы, входящие в текст по одному разу.
25. a. Дан массив несократимых дробей. Дробь – запись из двух полей: числителя и знаменателя. Найти произведение данных дробей в виде несократимой дроби, используя подпрограммы для ввода, вывода, сокращения дроби и нахождения произведения двух дробей.
б. С клавиатуры вводят натуральные числа, не превышаюшие 255. Признак конца ввода - ноль. Вывести числа Фибоначчи, которые были среди введенных.
26. a. Определить, является ли данное z корнем квадратного уравнения с комплексными коэффициентами. Действия с комплексными числами описать подпрограммами.
б. Дана матрица, элементы которой целые числа из сегмента [0; 255]. Две строки матрицы будем называть эквивалентными, если множества элементов этих строк равны. Определить количество классов эквивалентных строк матрицы.
27. a. В массиве длины nхранятся записи со следующей информацией об абитуриентах: Ф.И.О. и результаты вступительных экзаменов (количество баллов от 0 до 10 по математике и физике и зачет или незачет по русскому языку). Вывести Ф.И.О. абитуриентов, зачисленных в институт, при плане набора, равном k. Замечание: зачисляются абитуриенты в порядке невозрастания суммы баллов по математике и физике, при условии, что количество баллов и по математике и по физике больше четырех и есть зачет по русскому языку.
б. С клавиатуры вводят натуральные числа, не превышаюшие 255. Признак конца ввода - ноль. Определить количество чисел, в записи которых встречаются все цифры, имеющиеся в записи числа n, но отсутствующие в записи числа m.
28. a. Дана точка P(px, py, pz) и некоторое множество точек (n£100). Упорядочить точки данного множества по неубыванию расстояний до точки P. Точки, расстояния от которых до точки P равны с точностью 10-10, упорядочить по неубыванию углов, образованных радиусом-вектором точки с положительной полуосью Ox.
б. Назовем два слова, у которых совпадают множества символов, эквивалентными. Вывести каждую группу эквивалентных слов данной строки.
29. a. Дан массив записей. Каждая запись содержит сведения о студенте группы: фамилию и оценки по пяти предметам. Упорядочить массив по невозрастанию сумм оценок.
б. Вывести в порядке убывания все целые числа из диапазона 1¼255, которые встречаются во вводимой последовательности по одному разу. Последовательность заканчивается нулем.
30. a. Определить дату предыдущего дня по известной дате текущего дня.
б. Даны две строки s1 и s2. Для каждого слова w строки s1 вывести слово строки s2, которое содержит множество согласных букв слова w.
Контрольные вопросы
1. Что представляет собой значение комбинированного типа?
2. Как описываются переменные комбинированного типа?
3. Какие операции определены над записями?
4. Изобразите синтаксическую диаграмму записи с вариантами.
5. С какой целью используют записи с вариантами?
6. Что представляет собой значение множественного типа?
7. Каким может быть базовый тип множества в TP?
8. Перечислите операции, определенные над данными множественного типа.
9. В каком порядке выполняются операции в выражениях множественного типа?
ЛАБОРАТОРНАЯ РАБОТА № 8
Обработка файлов
Цель работы: получение навыков работы с файлами последователь-ного и прямого доступа.