Паскаль: Дан массив x [1..5, 1..8], Поменять местами элементы столбцов с номерами i и j (первый элемент столбца i с первым элементом столбца j, второй – со вторым и так далее
Ошибка 1. Объявлен массив с типом данных значений string, хотя нужно заполнять массив целыми числами, а потом находить их сумму. Необходимо заменить тип string на integer.
Ошибка 2. Цикл не выполнится ни один раз, т.к. неправильно задан параметр. Необходимо либо написать конструкцию так: For i:=n downto 1 do , либо For i:=1 to n do .
// PascalABC.Net
// Первая программа, если необходимо выбрать нечетные элементы и их отсортировать.
begin
var a := ArrRandom(10);
writeln('Исходный массив: ');
a.PrintLn(', ');
writeln('Отсортированный массив нечетных элементов: ');
a.Where(e -> e mod 2 <> 0).OrderBy(e -> e).Print(', ');
end.
// Вторая программа, если необходимо в исходном массиве отсортировать нечетные значения
begin
var a := ArrRandom(10);
writeln('Исходный массив: ');
a.PrintLn(', ');
writeln('Отсортированный массив нечетных элементов: ');
var odd := a.Select((e, i) -> (i, e)).Where(e -> e[1] mod 2 <> 0).OrderBy(e -> e[1]);
var sortedOdd := odd.Zip(odd.Select(e -> e[0]).OrderBy(e -> e), (f, s) -> (s, f[1]));
foreach var e in sortedOdd do
a[e[0]] := e[1];
a.PrintLn(', ');
end.
Ошибка 1. Объявлен массив с типом данных значений string, хотя нужно заполнять массив целыми числами, а потом находить их сумму. Необходимо заменить тип string на integer.
Ошибка 2. Цикл не выполнится ни один раз, т.к. неправильно задан параметр. Необходимо либо написать конструкцию так: For i:=n downto 1 do , либо For i:=1 to n do .
Исправленный код:
Program summa;
Var a: array[1..100] of integer;
i, n: integer;
s: integer;
Begin
Write ('n='); Readln (n);
For i:=1 to n do
begin
write ('введите число');
readln (a[i]);
s:=s+a[i];
end;
writeln('сумма элементов равна ',s);
End.