Не совсем понял смысл, но вот:
procedure TForm1.Button1Click(Sender: TObject);
var
i, s: integer;
begin
for i := 0 to (StrToInt(Edit1.Text) - 1) do
begin
if (s > StrToInt(Edit2.Text)) then break;
s := s + StrToInt(Memo1.Lines[i]);
end;
Memo2.Text := IntToStr(s);
end;
Эта штука суммирует числа из Memo1 (числа в строках), пока количество суммируемых не превысит N, либо их сумма не превысит M, либо числа не кончатся
Program n1;
var r: real;
begin
writeln('введите ребро куба');
readln(r);
writeln('S грани =',sqr(r));
writeln('S полной поверхности =',sqr(r)*6);
writeln('V куба =',r*r*r);
end.
if M[a, 4+1-a] < M[min, min]
then min := M[a, 4+1-a]
- у тебя в матрице рандомные числа максимум до 10, ты назначаешь их в min и max, а потом эти min и max пытаешься использовать как индексы.
Заведи отдельные переменные для сохранения индексов, например imin и imax и пользуйся ими, например как-то так:
for a := 1 to 4 do
if M[a, 4+1-a] < M[imin, imin]
then begin
min := M[a, 4+1-a];
imin := a;
end
По поводу параметра цикла не уверен, возможно в Pascal.ABC есть какие-то особенности по сравнению с обычным паскалем. Нашел вот такое:
"Описание параметра цикла for в заголовке цикла соблюдает принцип локальности: переменная описывается в том месте, где она впервые понадобилась
begin
for i: integer := 1 to 9 do
write(i,' ');
// Здесь переменная i не доступна!
for var i := 9 downto 1 do // описание с автоопределением типа
write(i,' ');
end."