Ну, без понятия на каком языке писать - задача не решаема.
Однако, на "метаязыке":
задать массив МАТРИЦА[5,5];
получить ввод в ВВОД;
если ВВОД = 's', то {
СУММА = 0;
X = 1;
продолжать, пока X <= 5 {
СУММА = СУММА + МАТРИЦА[X,X];
X = X + 1;
}
вывести СУММА;
} иначе, если ВВОД равен 'a' или 'b' или 'c', то {
X = 1;
продолжать, пока X <= 5 {
СреднАрифм = 0;
Y = 1;
продолжать, пока Y <= 5 {
СреднАрифм = СреднАрифм + МАТРИЦА[X,Y];
Y = Y + 1;
}
вывести СреднАрифм / 5;
X = X + 1;
}
} иначе, если ВВОД = 'm', то {
МИНИМУМ = МАТРИЦА[1,1];
МАКСИМУМ = МАТРИЦА[1,1];
X = 1;
продолжать, пока X <= 5 {
Y = 1;
продолжать, пока Y <= 5 {
если МАТРИЦА[X,Y] < МИНИМУМ то МИНИМУМ = МАТРИЦА[X,Y];
если МАТРИЦА[X,Y] > МАКСИМУМ то МАКСИМУМ = МАТРИЦА[X,Y];
Y = Y + 1;
}
}
вывести МИНИМУМ;
вывести МАКСИМУМ;
}
1) описание массива должно быть константным, запись n+20 - переменная. Изменить: задать n+20 в виде константы.
2) будет куча ошибок
а) i: Byte - есть декларация, но нет инициализации перед использованием, вероятно, будут ошибки при попытке использования как индекс массива. (не совсем уверен, возможно разные среды могут проводить автоинициализацию в ноль, в таком случае тоже будет ошибка, но уже из-за несуществующего индекса массива)
б) нет декларации переменной C, хотя она используется (If C[i] Mod 10=0 Then p:=p+1;)
var x, y, n, m: integer;
Readln(x, y, n, m);
Assert((x > 0) and (y > 0) and (n > 0) and (m > 0));
var upstep: integer := n + y;
for var i := 2 to m do
upstep *= (n + y);
var lowstep := x;
for var j := 2 to upstep do
lowstep *= x;
Writeln(lowstep);
end.