Лекция: Практическое задание 2
Данное задание основано на практическом задании 1 и предполагает исключение диалога с пользователем при определении номера рещаемой задачи и замену его на оконный пользовательский интерфейс, построенный с использованием возможностей текстового режима работы видеоадаптера. Один из возможных вариантов оформления окна приведен на рисунке 3.2.
Приведенное на рисунке окно имеет внешнюю рамку, в верхней части окна расположено меню, позволяющее выбрать решаемую задачу или завершить рабту программы. Внутренняя рамка ограничивает клиентскую часть окна, предназначенную для диалога с пользователем во время решения выбранной задачи (ввода исходных данных и вывода сообщений и результатов).
Оформление окна и работу с меню следует организовать с помощью процедур и функций рисования отдельных элементов и выполнения других элементарных операций. На основе этих элементарных процедур и функций строятся более крупные, затем – еще более крупные и так далее, в соответствии с принципами структурного программирования. Все процедуры и функции, использующиеся при работе с окном и меню, должны быть оформлены в виде одного или нескольких модулей.
Рис. 3.2. Возможное оформление окна
В отличие от предыдущего задания в данном случае основная программа должна вызывать процедуру оформления окна, далее в цикле с помощью функции работы с меню определять номер задачи, выбранной пользователем, и вызывать соответствующую процедуру до тех пор, пока не будет выбран пункт меню завершения программы. В этом случае экран должен очищаться, а программа – завершаться.
Диалог с пользователем во время решения выбранной задачи должен происходить в рамках клиентской части окна, т. е. общее оформление окна не должно нарушаться. Для этого перед вызовом процедуры решения задачи следует организовать окно в пределах, ограниченных внутренней рамкой.
Таблица 3.1.
Варианты задания 1
| Вариант | Задача 1 | Задача 2 | Задача 3 |
| z = + sin, a = sin x | y = ln ( ) — e +, a = 0,5 | Вычислить сумму ряда S = | |
| y = sin x + | y = ln +, a = 54 10 | Вычислить сумму ряда S = с погрешностью E>0 | |
| y =, z = | Вычислить произведение ряда P = | ||
| z = e + 4, 48 10 | y = — , a = 10 | Вычислить сумму ряда S = c погрешностью E > 0 | |
| z = + e — 0, 36 10 | Вычислить сумму ряда S = |
Продолжение табл. 3.1.
| y = e + cos(2x + 5) + | y = e + (sin2x+5x), a = 0,25 | Вычислить сумму ряда S = с погрешностью E > 0 |
| y = e + + ln(x + 5) | y =; a = 0,4 | Вычислить сумму ряда S = 1+ |
| y = e + cos x + + 1,15 | Вычислить сумму ряда S= с погрешностью E > 0 | |
| z = + + 10y, y = ln | y = | Вычислить сумму S = |
| z = e — 0,0012 | y = x ln x +; a = 2,34 10 | Вычислить сумму S = с погрешностью E > 0 |
| y = (sin x) + e — ln(x +1) | y = + | Вычислить сумму S = c погрешностью E > 0 |
Продолжение табл. 3.1.
| y = e + sin x + — 0,14 | y = — ln | Вычислить сумму S = с погрешностью E > 0 |
| y = ln | y = +arctg +; a = 3,5; b = 1,44 | Вычислить сумму S = sin x + sin(sin x)+ …+ sin(sin(..sin x)…) |
| y = 3 sin x + + x — 0,5 | y = / ln(1+x); a = 16 | Вычислить сумму S = с погрешностью E > 0 |
| y = | y =; a = 0,0034 | Вычислить сумму S = (x+h)+2(x+2h)+3(x+3h)+…+N(x+Nh) |
| y = ln + (x + 5) | y = +; a = 0,74 | Вычислить сумму S = с погрешностью E > 0 |
Продолжение табл. 3.1.
| y = arctg(x + 1) + e + ln (x +2) | z = ln; y = 10 | Вычислить сумму первых N слагаемых S = 1+ |
| z = 2 cos | z = ln | Вычислить сумму ряда S = с погрешностью E > 0 |
| z = + — ln (x +4) | z =; y = 1,2 | Найти сумму первых N слагаемых S = |
| y = + | z = x + — ; y = 6,8; a = 0,15 | Вычислить сумму S = c погрешностью E > 0 |
| y = e + ln ( ) + 14,48 10 | z =; y = 0,72 | Вычислить произведение P = (2 + ) |
Продолжение табл. 3.1.
| y = e ln + | z = | Вычислить произведение P = ( ) |
| z = + | у = | Вычислить сумму S = |
| z = + | у = | Вычислить сумму S = с погрешностью E > 0 |
| z = + — 0,024 10 | у = | Вычислить сумму S = |
Таблица 3.1.
Варианты задания 1 продолжение
| Вариант | Задача 4 | Задача 5 |
| Написать программу расчета среднего арифметического (СА) значения положительных элементов в одномерном массиве, имеющих четные индексы | В квадратной матрице [Aij], i,j= заменить нулями элементы с четной суммой индексов, не превышающие некоторого числа X | |
| Написать программу вычисления суммы отрицательных, произведения положительных и количества нулевых значений в одномерном массиве. | Получить матрицу [Bij], i,j= из матрицы [Aij], i,j=1 путем перестановки столбцов -– первого с последним, второго с предпоследним и т.д. | |
| Написать программу расчета суммы положительных элементов одномерного массива, имеющих нечетные индексы | Получить новую матрицу [Вi,j], i,j= из матрицы[Aij], путем перестановки сегментов по диагонали | |
| Упорядочить одномерный массив в порядке неубывания | Получить новую матрицу [Вi,j], i,j= из матрицы[Aij], путем перестановки сегментов по часовой стрелке | |
| Написать программу расчета СА отрицательных элементов в одномерном массиве. Заменить минимальный элемент в одномерном массиве на СА | В произвольной матрице [Aij] i=; j= найти минимальный и максимальный элементы, указать номера строк и номера столбцов, на пересечении которых они находятся | |
| Упорядочить одномерный массив в порядке невозрастания | Из одномерного массива [Xi] i= получить действительную квадратную матрицу 8*8, элементами которой являются числа x ,…,x, расположенные в ней по столбцам |
Продолжение табл. 3.1.
| В одномерном массиве поменять местами максимальный и минимальный элементы | Из одномерного массива [Xi] i= получить действительную квадратную матрицу 8*8, элементами которой являются числа x ,…,x, расположенные в ней по строкам |
| Написать программу расчета среднего геометрического (СГ) положительных элементов в одномерном массиве. Заменить максимальный элемент в одномерном массиве на СГ | В произвольной матрице [Aij] i=; j= столбец, содержащий максимальный элемент, заменить на сумму всех элементов матрицы |
| Произвести попарные перестановки элементов одномерного массива: первый элемент поменять местами с последним, второй элемент – с предпоследним и т.д. | Получить квадратную матрицу [Aij], i,j=, элементами главной диагонали которой будут числа в диапазоне от 1 до N |
| Отыскать последний положительный элемент в одномерном массиве и заменить его на СА элементов массива | Получить квадратную матрицу [Aij], i,j=, элементами главной диагонали которой будут числа в диапазоне от N до 1 |
| Дан одномерный массив [Ai]. Сформировать одномерный [Bi] массив из элементов массива [Ai] по закону B = Ai+j, i =; N = M — i | Получить квадратную матрицу [Aij], i,j=, элементами побочной диагонали которой будут числа, получающиеся в результате перемножения i*(i+1), где i – номер строки |
| Из одномерного массива [Ai] сформировать одномерный массив [Bi], записав в него сначала элементы массива А, имеющие четные индексы, потом – элементы с нечетными индексами | Получить квадратную матрицу [Aij], i,j=, элементы которой будут получены следующим образом: в каждой строке матрицы первые (N-i+1) элементов заполнены номером строки, остальные – нулями |
Продолжение табл. 3.1.
| Отыскать последний отрицательный элемент в одномерном массиве и заменить его на СГ элементов массива | Получить матрицу [Cij] i,j= из матриц [Aij] i,j= и [Bij] i,j= путем умножения элементов каждой строки матрицы [Aij] на максимальный элемент соответствующей строки матрицы [Bij] |
| Заменить в одномерном массиве нулевые элементы на значение минимального элемента | В квадратной матрице [Aij] i,j= среди элементов, расположенных ниже главной диагонали, найти минимальный, а среди элементов выше главной диагонали – максимальный. Вывести координаты этих элементов |
| Сформировать массив [Xi], элементы которого равны частоте встречаемости элементов массива [Bi] среди элементов массива [Ai]. Определить, какой элемент массива [Bi] чаще всего встречается в [Ai] | В квадратной матрице [Aij] i,j= среди элементов, расположенных ниже побочной диагонали, определить количество положительных элементов, а среди элементов выше побочной диагонали – количество отрицательных элементов |
| Сформировать массив [Xi], элементы которого равны полусумме двух соседних элементов одномерного массива [Yi] | Из квадратной матрицы [Aij] i,j= сформировать одномерный массив [Xi] i= по следующему правилу: элементами одномерного массива [Xi] с нечетными индексами будут элементы главной диагонали [Aij], с четными – побочной диагонали [Aij] |
Продолжение табл. 3.1.
| Сформировать массив [Ai] из элементов одномерного массива [Bi] по закону A = (B +B )/4, i = | Сформировать одномерный массив [Xi] i= из сумм положительных элементов строк матрицы [Aij] j,i=, попутно определяя номера строк матрицы [Aij] i,j=, в которых отсутствуют положительные элементы |
| Сформировать массив [Ai] из элементов одномерного массива j = по закону A = Bi+BN/2+i; i = | Сформировать одномерный массив [Bi] i= из минимальных элементов строк прямоугольной матрицы[Aij] i=, j=. Подсчитать количество элементов массива [Bi], попавших в интервал (x,y) |
| Из одномерного массива [Bi] сформировать массив [Ai] по закону A = ( B )/(j +1); j = | Сформировать одномерный массив [Bi] i= из максимальных элементов столбцов прямоугольной матрицы [Aij] i=, j=. В массиве [Bi] поменять местами первый отрицательный и последний положительный элементы |
| Из одномерного массива [Bi] сформировать массив [Xi] по следующему закону: Xi = где y – некоторая константа | В квадратной матрице [Aij] i,j= заменить элементы главной и побочной диагоналей на минимальный элемент главной диагонали |
| В одномерном массиве переставить местами соседние элементы с четными и нечетными индексами | В произвольной матрице [Aij] i=, j= поменять местами строку, содержащую минимальный элемент, со строкой, содержащей максимальный элемент |
Окончание табл. 3.1.
| В одномерном массиве вычислить сумму элементов, значения которых кратны некоторому значению X | В квадратной матрице [Aij] i,j= найти максимальный элемент среди элементов, стоящих на главной и побочной диагоналях, и поменять его местами с элементом, стоящим на пересечении этих диагоналей |
| В одномерном массиве подсчитать количество элементов, значениями которых являются простые числа (простое число – это число, делящееся нацело только на единицу и само на себя) | В квадратной матрице [Aij] i,j= определить номер столбца матрицы, имеющего наибольшую сумму элементов. Поменять этот столбец со строкой, имеющей наименьшую сумму элементов |
| Сформировать массив [Bi], содержащий последовательность чисел Фибоначчи: B = B + B; i =; B =X, B =X где Х, Х – некоторые числа | В квадратной матрице [Aij] i,j= найти наибольшее из значений элементов, расположенных в первом и третьем секторах матрицы, полученных в результате пересечения главной и побочной диагонали |
| Вычислить сумму правых разностей элементов одномерного массива [Bi] S = (B — B ) | В квадратной матрице [Aij] i,j= найти наибольшее из значений элементов, расположенных во втором и четвертом секторах матрицы, полученных в результате пересечения главной и побочной диагонали |