Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы_1 / Лабораторная работа 5 - Обработка массивов данных

.doc
Скачиваний:
52
Добавлен:
20.03.2016
Размер:
45.57 Кб
Скачать

Лабораторная работа 5

ОБРАБОТКА МАССИВОВ ДАННЫХ

Цель работы: познакомиться с массивами и основными приемами программирования задач их обработки.

Методические указания к выполнению работы:

Массив - это упорядоченное множество элементов одинакового типа. Форма объявления массива на языке Си следующая:

тип_данных имя_массива[размер];

«Тип_данных» задает тип элементов массива. «Размер» - количество элементов в нем. Элементы массива в Си индексируются с нуля! Пример. Описание одномерного массива из 10 целых чисел и двумерного массива вещественных чисел из 10 строк и 10 столбцов:

int page[10];

float bigmas[10][10];

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

page[1] - обращение ко второму элементу массива,

bigmas[0][0] – обращение к первому элементу первой строки.

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

int s[3] = {1, 2, 3};

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

int s[2][3] = {{4, 5, 6}, {7, 8, 9}};

int f[2][3] = {10, 11, 12, 13, 14};

char p[2][2] = {{'n'}, {'y'}};

Массив s инициализируется полностью заданными значениями. В массиве f из его шести значений (размер массива f - 2 строки и 3 столбца) инициализируется только первые 5 элементов (это элементы с индексами [0][0], [0][1], [0][2], [1][0], [1][1]). В массиве p инициализируются только 2 элемента: p[0][0] = 'n' и p[1][0] = 'y'.

Если не проинициализировать элементы массива перед началом работы с ним, то внешние и статические массивы инициализируются нулем, а автоматические и регистровые будут содержать "мусор", оставшийся в этом участке памяти. Если задан размер массива, то значения не заданные явно определяются в зависимости от класса памяти.

Рабочее задание

Часть1. Обработка одномерного массива

1. Дан одномерный массив А, состоящий из N элементов. Сколько значений элементов в массиве А встречается более одного раза?

2. Дан одномерный массив А, состоящий из N элементов. Сколько значений элементов встречается в массиве по 3 раза?

3. Дан одномерный массив А, состоящий из N элементов. Переписать в одномерный массив В все элементы, заключенные между максимальным и минимальным значениями.

4. Дан одномерный массив А, состоящий из N элементов. Определить количество чисел, входящих в массив по одному разу.

5. Дан одномерный массив А, состоящий из N элементов. Подсчитать максимальное количество подряд идущих нулей.

6. Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все положительные элементы, а в конец массива - все отрицательные.

7. Дан одномерный массив А, состоящий из N элементов. Перенести в начало массива все четные элементы, а в конец массива - все нечетные.

8. Дан одномерный массив А, состоящий из N элементов. Исключить из массива первый положительный элемент, следующий за максимальным.

9. Дан одномерный массив А, состоящий из N элементов. Исключить из массива все нулевые элементы, расположенные между максимальным и минимальным элементами.

10. Дан одномерный массив А, состоящий из N элементов. Исключить из массива первый, предшествующий максимуму, положительный элемент.

11. Дан одномерный массив А, состоящий из N элементов. Подсчитать максимальное количество подряд идущих отрицательных элементов.

12. Дан одномерный массив А, состоящий из N элементов. Найти первый и последний положительные элементы массива и подсчитать количество элементов, заключенных между ними.

13. Дан одномерный массив А, состоящий из N элементов. Подсчитать максимальное количество положительных элементов, заключенных между нулями.

14. Дан одномерный массив А, состоящий из N элементов. Считаем, что отрицательные элементы разбивают его на группы. Найти группу положительных элементов массива с максимальной суммой.

15. Дан одномерный массив А, состоящий из N элементов. Считаем, что отрицательные элементы разбивают его на группы. Найти количество полученных групп, содержащих нули.

16. Дан одномерный массив А, состоящий из N элементов. Найти группу, состоящую из трёх подряд идущих элементов, сумма которых является максимальной.

17. Дан одномерный массив А, состоящий из N элементов. Исключить из массива все элементы, встречающиеся более одного раза.

18. Дан одномерный массив А, состоящий из N элементов. Найти сумму элементов, кратных данному К.

19. Дан одномерный массив А, состоящий из N элементов. Заменить все его элементы, большие заданного Z, этим числом. Подсчитать количество замен.

20. Дан одномерный массив А, состоящий из N элементов. Подсчитать сумму элементов массива, значения которых находятся в диапазоне от А до В, где А < B – заданные числа.

21. Дан одномерный массив А, состоящий из N целочисленных элементов. Подсчитать количество трехзначных элементов массива.

Часть 2. Обработка двумерного массива

1. Дана матрица целых чисел. В строках, все элементы которых четные, расположить элементы в обратном порядке.

2. Дана матрица символов. Подсчитать количество строк, в которых букв больше, чем цифр.

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

4. Дана матрица целых чисел. Собрать все нулевые элементы выше главной диагонали (заполнение осуществлять параллельно главной диагонали).

5. Дана матрица символов. Написать программу обращения к каждому элементу этой матрицы, если считать, что имена строк - буквы алфавита (по возрастанию), а имена столбцов - целые числа (по возрастанию).

6. Дана матрица вещественных чисел. Найти максимальный элемент и ближайший к нему (по значению) элемент матрицы. Поиск осуществлять в квадратном контуре, центром которого является максимум, а длина стороны - пять элементов массива.

7. Дана матрица вещественных чисел. Найти минимальный элемент (поиск осуществлять параллельно главной диагонали) и ближайший к нему по значению (поиск осуществлять параллельно побочной диагонали) элемент матрицы.

8. Дана матрица вещественных чисел. Найти максимальный и минимальный элементы и сумму элементов, заключенных между ними.

9. Дана матрица целых чисел. Подсчитать количество элементов, предшествующих максимуму и количество элементов, следующих за минимумом.

10. Дана матрица символов. Определить строку, в которой максимальное количество букв.

11. Дана матрица целых чисел. Собрать все отрицательные элементы выше побочной диагонали (заполнение осуществлять по строкам).

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

13. Дана матрица вещественных чисел. Найти минимальный элемент (поиск осуществлять параллельно побочной диагонали) и наиболее удаленный от него по значению (поиск осуществлять параллельно главной диагонали) элемент матрицы.

14. Дана матрица целых чисел. Собрать все положительные элементы ниже побочной диагонали (заполнение осуществлять параллельно побочной диагонали).

15. Дана матрица вещественных чисел. Найти число с максимальной дробной частью, переставить строки и столбцы так, чтобы это число стояло в левом верхнем углу.

16. Транспонировать заданную квадратную матрицу вещественных чисел размером 4x4. Использовать дополнительные массивы не разрешается.

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

18. Дана матрица вещественных чисел. В каждой строке матрицы найти и вывести на экран минимальный по значению элемент. Вывести на экран максимальный среди найденных ранее элементов.

19. В заданной матрице поменять местами строку, содержащую максимум со столбцом, содержащим минимум.

20. Дана матрица вещественных чисел. Найти и вывести на экран номера строк, все элементы которых больше заданного значения K.

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