Академический Документы
Профессиональный Документы
Культура Документы
Электротехнический факультет
Дисциплина
«Основы программирования»
3.
2 Решение задачи 1
2.2 Проектирование
Начало
N = 10
i = 0; i < N; i++
Ввод A[i]
j = -1
i = 0; i < N; i++
Нет
A[i] > 0
Да
j=i
i = 0; i <= j; i++
s += abs(A[i])
Вывод s
Конец
В начале алгоритма выполняется цикл, в котором производится ввод
значений элементов массива. Далее, значением –1 инициализируется
переменная j, в которой уже в новом цикле вычисляется индекс последнего
положительного элемента массива. После выполнения этого цикла,
значением 0 инициализируется переменная s, в которой будет вычисляться
сумма модулей элементов массива, расположенных до последнего
положительного элемента. Данная сумма вычисляется в третьем по счёту
циклу по элементам до j, который не будет выполнен ни разу, если в
процессе выполнения предыдущего цикла не было найдено ни одного
положительного элемента, т.е. j = –1. Когда сумма вычислена, она выводится
на экран, после чего алгоритм завершается.
2.3 Реализация
#include <iostream>
int main()
{
setlocale(LC_ALL, "Russian");
const int N = 10;
int A[N];
cout << "Введите элементы массива из " << N << " элементов" << endl;
for (int i = 0; i < N; i++)
{
cout << "A[" << i << "] = ";
cin >> A[i];
}
int j = -1;
for (int i = 0; i < N; i++)
if (A[i] > 0)
j = i;
int s = 0;
for (int i = 0; i <= j; i++)
s += abs(A[i]);
cout << "Сумма модулей элементов, расположенных до последнего положительного: " << s
<< endl;
system("Pause");
return 0;
}
2.4 Тестирование
3 Решение задачи 2
3.2 Проектирование
Начало 1
N = 10 Вывод a_max
A[i][j] = rand() %
201 - 100
i = 0; i < N; i++
Вывод A[i][j]
Вывод Y[i]
i = 0; i < N; i++
Y[i] = A[i][i] 1
Вывод Y[i]
Нет
Y[i] > a_max
Да
a_max = Y[i]
В начале алгоритма случайными целыми числами в интервале от –100
до 100 заполняется двумерный массив A размера 10 на 10 элементов и
выводится на экран. Далее, из элементов главной диагонали этой матрицы
заполняется одномерный массив Y. В процессе заполнения массива
вычисляется максимальный массив. После заполнения массива, все его
элементы делятся на значение максимального элемента и полученные
значения выводятся на экран. На этом алгоритм завершается.
3.3 Реализация
#include <iostream>
#include <ctime>
#include <iomanip>
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
cout << "Матрица A размера " << N << "x" << N << " элементов" << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
A[i][j] = rand() % 201 - 100;
cout << setw(5) << A[i][j];
}
cout << endl;
}
cout << endl << "Значение максимального элемента массива: " << a_max << endl;
system("Pause");
return 0;
}
3.4 Тестирование
Заключение