Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ОАиП.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.14 Mб
Скачать

3. Стандартные (типовые) задачи на двумерных массивах

В стандартной матричной задаче может потребоваться:

  1. получить новую матрицу (ввести матрицу) по заданному правилу;

  2. найти какую-либо величину, используя элементы данной матрицы;

  3. преобразовать матрицу требуемым образом;

  4. определить, обладает ли матрица (ее один или несколько элементов, строка, столбец) указанным свойством;

  5. выполнить ту или иную операцию над матрицей (матрицами).

Задача 2 иллюстрирует использование вложенных циклов при вычисле­нии двойных сумм.

Задача 2

Вычислить: .

{$N +, Е}

PROGRAM Lab12_2;

Uses Crt;

var

sum: extended;

i, j : 1..100;

begin

ClrScr;

sum : = 0;

Textcolor (LighlRed);

For i:=1 to 100 do

For j:=1 to 50 do

Sum:=sum+1/(1+sqr(j));

WriteLn (' Сумма равна ', sum);

ReadKey;

End.

Пояснения к задаче 2

Заданная сумма sum суть:

1/(1 + 12) + 1/(1 + 22) + ... + 1/(1 + 502) + 1/(2 + 12) + 1/(2 + 22) + ... + 1/(2 + 502) + 1/(100 + 12) + 1/(100 + 22) + ... + 1/(100 + 502);

sum содержит 100 * 50 = 5 000 слагаемых, поэтому тип переменной, где будет копиться сумма sum, объявим extended , иначе, если объявить Real, бу­дет переполнение.

В программе идет перебор всех значений по индексу i, который меняет­ся от 1 до 100 (внешний цикл), и перебор всех значений по индексу j, кото­рый меняется от 1 до 50 (внутренний цикл). Обратите внимание, что до входа в цикл начальное значение суммы приравнивается к нулю (sum : = 0).

4. Практическое задание - решение задач с использованием массивов

Методические указания

  1. Определить алгоритм решения задачи, записать намеченный алго­ритм в виде блок-схемы программы.

  2. Подобрать контрольный пример.

  3. Организовать ввод (вывод) исходных данных массива, вывод резуль­татов вычислений, используя разные способы ввода информации в массив: клавиатуру, датчик случайных чисел, сложные константы в блоке Const.

  4. Приступить к написанию программы в ИСП.

Вариант 1

  1. Составить алгоритм, который строит последовательность из 10 слу­чайных чисел, запоминает ее и выводит на экран.

  2. При предоставлении работнику ежегодно оплачиваемого отпуска в п трудовых дней ему начисляются отпускные следующим образом: вычис­ляется средняя зарплата за последние 12 месяцев, которая делится на 25,4 и умножается на n. Построить алгоритм, запрашивающий необходимые данные и печатающий размер выплаты для n = 12, n = 24, n = 36.

  3. В целочисленной таблице размером в 7 строк и 7 столбцов найти:

а) число нулевых элементов, расположенных в нечетных строках;

б) число элементов, равных (-1), расположенных в четных строках.

Вариант 2

  1. В одномерном массиве заменить все элементы с нулевыми значения­ми на единицу.

  2. Имеются данные о ценах на десять видов товаров. Определить номер самого дорогого товара, который намерен приобрести покупатель, имеющий заданную сумму денег.

  3. Просуммировать элементы строк матрицы размером 4*3. Результат получить в одномерном массиве размером 4.

Вариант 3

  1. Заполнить массив А[1 : 10] случайными числами, вывести на печать содержимое элементов массива с нечетными индексами.

  2. В таблицу занесена последовательность из 10 чисел, взятых в проме­жутке от -5 до 5. Найти:

а) наименьший член последовательности;

б) наименьший из положительных членов;

в) наибольшее из всевозможных попарных произведений.

  1. Заданы матрица размером N * N и число К. Разделить элементы К-й строки на диагональный элемент, расположенный в этой строке.

Вариант 4

  1. В заданном массиве В[1 : 6] найти индекс элемента, равного числу Р. Предусмотреть случай, когда такого элемента не будет.

  2. Найти сумму элементов одномерного массива размером 4. Разделить каждый элемент исходного массива на полученное значение. Результат полу­чить в том же массиве. Напечатать в одной строке.

  3. В матрице А[1 : X, 1 : R] найти количество элементов, которые по модулю меньше заданного числа Т.

Вариант 5

  1. В массиве А[1 : 10] поменять местами элементы 2 и 7.

  2. Решить уравнение ах = b для пяти пар значений а и b, заданных в ви­де двух массивов. Результат поместить в массив X.

  3. Из предложенного одномерного массива длины N сформировать двумерный массив так, чтобы первая строка нового массива содержала чет­ные по номеру элементы исходного массива, а вторая - нечетные (предусмот­реть случай нечетности N).

Вариант 6

  1. Заполнить линейный массив из N элементов числами от -15 до 15 и вывести на экран сумму всех его отрицательных элементов.

  2. В массиве А [ 1:10] определить:

а) количество элементов, которые меньше -3;

б) номер первого такого элемента (если он есть);

в) номер последнего такого элемента.

  1. Массив А[1 : N, 1 : М] содержит два одинаковых элемента. Требуется напечатать их индексы.

Вариант 7

  1. В произвольном одномерном массиве поменять местами элементы в парах «элемент с нечетным номером - элемент с четным номером» (дополни­тельные массивы не использовать).

  2. В таблице из 20 чисел, лежащих в промежутке от -50 до 50, заменить все отрицательные числа на их абсолютные значения.

  3. Дан массив действительных чисел Р [1 : N, 1 : М]. Найти сумму значений элементов её строк.

Вариант 8

  1. Задан одномерный массив А [1 : М], состоящий только из нулей и единиц. Проверить, строго ли они чередуются.

  2. В массиве А [1 : 25] найти максимальное и минимальное отношения элементов массива А [i] / A [i +1].

  3. Даны два двумерных логических массива М1[1 : 3,1 : 3] и М2[1 : 3,1 : 3], (т. е. состоящие из 1, обозначающей истину, и 0, обозначающего ложь). Полу­чить двумерные массивы К1 [1 : 3, 1 : 3] и К2 [1 : 3, 1 : 3] в результате сле­дующих действий:

а) К1 [i, j] = Ml [i, j] и M2 [i, j] - через операцию логического умножения;

б) К2 [i, j] = Ml [i, j] или M2 [i, j] - через операцию логического сложе­ния. На печать выдать исходные массивы Ml и М2, массивы К1 и К2, число единиц в массивах К1 и К2.

Вариант 9

  1. Заполнить массив А[1 : 10]; А[1] = 1, А[2] = 2. Каждый следующий элемент определяется из соотношения A[n] = (А[n - 1] + А[n - 2])/n. Вывести получившуюся последовательность на экран.

  2. Найти среднее значение элементов заданного массива размером М. Преобразовать исходный массив, вычитая из каждого элемента среднее значение.

  3. Заполнить прямоугольную таблицу размером в 5 строк и 3 столбца случайными целыми числами. Предусмотреть вывод этой таблицы на экран и найти:

а) сумму всех элементов таблицы;

б) сумму тех элементов, которые без остатка делятся на 2;

в) сумму элементов, имеющих нечетную сумму индексов.

Вариант 10

  1. Сформировать таблицу значений в соответствии с формулами:

а) A[ij = S + М - i (при четном i); A[i] = С - М - i (при нечетном i);

б) B[i] = S - М - i (при четном i); B[i] = С + М - i (при нечетном i);

в) P[i] = A[i] + B[i],

где i изменяется от 1 до 100; С, М, S - заданные числа.

  1. Переставить элементы одномерного массива в обратном порядке. Нового массива не заводить.

  2. В массиве В[1 : X, 1 : R] найти количество элементов, которые по мо­дулю меньше заданного числа Т.

Вариант 11

  1. Построить таблицу В, состоящую из элементов таблицы А [1 : 75], имеющих четные индексы.

  2. В течение 12 часов абонент набирает номер телефона (один набор в час). Установление связи отмечается цифрой 1, отказ - цифрой 0. Определить:

а) число наборов до первого отказа;

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

  1. Дана матрица целых чисел. Заменить отрицательные элементы на -1, положительные на 1, нулевые оставить без изменения.

Вариант 12

  1. Запрашивается таблица из чисел и выясняется, содержит ли она прогресии:

а) арифметическую;

б) геометрическую.

  1. Для данного одномерного массива указать индексы тех его элемен­тов, сумма которых равна заданному числу (если такие есть).

  2. Матрицу А [1 : N, 1 : N] заполнить датчиком случайных чисел. Вы­числить след матрицы.

Вариант 13

  1. Для целочисленного массива А[1 : 15] определить, является ли сумма его элементов четным числом. Вывести на печать «ДА» или «НЕТ».

  2. В таблице из 20 чисел, лежащих в промежутке от -50 до 50, заменить все отрицательные числа на их абсолютные значения.

  3. Матрица В[1 : Т, 1 : Т) содержит два одинаковых элемента. Напеча­тать их индексы.

Вариант 14

  1. Вычислить среднее геометрическое элементов массива А [1 : N], имеющих четные индексы.

  2. Задан массив X размером 5. Вычислить значения функции у = 0,5lnх при значениях аргумента, заданных в массиве X, и поместить их в массив Y. Напечатать результат (массивы X и Y) в виде двух столбцов.

  3. Из массива А[1 : М, 1 : М] сформировать одномерный массив В, «развернув» его по столбцам (по строкам).

Вариант 15

  1. Ввести таблицу оценок за контрольную работу по геометрии. Найти среднее арифметическое оценок. Найти среднее геометрическое. Какое зна­чение больше?

  2. Вычислить сумму и разность двух заданных одномерных массивов размером 5. Результат напечатать в виде двух параллельных столбцов.

  3. Просуммировать элементы столбцов заданной матрицы размером А [I : N, 1 : М]. Результат получить в одномерном массиве размером 3.

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