Программист написал программу суммирования элементов массива, но допустил в ней ошибку. 1) Что получится в результате выполнения этой программы, если в качестве элементов массива ввести числа: 1, -2, 3, -4, 5, -6, 7, -8, 9, -10?
2) Придумайте пример такого массива, обработка которого с этой программы приводила бы к правильному результату.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016 // Внимание! Если программа не работает, обновите версию!
begin var dig:=['0'..'9']; var glas:=['a','e','i','o','u','y']; var sogl:set of char:=['a'..'z']-glas; var alpha:='0123456789'; var n:=ReadInteger('Количество символов:'); var a:=SeqRandom(n,1,36).Select(k->alpha[k]).ToArray; a.Println; a.Where(c->c in glas).Concat(a.Where(c->c in dig)).ToArray. Concat(a.Where(c->c in sogl)).Println end.
Пример Количество символов: 50 xkdh00nhw8qr32cgcxiwm8ewbnqagmiquew3e6bc7rs2a05ids ieaiueeai008328367205
Var i:integer;M:array[1..10]of integer;A,F:real;B,C:integer;begin writeln('Введите элементы массива: ');for i:=1 to 10 doreadln(M[i]); //основной массивA:=0; //сумма от.элементовif M[i] < 0 then A:=A+M[i];writeln('Сумма отрицательных элементов массива: ',A);B:=0; //кол-во чётных элементов массиваif M[i] mod 2 = 0 then B:=B+1;writeln('Количество чётных элементов массива: ',B);i:=1;if(M[i]>0)theni:=i+1; C:=i;writeln('Номер первого положительного элемента массива: ',C);F:=C+((A+B)/(10-C+A));writeln('Значение формулы: ',F);end.
1) 55
2) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
3) s := s + i
Объяснение:
1) Результат программы не зависит от вводимых элементов
2) Если ввести элементы массива равные их индексам, то результат будет верным
3) s := s + i - суммируются не вводимые элементы, а индексы массива, нужно s := s + a[i] - тогда будут суммироваться элементы