- •Общие положения
- •Лабораторная работа № 1 Структура программы на языке Паскаль. Программирование линейных алгоритмов
- •Постановка задачи
- •Последовательность действий
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 2 Программирование ветвлений
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 3 Программирование циклов
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 4 Одномерные массивы
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 5 Двумерные массивы
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 6 Подпрограммы
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 7 Строки
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа № 8 Тип данных «запись». Массив записей
- •Постановка задачи
- •Варианты заданий
- •Контрольные вопросы
- •Библиографический список
- •Образец оформления отчета
- •Блок-схема
- •Листинг программы
- •Результаты работы программы
- •Основы программирования на языке Паскаль
- •190005, С.-Петербург, 1-я Красноармейская ул., д.1
Контрольные вопросы
Что представляет собой матрица?
Как объявить двумерный массив?
Как располагается матрица в памяти компьютера?
Как ввести элементы двумерного массива с клавиатуры?.
Как заполнить элементы матрицы случайными числами?
Как правильно вывести матрицу?
Как обратиться к элементу матрицы?
Каковы особенности обработки матрицы?
Чем отличается просмотр элементов матрицы по столбцам от просмотра по строкам?
Можно ли просмотреть все элементы матрицы в одном цикле?
Лабораторная работа № 6 Подпрограммы
Цель работы – научиться использовать функции и процедуры для выполнения однотипных действий над различными данными, изучить структуру подпрограмм, получить навыки описания процедур и функций, научиться описывать формальные параметры подпрограмм разного вида и правильно задавать фактические параметры.
Постановка задачи
Написать две программы согласно индивидуальному варианту. Одно задание должно быть выполнено с использованием функции, другое – с использованием процедуры. Ввод и вывод массивов и других данных не объединять с обработкой данных. На экран вывести исходные данные и результат. Использовать форматный вывод.
Варианты заданий
1. Даны три матрицы: Х, Y, Z размером n×m (n, m<=12). Определить, в какой из них среднее арифметическое положительных элементов больше.
2. Даны две квадратные матрицы: А размером 6×6 и В размером 10×10. Сформировать одномерные массивы А1 и В1 из элементов главных диагоналей матриц А и В.
1. Для 10 значений
Х,
изменяющегося
от -А
до А (А
задано) с постоянным шагом, вычислить
с точностью eps
значение
суммы
.
Результат вычисления каждой суммы
записать в массив.
2. Для заданной матрицы А сформировать одномерный масс сив B, содержащий суммы максимальных и минимальных элементов соответствующих столбцов матрицы.
1. В массивах Х и Y найти минимумы (количество минимумов в каждом массиве может быть больше одного), то есть сформировать новые массивы из позиций минимальных значений в массивах Х и Y. Поменять местами значения минимумов в массивах.
2. Даны две матрицы А и В размером n×m (n, m <= 15). Вывести ту из них, в которой среднее арифметическое отрицательных элементов меньше. Для определения среднего значения в одной матрице использовать функцию.
1. Для каждого из массивов Х и Y получить массивы из позиций элементов, равных заданному числу Z.
2. Для заданной матрицы найти номер столбца с минимальной суммой положительных элементов. Использовать подпрограмму для нахождения суммы в одном столбце.
1. Дана вещественная матрица D размером 8×12. Сформировать одномерный массив, состоящий из номеров столбцов, элементы которых образуют возрастающую последовательность. Для проверки одного столбца использовать функцию.
2. Для каждого из массивов: А из 10 элементов, В из 20 и С из 12 – произвести перестановку элементов, поменяв порядок их следования на обратный.
1. Найти меньшие корни квадратных уравнений: x2 – 2x – a = 0 и ax2 – bx – 2 = 0 (считать, что все корни действительные).
2. В заданной вещественной матрице В размером 7×8 обнулить столбцы, в которых имеются нулевые элементы (все элементы таких столбцов сделать нулевыми).
1. Для
каждого из элементов целочисленного
массива С
выяснить, является ли он факториалом
какого-либо числа, и если да, то какого.
Использовать функцию для проверки
одного числа, результатом которой
является n,
если
,
и 0
в
противном случае.
2. Bычислить
,
где
и
–
сумма и количество отрицательных четных
элементов целочисленного массива X
из n
элементов (n<=30),
а
и
– сумма и количество отрицательных
четных элементов целочисленного массива
Y
из m
элементов (m<=20).
1. Даны два одномерных массива: А из 10 элементов и В из 15 элементов. Сформировать два новых массива: Х из элементов массива А, не входящих в массив В, и Y из элементов массива В, не входящих в массив А.
2. Даны три одномерных
массива A,
B
и
C
(три вектора) с одинаковым количеством
элементов. Получить S=(b,
c)
– (a,a),
где (x,y)
– скалярное
произведение векторов x
и y,
.
1. Дана матрица D размером n×m (n, m <= 20). Сформировать три одномерных массива: А – из элементов матрицы D, лежащих в диапазоне от -5 до 5, в порядке следования по строкам, В – из элементов от 10 до 20, С – от 30 до 50. Использовать подпрограмму для выборки в новый массив элементов для одного диапазона.
2. Дан массив X из n (п ≤ 10) элементов. Сформировать массив Y, в котором yi =1/(xi+1) +2/(xi+2)+3/(xi+3)+ ... + 12/(xi+12) . Использовать подпрограмму для вычисления одного yi .
1. Дана матрица А размером n×m (n, m<=15). В каждой нечетной ее строке найти среднее арифметическое элементов, не принадлежащих отрезку от 0 до 10, и сформировать из них одномерный массив. Для расчёта значения в одной строке использовать подпрограмму.
2. Дана последовательность {ai}. Для каждого элемента последовательности определить количество элементов левее ai, которые по модулю меньше ai, и количество элементов справа от ai, которые по модулю больше ai. Использовать подпрограмму, производящую вычисления для одного элемента ai.
1. Дан одномерный
массив A
размером n
(n<=30).
Получить новый массив B,
каждый элемент которого вычисляется
по формуле
.
2. Дана квадратная матрица B размером 10×10. Преобразовать её к такому виду, чтобы на побочной диагонали стояли максимальные элементы всех строк. Использовать процедуру для поиска максимального элемента строки и перестановки его с элементом главной диагонали в этой строке.
1. Дана матрица А размером 10×10. В каждом ее столбце обнулить минимальное количество элементов так, чтобы сумма элементов столбца не превышала заданного Р. Использовать подпрограммы для преобразования одного столбца и поиска максимума в столбце.
2. Даны два массива: Х из n элементов и Y из m (n, m<=15). Найти количество элементов массива Х, не лежащих в диапазоне от 0 до 10, и количество элементов массива Y, не лежащих в диапазоне от 1 до 5. Для нахождения количества элементов, не лежащих в диапазоне от А до В, использовать функцию.
1. Заданный массив целых чисел А делится на три части двумя элементами: максимальным и минимальным. Определить сумму и количество четных значений в каждой части массива. Использовать подпрограммы для нахождения индексов минимального и максимального элементов и подсчёта суммы и количества четных значений в одной части массива.
2. Дана квадратная матрица А размером 6×6. Определить номера строк, не содержащих отрицательных элементов. Для проверки одной строки использовать функцию.
1. Даны матрица Х размером n×m (n<=10, m – нечетное число <10) и одномерный массив Y из n элементов. Заменить массивом Y первый, средний и последний столбцы матрицы. Для замены одного столбца использовать подпрограмму.
2. Дана матрица С размером 7×3. Найти номер строки с максимальной суммой элементов. Использовать функцию для нахождения суммы в одной строке.
1. Дан целочисленный
массив А
из 3
n
элементов (n<=10).
В каждой десятке найти наименьшее
значение и вывести ту часть массива,
где минимум больше. Для ввода, вывода
массива и поиска минимума в одной части
массива использовать подпрограммы.
2. Дана вещественная матрица В размером 5×7. Заменить единицами те столбцы матрицы, где положительных значений больше, чем отрицательных. Использовать подпрограммы для ввода, замены столбцов и вывода матрицы.
1. Дана матрица А размером n×m (n, m<=16) и два числа c и d. В каждом четном столбце матрицы найти среднее арифметическое элементов, не принадлежащих отрезку [c, d], и сформировать из них одномерный массив. Для нахождения среднего значения в одном столбце использовать функцию.
2. В заданной вещественной матрице В размером 7×8 заменить на нули те строки, в которых есть хотя бы один нулевой элемент (все элементы таких строк сделать нулевыми).
1. Дана вещественная матрица D размером 8×12. Проверить, что суммы элементов в столбцах матрицы образуют возрастающую последовательность. Для определения суммы элементов в одном столбце использовать функцию.
2. Для каждого из массивов А, B, C из 2n элементов (n<=20) произвести перестановку элементов по следующему правилу: an+1, an+2,…, a2n,a1,a2,…,an.
1. Для заданной матрицы А размером n×n (n<=20) найти максимум из всех минимальных элементов матрицы по столбцам. Для нахождения минимального элемента одного столбца использовать подпрограмму.
2. Написать процедуру, преобразующую одномерный массив A1 из n2 элементов в квадратную матрицу A2 размером n×n. Использовать её для массива X из 36 элементов.
1. Дана квадратная матрица А размером 10×10. Преобразовать её к такому виду, чтобы на главной диагонали стояли минимальные элементы всех столбцов. Использовать процедуру для поиска минимального элемента столбца и перестановки его с диагональным элементом в этом столбце.
2. Дан массив Х из п элементов (n<=20). Значения элементов принадлежат интервалу [-10, 10]. Этот интервал разбивается на m одинаковых подынтервалов (m вводится). Используя функцию, определить количество элементов массива Х, попадающих в каждый подынтервал.
1. Для каждого значения z (z =1; 1.2; 1.4;...;2.6) вычислить значение полинома p(z)=a6z6 + a5z5 + a4z4 +...+ a1z + a0. Использовать подпрограмму для нахождения значения полинома для одного zi.
2. Дана целочисленная матрица А размером 10×12. Сформировать вектор D, состоящий из номеров строк, содержащих хотя бы один отрицательный элемент. Использовать процедуру для формирования вектора.
1. Дана матрица А размером n×m (n,m<=15). Отсортировать в порядке убывания четные строки матрицы. Использовать подпрограмму для сортировки одной строки.
2. Координаты точек на плоскости заданы матрицей А размером 20×2. В первом столбце записаны координаты Х, во втором – координаты Y. Найти количество точек, попадающих внутрь окружности с радиусом ri и центром в начале координат. Значения ri заданы массивом R из 10 элементов.
Вариант22
1. В заданной матрице С размером n×m (n, m<=20) найти количество столбцов, которые образуют арифметическую прогрессию. Использовать подпрограмму проверки одного столбца.
2. Элементы
матрицы A
размером n×n
(n<=10)
вычисляются по формуле Аij= (-1)i
i
j. Получить
матрицу В,
в которой элементы определяются по
правилу:
.
Использовать подпрограммы для формирования
матриц А
и В,
нахождения максимума в одной строке
матрицы А,
вывода матриц.
