Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
yap.doc
Скачиваний:
2
Добавлен:
19.08.2019
Размер:
4.9 Mб
Скачать

Сборник заданий по программированию на языке C/C++

Омск- 2010

УДК 681.3

УДК 621.391

«Сборник заданий для программирования на языке C/C++». Учебно – методическое пособие /Сост. К.В. Логинов – Омск:. – 31 с.

Пособие предназначено для студентов специальности 090104 в качестве материала, используемого при выполнении практических занятий по дисциплине «Программирование на языке C/C++».

В предлагаемом учебном пособии представлены задания по основным разделам программирования на языке С/С++.

Задание 1. Циклические и вычислительные процессы

Вычислить и вывести на экран в виде таблицы значение функции F на интервале от Хнач до Хкон с шагом dX.

Значения a, b, c, Хнач, Хкон, dX ввести с клавиатуры.

Программа должна содержать простейшее меню, запрашивающее у пользователя о продолжении или завершении работы с программой.

a, b и cдействительные числа.

Варианты:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

Задание 2. Массивы.

Требования к программам:

  1. Необходимо точно выполнять условия задач, при сомнениях консультироваться с преподавателем.

  1. Текст программы должен быть откомментирован.

В заголовке указать:

  • имя автора, группу,

  • формулировку задания.

Имена переменных, функций и проч. должны иметь осмысленные имена. Желательно объявление переменной снабжать комментарием о ее назначении.

  1. Следует структурировать программу, разбивая ее на (относительно) независимые части.

  1. Интерфейс программы должен быть достаточно удобен для пользователя.

Программа должна быть снабжена удобным интерфейсом на базе меню.

  1. Программа должна компилироваться без ошибок и предупреждений при всех включенных сообщениях компилятора.

  1. Программы должны быть хорошо протестированы перед сдачей.

  1. Требования к разделу

  • Размерности массива M и N задать поименованной константой.

  • Значения элементов матрицы ввести с клавиатуры, предусмотреть обработку ошибок ввода

  • Метод сортировки указан в задании.

Варианты:

1. Дана (построчно) вещественная матрица размером MхN. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.

2. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или. Наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для целочисленной матрицы размером MхN напечатать индексы всех ее седловых точек.

3. Определить, является ли заданная целая квадратная матрица размера N*N магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы.

4. Задана матрица размером N*N и вектор размерности N. Заменить нечетные строки матрицы на заданный вектор.

5. Задана матрица размером N*N и вектор размерности N. Заменить четные столбцы матрицы на заданный вектор.

6. Задана матрица размером N*N. Поменять в ней 1-ю строку со 2-ой, 3-ю с 4-ой и т.д.

7. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по возрастанию первого элемента строки методом прямого включения.

  • Определить:

    1. Количество строк, не содержащих ни одного нулевого элемента;

    2. Максимальное из чисел, встречающееся в заданной матрице более одного раза.

  • Исходные данные и результаты вывести на экран.

8. Дана вещественная матрица прямоугольная матрица размера M*N.

  • Упорядочить столбцы матрицы по возрастанию первого элемента столбца методом прямого выбора.

  • Определить:

    1. Количество столбцов, содержащих нулевые элементы;

    2. Максимальный элемент матрицы.

  • Исходные данные и результаты вывести на экран.

9. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по убыванию суммы элементов строк методом прямого обмена (пузырек).

  • Определить сумму элементов в тех строках, которые содержат нулевые элементы.

  • Исходные данные и результаты вывести на экран.

10. Дана вещественная прямоугольная матрица размера M*N.

  • Упорядочить столбцы матрицы по возрастанию суммы положительных элементов столбцов методом прямого включения.

  • Определить минимум среди сумм положительных элементов столбцов.

  • Исходные данные и результаты вывести на экран.

11. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по убыванию среднего арифметического значения элементов строки методом прямого выбора.

  • Определить максимум среди среднеарифметических значений строк.

  • Исходные данные и результаты вывести на экран.

12. Дана вещественная прямоугольная матрица размера M*N.

Характеристикой строки матрицы назовем сумму ее положительных четных элементов.

  • Упорядочить строки матрицы по возрастанию их характеристик методом прямого обмена (пузырек).

  • Вывести на экран исходную матрицу, результирующую матрицу и характеристики строк.

13. Коэффициенты системы линейных уравнений заданы в виде матрицы.

  • С помощью допустимых преобразовании привести систему к треугольному виду.

  • Найти количество строк, среднее значение которых меньше заданной величины.

14. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке методом прямого выбора.

  • Найти номер первого из столбцов, не содержащих ни одного отрицательного элемента.

  • Исходные данные и результаты вывести на экран.

15. Составить программу ГАУСС1 реализующую алгоритм решения линейной системы уравнений с n неизвестными

методом Гаусса без обратного хода. Значение решения x1, x2, …, xn присвоить компонентам матрицы a1n+1 ,a2n+1, …, ann+1.

Примечание. Метод Гаусса без обратного хода для решения системы состоит в следующем. Первое уравнение делится на a11, затем последовательно умножается на ai1 и вычитается из i – го уравнения для i=2, 3, …, n. В результате получится эквивалентная система, у которой первый столбец коэффициентов равен (1, 0, …, 0). Далее второе уравнение делится на a22, затем последовательно умножается на ai2 и вычитается из i – го уравнения для i=1, 3, …, n. Теперь второй столбец коэффициентов у полученной системы равен (1, 0, …, 0). Продолжая этот процесс, после n-го шага получим систему с единичной матрицей, эквивалентную исходной системе. Решение этой системы совпадает с правой частью. Метод предполагает, что диагональные элементы на каждом шаге отличны от нуля.

16. Составить программу ГАУСС2 реализующую алгоритм решения линейной системы уравнений с n неизвестными

методом Гаусса без обратного хода с выбором главного элемента в столбце. Значение решения x1, x2, …, xn присвоить компонентам матрицы a1n+1 ,a2n+1, …, ann+1.

Примечание. Алгоритм Гаусса без обратного хода с выбором главного элемента в столбце отличается от алгоритма предыдущей задачи лишь тем, что перед началом i – го шага определяется наибольший по модулю элемент среди aii ,ai+1i, …, ani (пусть это будет ari), и уравнения r и i меняются местами.

17. Дана вещественная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по возрастанию первого элемента строки методом прямого включения.

  • Найти номера строк и столбцов всех седловых точек матрицы.

  • Исходные данные и результаты вывести на экран.

18. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить столбцы матрицы по возрастанию первого элемента строки методом прямого обмена (пузырек).

  • Определить:

    1. Сумму элементов строк, не содержащих ни одного нулевого элемента;

    2. Максимальную сумму из п. 1.

  • Исходные данные и результаты вывести на экран.

19. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по возрастанию первого элемента строки методом прямого выбора.

  • Определить:

    1. Количество строк, не содержащих ни одного нулевого элемента;

    2. Максимальное из чисел, встречающееся в заданной матрице более одного раза.

  • Исходные данные и результаты вывести на экран.

20. Дана вещественная матрица прямоугольная матрица размера M*N.

  • Упорядочить столбцы матрицы по возрастанию первого элемента столбца методом прямого включения.

  • Определить:

    1. Количество столбцов, содержащих нулевые элементы;

    2. Максимальный элемент матрицы.

  • Исходные данные и результаты вывести на экран.

21. Дана целочисленная прямоугольная матрица размера M*N.

  • Упорядочить строки матрицы по убыванию суммы элементов строк методом прямого обмена (пузырек).

  • Определить минимум среди сумм положительных элементов столбцов.

  • Исходные данные и результаты вывести на экран.

22. Составить программу формирования матрицы W дискретного косинус-преобразования(DCT – discrete cosine transform) . Матрица W размерностью 8x8 определяется формулами

Показать, что матрица W ортогональная, для чего вычислить:

  • cкалярное произведение каждой строки на саму себя и каждого столбца на самого себя,

  • cкалярное произведение каждой строки на все другие строки и каждого столбца на все другие столбцы ,

Вывести результаты вычислений на экран

Матрица является ортогональной если скалярное произведение строк на себя равно 1, а скалярное произведение векторов-строк друг на друга равно 0; то же самое верно и для векторов столбцов.

Примечание. Дискретное косинус-преобразование применяется в различных методах сжатия изображения, например в методе JPEG.

23.Составить программу реализующую одномерное дискретное косинус-преобразование(DCT ).

Ортогональная матрица преобразование W размерностью 8x8 определяется формулами

Исходные данные представляют собой вектор-столбец D1 (массив вещественных чисел) размерностью 8.

Результат преобразования определяется следующим матричным выражением С=W*D1.

Исходный вектор ввести с клавиатуры, исходный и результирующий вектор вывести на экран.

24.Составить программу реализующую одномерное обратное дискретное косинус-преобразование(IDCT ).

Ортогональная матрица преобразование W размерностью 8x8 определяется формулами

Исходные данные представляют собой вектор-строку С (массив вещественных чисел) размерностью 8.

Результат преобразования определяется следующим матричным выражением D1 = С *Wт.

Wт – транспонированная матрица

Исходный вектор ввести с клавиатуры, исходный и результирующий вектор вывести на экран.

25. Дана вещественная прямоугольная матрица размера M*N.

  • Упорядочить столбцов матрицы по возрастанию первого элемента столбца методом прямого выбора.

  • Найти номера строк и столбцов всех седловых точек матрицы.

  • Исходные данные и результаты вывести на экран.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]