- •1. Краткие теоретические сведения
- •1.1. Переменные с индексами и массивы
- •1.2. Описание массивов в программах
- •1.3. Динамические массивы
- •1.4. Программирование вычислительных процессов, содержащих одномерные массивы (Алгоритмы обработки одномерных массивов)
- •1.4.1. Инициализация массива
- •1.4.2. Формирование и вывод массива
- •1.4.3. Ввод – вывод статического одномерного массива
- •1.4.4. Ввод – вывод динамического одномерного массива
- •1.4.5. Суммирование элементов одномерного массива
- •1.4.6. Табуляция значений функции, аргумент которой – одномерный массив
- •1.4.7. Поиск минимального и максимального значений одномерного массива
- •1.4.8. Сортировка значений одномерного массива по возрастанию (убыванию) методом попарного сравнения
- •1.4.9. Сортировка значений одномерного массива по возрастанию (убыванию) методом нахождения минимума (максимума)
- •Нахождения минимума для примера 10.8
- •1.4.10. Перестановка двух элементов массива
- •1.4.11. Вычисление суммы элементов массива
- •1.4.12. Подсчет количества элементов массива, удовлетворяющих заданному условию
- •1.4.13. Вычисление произведения элементов массива
- •1.4.14. Поиск элементов, обладающих заданным свойством
- •1.4.15. Поиск в упорядоченном массиве
- •1.4.16. Поиск минимального и максимального элемента массива и его порядкового номера (индекса)
- •1.4.17. Копирование массивов
- •1.4.18. Формирование нового массива
- •1.4.19. Примеры решения задач по обработке одномерных массивов
- •2. Задание
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Вычисление сумм, количеств и произведений элементов массива
- •2.4.1.1. Условие задания
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Поиск минимального и максимального элементов массива
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример для варианта 30
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Формирование новых массивов
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Обработка упорядоченных массивов
- •2.4.4.1. Условие задания
- •2.4.4.2. Пример для варианта 30
- •2.4.4.3. Программа
- •2.4.4.4. Тестирование
- •2.4.5. Задание 5. Задачи, сводящиеся к обработке одномерных массивов
- •2.4.5.1. Условие задания
- •2.4.5.2. Пример для варианта 30
- •2.4.5.3. Программа
- •2.4.5.4. Тестирование
- •2.4.6. Задание 6. Комбинированные задачи
- •2.4.6.1. Условие задания
- •2.4.6.2. Пример для варианта 30
- •2.4.6.3. Программа
- •2.5.1.2. Пример для варианта 30
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.2. Задание 8. Комбинированные задания
- •2.5.2.1. Условие задания
- •Варианты заданий
- •5. Пример решения задачи (вариант 30)
- •2.5.2.2. Разработка алгоритма.
- •2.5.2.3. Определение переменных программы
- •2.5.2.4. Разработка текста программы
- •2.5.2.5. Программа
- •2.5.2.6. Отладка программы
- •2.5.2.7. Результаты работы программы
- •2.5.3. Задание 9. Комбинированные задания
- •2.5.3.1. Варианты заданий
- •2.5.3.2. Пример программы обработки динамических массивов
- •2.5.3.3. Программа
- •2.5.3.4. Тестирование
- •2.5.4. Задание 10. Вычисления элементов вектора по формуле
- •2.5.4.2. Пример для варианта 30
- •2.5.4.3. Программа
- •2.5.5.4. Тестирование
- •2.5.5. Задание 11. Вычисления сумм и произведений векторов
- •2.5.5.2. Пример для варианта 30
- •2.4.11.3. Программа
- •2.5.5.4. Тестирование
- •2.5.6. Задание 12. Произвольные задачи
- •2.5.6.2. Пример для варианта 30
- •2.5.6.3. Программа
- •2.5.6.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Переменные с индексами и массивы 2
2.5.6.2. Пример для варианта 30
Упорядочить последовательность из N чисел по возрастанию ее элементов.
2.5.6.3. Программа
Программа на языке С++ может иметь следующий вид:
/*Упорядочение чисел по возрастанию */
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#define n 9
int main()
{
int k, i,x;
float a[n],b, c;
// Ввод массива a
for (k=0; k<=n; k++)
{
cout <<"Введите " << k << "-ый элемент массива a: ";
cin >> a[k];
}
// Сортировка массива a по возрастанию
do
{
i = 0;x =0;
for (k=1; k<=n; k++)
{b = a[i]; c = a[k];
if (c < b) {a[i] = c; a[k] = b; x = x + 1;}
i= i + 1;
}
}
while (x>0);
// Вывод отсортированного массива a
for (k=0; k<=n; k++)
{
cout <<"k = " << k << " a[k] = " << a[k] << endl;
}
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
2.5.6.4. Тестирование
3. Выводы
Выполнение этой лабораторной работы должно показать Вам средства языка C++, необходимые программисту для реализации программ с одномерными массивами. Вы должны освоить операторы языка С++, реализующие работу с массивами в программах.
Во время выполнения этой и других работ Вы познакомитесь с другими возможностями языка С++ и выберете для себя некоторый стиль написания программ на языке С++.
Чем активнее Вы будете овладевать возможностями системы программирования на языке С++, тем более легким и эффективным будет для Вас выполнение всего лабораторного практикума.
4. Требование к отчету
В отчете должны быть отображены следующие пункты:
1. Название работы.
2. Цель работы
3. Задание.
4. Краткие теоретические сведения.
5. Листинги семи программ.
6. Таблицы выбора идентификаторов (таблицы кодирования переменных).
7. Результаты выполнения трех программ (скриншоты).
8. Выводы.
5. Вопросы для самоконтроля
1. Понятие и определение массива.
2. Общий вид объявления массива.
3. Что определяется при объявлении массива?
4. Как располагаются массивы в памяти?
5. Что такое динамический массив?
6. Происходит ли обнуление памяти при ее выделении под динамический массив?
7. Можно ли инициализировать динамический массив?
8. Блок-схема и операторы ввода одномерного массива.
9. Блок-схема и операторы вывода одномерного массива.
10. Вычисление суммы всех элементов одномерного массива.
11. Вычисление суммы только тех всех элементов одномерного массива, которые удовлетворяют заданному условию.
12. Вычисление суммы тех элементов массива, которые расположены в массиве на заданных местах.
13. Подсчет количества элементов массива, удовлетворяющих заданным условиям.
14. Подсчет произведения элементов массива, удовлетворяющих заданным условиям.
15. Алгоритм поиска элементов массива, обладающего специальными свойствами.
16. Алгоритм формирования нового массива из элементов заданного массива.
17. Что называется массивом?
18. Что называется размерностью массива?
19. Какие ограничения на значение индекса имеются в языке С++?
20.В чем отличие описания массивов от описания простых переменных?
21. Какая переменная нарывается индексированной?
22. Что называется элементом массива?
23. Чем определяется положение элемента в массиве?
24. Какая наибольшая размерность массивов разрешена в языке С++?
25. Может ли одномерный массив содержать две переменные с одинаковыми индексами?
26. Как определяется значение индекса в случае использования в качестве индекса выражения?
27. Может ли использоваться значение индекса для указания элемента массива, лежащее за пределами нижней и верхней границ граничной пары массива?
28. Можно ли верхнюю и нижнюю границы граничной пары представить выражением?
29. Как (чем) отделяются индексы друг от друга?
30. Можно ли в качестве индексов использовать нулевые и целые отрицательные индексы?
31. В чем заключается смысл применения (введения) массивов?
32. Как указываются индексы у переменных в языке С++?
33. Можно ли использовать в многомерных массивах смешанное (буквенно-цифровое) сочетание индексов?
34. Чему равно максимальное число индексов, допустимое в языке С++?
35. Как осуществляется ввод-вывод массивов?
36. Можно ли в одном операторе описывать массивы и простые переменные?
37. Какое соответствие, с точки зрения расположения в программе, должно выполняться между описанием массива, и первым оператором, в котором эта переменная используется?
38. Что такое массив?
39. Для чего необходимо описание массива?
40. Как объявить одномерный массив? Двумерный массив?
41. Может ли массив содержать разнородные данные?
42. Как получить адрес переменной?
43. Как в языке С++ описываются одномерные массивы?
44. Каковы особенности инициализации массива при его объявлении?
45. Охарактеризуйте операторы new и delete.
46. Что такое динамические массивы?
47. Опишите алгоритмы сортировки массивов методами прямого обмена, вставки и прямого выбора.