iburejko7
?>

Исполнитель умеет: 1.умножать число на 2 2. увеличивать число на 1 составить для этого исполнителя алгоритм получения числа 100 из единицы за минимальное число шаров.ответ записать последовательностью команд.

Информатика

Ответы

appmicom
12111211 по-моему короче нельзя)
beyound2006193
Вариант для тех, кто любит и понимает множества.
const
  cs='бвгджз';
var
  s:string;
  i:integer;
  c:char;
  p,csg:set of char;
begin
  Writeln('Введите текст, разделяя слова запятыми, в конце поставьте точку');
  Readln(s);
  p:=[];
  for i:=1 to Length(cs) do Include(csg,cs[i]); { инициализация множества }
  s:=LowerCase(s); { приведение к нижнему регистру }
  i:=1; c:=s[1];
  while c<>'.' do begin
    { обработка нечетного слова }
    while not (c in [',','.']) do begin
      if (c in csg) and not (c in p) then Include(p,c);
      i:=i+1;
      c:=s[i]
    end;
    { обработка четного слова }
    if c<>'.' then begin i:=i+1; c:=s[i] end;
    while not(c in [',','.']) do begin
      if (c in csg) and (c in p) then Exclude(p,c);
      i:=i+1;
      c:=s[i]
    end;
    if c<>'.' then begin i:=i+1; c:=s[i] end
  end;
  s:='';
  for i:=1 to Length(cs) do if cs[i] in p then Write(cs[i])
end.

Тестовое решение:
Введите текст, разделяя слова запятыми, в конце поставьте точку
Это,пример,текста,созданного,для,проверки,программы.
гд

Вариант для тех, кто с множествами не дружит:
const
  cs='бвгджз';
var
  s,p:string;
  i,n:integer;
  c:char;
begin
  Writeln('Введите текст, разделяя слова запятыми, в конце поставьте точку');
  Readln(s);
  p:=''; n:=Length(cs);
  s:=LowerCase(s); { приведение к нижнему регистру }
  i:=1; c:=s[1];
  while c<>'.' do begin
    { обработка нечетного слова }
    while (c<>',') and (c<>'.') do begin
      if (Pos(c,cs)>0) and (Pos(c,p)=0) then p:=p+c;
      i:=i+1;
      c:=s[i]
    end;
    { обработка четного слова }
    if c<>'.' then begin i:=i+1; c:=s[i] end;
    while (c<>',') and (c<>'.') do begin
      if (Pos(c,cs)>0) and (Pos(c,p)=1) then p[Pos(c,p)]:='*';
      i:=i+1;
      c:=s[i]
    end;
    if c<>'.' then begin i:=i+1; c:=s[i] end
  end;
  for i:=1 to Length(cs) do if Pos(cs[i],p)>0 then Write(cs[i])
end.

Тестовое решение:
Введите текст, разделяя слова запятыми, в конце поставьте точку
Данная,фраза,предлагается,для,тестирования.
вг
YelenaZOLTANOVICh105

16 секунд Петр качал файл в гордом одиночестве. Скорость закачки равнялась 24 Мбайт/сек. За это время он скачал 16 сек * 24 МБайт/сек = 384 Мбайт.

Затем подключился Василий, и они стали 32 секунды вдвоем делить канал: 32 сек * 24/2 Мбайт/сек = 32*12 = 384 Мбайт.

Таким образом, за 48 уже рассмотренных секунд Петр скачал 384 Мбайт + 384 Мбайт = 768 Мбайт. Ему осталось скачать 1792 Мбайт - 768 Мбайт = 1024 Мбайт.

Оставшееся время канал был занят тремя людьми, следовательно пропускная на каждого стала равна 24/3 = 8 МБайт/сек.

И эти 1024 Мбайт / 8 МБайт/сек = 128 сек.

Сложим все время: 16 сек + 32 сек + 128 сек = 176 сек или 2 мин 56 сек.

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

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

Исполнитель умеет: 1.умножать число на 2 2. увеличивать число на 1 составить для этого исполнителя алгоритм получения числа 100 из единицы за минимальное число шаров.ответ записать последовательностью команд.
Ваше имя (никнейм)*
Email*
Комментарий*

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

Anatolevich667
notka19746
tarhan1221
shilinmikhaillg
svetarakityanskaya
lider-mpl550
annakuznetsova841
Amulenkov
Nikolai710
aci2003
Lolira64
Ignateva737
yurievaalxndra55
Mbkozlov6
energycomplect5914