Обработка массивов информации

Цель работы: изучение основных приемов и алгоритмов, используемых при обработке массивов информации, а также особенностей их программной реализации на языке С++.

Задание к лабораторной работе

1 Ознакомиться с особенностями описания и использования массивов на языке С;

2 Выполнить последовательно все пункты, указанные в разделе «Ход работы»;

3 Написать программу в соответствии с выданным вариантом задания (см. раздел «Варианты заданий»);

4 Оформить отчет.

Ход работы

1. Объявить массив из нескольких целых чисел, проинициализировать массив и вывести его на экран.

2. Изменить программу таким образом, чтобы ввод и вывод был сделан с использованием цикла «for». Например:

for (i=0;i<10;i++) {

printf(“\nВведите m[%d]:”,i);

scanf(“%d”,m[i]);

}

3. Объявить матрицу (двумерный массив). Заполнить ее целыми числами с помощью функции рандомизации и вывести построчно на экран.

Варианты заданий

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

Например крючок - червячок,

земля - поляи т. д.

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

3. Имеется два массива, содержащие последовательности целых чисел. В первом из указанных массивов числа упорядочены. Необходимо включить в него числа из второго массива, не нарушив упорядоченности.

а) для включения очередного числа просматривать всю последовательность с начала;

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

Например в последовательность {18, 20, 37, 46, 54} необходимо включить число 40. Центральным элементом последовательности является число 37.

Т.к. 40>37, далее рассматриваем вторую половину исходной последовательности {37, 46, 54}. 40<46 - рассматриваем первую часть последовательности {37}.

40<37 и поскольку дальнейшее деление невозможно, включаемое число должно быть записано в последовательность после элемента 37.

Результат - {18, 20, 37, 40, 46, 54}.

4. Для введенного с клавиатуры наименования сформировать аббревиатуру. Например

исх. текст - Автоматизированные Системы Управления,

результат - АСУ.

5. Имеется массив, содержащий следующую информацию о сотрудниках некоторой организации:

фамилия, образование, шифр подразделения.

Кроме того, имеется массив, содержащий информацию о подразделениях данной организации:

шифр подразделения, наименование.

Необходимо объединить эту информацию и вывести на экран в виде таблицы:

Фамилия Образование Наименование подразделения
... ... ...

6. Имеется массив, содержащий информацию о сотрудниках некоторого предприятия:

фамилия, возраст, стаж, пол.

Необходимо определить, сколько процентов от общего числа сотрудников занимают

молодые специалисты (возраст < 35 лет, стаж < 4 лет),

работающие пенсионеры (возраст: женщины > 55 лет, мужчины > 60 лет),

прочие сотрудники.

7. Имеется матрица. Переставить строки матрицы в порядке возрастания сумм элементов.

8. Имеется матрица. Переставить столбцы матрицы в порядке убывания сумм элементов.

9. Имеется массив, содержащий данные о силе и направлении ветра на различных высотах. Произведена выброска парашютного десанта. Задана высота раскрытия парашюта. Скорость снижения парашютиста 5 м/с. Необходимо рассчитать величину и направление относа парашютиста, относительно точки десантирования.

10. Имеется массив, содержащий расписания отправления поездов из пункта А в пункт В. Известно расстояние между пунктами А и В и скорость поезда. Необходимо вычислить время прибытия поезда в пункт назначения. Результат оформить в виде таблицы:

N поезда Время отправления Время прибытия
8.45 13.30
9.15 15.00
... ... ...

11. Имеется массив, содержащий множество интервалов числовой прямой (а1,а2), (а3,а4), ... Определить

а) какие из заданных интервалов пересекаются;

б) какие интервалы полностью поглощают другие;

в) объединения каких интервалов являются непрерывными интервалами.

12. Имеется массив, содержащий координаты точек на плоскости. Осуществить перевод данных координат из декартовой системы в полярную и определить количество точек, попавших в каждый квадрант.

13. Имеется массив, содержащий координаты вершин прямоугольников (каждый прямоугольник задан координатами левого верхнего и правого нижнего углов). Определить какие прямоугольники не пересекают оси координат, какие пересекают ось Х, какие - Y

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

15. В массиве, все элементы которого различны, найти и удалить n наименьших элементов, сохраняя порядок следования остальных элементов.

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

17. Некоторый массив содержит повторяющиеся элементы. Найти количество различных элементов в нем.

18. Массив состоит из нулей и единиц. Найти в нем самую длинную цепочку подряд стоящих нулей.

19. Матрица состоит из 0 и 1. Найти в ней самую длинную цепочку подряд стоящих 0 по горизонтали или вертикали.

20. В массиве найти минимальный и максимальный элементы (Xmin и Xmax). На интервале от Xmin до Хmax найти все числа, которые не встречаются в массиве.


Наши рекомендации