В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
denisskidan201
denisskidan201
08.04.2021 01:41 •  Информатика

Машина Поста Даны два числа, разделенных пробелом. Стереть наибольшее из этих чисел. Каретка стоит между этими числами.

Показать ответ
Ответ:
MiraQeen
MiraQeen
29.04.2021 00:43
Var a:array of array of integer;
c:array of array of integer;
ma:array of array of integer;
i,j,n:integer;
begin;
randomize;
readln(n);
setlength(a,n+1); //задаём размерность динамических массивов
setlength(c,n+1);
setlength(ma,n+1);
for i:=1 to n do
begin;
setlength(a[i],n+1);
setlength(c[i],n+1);
setlength(ma[i],n+1);
end;

writeln('Matrix A:');   //генерируем массив псеводслучайных чисел
for i:=1 to n do begin;
 writeln;
  for j:=1 to n do
   begin;
    a[i,j]:=random(10);
    write(a[i,j]:4);
   end;
 end;
writeln;

writeln('Matrix C:'); //аналогично
for i:=1 to n do
 begin;
 writeln;
  for j:=1 to n do
   begin;
    c[i,j]:=random(10);
    write(c[i,j]:4);
   end;
 end;

for i:=1 to n do     //сохраняем матрицу C для транспонации
  for j:=1 to n do
    ma[i,j]:=c[i,j];
    writeln;

writeln('Transpose matrix C:'); //транспонируем C
for i:=1 to n do
 begin;
  writeln;
   for j:=1 to n do
    begin;
     c[i,j]:=ma[j,i];
     write(c[i,j]:4);
    end;
 end;

writeln;
writeln('Final matrix:'); // получаем финальную матрицу
for i:=1 to n do
 begin;
  writeln;
   for j:=1 to n do
    begin;
     ma[i,j]:=2*c[i,j]*a[i,j];
{по свойству дистрибутивности матриц С(A+A)=C*A+C*A=2*C*A}
     write(ma[i,j]:4);
    end;
 end;
end.
0,0(0 оценок)
Ответ:
Kurlyk111
Kurlyk111
11.10.2020 09:35
Общее решение, позволяющее удалять из строк любой "мусор"

// PascalABC.Net 3.0, сборка 1066
procedure CheckString(var s:string; var n:integer);
var
  i:integer;
begin
  i:=Length(s);
  while i>0 do begin
    if not(s[i] in ['a'..'z']) then Delete(s,i,1);
    Dec(i)
  end;
  n:=Length(s)
end;

var
  s1,s2:string;
  i,p,n1,n2:integer;
begin
  Write('Введите первую строку: '); Readln(s1);
  CheckString(s1,n1);
  if n1=0 then Writeln('Введенная строка не содержит допустимых символов')
  else begin
    Write('Введите вторую строку: '); Readln(s2);
    CheckString(s2,n2);
    if n2=0 then Writeln('Введенная строка не содержит допустимых символов')
    else
      { теперь обе строки содержат только маленькие латинские буквы }
      if n1=n2 then begin
        for i:=1 to n1 do begin
          p:=Pos(s1[i],s2);
          if p=0 then Break
          else Delete(s2,p,1)
          end;
        if Length(s2)=0 then Writeln('Решение имеется')
        else Writeln('Решения нет')
        end
      else
        Writeln('Решения нет');
    end
end.

Тестовое решение:
Введите первую строку: this is my own deal!
Введите вторую строку: Тест: *is  now=l2ead  my   sthi?
Решение имеется

Также имеется современное решение, которому пока что в школах не учат:
// PascalABC.Net 3.0, сборка 1066
begin
  var s1:=ReadString('Введите первую строку: ').Where(x->x in ['a'..'z']);
  if s1.Count=0 then
    Writeln('Введенная строка не содержит допустимых символов')
  else begin
    var s2:=ReadString('Введите вторую строку: ').Where(x->x in ['a'..'z']);
    if s2.Count=0 then
      Writeln('Введенная строка не содержит допустимых символов')
    else
      if s1.Except(s2).Count>0 then Writeln('Решения нет')
      else Writeln('Решение имеется')
    end
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота