I. Внешняя спецификация
1. Условие задачи
Разработать алгоритм и программу нисходящим способом, предполагая заданной матрицу А из 5 строк и 5 столбцов или одномерные массивы указанной длины.
- Если в последовательности С1, С2, …, С5 имеются равные элементы, изменить значения всех ее элементов по правилу:
Ci:=Ci+Aii.
2. Состав данных
3. Форма ввода
4. Выходная форма
5. / 6. Проработка фрагментов программы
Значение суммы соответствующих элементов двух массивов существует для любых вещественных чисел. Сравнение также можно выполнить для любой пары вещественных чисел.
Проверки дополнительных условий для указанных действий не требуется.
Для считывания строк данных и перевода их в массивы чисел определена функция.
Полученный в результате массив содержит исходные данные и дополнительное числовое значение:
- оно равно 0, если все значения корректны,
- равно 1, если обнаружены нечисловые значения.
function st2ar(a:string; n:integer): ReArr;
var k: integer;
var x: real;
var ka: string;
begin
st2ar[n]:=0;
for k:=1 to n do
begin
if k=n then ka:=a else
ka:=copy(a,1,pos(' ',a)-1);
val(ka,x); delete(a,1,pos(' ',a));
if ((x<>0) or ((x=0) and (ka='0'))) then
st2ar[k-1]:=x
else
begin
st2ar[n]:=1; break;
end;
end;
end;
7. Аномалии
Ошибки программы возможны при некорректном вводе данных пользователем.
Сообщение о некорректности данных выдается программой в случае обнаружения нечисловых значений.
8. Тесты
1) с положительным результатом
0.5 0.8 0.6 0.6 0.7
-8.1 8.2 -6.6 0.97 3.8
0.028 3.8 -9.8 9.9 -1.8
-4.4 -1.8 0.79 4.1 9.2
8.3 -1.1 3.3 9.2 -4.4
6.0 2.3 9.2 8.0 8.4
0.9 0.2 0.4 0.5 0.1
7.6 6.8 -0.73 5.2 0.79
3.7 -8.3 -2.3 -6.2 9.3
4.1 5.4 -2.8 -2.0 4.4
-7.0 -7.7 9.1 3.5 8.2
-4.9 2.8 -0.90 4.7 0.60
2) с отрицательным результатом
5.1 -2.9 1.1 0.7 1.1
-12.3 7.8 -4.2 0.1 -2.8
0.4 A -11.2 -5.9 1.1
3.4 7.8 S -9.1 12.2
3.3 -8.1 -3.3 5.2 4.74
6.5 -2.3 -1.2 3.0 7.4
No comments:
Post a Comment