- •Массив как структура данных.
- •Дан массив целых чисел. Найти:
- •Дан массив чисел A. Для него нужно:
- •Дан массив вещественных чисел. Найти:
- •Преобразовать массив вещественных чисел по правилу:
- •Дан массив вещественных чисел. Определить:
- •Дан массив целых чисел.
- •Поменять местами:
- •Из массива удалить:
- •Вычислить скалярное произведение двух векторов.
- •Дан текст. Заменить каждое вхождение одной точки троеточием.
- •Двумерные массивы (Матрицы)
- •Для квадратной матрицы определить:
- •Для прямоугольной матрицы найти:
- •Прямоугольную матрицу преобразовать по правилу:
- •Определить, является ли заданная целая квадратная матрица:
- •Найти сумму двух прямоугольных матриц.
- •Найти произведение двух прямоугольных матриц.
- •Дан текст. Напишите:
- •Сортировка массивов. Поиск элементов.
- •Реализовать алгоритм линейного поиска с барьером.
- •Строки
- •В заданном тексте
- •Получите текст наоборот (т.е. разверните его).
- •Дан текст. Удалите из текста:
- •Замените в тексте каждую точку троеточием.
- •Для данного текста найдите:
- •Для данного текста:
- •Зашифруйте текст, циклически сдвигая его вправо или влево.
- •Дан текст. Напечатать:
- •Дан текст. Преобразовать все его слова по правилу:
- •Дано слово, содержащее запись вещественного числа в формате
- •Множества
Министерство образования Российской федерации
Ростовский ордена Трудового Красного Знамени государственный университет
Н.И. Амелина, Я.М. Русанова, А.А. Чекулаева
Информатика. Задачи.
Часть 2
Задачи на тему: массивы, строки, множества.
Методические указания для студентов дневного и вечернего отделений механико-математического факультета
Ростов - на - Дону
2002
2
Печатается по решению учебно-методической комиссии механико-математического факультета РГУ от . .2002.
АННОТАЦИЯ
Методические указания содержат набор задач, предназначенных для отработки основных приемов программирования при работе с такими структурами данных, как одномерные и двумерные массивы, строки и множества.
Методические указания предназначены для начинающих программистов, студентов младших курсов, специализирующихся в области прикладной математики, и для преподавателей, ведущих практические занятия по программированию.
Авторы: Н.И. Амелина, Я.М. Русанова, А.А. Чекулаева
© Н.И. Амелина, Я.М. Русанова, А.А. Чекулаева, 2002
3
|
СОДЕРЖАНИЕ |
|
1 |
Массив как структура данных............................................................... |
4 |
2 |
Двумерные массивы (матрицы)............................................................. |
8 |
3 |
Сортировка массивов. Поиск элементов. ............................................. |
12 |
4 |
Строки...................................................................................................... |
15 |
5 |
Множества............................................................................................... |
19 |
4
1.1 Массив как структура данных.
Программа, которая из данных n целых чисел выводит сначала все отрицательные числа, а затем - все остальные.
Program MAS; const nmax = 10;
type IArray = array[1..nmax] of integer; var A: IArray;
n, i: byte; begin
write ('количество элементов массива = '); readln (n);
writeln ('Введите элементы массива.'); for i := 1 to n do readln (A[i]);
writeln ('Вывод по заданному правилу:'); for i := 1 to n do
if A[i]< 0 then writeln(A[i]); for i := 1 to n do
if A[i] >= 0 then writeln(A[i]);
end.
1.1.1 Дан массив целых чисел. Найти:
а) сумму (произведение) положительных (отрицательных) элементов массива;
б) среднее арифметическое его положительных (отрицательных) элементов;
в) сумму (произведение) четных (нечетных) элементов массива; г) сумму (произведение) элементов массива, кратных (не
кратных) заданному числу.
1.1.2 Дан массив чисел A. Для него нужно:
10
а) вычислить y = ∑(−1)i Ai без использования операции
i =1
возведения в степень;
б) получить массив B, расположив элементы массива A в обратном порядке;
в) получить массив B, в котором i-й элемент является средним арифметическим всех элементов массива A, кроме i-го.
1.1.3 Дан массив целых чисел. Определить: а) сколько раз в массиве меняется знак;
5
б) количество инверсий в массиве (т.е. таких пар элементов, в которых большее число находится слева от меньшего);
в) количество элементов в наиболее длинной группе из подряд идущих нулей.
1.1.4 Дан массив вещественных чисел. Найти:
а) произведение и среднее арифметическое элементов массива, предшествующих первому нулевому элементу;
б) сумму и произведение элементов массива, расположенных между первым и вторым нулевыми элементами;
в) количество и сумму положительных элементов массива, предшествующих первому отрицательному элементу;
г) среднее арифметическое первых подряд идущих положительных элементов.
1.1.5 Преобразовать массив вещественных чисел по правилу:
а) положительные элементы заменить их квадратами, отрицательные - абсолютными величинами;
б) умножить все отрицательные элементы массива на первый, если он тоже отрицателен;
в) минимальный элемент заменить целой частью среднего арифметического всех элементов массива (если в массиве несколько элементов с минимальным значением, заменить последний по порядку);
г) все элементы с нечётными номерами, предшествующие первому по порядку максимальному элементу, умножить на значение максимального элемента;
д) если первый элемент неотрицателен, умножить все элементы на квадрат минимального элемента, в противном случае - на квадрат максимального.
1.1.6 Дан массив вещественных чисел. Определить:
а) значение наибольшего (наименьшего) элемента и его порядковый номер в массиве;
б) разность между наибольшим и наименьшим элементом; в) отношение суммы (произведения) элементов массива,
расположенных до максимального (минимального) элемента в массиве, к сумме (произведению) элементов, расположенных после максимального (минимального);
г) произведение (сумму, среднее арифметическое) элементов массива, расположенных между максимальным и минимальным элементами;
д) среднее арифметическое элементов (сумму, произведение) массива, расположенных между максимальным
6
(минимальным) и "центральным" элементами массива (предполагается, что в массиве нечётное число элементов).
1.1.7Преобразовать массив по правилу xk' = max xi , при 1 ≤ i ≤ k .
1.1.8Даны два вещественных массива с разным числом элементов. Найти:
а) общее число нулевых (ненулевых, положительных, отрицательных) элементов массивов;
б) минимальную (максимальную) из сумм (произведений) положительных (отрицательных, четных, нечетных) элементов массивов;
в) сумму минимальных элементов обоих массивов; г) отношение максимальных элементов массивов;
д) модуль разности чисел, являющихся минимальными среди положительных элементов массивов.
1.1.9Даны вещественные массивы A и B с разным числом элементов. Логической переменной Flag присвоить значение "истина", если: а) у массива A больше положительных элементов, чем у массива
B;
б) сумма отрицательных элементов массива A меньше суммы отрицательных элементов массива B;
в) в массиве A нулевых элементов меньше, чем в массиве B;
г) произведение ненулевых элементов массива A больше произведения ненулевых элементов массива B;
иначе Flag положить равной "ложь". Выдать значение переменной.
1.1.10Даны вещественные массивы Х и У. Преобразовать каждый из них по правилу:
а) если у массива есть хотя бы один элемент, принадлежащий отрезку [a,b], то все отрицательные элементы заменить нулями. В противном случае - единицами;
б) заменить нулями элементы предшествующие первому по порядку отрицательному элементу (если отрицательных элементов нет, вектор оставить без изменений);
в) всем элементам, следующим за максимальным (минимальным) элементом присвоить значение максимального элемента (минимального).
1.1.11Для заданного массива выяснить, упорядочены ли элементы массива а) по невозрастанию;
б) по неубыванию;
7
в) по невозрастанию или по неубыванию.
1.1.12Для заданного одномерного массива выяснить представляют ли его элементы монотонную последовательность.
1.1.13Найти элемент, ближайший (наиболее удаленный) по значению к максимуму (минимуму, среднему арифметическому).
1.1.14Напишите программу, которая вводит значения ежемесячной зарплаты для заданного двенадцатимесячного периода и затем определяет месяц, в котором а) обнаружен наибольший прирост зарплаты;
б) обнаружено наибольшее уменьшение зарплаты.
1.1.15Дан массив целых чисел.
а) для каждого из чисел, входящего в массив, указать, сколько раз оно входит в массив.
б) выяснить, имеется ли в массиве хотя бы одна пара совпадающих чисел.
в) выдать все числа, входящие в массив по одному разу; г) найти число различных элементов массива.
1.1.16 Поменять местами:
а) максимальный и минимальный элементы массива; б) наибольший (наименьший) элемент с первым (последним)
элементом.
1.1.17Переставить элементы массива так, чтобы в начале массива располагались все отрицательные (четные), а в конце массива все положительные элементы (нечетные).
1.1.18Из массива удалить:
а) все элементы, равные (не равные) заданному значению; б) все элементы, меньшие (большие) заданного значения; в) первый (последний, второй) из нулевых элементов;
г) элементы, принадлежащие (не принадлежащие) заданному интервалу (отрезку).
1.1.19 Элементы массива (числового или символьного) а) сдвинуть на одну позицию влево (вправо); б) сдвинуть на k позиций влево (вправо);
в) циклически сдвинуть на одну позицию влево (вправо); г) циклически сдвинуть на k позиций влево (вправо).