Простые задачи на массивы с решением

Содержание

Сумма четных положительных элементов массива

В массиве, содержащем положительные и отрицательные целые числа, вычислить сумму четных положительных элементов.

Максимальный из элементов массива с четными индексами

В массиве найти максимальный элемент с четным индексом.

Другая формулировка задачи: среди элементов массива с четными индексами, найти тот, который имеет максимальное значение.

Элементы массива, которые меньше среднего арифметического

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

Найти два наименьших (минимальных) элемента массива

В одномерном массиве целых чисел определить два наименьших элемента. Они могут быть как равны между собой (оба являться минимальными), так и различаться.

Сжать массив, удалив элементы, принадлежащие интервалу

Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.

Сумма модулей элементов массива, расположенных после первого отрицательного

Вычислить сумму модулей элементов массива, расположенных после первого отрицательного элемента.

Например, в массиве [5, 3, -1, 8, 0, -6, 1] первый отрицательный элемент является третьим по счету, а сумма модулей стоящих после него элементов массива будет составлять 8 + 0 + 6 + 1 = 15.

Номер минимального по модулю элемента массива

Найти номер минимального по модулю элемента массива.

Например, в массиве [10, -3, -5, 2, 5] минимальным по модулю элементом является число 2. Его номер 4 (в языках, в которых индексация массивов начинается с нуля, его индекс будет равен 3).

Сумма цифр массива

Найти сумму всех цифр целочисленного массива. Например, если дан массив [12, 104, 81], то сумма всех его цифр будет равна 1 + 2 + 1 + 0 + 4 + 8 + 1 = 17.

Найти сумму элементов между минимальным и максимальным элементами массива

В одномерном массиве найти сумму элементов, находящихся между минимальным и максимальным элементами. Сами минимальный и максимальный элементы в сумму не включать.

Среднее арифметическое положительных элементов массива

Найти среднее арифметическое положительных элементов линейного массива.

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

В массиве найти максимальный отрицательный элемент. Вывести на экран его значение и позицию в массиве.

Число, чаще всего встречающееся в массиве

Определить, какое число в массиве встречается чаще всего.

Поменять местами минимальный и максимальный элементы

В массиве случайных целых чисел поменять местами минимальный и максимальный элементы.

Читайте также  Слова из слова нумерация в игре

Сдвиг массива

Сдвинуть элементы массива в указанном направлении (влево или вправо) и на указанное число шагов. Освободившиеся ячейки заполнить нулями. Выводить массив после каждого шага.

Вывести неповторяющиеся элементы массива

В массиве найти элементы, которые в нем встречаются только один раз, и вывести их на экран. То есть найти и вывести уникальные элементы массива.

Реверс массива

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

Найти наибольший элемент и его порядковый номер в массиве

Заполнить одномерный массив случайными числами. Найти и вывести на экран наибольший его элемент и порядковый номер этого элемента.

Сколько элементов массива больше по модулю максимального

Создать массив из 20 элементов в диапазоне значений от -15 до 14 включительно. Определить количество элементов по модулю больших, чем максимальный.

Определить индексы четных элементов массива

Во втором массиве сохранить индексы четных элементов первого массива. Например, если дан массив со значениями 8, 3, 15, 6, 4, 2, то во второй массив надо заполнить значениями 1, 4, 5, 6 (или 0, 3, 4, 5 — если индексация начинается с нуля), т.к. именно в этих позициях первого массива стоят четные числа.

Найти максимальный по модулю элемент в массиве с уникальными по модулю значениями

Заполнить массив случайными положительными и отрицательными числами таким образом, чтобы все числа по модулю были разными. Это значит, что в массиве не может быть ни только двух равных чисел, но не может быть двух равных по модулю. В полученном массиве найти наибольшее по модулю число.

Удаление отрицательных элементов массива

Заполнить массив случайными положительными и отрицательными целыми числами. Вывести его на экран. Удалить из массива все отрицательные элементы и снова вывести.

Разложить положительные и отрицательные числа по разным массивам

Случайные числа в диапазоне от -5 до 5 разложить по двум массивам: в одни помещать только положительные, во второй — только отрицательные. Числа, равные нулю, игнорировать. Вывести на экран все сгенерированные случайные числа и элементы обоих массивов.

Вставка элемента в произвольное место массива

Заполнить вводом с клавиатуры численный массив за исключением последнего элемента, вывести его на экран. Запросить еще одно значение и его позицию в в массиве. Вставить указанное число в заданную позицию, подвинув элементы после него.

Сортировка выбором

Используя сортировку выбором отсортировать элементы массива по возрастанию.

Сортировка методом пузырька

Отсортировать массив, заполненный случайными числами, по возрастанию. Для сортировки использовать метод "пузырька". Вывести на экран массив в исходном и отсортированном виде.

Количество кратных чисел от 2 до 99 числам от 2 до 9

В диапазоне натуральных чисел от 2 до 99 определить, сколько из них кратны любому из чисел в диапазоне от 2 до 9.

Сумма и произведение элементов массива

Заполнить массив вещественных чисел вводом с клавиатуры. Посчитать сумму и произведение элементов массива. Вывести на экран сам массив, полученные сумму и произведение его элементов.

Количество положительных, отрицательных и равных нулю элементов массива

Сгенерировать 20 случайных целых чисел в диапазоне от -5 до 4, записать их в ячейки массива. Посчитать сколько среди них положительных, отрицательных и нулевых значений. Вывести на экран элементы массива и посчитанные количества.

Заполнение и вывод массивов

Заполнить один массив случайными числами, другой — введенными с клавиатуры числами, в ячейки третьего записать суммы соответствующих ячеек первых двух. Вывести содержимое массивов на экран.

Предлагаю для самопроверки решить несколько простых задач, обычно предлагаемых студентам-первокурсникам, которые только начинают изучать программирование. Задачи повышенного уровня сложности решайте после проработки примеров решения задач по теме «Массивы». Некоторые из них уже решаются новичками, см. раздел также Примеры решения задач начинающими программистами — соавторами сайта с комментариями .

Читайте также  Программы для эмуляции windows

Простые задачи

Задача 1. Введите с клавиатуры строку произвольной длины и подсчитайте процент вхождения заданного символа в строку.

Задача 2. Задан массив действительных чисел размерности 10х10. Найти суммы элементов каждой строки, произведения элементов каждого столбца, и максимальный элемент главной диагонали (подсказка: все элементы, для которых номер строки совпадает с номером столбца).

Задача 3. В заданной строке текста определите количество слов. Каждое слово отделено друг от друга пробелом.

Задача 4. Задан одномерный массив целых чисел. Образуйте из него два отсортированных по возрастанию массива, содержащих четные и нечетные числа. Подсказка: четное число делится на 2 без остатка. Есть пример развернутого решения задачи.

Задача 5. В заданном массиве действительных чисел найдите разность между максимальным и минимальным числом.

Задача 6. В одномерном массиве из 100 чисел M[] подсчитайте количество элементов, удовлетворяющих условию 0 -10 ?

Задача 23. Дано: информация о студенте вуза содержит следующие элементы:
а) фамилия, имя;
б) шифр группы;
в) массив оценок по каждой дисциплине за семестр (от 2 до 5).
Информация о студенте является элементом массива М[ ].
Требуется определить фамилии студентов, которые будут включены в приказ на отчисление по результатам сессии (условие – по трем или более дисциплинам каждая оценка — двойка).

Задача 24. Известны (вводятся с клавиатуры) размеры 10 треугольников (задаются три стороны). Напишите функцию, вычисляющую площадь треугольника по формуле Герона и с ее помощью определите номер треугольника с наибольшей площадью.

Задача 25. Вычислите сумму членов последовательности, начинающейся с единицы, в которой каждый следующий член в три раза больше предыдущего, т.е. <1, 3, 9, 27, 81,…>, причем последний член последовательности не должен превышать 1000.

Задача 26. Задан массив целых чисел A[20]. Создать другой массив целых чисел B[ ], в который войдут все числа исходного массива, удовлетворяющие условию: А[i] -3 .

Задача 32. Отсортируйте введенный список фамилий по алфавиту и выведите его на экран.

Задача 33. Напишите функцию, вычисляющую экспоненту через ряд с заданной точностью 10 -15 , сравните результат с константой System.Math.E.

Задачи повышенного уровня сложности

Восемь ферзей 2

Постановка задачи. Можно ли поставить на пустой шахматной доске восемь ферзей так, чтобы ни один из них не «атаковал» другого, т.е. никакие два ферзя не стояли бы на одном и том же столбце или на одной и той же строке или на одной и той же диагонали? Определите максимально возможное число расстановок 8 ферзей в соответствии с указанными правилами. Дополните задачу некоторыми условиями, например, чтобы ферзей нельзя было ставить на главные диагонали, или чтобы первый ферзь был поставлен на строго определенную клетку шахматной доски (например, а2). Придумайте алгоритм, не использующий полный перебор, как в примере решения задачи «Восемь ферзей».

Решето Эратосфена

Простое число – это любое целое число, которое точно делится без остатка только само на себя и 1. Решето Эратосфена работает следующим образом:
1) Создайте массив, все элементы которого имеют начальное значение 1 (истина). Элементы массива с простыми индексами останутся равными 1. Все другие элементы массива, в конечном счете, установятся равными нулю.
2) Начиная с индекса массива 2 (индекс 1 должен быть простым) каждый раз отыскивается элемент массива с единичным значением, циклически обрабатывается оставшаяся часть массива и устанавливается в нуль каждый элемент массива, чей индекс кратен индексу элемента с единичным значением. Для индекса 2 все элементы в массиве с большим чем 2 индексом и кратные 2 установятся равными нулю (индексы 4, 6, 8, …); для индекса 3 все элементы с индексом свыше 3 и кратные 3, установятся равными нулю (индексы 6, 9, 12, …) и т.д.
3) Когда процесс закончится, элементы массива с единичным значением указывают, что их индексы – простые числа. Эти индексы могут быть напечатаны.

Читайте также  Пробел пропуск в тексте 6 букв сканворд

Напишите программу, которая использует массив из 100 млн элементов для определения и печати простых чисел между N_min и N_max. Элемент 0 массива во внимание не принимайте.

Сравните эффективность алгоритма с алгоритмом решения задачи «Простые числа». Критерий эффективности – время решения задачи.

Путешествие коня

Математик Л. Эйлер предложил головоломку:

Может ли шахматная фигура «конь» обойти все 64 клетки шахматной доски, побывав на каждой из них только один раз? Конь ходит L-образно (на две клетки в каком-либо направлении и затем на одну клетку в перпендикулярном направлении).

Таким образом, из клетки в середине пустой доски конь может сделать восемь различных ходов (пронумеруем их от 0 до 7). На листе бумаги 8х8 попытайтесь выполнить путешествие коня вручную. Пометьте цифрой 1 первую клетку, куда вы поставите коня, цифрой 2 — вторую, цифрой 3 – третью и т.д.

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

Запустите программу. Сколько ходов сделал ваш конь?

Измените программу, используя опыт игры «в ручную», либо генератор случайных чисел (при выборе хода).

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

mas:array [1..100] of integer; n,i:integer;

writeln(‘Введите количество элементов массива не больше 100: ‘);

writeln(‘Введите ‘,i,’ элемент массива’);

Пример 2. Сформировать и вывести на экран последовательность из n элементов, заданных датчиком случайных чисел на интервале [-23, 34].

Var a: array[1..100] of integer;

Write (‘Сколько элементов? ’); Readln (n);

Пример 3. Найти сумму элементов одномерного массива. Размер произвольный. Элементы вводятся с клавиатуры.

Var a: array[1..100] of real;

Write (‘n=’); Readln (n);

write (‘введите число’); readln (a[i]);

writeln(‘сумма элементов равна ‘,s);

Пример 4. Найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20, 25]. Размер произвольный.

Var a: array[1..100] of integer;

i, n, num, min: integer;

Write (‘n=’); Readln (n);

If a[i] x[j] then begin

for j:=1 to n do write(x[j]:3);

Двумерные массивы

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

Примеры описания двумерных массивов:

Vector = array[1..4] of integer;

Massiv = array[1..4] of Vector;

Ту же структуру можно получить, используя другую форму записи:

Matrix : array[1..4,1..4] of integer ;

Для описания массива можно использовать предварительно определенные константы:

MasY: array[1..Gl, l..G2] of real;

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

Например, если имеется массив:

A:array[1..5,1..5] of integer;

то в памяти элементы массива будут размещены по возрастанию адресов:

А[1,1] А[1,2] … А[1,5] А[2,1] А[2,2] … А[5,5]

При работе с двумерным массивом указываются два индекса, с n-мерным массивом — n индексов. Например, запись Matr[4,4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива Matr.

Ссылка на основную публикацию
Adblock
detector