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

Некоторый ал¬го¬ритм из одной це¬поч¬ки сим¬во¬лов по¬лу¬ча¬ет новую це¬поч¬ку сле¬ду¬ю¬щим образом. Сна¬ча¬ла вы¬чис¬ля¬ет¬ся длина ис¬ход¬ной це¬поч¬ки символов; если она нечётна, то уда¬ля-ет¬ся пер¬вый сим¬вол цепочки, а если чётна, то в се¬ре¬ди¬ну це¬поч¬ки до¬бав¬ля¬ет¬ся сим¬вол А. В по-лу¬чен¬ной це¬поч¬ке сим¬во¬лов каж¬дая буква за¬ме¬ня¬ет¬ся буквой, сле¬ду¬ю¬щей за ней в рус¬ском ал-фа¬ви¬те (А — на Б, Б — на В и т. д., а Я — на А). По¬лу¬чив¬ша¬я¬ся таким об¬ра¬зом це¬поч¬ка яв¬ля¬ет¬ся ре¬зуль¬та¬том ра¬бо¬ты алгоритма. Например, если ис¬ход¬ной была це¬поч¬ка РУКА, то ре¬зуль¬та¬том ра¬бо¬ты ал¬го¬рит¬ма будет це-поч¬ка СФБЛБ, а если ис¬ход¬ной была це¬поч¬ка СОН, то ре¬зуль¬та¬том ра¬бо¬ты ал¬го¬рит¬ма будет це-поч¬ка ПО.

Дана це¬поч¬ка сим¬во¬лов БРА. Какая це¬поч¬ка сим¬во¬лов получится, если к дан¬ной це¬поч¬ке при¬ме¬нить опи¬сан¬ный ал¬го¬ритм два¬жды (т. е. при¬ме¬нить ал¬го¬ритм к дан¬ной цепочке, а затем к ре¬зуль¬та¬ту вновь при¬ме¬нить алгоритм)? Рус¬ский алфавит: .

Показать ответ
Ответ:
sashokko
sashokko
24.08.2021 15:22
Замечание. Так как количество вводимых чисел заранее не известно, то откроем бесконечный цикл со всегда верным условием True, но как только будет введено число 0, остановим цикл командой break.

Программа:

program z;
var k,s,x:integer;
begin
k:=0;              {начальное значение количества двузначных чисел}
s:=0;              {начальное значение суммы двузначных чисел}
while True do  {открываем бесконечный цикл}
begin
readln(x);        {вводим число х}
if x=0 then break;  {если введенное число равно 0, то остановить цикл}
if (x>9)and(x<100) then  {если число двузначное, т.е. от 10 до 99} 
    begin 
    k:=k+1;         {количество увеличиваем на 1}
    s:=s+x;         {увеличиваем предыдущее значение суммы на число х}
    end;
end;
if k=0 then writeln('NO')  {если двузначных чисел не было, то вывод NO}
   else writeln(s/k);          {иначе вывод ср.арифметического}
end.
0,0(0 оценок)
Ответ:
WolfHunter1
WolfHunter1
24.08.2021 15:22
Program aaa;
type   
   t=array[1..30] of integer;
var   
   a:t;   
   i,h,max,max1,y:integer;   
   q,c:real;
procedure chet(a:t);   
   var     
      i,z:integer;   
   begin     
      z:=0;     
      for i:=1 to 30 do         
      if(odd(a[i])=false) then inc(z);     
      writeln(z);   
   end;
begin   
   for i:=1 to 30 do     
      read(a[i]);   
   //1   
   chet(a);   
   //2   
   h:=0;   
   c:=0;   
   for i:=1 to 30 do     
      if((a[i] mod 3 = 0) and (a[i] mod 9 <> 0) and (a[i]>9) and (a[i]<100)) then begin                 inc(h);     
         c:=c+a[i];   
      end;   
   if(h=0) then writeln(-1)     
    else writeln(c/h);   
   //3   
   h:=0;   
   max:=0;   
   for i:=1 to 30 do begin     
      if((odd(a[i])=false) and (y=0)) then begin           
         h:=i;           
         y:=1;           
         continue;     
      end;     
      if((y>0) and ((odd(a[i])=false))) then          
         inc(y)       
       else         
        if(y>max) then begin           
           max:=y;           
           max1:=h;           
           y:=0;         
       end           
        else y:=0;   
   end;   
   for i:=max1 to max+max1-1 do     
      write(a[i],' ');   
   writeln;   
   //4   
   readln(h);   
   y:=a[h];   
   for  i:=h to 29 do     
      a[i]:=a[i+1];   
   for i:=1 to 29 do     
      write(a[i],' ');   
   for i:=29 downto h do     
      a[i+1]:=a[i];   
   a[h]:=y;   
   writeln;   
   //5   
   max:=0;   
   max1:=0;   
   for i:=1 to 30 do begin     
      if(a[i]>max) then begin         
         max1:=max;         
         max:=a[i];     
      end;     
      if((a[i]>max1) and (a[i]<max)) then          
         max1:=a[i];   
   end;   
   writeln(max1);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота