
- •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
1.4.6. Табуляция значений функции, аргумент которой – одномерный массив
Пример 10.6
Составить программу, в которой необходимо вычислить и вывести на печать в виде массива значения функции
где х =1,5; 2,6; 4,78; 5,02; 6,34; 7,12; 8,96; 9,51; 10,03; 11,15.
Результат вычислений записать как десятичные числа с фиксированной точкой и четырьмя цифрами после запятой.
Программа на С++ может иметь вид:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#define n 9
int main()
{
int i;
float x[n],y[n];
// Ввод массива x
for (i=0; i<=n; i++)
{
cout <<"Введите " << i << "-ый элемент массива x: ";
cin >> x[i];
}
// Формирование массива y и вывод массивов x и y
cout <<"Массивы x и y: " << endl;
for (i=0; i<=n; i++)
{
y[i] = x[i] * tan(x[i]/2) + 2*log(fabs(x[i]/2));
cout << " i = " << i << " x[i] = " << x[i] << " y[i] = " << y[i] << endl;
}
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
Пример 10.7
Одномерный массив С целых трехзначных десятичных чисел содержит 64 элемента, просуммировать элементы 1, 4, 9, 16, 25, 36, 49, 64 этого массива и выдать результат на печать, отступив от края экрана на пять позиций.
Программа на С++ может иметь вид:
#include <stdio.h>
#define n 64
int main()
{
int i;
int с[n];
float s;
// Ввод массива
for (i=0; i<n; i++)
{ cout <<"Введите " << i << " элемент массива x= ";
cin x[i];
}
s=0;
for (i=1; i<=8; i++) s = s + c[i*i];
cout <<" s = " << s << endl";
getch();
return 0;
}
1.4.7. Поиск минимального и максимального значений одномерного массива
Пример 10.8 Дан массив А из 20 чисел. Составить программу, которая обеспечивает выборку и печать минимального и максимального значений элементов данного массива с указанием порядковых номеров этих элементов в массиве.
Нахождение наибольшего max и наименьшего min значений элементов массива A с порядковыми номерами nmax и nmin, соответственно, выполняется в цикле. Для этого значения текущего (i-го) элемента массива сравниваются с наибольшим или наименьшим из всех предыдущих значений элементов массива. Если значение текущего элемента окажется больше наибольшего из предыдущих значений элементов, то его надо считать новым наибольшим значением. В противном случае наибольшее значение остается прежним. Сказанное можно описать условной математической формулой
для i =1, 2, …,n.
Аналогично для наименьшего значения
Для того, чтобы реализовать в цикле формулы (10.1) и (10.2) необходимо задать начальное значение amax и amin. Обычно поступают следующим образом. До первого выполнения цикла (до первой реализации формул (10.1) и (10.2) ) в качестве максимального (минимального) значения принимают значение первого элемента массиве max = a1 (min = a1), а в качестве порядкового номера максимального (минимального) элемента принимают первый элемент nmax = 1 (nmin = 1). Затем в цикле реализуются формулы (10.1) и (10.2).
Блок-схема алгоритма решения рассматриваемого примера представлена на рис. 10.3.
Рис. 10.3. Блок-схема алгоритма примера 8.6
Программа на C++ может иметь следующий вид:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#define n 19
int main()
{
int i, nmin, nmax;
float c[n],max, min;
// Ввод массива c
for (i=0; i<=n; i++)
{
cout <<"Введите " << i << "-ый элемент массива c: ";
cin >> c[i];
}
max = c[0]; min = c[0]; nmax =0; nmin = 0;
// Поиск максимального и минимального элементов
for (i=1; i<=n; i++)
{
if (c[i] < min) {min = c[i]; nmin = i;}
if (c[i] > max) {max = c[i]; nmax = i;}
}
cout <<"Максимальный элемент: " << nmax << " Значение: "<< max << endl;
cout <<"Мшнимальный элемент: " << nmin << " Значение: "<< min << endl;
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}