- •Задание 1. Циклические и вычислительные процессы
- •Задание 2. Массивы.
- •Задание 3. Форматированный ввод/вывод в текстовые файлы. Динамические массивы.
- •Задание 4. Работа с файлами (бесформатный ввод/вывод; бинарные файлы).
- •Задание 5. Классы
- •1. Реализуйте класс «Односвязный список целых чисел» с методами:
- •2. Реализуйте класс «Двусвязный список целых чисел» с методами:
- •3. Реализуйте класс «Бинарное дерево символов» с методами:
- •4. Описать абстрактный класс «Функция на отрезке [a,b]»
- •7. Описать класс «множество целых чисел» на основе одномерного
- •13. Реализуйте класс «Бинарное дерево структур» с методами:
Задание 3. Форматированный ввод/вывод в текстовые файлы. Динамические массивы.
Требования к программам:
-
Необходимо точно выполнять условия задач, при сомнениях консультироваться с преподавателем.
-
Текст программы должен быть откомментирован.
В заголовке указать:
-
имя автора, группу,
-
формулировку задания.
Имена переменных, функций и проч. должны иметь осмысленные имена. Желательно объявление переменной снабжать комментарием о ее назначении.
-
Следует структурировать программу, разбивая ее на (относительно) независимые части.
-
Интерфейс программы должен быть достаточно удобен для пользователя.
Программа должна быть снабжена удобным интерфейсом на базе меню.
-
Программа должна компилироваться без ошибок и предупреждений при всех включенных сообщениях компилятора.
-
Программы должны быть хорошо протестированы перед сдачей.
-
Требования к разделу
-
Программа должна запрашивать имена файлов у пользователя.
-
Программа должна проверять данные в файле на наличие ошибок:
-
Неправильная запись чисел
-
Неверное число элементов в файле (EndOfFile)
-
Ошибка записи
-
-
Программа должна проверять ошибки: открытия файлов, записи и т.п.
-
Числа и строки файла разделены пробелами, знаками табуляции и символами «новая строка».
-
Программисту заранее не известны размеры последовательностей и матриц, хранящихся в файлах, поэтому если используются массивы, то они должны быть динамическими.
Варианты:
1. Файл f1 содержит:
-
Размерность матрицы N;
-
Элементы квадратной матрицы А, записанные по строкам.
Получить матрицу A2, записать ее в файл f2.
2. Дана матрица A m x n и матрица B n x r.
Размерности m, n и r ввести с клавиатуры, матрицы заполнить случайными целыми
числами.
Получить матрицу C=A*B и записать ее в файл.
3. Файл f1 содержит:
-
Размерности матрицы М и N;
-
Элементы матрицы А, записанные по строкам.
Получить матрицу B m x n. Матрица B – есть матрица А,
транспонированная относительно главной диагонали.
Полученную матрицу В записать в файл по строкам.
4. Файл f1 содержит:
-
Размерности матрицы М и N;
-
Элементы матрицы А, записанные по строкам.
Получить матрицу C=A* AT. (Матрица AT – есть матрица А, транспонированная
относительно главной диагонали.)
Полученную матрицу С записать в файл по строкам.
5. Файл f1 содержит:
-
Размерность матрицы N;
-
Элементы квадратной матрицы А, записанные по строкам.
Получить матрицу C=А*E, где E – единичная матрица порядка N.
Полученную матрицу С записать в файл по строкам.
6. Файл f1 содержит:
число чисел, записанных в файл;
-
далее - последовательность №1 целых положительных чисел в 16-й системе счисления.
Последовательность №1 считать из файла и записать в динамический массив.
Из динамического массива записать в файл f2 числа, делящиеся на 3 без остатка в 10-ой системе счисления.
Вывести на экран содержимое файла f2 (считывать из файла).
Вывод в файл f2 разбить на строки по 80 символов.
7. Файл f1 содержит последовательность №1 целых чисел (положительные и отрицательные) в 10-й системе счисления.
Вывести на экран содержимое файла f1 .
Записать в файл f2 числа из последовательности №1 в 2-ой системе счисления, отрицательные числа выводить в дополнительном коде.
Записать в файл f3 числа из последовательности №1 в 8-ой системе счисления.
Вывод в файлы f2 и f3 разбить на строки по 80 символов.
8. Файл f1 содержит последовательность №1 целых положительных чисел в 3-й системе счисления.
Вывести на экран содержимое файла f1 .
Последовательность №1 считать из файла и записать в динамический массив.
Из динамического массива записать (в 10-ой системе счисления) в файл f2 числа, делящиеся на 3 без остатка.
Вывод в файлы f2 разбить на строки по 80 символов.
9. Файл f1 содержит:
-
число неизвестных линейной системы уравнений N;
-
далее - коэффициенты системы линейных уравнений, заданые в виде матрицы N*N;
Файл f2 содержит:
-
число неизвестных линейной системы уравнений N;
-
далее – вектор правой части системы линейных уравнений (N вещественных чисел);
Написать программу, реализующую алгоритм решения линейной системы уравнений методом Гаусса.
Вектор результата записать в файл f3.
10. Файл f1 содержит:
-
число неизвестных линейной системы уравнений N;
-
далее - коэффициенты системы линейных уравнений, заданые в виде матрицы N*N;
С помощью допустимых преобразовании привести систему к треугольному виду.
Результирующую матрицу записать в файл f3.
11. Файл f1 содержит:
-
число m1 строк матрицы M1;
-
число n1 столбцов матрицы M1;
-
далее – вещественные элементы матрицы M1;
Файл f2 содержит:
-
число m2 строк матрицы M2;
-
число n2 столбцов матрицы M2;
-
далее – вещественные элементы матрицы M2;
В файл f3 записать произведение М3=М1*M2. Вычисление произведение матриц должно быть оформлено отдельной функцией.
Прим.: одна или обе матрицы могут быть векторами; проверить правильность размерностей умножаемых матриц.
12. Файл f1 содержит последовательность №1 целых положительных чисел в 10-й системе счисления.
Вывести на экран содержимое файла f1 .
В файл f2 записать таблицу:
Число из Посл. №1 |
Число вхождений числа в посл.№1 |
|
|
|
|
|
|
т.е. подсчитать сколько раз число n встречается в файле.
13. В файле f1 задана матрица N*N, состоящая из нулей и единиц.
Файл f1 содержит:
-
число N;
-
далее – элементы матрицы;
Считая, что данная матрица задает неориентированный граф, реализуйте программу, определяющую является ли этот граф связанным или нет (т.е. разбивается на несколько связных частей).
В файл f2 вывести построчно вершины связных частей графа (для каждой связной части своя строка).
14. Файл f1 содержит 6-ть вещественных чисел: x1 y1 x2 y2 x3 y3 , которые являются координатами вершин треугольника.
Вывести на экран содержимое файла f1 .
В файл f2 записать внутренние углы треугольника.
15. Файл f1 содержит:
-
m - число строк и столбцов квадратной матрицы M;
-
далее – вещественные элементы матрицы M1;
В файл f2 записать вектор, состоящий из элементов главной диагонали и сумму элементов, расположенных на главной диагонали (след матрицы).
16. Файл f1 содержит последовательность №1 целых положительных чисел в 10-й системе счисления.
Записать в файл f2 четные числа из последовательности №1 в 2-ой системе счисления.
Записать в файл f3 нечетные числа из последовательности №1 в 16-ой системе счисления.
Вывод в файлы f2 и f3 разбить на строки по 80 символов.
17. Файл f1 содержит:
-
число чисел, записанных в файл;
-
далее - последовательность №1 целых положительных чисел в 8-й системе счисления.
Последовательность №1 считать из файла и записать в динамический массив.
Из динамического массива записать (в 3-ой системе счисления) в файл f2 числа, делящиеся на 3 без остатка.
Вывести на экран содержимое файла f2 (считывать из файла).
Вывод в файл f2 разбить на строки по 80 символов.
18. Файл f1 содержит последовательность №1 целых чисел (положительные и отрицательные) в 10-й системе счисления.
Вывести на экран содержимое файла f1 .
Записать в файл f2 четные числа из последовательности №1 в 2-ой системе счисления, отрицательные числа выводить в дополнительном коде.
Записать в файл f3 нечетные числа из последовательности №1 в 16-ой системе счисления.
Вывод в файлы f2 и f3 разбить на строки по 80 символов.
19. Файл f1 содержит последовательность №1 целых положительных чисел в 2-й системе счисления.
Вывести на экран содержимое файла f1 .
Последовательность №1 считать из файла и записать в динамический массив.
Из динамического массива записать в файл f2 в 10-ой системе счисления числа, на которые число 120 делится без остатка.
Вывод в файлы f2 разбить на строки по 80 символов.
20. Файл f1 содержит:
-
число m1 строк матрицы M1;
-
число n1 столбцов матрицы M1;
-
далее – вещественные элементы матрицы M1;
Файл f2 содержит:
-
число m2 строк матрицы M2;
-
число n2 столбцов матрицы M2;
-
далее – вещественные элементы матрицы M2;
В файл f3 записать сумма М3=М1+M2. Вычисление суммы матриц должно быть оформлено отдельной функцией.
Прим.: проверить правильность размерностей суммируемых матриц.
21. Файл f1 содержит 6-ть вещественных чисел: x1 y1 x2 y2 x3 y3 , которые являются координатами вершин треугольника.
Вывести на экран содержимое файла f1 .
В файл f2 записать периметр и площадь треугольника.
22. Файл f1 содержит:
-
m - число строк и столбцов квадратной матрицы M;
-
далее – вещественные элементы матрицы M1;
В файл f2 записать вектор, состоящий из элементов столбца, у которого сумма элементов минимальна и вектор, состоящий из элементов строки, у которой сумма элементов максимальна.
23. Файл f1 содержит:
-
m - число строк прямоугольной матрицы M;
-
n - число столбцов прямоугольной матрицы M;
-
далее – вещественные элементы матрицы M1;
В файл f2 записать транспонированную матрицу.
24. В файле f1 задана матрица N*N, состоящая из нулей и единиц.
Файл f1 содержит:
-
число N;
-
далее – элементы матрицы;
Считая, что данная матрица задает неориентированный граф, реализуйте программу, определяющую является данная матрица правильно задающей неориентированный граф. Если матрица неправильна – скорректировать ее.
В файл f2 вывести скорректированную (правильную) матрицу.
25. Файл f1 содержит:
-
число чисел, записанных в файл;
-
далее - последовательность вещественных чисел.
Составить программу, которая считывает последовательность в динамический массив и изменяет значение его компонент по правилу:
где a’j и aj означают соответственно новое и старое значение элемента массива с индексом j. В программе разрешается описать только один вектор.
В файл f2 вывести измененную последовательность.