Порядок выполнения работы. 1. По задаче составить программу обработки структурированных переменных без
1. По задаче составить программу обработки структурированных переменных без использования функций.
2. По задаче составить программу обработки структурированных переменных с использованием функций (как указано в задании).
3. По задаче (задание 2) составить программу с функцией, параметры в которую передаются с помощью указателей. Оператор return не использовать.
4. Защитите отчет о выполненной лабораторной работе.
Отчет должен содержать:
1) Наименование и цель работы.
2) Описание решаемой задачи и блок-схемы алгоритмов
3) Тексты программ с необходимыми комментариями.
4) Выводы по лабораторной работе.
Задание
Задача 1. Ввести перечислимые типы масть, достоинство. С их помощью описать как структуру переменную карта. Составить и протестировать функцию
БЬЁТ(К1, К2, КМ) , которая проверяет, бьет ли карта К1 карту К2, с учетом того, что масть КМ является козырной.
Задача 2. Описать как структуру переменную время (с полями часы, минуты, секунды). Составить и протестировать функции:
а) СЛЕД_СЕК(t, t1, d) ,
которая присваивает параметру tl время на d секунд большее, чем время t (может происходить смена суток);
б) ИНТЕРВАЛ (tl, t2, d), которая вычисляет время d, прошедшее от времени tl до времени t2.
Задача 3. Ввести перечислимые типы вертикаль, горизонталь для обозначения клеток шахматной доски. Составить и протестировать функции:
а) ХОД_ФЕРЗЯ (Kl, K2) , которая проверяет, может ли ферзь за один ход перейти с поля К1 на поле К2;
б) ХОД_КОНЯ (Kl, K2), которая вычисляет, за сколько ходов конь может перейти с поля К1 на поле К2.
Задача 4. Ввести структуру (с полями числитель и знаменатель) для описания понятия рациональное число. Составить и протестировать функции:
а) РАВНО (А, В),
которая проверяет, равны ли друг другу рациональные числа А, В;
б) МАКС (X, N),
которая возвращает наибольшее из массива X[N] рациональных чисел;
в) СЛОЖ (А. В, С),
которая записывает в С результат сложения рациональных чисел А и В;
г) МИН (А, В),
Задача 5. Ввести структуру (с полями число, месяц, год)
для описания понятия дата. Составить и протестировать | функцию, которая:
а) вычисляет интервал (в днях), прошедший между двумя датами;
6) по порядковому номеру дня в году определяет число и месяц года, соответствующие этому дню;
в) по введенной дате распечатывает дату на N дней вперед.
Задача 6. Определить структуры, описывающие шар и точку в трехмерном пространстве. Составить и протестировать функцию, которая проверяет, находится ли точка внутри заданного шара.
Задача 7. Ввести структуру для описания комплексного числа. Составить и протестировать функции для:
а) преобразования комплексного числа из алгебраической формы в показательную;
б) преобразования комплексного числа из показательной формы в алгебраическую;
в) получения сопряженного комплексного числа;
г) возведения комплексного числа в целую положительную степень;
д) умножения комплексных чисел в алгебраической форме;
с) умножения комплексных чисел в показательной форме;
Задача 8. Ввести структуру для описания понятия алгебраический полином. Составить и протестировать функции для:
а) ввода полинома;
б) вывода полинома;
в) нормализации полинома;
г) сложения полиномов;
Задача 9. Ввести структуру для регистрации автомашин. Она должна иметь следующие поля:
· дату регистрации (структура с полями - день, месяц, год);
· марку машины;
· год выпуска;
· цвет;
· номер.
Написать и протестировать функции:
· регистрация новой машины;
· удаление машины из регистрационного списка;
· поиск машины по любой из комбинаций признаков.
Задача 10. Массив структур содержит информацию о студентах группы: в первом поле стоит фамилия, во втором -возраст, в третьем - рост, в четвертом - средний балл в сессию и т.д. (i-й элемент массива описывает i-го студента).
Студент называется среднестатистическим по k-му параметру, если на нем достигается минимум модуля разности среднего арифметического чисел k-то столбца и значения к-го параметра этого студента. Аналогично определяется уникальный по k-му параметру студент (на нем достигается максимум).
Студент называется самым средним, если он является среднестатистическим по самому большому количеству параметров. Аналогично определяется самый уникальный студент. Выяснить, кто в группе является:
а) самым средним,
б) самым уникальным,
в) самым средним среди самых уникальных,
г) самым уникальным среди самых средних.
Задача 11. В доме TV этажей и три лифта. Каждый лифт может быть свободным или занятым. Человек стоит на одном из этажей и собирается вызвать либо ближайший свободный лифт, либо ближайший занятый, направляющийся в сторону этажа, где находится человек.
Распечатать начальную конфигурацию (расстановку, занятость hi направление движения лифтов, местоположение человека), ад также номер лифта, который будет вызван.
Использовать функции ВВОД, ВЫВОД, ВЫБОР ЛИФТА.
Задача 12. Пусть ЭВМ не умеет работать с вещественными числами, а имеет только операции и функции для работы с символами, строками и целыми числами.
Реализовать функции для:
а) ввода;
б) вывода;
в) сложения;
г) вычитания;
д) умножения.
вещественных чисел. (Числа вводятся как строки, разделяются на целую и дробную части, и над ними, как над целыми числами, с учетом межразрядных переносов, выполняются операции.))
Задача 13. Определить структуры, описывающие точку в полярной и декартовой системах координат. Составить и протестировать функции для:
а) получения декартовых координат точки, если заданы ее полярные координаты;
б) вычисления расстояния между двумя точками, заданными в декартовой системе координат;
в) получения полярных координат точки, если заданы ее декартовы координаты;
г) вычисления расстояния между двумя точками, заданными в полярной системе координат.
Задача 14. Определить структуру - важнейшие исторические даты. Её поля - год, событие.
Написать и протестировать функции:
· сортирующую структуры по любому из полей;
· подсчитывающую средний интервал между датами;
· определяющую наиболее часто встречающуюся первую букву в названии события.
Задача 15. Ввести структуру для описания комплексного числа. Составить и протестировать функции для:
а) преобразования комплексного числа из алгебраической формы в показательную;
б) преобразования комплексного числа из показательной формы в алгебраическую;
в) деления комплексных чисел в показательной форме;
г) деления комплексных чисел в алгебраической форме.
Задача 16. Массив структур содержит информацию о студентах группы: в первом поле стоит фамилия, во втором -возраст, в последующих – экзаменационные оценки и т.д. (i-й элемент массива описывает i-го студента).
Написать функции, которые выясняют, кто в группе:
а) отличники,
б) не сдал сессию.
Задача 17. Ввести структуру для описания компьютера. Она должна иметь следующие поля:
· марку;
· объем памяти
· объем ОЗУ;
· год выпуска;
· тип монитора.
Написать и протестировать функции:
· регистрация новой модели;
· удаление компьютера из регистрационного списка;
· поиск компьютера по любой из комбинаций признаков.
Задача 18. Ввести структуру (с полями числитель и знаменатель) для описания понятия рациональное число. Составить и протестировать функции:
а) МИН (А, В),
которая возвращает наименьшее из двух рациональных чисел А и В;
б) УМН (А, В. С),
которая записывает в С результат перемножения рациональных : чисел А и В.
Задача 19. Ввести структуру для описания понятия алгебраический полином. Составить и протестировать функции для:
а) ввода полинома;
б) вывода полинома;
в) вычитания полиномов;
г) умножения полиномов;
Задача 20. Массив структур содержит информацию о студентах группы: в первом поле стоит фамилия, во втором -возраст, в третьем - адрес (i-й элемент массива описывает i-го студента).
Написать функции, которые выясняют
а) кто из студентов проживает в г.Славянске, Краматорске,
б) кто из студентов имеет возраст меньше 18 лет.