Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Содержание отчета и его форма




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

С/С++: работа с одномерными массивами

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

Теоретическое обоснование

 Массивы – структурированный тип данных с элементами одного типа, имеющий одно имя и определенное количество элементов. Количество элементов определяет размер массива. Например, массив составляют номера зачетных книжек студентов, здесь число элементов равно числу студентов; массив образуют набор чисел, их количество равно числу элементов массива. Порядковый номер элемента массива называется его индексом. Массив может иметь не один, а большее число индексов. Число индексов называется размерностью массива, например, массив с двумя индексами называется двумерным массивом. Строка символов является массивом символов, вектор – массив вещественных чисел, матрица – массив векторов.

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

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

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

 Int i, Х [10];

for (i=0; i<10; i++) {printf( “Введите элемент массива \n ”);scanf ("%d", &a[i]);}

Или

for (i=0; i<10; i++) {cout cout << “Введите элемент массива ” <<endl;

        cin >> X[[i]

}; 

Манипулятор endl (сокращение end line) выполняет переход на новую строку при выводе значений.

Вывод элементов массива можно выполнить в строку или в столбец. Для вывода элементов массива Х [10] в строку:

for (i=0; i<10; i++) printf ( "%6d", Х[i] );

Или

for (i=0; i<10; i++) cout <<  Х[i] ;

Для вывода в столбец надо написать:

printf ( "%6d \n", a[i] ); или cout <<  Х[i] << endl;

Сортировка элементов массивов.Сортировка это процесс обработки последовательности данных с целью их перестановки в определенном порядке: в порядке убывания значений или в порядке возрастания. Главными требованиями к алгоритмам сортировки массивов явля­ются экономное использование памяти и быстродействие. Методы сортировки, в зависимости от способа пере­мещения элементов массива, делятся на три основных вида: включе­нием, выбором, обменом. Рассмотрим наиболее распространенные методы.

Метод «пузырька» один из самых простых методов внутренней сортировки. Суть алгоритма состоит в последовательном просмотре массива от конца к началу или от начала к концу и сравнении каждой пары элементов между собой. Если Х[i] и Х[i+1] не упорядочены, то их значения меняются местами. Если элементы массива переставлялись хотя бы единожды во время просмотра всего массива, то процесс сравнения каждой пары элементов повторяются заново. При сортировке по возрастанию «легкие» элементы с меньшим значением как бы «всплывают» к началу массива подобно тому, как это делают пузырьки воздуха в стакане с водой – отсюда и происходит популярное название алгоритма. На рисунке 4.1 представлена сортировка массива по возрастанию.

Метод сортировки выбором элемента основан на следую­щем алгоритме. В первую очередь определяются наименьший элемент (для сортировки по убыванию – наибольший) и его координата в заданном массиве. Этот элемент меняется местами с первым элементом массива Х. Затем определяются наименьший (наибольший) элемент и его координата среди оставшихся n-1 элементов. Он меняется со вторым элементом. Данная процедура повторяется со всеми оставшимися элементами, пока не останется только один наибольший (наименьший) элемент. В результате все элементы упорядочиваются. На рисунке 4.2 представлена сортировка массива по возрастанию элементов.

нет
да

Рисунок 4.2 – Алгоритм сортировки выбором минимального элемента

    Методика и порядок выполнения работы

1. Изучите теоретическое обоснование.

2. Выполните пример программы обработки одномерного массива:

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

 # include <stdio.h>

 # define n 50 // определение константы n=50

 int max, nom, a[n];  //описание массива целых чисел из n элементов

 main()

{ for (i=0; i<n; i++) {printf( “Введите элемент массива \n ”);scanf ("%d", &a[i]);}

 max= a[0]; nom=1; // полагаем первый элемент наибольшим

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

if (max<a[i])

{nom=i+1; max=a[i];}

printf("\n Вывод элементов исходного массива : \n");

 for (i=0; i<n; i++) printf ( "%6d", a[i] );

printf ("\n Максимальное число в массиве %d, его индекс %d\n" , max, nom);

 return 0;}

 

    Пояснение. По окончании цикла переменная max будет иметь значение, равное максимальному элементу массива, а переменная nom – порядковый номер этого элемента. Вывод элементов массива выполняется в строку.

3. В отлаженной программе измените форматный ввод и вывод массива на потоковый, как описано в теоретической части.

4. Составьте алгоритмы и программы с применением массивов согласно вариантам задания 1 и задания 2, введите исходные данные, проверьте полученный результат. Исходные и результативные массивы обязательно вывести.                        

Таблица 4.1- Варианты заданий 1 и 2

№ варианта Условия заданий
1) Все элементы массива А, которые больше 7 и меньше 20, переписать в новый массив. 2)Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом пузырька
1) Из элементов массива А, получить массив положительных и массив отрицательных элементов. 2)Дан массив из N целых чисел. Отсортировать его по убыванию элементов методом выбора
1) Дан массив чисел В[0:N]. Вывести на печать первый отрицательный элемент массива и его порядковый номер.  2) Дан массив из N целых чисел. Получить из него массив положительных чисел и отсортировать его по возрастанию методом пузырька
1) Дан массив чисел. Найти значение максимального элемента. Если таких элементов несколько, то определить, сколько их.  2) Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
1) Дан массив A[0:N]. Вычислить среднее арифметическое всех чисел массива с нечетными индексами, количество чисел равных нулю. Получить массив отрицательных чисел. 2)Дан массив из N целых чисел. Получить из него массив положительных чисел и отсортировать его по убыванию методом пузырька
1) Дан массив A[0:N]. Вместо отрицательных элементов массива записать 0. Получить массив положительных чисел. 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по убыванию методом выбора
1)В массиве вещественных чисел изменить знак отрицательных чисел, после этого определить максимальный по величине элемент массива и его номер в массиве. 2)Дан массив из N целых чисел. Получить из него массив положительных чисел и отсортировать его по возрастанию методом пузырька
1) Дан массив чисел В[0:N]. Найти сумму отрицательных чисел и количество положительных чисел массива с четными индексами. 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
1) Дан массив чисел В[0:N]. Найти сумму положительных и отрицательных чисел массива с нечетными индексами и количество элементов массива равных нулю 2)Дан массив из N целых чисел. Получить из него массив положительных чисел и отсортировать его по убыванию методом пузырька
1) Дан массив A[0:N]. Определить количество отрицательных чисел с нечетными индексами. Найти минимальный элемент массива. 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по убыванию методом выбора
1) Дан массив A[0:N]. Найти сумму всех положительных элементов массива, а также среднее арифметическое всех чисел 2)Дан массив из N целых чисел. Получить из него массив чисел больших 10 и отсортировать его по возрастанию методом пузырька
1) Дан массив чисел В[0:N]. Вычислить сумму и количество элементов массива, расположенных после последнего элемента, равного нулю. 2)Дан массив из N целых чисел. Получить из него массив чисел меньших 10 и отсортировать его по возрастанию методом выбора
1) Дан массив A[0:N]. Найти сумму всех отрицательных элементов, количество чисел, равных нулю и вычислить среднее арифметическое только положительных чисел. 2)Дан массив из N целых чисел. Получить из него массив чисел больших 20 и отсортировать его по убыванию методом пузырька
1) Дан массив чисел В[0:N]. Найти сумму и вычислить среднее арифметическое всех чисел массива с четными индексами. 2)Дан массив из N целых чисел. Получить из него массив чисел меньших 20 и отсортировать его по убыванию методом выбора
1) Дан массив A[0:N]. Вычислить произведение между первым и последним положительными элементами 2)Дан массив из N целых чисел. Получить из него массив чисел меньших 15 и отсортировать его по возрастанию методом пузырька
1) Дан массив из N чисел. Найти наибольший элемент массива и поменять его местами с наименьшим элементом. 2)Дан массив из N целых чисел. Получить из него массив чисел больших 15 и отсортировать его по возрастанию методом выбора
1) Дан массив чисел В[0:N]. Записать подряд в массив А элементы массива В, имеющие четные индексы, а имеющих, нечетные индексы – в массив У. 2)Дан массив из N целых чисел. Получить из него массив чисел по модулю меньших 10 и отсортировать его по убыванию методом пузырька
1)На сколько каждый элемент массива А отличается от среднеарифметического значения элементов этого массива. 2)Дан массив из N целых чисел. Получить из него массив чисел по модулю больших 5 и отсортировать его по убыванию методом выбора
1). Дан массив чисел В[0:N]. Найти сумму и произведение положительных элементов массива, расположенных до максимального элемента 2)Дан массив из N целых чисел. Получить из него массив четных чисел и отсортировать его по возрастанию методом пузырька
1) Дан массив чисел В[0:N]. Найти произведение элементов массива, расположенных между максимальным и ми­нимальным элементами. 2)Дан массив из N целых чисел. Получить из него массив нечетных чисел и отсортировать его по возрастанию методом выбора
1) Найти сумму элементов массива А, больших 5 и меньших 10. Разделить каждый элемент массива на эту сумму. 2)Дан массив из N целых чисел. Получить из него массив четных положительных чисел и отсортировать его по убыванию методом пузырька
1) Найти наибольший элемент каждой пары из массива А и записать их в новый массив 2)Дан массив из N целых чисел. Получить из него массив чисел, кратных 5 и отсортировать его по возрастанию методом выбора
1) Даны две последовательности целых чисел. Получить последовательность, состоящую из тех членов первой последовательности, которых нет во второй. Найти в полученной последовательности минимальный элемент. 2) Дан массив из N целых чисел. Получить из него массив нечетных положительных чисел и отсортировать его по возрастанию методом пузырька
1)Найти произведение положительных элементов массива А и сравнить его с произведением отрицательных  2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел, больших -10 и отсортировать его по убыванию методом выбора
1) Дан массив A[0:N]. В этот же массив записать  сначала все элементы, целая часть которых не превышает 1, а потом — все остальные 2)Дан массив из N целых чисел. Получить из него массив чисел, кратных 3 и  отсортировать его по возрастанию методом пузырька
1) Дан массив из N целых чисел.  Даны два целочисленных массива. Выяснить, является ли один из них подмножеством другого. 2) Дан массив из N целых чисел. Получить из него массив чисел, кратных 4 и отсортировать его по убыванию методом выбора
1) Из двух отсортированных в убывающем порядке массивов получить новый массив, отсортированный в том же порядке. 2) Дан массив из N целых чисел. Получить из него массив отрицательных и массив положительных чисел. Первый из массивов отсортировать по убыванию методом выбора, а второй по возрастанию
1) Дан массив из N целых чисел.  Удалить из него элементы, кратные двум (если такие имеются) 2) Дан массив из N целых чисел. Получить из него массив отрицательных и массив положительных чисел. Первый из массивов отсортировать по возрастанию методом пузырька, а второй по убыванию
1) Дан упорядоченный массив из N целых чисел. С клавиатуры вводятся три новых числа. Вставить их в исходный массив не нарушая упорядоченность. 2) Дан массив из N целых чисел. Получить из него массив отрицательных и массив положительных чисел. Первый из массивов отсортировать по убыванию методом выбора, а второй по возрастанию
1) Дан массив из N целых чисел. Вывести все числа, стоящие на четных местах и встречающиеся более двух раз. Указать количество их повторений. 2) Дан массив из N целых чисел. Получить из него массив отрицательных и массив положительных чисел. Первый из массивов отсортировать по возрастанию методом выбора, а второй по убыванию методом пузырька

Содержание отчета и его форма

Выполните все описанные пункты задания, письменно оформите отчет, который должен содержать:

- тему, цель лабораторной работы;

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

Контрольные вопросы и защита работы

1) Что такое массив, индекс элемента массива?

2) Какие виды массивов?

3) В каком порядке выполняется обработка массивов?

4) Как ввести и вывести элементы одномерных массивов в строку и в столбец?

5) Способы описания и инициализации массивов.

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

 










Последнее изменение этой страницы: 2018-05-10; просмотров: 229.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...