Thursday, January 2, 2020

ЛР7 Программирование (1.4.2 В22) - I

LabWork7
I. Внешняя спецификация
1. Условие задачи
Разработать алгоритм и программу обработки одномерных массивов, используя единственный цикл:
  • при заданных X1,X2,...,XN и Y1,Y2,...YN получить массив T1,T2,...,TN, элементы которого получают значения по правилу Ti=max(Xi,Yi), и подсчитать, сколько элементов Ti получило значения Xi.

2. Состав данных
Тип
Имя
Смысл
Структура
Исходные данные
символ
SX
строка для считывания элементов массива Х, разделенных пробелом
строка
символ
SY
строка для считывания элементов массива Y, разделенных пробелом
строка
целый
N
количество элементов
простая переменная
Выходные данные
вещественный
T
массив элементов, сформированный по правилу: Ti=max(Xi,Yi)
одномерный массив
целый
M
количество элементов массива X, включенных в состав массива T
простая переменная
Промежуточные данные
целый
i
номер элемента массива
простая переменная
вещественный
X
массив данных
одномерный массив
вещественный
Y
массив данных
одномерный массив

3. Форма ввода
1 3
<N>
1 N*6-1
<X1 X2 ... XN >
1 N*6-1
<Y1 Y2 ... YN >

4. Выходная форма
1 3
<N>
1 N*6-1
<X1 X2 ... XN >
1 N*6-1
<Y1 Y2 ... YN >
1 5
<T1 >

...
1 5
<TN >
1 3
<M>

5. / 6. Проработка фрагментов программы
Значение максимума соответствующих элементов двух массивов существует для любых вещественных чисел.
Проверка дополнительных условий требуется только при вводе некорректных данных пользователем.

if ((X[i-1]<>0) and (Y[i-1]<>0)) or ((X[i-1]=0) and (SX[1]='0')) or ((Y[i-1]=0) and (SY[1]='0')) then

Данная строка программы проверяет, является ли нулевым очередной элемент массива X или Y. Если элемент в исходном массиве был ненулевой, а считанное значение равно нулю, то данные были введены некорректно.
Задача решена при условии ввода массива одной строкой.

7. Аномалии
Ошибки программы возможны при некорректном вводе данных пользователем.
Сообщение об ошибке выдается программой в случае невыполнения указанного условия.

8. Тесты
1) с положительным результатом

10
0.86 -13.29 44.56 10.19 -38.8 35.38 -41.66 38.75 -1.73 -40.66
-19.52 -31.89 6.07 32.04 32.16 39.84 -29.39 6.35 45.79 -43.54

2) с отрицательным результатом

8
29.94, 5.36 -46.24  -10.96  
5.96  -19.75 a


No comments:

Post a Comment