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

Сделайте из Рандома, ввод с клавиатуры : const n=10;
var a:array[1..n] of integer;
kk,k,
i,{начало максимального количества 0}
i1,
d,{максимальное количество 0}
d1,
max:integer;
sk:integer;{колчество последовательностей с максимальным количеством 0}
f:boolean;
begin
randomize;
sk:=1;
i:=0;d:=0;i1:=0;d1:=1;
a[1]:=random(51);
max:=a[1];
write(a[1],' ');
if a[1]=0 then begin i1:=1;d1:=1 end;
for k:=2 to n do
begin
kk:=random(2);
if odd(kk) then a[k]:=0
else a[k]:=random(51);
write(a[k],' ');
if a[k]>max then max:=a[k];
if a[k]=0
then
if a[k-1]=0 then inc(d1)
else begin
if d1=d then inc(sk);
if d1>d then begin d:=d1;i:=i1;sk:=1 end;
d1:=1;
i1:=k;
end
end;
if d1=d then inc(sk);
if d1>d then begin d:=d1;i:=i1;sk:=1 end;
writeln;
writeln('максимальное количество нулей ',d);
writeln('количество последовательностей, содержащее максимальное количество нулей ',sk);
writeln('первая позиция вхождения максимального количества нулей ',i);
writeln('максимальный элемент ',max);
k:=i;
while k<=n do
begin
d1:=0;
i1:=k;
kk:=k;
while (kk<=n)and(a[kk]=0)and(sk>0) do begin inc(d1);inc(kk) end;
if d1=d then
begin
for k:=i1 to i1+d-1 do a[k]:=max;
dec(sk)
end;
inc(k)
end;
for k:=1 to n do write(a[k],' ') ;
readln;
end.

Показать ответ
Ответ:
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-бота