М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации

Дан целочисленный массив размера n. преобразовать массив, увеличив его последнюю серию наибольшей длины на один элемент. паскаль

👇
Ответ:
gabbasovilas
gabbasovilas
01.08.2020
Type
  V = array of integer;

var
  i, n, ic, nc, kc, imax, nmax, kmax: integer;
  a: V;

begin
  write('Введите количество чисел N ');
  readln(n);
  SetLength(a, n + 1);
  writeln('Вводите числа');
  for i := 0 to n - 1 do read(a[i]);
  writeln;
  nmax := -32768;
  kmax := 0;
  imax := 0;
  nc := a[0];
  kc := 1;
  ic := 1;
  for i := 1 to n - 1 do
  begin
    if a[i] = nc then kc := kc + 1
    else begin
      if kc < 3 then begin
        kc := 1;
        nc := a[i];
        ic := i
      end
      else
      if kmax <= kc then begin
        kmax := kc;
        nmax := nc;
        imax := ic;
        kc:=1;
        nc:=a[i];
        ic:=i
      end
      else begin
        kc := 1;
        nc := a[i];
        ic := i
      end
    end
  end;
  if kmax <= kc then begin
    kmax := kc;
    nmax := nc;
    imax := ic
  end;
  writeln('Самая длинная серия содержит ', kmax, ' чисел ', nmax);
  for i:=n downto imax+kmax+1 do a[i]:=a[i-1];
  a[imax+kmax]:=nmax;
  writeln('Модифицированная строка');
  for i:=0 to n do write(a[i]:2)
end.
Тестовое решение

Введите количество чисел N 30
Вводите числа
1 2 2 3 4 4 4 5 5 5 6 8 6 6 6 4 8 8 8 8 8 8 3 3 3 3 1 2 3 3 3

Самая длинная серия содержит 6 чисел 8
Модифицированная строка
 1 2 2 3 4 4 4 5 5 5 6 8 6 6 6 4 8 8 8 8 8 8 8 3 3 3 3 1 2 3 3
4,7(6 оценок)
Ответ:
gabenew
gabenew
01.08.2020
Program Array129;
var
a: array [1..40] of integer;
B: array [1..20] of integer;
C: array [1..20] of integer;
temp,M,N,i,j:integer;
begin
writeln('Введите N (N<=20)');
readln(N);
writeln('Значения массива А');
for i:=1 to n do begin write('a[',i,']=');readln(A[i]); B[i]:=i; end;
// решение 
temp:=0;
m:=0;
// формируем из исходного массива A[] два с длиной серий B[] и значением серий C[] 
for i:=2 to n do
begin
inc(temp);
if a[i]<>a[i-1] then
begin
inc(M);
B[M]:=temp;
C[M]:=a[i-1];
temp:=0;
end;
end;
inc(temp);
inc(M);
b[M]:=temp;
C[M]:=a[i];
// складываем массив A[] согласно задания. 
temp:=1;
for i:=1 to m do
begin
if b[i]>=b[temp] then
begin
temp:=i;
end;
end;
inc(b[temp]);

temp:=0;
for i:=1 to m do
begin
for j:=1 to b[i] do
begin
inc(temp);
a[temp]:=c[i];
end;
end;
Writeln;
Writeln('ответ');
Write(' A[]: '); for i:=1 to temp do Write(A[i],' ');
end.
4,4(50 оценок)
Открыть все ответы
Ответ:
бабеков
бабеков
01.08.2020
Так как в задании не указано, что введенное слово должно обрамляться пробелами, то код может быть такой:

var s,a:string;
    begin
    write('Введите строку : ');
    readln(s);
    write('Введите слово : ');
    readln(a);
       if(pos(a, s) <> 0) then writeln('Слово "',a,'" в строке есть')
       else writeln('В строке такого слова нет');
    end.

Тест №1
Введите строку : Привет участникам олимпиады!
Введите слово : ник
Слово "ник" в строке есть

Тест №2
Введите строку : Всем привет!
Введите слово : админ
В строке такого слова нет
4,8(51 оценок)
Ответ:
натага2
натага2
01.08.2020
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
{
Определения длины средней линии трапеции,
если известны длины оснований трапеции.
}
var
  a,b : real;

begin
  readln(a,b);
  writeln('длина средней линии = ',(a+b)/2);
end.

{
 Вычисления площади трапеции,
 если известны ее основания и высота.
}
var
  a,b,h : real;

begin
  readln(a,b,h);
  writeln('площадь трапеции = ',(a+b)/2*h);
end.

{
 Вычисления расстояния между
 двумя точками на координатной плоскости
}
var
  x1,y1,x2,y2 : real;

begin
  write('Координаты 1 точки '); readln(x1,y1);
  write('Координаты 2 точки '); readln(x2,y2);
  writeln('Расстояние между точками = ',sqrt(sqr(x1-x2)+sqr(y1-y2)));
end.

{
 Вычисления периметра треугольника,
 если известны координаты его вершин
}
var
  x1,y1,x2,y2,x3,y3,a,b,c : real;

begin
  write('Координаты 1 вершины '); readln(x1,y1);
  write('Координаты 2 вершины '); readln(x2,y2);
  write('Координаты 3 вершины '); readln(x3,y3);
  a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
  b:=sqrt(sqr(x3-x2)+sqr(y3-y2));
  c:=sqrt(sqr(x3-x1)+sqr(y3-y1));
  writeln('периметр треугольника = ',a+b+c);
end.

{
 В углу прямоугольного двора размером a*b стоит
 прямоугольный дом размером c*d.
 Подсчитать площадь дома,
 свободную площадь двора и длину забора.
}
var
  a,b,c,d,sh : real;

begin
  write('Размеры двора '); readln(a,b);
  write('Размеры дома '); readln(c,d);
  sh:=c*d; //площадь дома
  writeln('площадь дома = ',sh);
  writeln('свободная площадь двора = ',a*b -sh);
  writeln('длина забора = ',(a+b)*2 -(c+d));
end.
4,7(66 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ