Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaP_laby.pdf
Скачиваний:
159
Добавлен:
31.05.2015
Размер:
915.49 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ

Цель работы – овладеть практическими навыками работы с массивами, особенностями их ввода и вывода, приобрести дальнейшие навыки по организации программ циклической структуры.

Задания

1.Изучить:

а) способы описания размеров массивов на языке программирования; б)способы ввода и вывода массивов; в) реализацию на конкретном языке программирования приемов на-

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

2.Разработать алгоритм решения в соответствии с заданием.

3.Составить программу решения задачи.

4.Подготовить тест для проверки программы.

Контрольныевопросы

1.Указать особенности программ, использующих массивы.

2.Какие операторы языка можно использовать для описания массивов?

3.В чем состоит особенность организации цикла при обработке массивов?

4.В чем состоит особенность использования приемов программирования при обработке массивов?

5.Указать особенности ввода и вывода массивов.

6.Что представляет собой одномерный массив?

7.Индекс первого элемента массива всегда равен нулю. Верно ли это?

8.Предусмотрена ли в С++ проверка «нерушимости» границ массива?

9.Каждая размерность многомерного массива в С++ заключается в собственную пару квадратных скобок. Верно ли это?

10.Покажите, как объявить двумерный целочисленный массив с именем mas размерностью 10 х 8?

11.Покажите, как получить доступ к элементу i0,j0 массива x.

12.Может ли содержать массив переменные нескольких типов?

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

1. Минимальный элемент одномерного массива A заменить на третий отрицательный элемент. Третий отрицательный искать от минимального элемента.

Языки программирования. Метод. указания по лаб. работам

-26-

ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ

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

2.Подсчитать количество и сумму положительных элементов одномерного массива.

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

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

5.Переписать положительные элементы одномерного массива A в массив B, а отрицательные – в массив C.

6.Переписать элементы одномерного массива A, попадающие в интервал [2, 6], в массив B.

7.Выбрать из одномерного массива A элементы, произведение которых на их номер превышает число 10.

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

9.Дан массив. Удалите из массива наименьший и наибольший элементы, сдвинув все оставшиеся элементы к началу массива.

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

11.Переставить максимальный и минимальный элементы в массиве.

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

13.Дан массив. Нулевое значение массива заменить элементом, значение которого ближе к индексу этого элемента.

14.В одномерном массиве найти максимальное произведение двух рядом стоящих чисел.

15.Найти разность максимального и минимального элементов одномерного массива A и заменить этим значением нули в массиве.

16.Заполнить массивы B и C, переписав в массив B все четные числа из заданного целочисленного одномерного массива A, а в массив C – все нечетные числа.

17.Поместить в массив B номера положительных элементов одномерного массива A.

18.Найти произведение элементов одномерного массива, попадающих

винтервал [0, 10] .

19.Найти сумму элементов одномерного массива, попадающих в интервал [0, 10].

20.Подсчитать количество элементов целочисленного массива, кратных трем.

21.Для одномерного целочисленного массива определить, является ли его сумма четным числом.

22.В одномерном массиве найти минимальное произведение двух рядом стоящих чисел.

Языки программирования. Метод. указания по лаб. работам

-27-

ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ

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

23.Для одномерного массива A вычислить наибольшее значение модуля разности между соседними элементами.

24.Дан массив целых чисел. Все числа этого массива, которые заканчиваются на 6, уменьшить в 2 раза.

25.Дан массив целых чисел. Элементы массива, сумма цифр которых равна 6, разделить на 3.

26.Дан массив из n действительных чисел. С клавиатуры вводится число k. Удалить из массива все элементы, целая часть которых больше k.

27.Дан массив из n элементов. Вывести на экран элементы, расположенные между максимальным и минимальным элементами массива.

28.Дан массив из n элементов. Отсортировать массив относительно квадратов его элементов.

29.Дан массив из n элементов. Вывести массив в порядке возрастания, причем сначала выводить нечетные его элемента, а затем – четные.

30.Массив из n элементов. Вывести массив в порядке убывания, причем сначала выводить элементы, стоящие на четных местах, а затем – на нечетных.

31.Массив из n элементов. Вывести таблицу встречаемости элементов

вмассиве. Например:

25 7 5 2 4 3 7 7 2

2 (3), 3 (1), 4 (1), 5 (2), 7 (3).

32. Дан массив из n элементов. Сформировать второй массив с элементами, которые расположены между максимальным и минимальным элементами массива.

33. Дан массив из n элементов. Сформировать второй массив с элементами, которые расположены между первым положительным и последним отрицательным.

Примеррешениявариантазадания

Дан одномерный массив x[n], где n – размер массива. Найти k–й отрицательный элемент массива.

Анализ задачи.

1.Начальные данные:

а) константа n, которая определяет размер массива; б)одномерный массив размерности n;

в) параметр k для порядкового номера отрицательного элемента массива;

г) параметр kn для подсчета числа отрицательных элементов массива;

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

2.Результат вычисления: а) значения параметра kn; б)значения параметра ki.

3.Составляем программу ввода элементов массива с клавиатуры и вывода элементов на экран монитора. Для перебора элементов массива исполь-

зуем цикл (см. замечание 1).

Языки программирования. Метод. указания по лаб. работам

-28-

ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ

Пример решения варианта задания

void main()

 

{ const n = 10;

 

int

i, a[n] ;

 

clrscr();

 

 

// Ввод одномерного массива с клавиатуры

cout << “Введи элементы массива с клавиатуры: \n”;

for

( i = 0; i <= n-1; i++ )

// Начало цикла. Перебор индексов массива.

 

{

 

 

printf("a[ %d ]= ", i);

// Подсказка для пользователя.

 

scanf( "%d", &a[i] ); // Ввод элемента массива с клавиатуры

 

}

 

// Вывод массива на терминал clrscr();

cout << “Введен массив: \n”; for ( i = 0; i <= n-1; i++ ) printf("%d ", a[i]);

cout << “\n”; getch(); }

4. Составляем программу, которая подсчитывает число отрицательных

элементов массива (см. замечание 1).

 

void main()

 

 

{ const n = 10;

 

 

int i, a[n] ;

 

 

int kn = 0;

 

 

clrscr();

 

 

// Ввод одномерного массива с клавиатуры

 

cout << “Введи элементы массива с клавиатуры: \n”;

 

for ( i = 0; i <= n-1; i++ )

// Началоцикла. Перебор индексовмассива.

 

{

 

 

printf("a[ %d ]= ", i);

// Подсказка для пользователя.

 

scanf( "%d", &a[i] ); // Ввод элемента массива с клавиатуры

 

}

 

 

// Вывод массива на терминал

 

clrscr();

 

 

cout << “Введен массив: \n”;

 

for ( i = 0; i <= n-1; i++ )

 

 

printf("%d ", a[i]);

 

 

cout << “\n”;

 

 

// Начало подсчета числа отрицательных элементов в массиве.

 

for ( i = 0; i <= n-1; i++ )

 

 

if (a[i] < 0 ) kn++; // Если элемент массива отрицательный, значениеkn

 

// увеличиваем на 1.

 

if ( kn != 0 )

 

 

cout << “Число отрицательных элементов в массиве= “

 

<< kn << “\n”;

 

 

else

 

 

 

 

Языки программирования. Метод. указания по лаб. работам

-29-

ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ

Пример решения варианта задания

cout << “Отрицательных элементов в массиве нет! “; getch(); }

5. Завершаем программу для решения поставленной задачи.

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

{ const n = 10; int i, a[n] ;

int k, kn = 0, ki = -1; // kn – для числа отрицательных элементов.

//ki – для индексатекущегоотрицательного элемента.

//k – дляпорядкового номераотрицательного элемента массива. clrscr();

//Ввод одномерного массива с клавиатуры.

cout << “Введи элементы массива с клавиатуры: \n”;

for ( i = 0; i <= n-1; i++ )

// Началоцикла. Перебор индексовмассива.

{

 

printf("a[ %d ]= ", i);

// Подсказка для пользователя.

scanf( "%d", &a[i] ); // Ввод элемента массива с клавиатуры.

}

// Вывод массива на терминал. clrscr();

cout << “Введен массив: \n”; for ( i = 0; i <= n-1; i++ )

printf("%d ", a[i]); cout << “\n”;

cout << “Введи номер для поиска отрицательного элемента k= “; cin >> k;

// Начало подсчета числа отрицательных элементов в массиве. for ( i = 0; i <= n-1; i++ )

{

if (a[i] < 0 )

{

kn++; // Если элемент массива отрицательный, значение kn // увеличиваем на 1.

ik = i; // Запоминаем индекс текущего отрицательного элемента. if ( kn == k )break; // Нашли отрицательный элемент с заданным // порядковым номером.

}

if ( kn == k )

cout << “Элемент a(“ << ik << “)= “ << a[ik]

<<“ является “ << kn

<<“- ым отрицательным элементом массива \n”;

else

cout << “Отрицательных элементов с порядковым номером “ << k << “ отсутствует\n”;

Языки программирования. Метод. указания по лаб. работам

-30-

ЛАБОРАТОРНАЯ РАБОТА № 5 ОДНОМЕРНЫЕ МАССИВЫ

Пример решения варианта задания

getch(); }

Языки программирования. Метод. указания по лаб. работам

-31-

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