Информатика, опубликовано 2018-08-22 22:25:09 by Гость

Паскаль!! помогите надо сделать типо введите кнопку y это завершение программы а если ввели z то продолжение, как сделать вот пример readln (c); until c in [Z,z,Y,y]; if c in [Y,y] then halt; //остановка программы как мне написать слово продолжить где halt

Ответ оставил Гость

//Данная программа вычисляет детерминант матрицы
//PascalABC.NET 3.2 сборка 1318


    Var
  c:char;
  Reci:array of integer;
  ma:array of array of integer;
  n,nc,ip:integer;
  resf:real;

  function minor(ip,i,n:integer; var reci:array of integer):real;
  Var
    ic,j,c,ipp,icc:integer;
    res:real;
    b:boolean;
    arf:array[1..4] of integer;
  begin
  b:=true;
  c:=0;
  reci[ip]:=i;
  ipp:=ip+1;
  if ipp=nc-1 then
  begin
    for ic:=1 to n do
      begin
        for j:=1 to ip do
          if ic=reci[j] then
  b:=false;
          if b=true then
           begin
            inc(c);
            arf[c]:=ma[ipp,ic];
           end;
         b:=true;
        end;
       inc(ipp);
       for ic:=1 to n do
      begin
        for j:=1 to ip do
          if ic=reci[j] then
  b:=false;
          if b=true then
           begin
            inc(c);
            arf[c]:=ma[ipp,ic];
           end;
         b:=true;
        end;
       minor:=arf[1]*arf[4]-arf[2]*arf[3];
      end
      else
  begin
      for ic:=1 to n do
      begin
        for j:=1 to ip do
          if ic=reci[j] then b:=false;
         if b=true then
            res+=ma[ipp,ic]*power(-1,ipp+i)*minor(ipp,ic,n,reci);
           b:=true;
         end;
    minor:=res;
   end;
end;

procedure start();
Var
  i,j:integer;
begin
  write(Введите количество строк и столбцов:);
  readln(n);
  ip:=1;
  nc:=n;
  setlength(Reci,n+1);
  setlength(ma,n+1);
  for i:=1 to n do
  setlength(ma[i],n+1);
  writeln(Введите матрицу:);
  for i:=1 to n do
    for j:=1 to n do
      readln(ma[i][j]);
  for i:=1 to n do
    resf+=ma[ip][i]*power(-1,ip+i)*minor(ip,i,n,reci);
  writeln(Res:,resf);
end;

begin
repeat
readln(c);
until c in [Z,z,Y,y];
if c in [Y,y] then halt else start();
end.

Пример работы программы:
3 //введено ни z, ни y, повторяем ввод
z //продолжаем программу
Введите количество строк и столбцов:3
Введите матрицу:
9
1
2
8
3
7
4
6
5
Res:-183

Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.

Форма вопроса доступна на полной версии этой страницы.