info8
?>

Задание 5. Циклы.По каналу связи передается последовательность положительных целых чисел, все числа не превышают 500, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число, которое можно получить умножением двух различных элементов последовательности.Напишите программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение. Сюда нужно вставить ссылку на Вашу программу, написанную в любом онлайн редакторе кода языка Python с расширением .py Обращаю внимание! Каждая строка программы должна быть прокомментирована.

Информатика

Ответы

vipppp19743355
Общее решение, позволяющее удалять из строк любой "мусор"

// 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.
marat-dzhanibekov
Преобразуем условие в более понятное.
Обозначаем:
a=Пер­вая буква со­глас­ная;
b=Вто­рая буква со­глас­ная
c=Тре­тья буква глас­ная
Тогда условие можно записать следующим образом:
\lnot(a \land b) \land \lnot c=\overline{a\cdot b}\cdot\overline c=(\overline a+\overline b)\overline c
Перейдем к исходным обозначениям, учтя, что отрицание "гласная" есть "согласная", а отрицание "согласная" есть "гласная":
(Пер­вая буква глас­ная ИЛИ Вто­рая буква глас­ная) И Тре­тья буква согласная.
Можно сформулировать еще короче:
"Пер­вая ИЛИ вторая буква глас­ная, а третья обязательно согласная".
Этому условию удовлетворяет только имя 4) Лидия - в нем вторая буква гласная, а третья согласная.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задание 5. Циклы.По каналу связи передается последовательность положительных целых чисел, все числа не превышают 500, их количество заранее неизвестно. Каждое число передается отдельно. Признаком конца передаваемой последовательности является число 0. После числа 0 передается контрольное значение – наибольшее число, которое можно получить умножением двух различных элементов последовательности.Напишите программу, которая получает последовательность чисел и следующие за ней признак конца и контрольное значение. Сюда нужно вставить ссылку на Вашу программу, написанную в любом онлайн редакторе кода языка Python с расширением .py Обращаю внимание! Каждая строка программы должна быть прокомментирована.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

alfastore4
Сурат1199
Freelifecool797
fil-vasilij90
baltgold-m27
Катерина Телюкин925
ooo-helpvet44
Лилин1079
verkop9
Sadikova Gavrikov
zakupka-marion
axo-geo
voropayelena26
meu72
andrew55588201824