Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.09.2020
Сообщений: 53

Найти максимальное количество подряд идущих одинаковых элементов

13.01.2021, 09:55. Показов 1332. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел.
Выполнив однократный просмотр массива, найти максимальное количество подряд идущих одинаковых элементов.
Помогите, пожалуйста, корректировать программу. Немного запуталась.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
program Ind4;
 
type 
  A: array[1..20] of integer;
var
  FIn, FOut: Text;
  N: Integer;
  
procedure Mx(var M: Integer; var AR: AMas);
var 
  I, J, K: Integer;
begin
  repeat
    write('Размер массива от 2 до 20 n=');
    read(n);
  until N in [2..20];
  Writeln('Введите элементы массива в том числе последовательности одинаковых');
  for I := 1 to N do
  begin
    Write('A[', I, ']=');
    Read(A[I]);
  end;
  clrscr;
  Writeln('Массив:');
  for I := 1 to N do
    Write(A[I], ' ');
  Writeln;
  Writeln;
  I := 2;
  Mx := 0;
  while I <= N do
    if A[I] = A[I - 1] then
    begin
      J := I;
      K := 1;
      while (A[J] = A[J - 1]) and (J <= N) do
      begin
        I := J + 1;
        K := K + 1;
      end;
      if K > Mx then  Mx := K;
      I := I + K;
    end
    else I := I + 1;
  if Mx 0 then 
    Write('Нет одинаковых рядом!')
  else 
    Write('Максимальная последовательность одинаковых чисел подряд=', Mx);
end;
 
begin
  Assign(FIn, 'input.txt');
  Reset(FIn);
  Readln(FIn, N);
  FileInMas(N, FIn, Mas); 
  Close(FIn);
  DeleteMod0(N, Mas);
  Assign(FOut, 'output.txt');
  Rewrite(FOut);
  If N = 0 then 
    Write(FOut, 0)
  else
    MasInFile(N, Mas, FOut);
  Close(FOut);
  Readln;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.01.2021, 09:55
Ответы с готовыми решениями:

В массиве найти максимальное количество подряд идущих одинаковых элементов
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N целых чисел. Выполнив однократный...

Найти максимальное количество подряд идущих минимальных элементов
Выполните поиск, используя однопроходные алгоритмы. Найти максимальное количество подряд идущих минимальных элементов.

Найти максимальное количество бусинок одного цвета, идущих подряд
Помогите пожалуйста решить задачу: Имеется замкнутое ожерелье, состоящее из бусинок одного из трёх возможных цветов: красного, жёлтого,...

12
Модератор
10450 / 5740 / 3408
Регистрация: 17.08.2012
Сообщений: 17,462
13.01.2021, 10:52
Это написано не для Pascal ABC.NET.

Вам нужно решение на Pascal ABC.NET (которого Вы не знаете), или перенести тему в Pascal ABC (простой, без суффикса .NET)?
0
0 / 0 / 0
Регистрация: 29.09.2020
Сообщений: 53
13.01.2021, 12:53  [ТС]
Нет, мне именно и нужно в PascalABC.Net
Но позапуталась в вычислениях и вводе и выводе с помощью файлов. Поэтому и прошу помощь, с корректировкой
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.01.2021, 12:55
Цитата Сообщение от ОлАмел Посмотреть сообщение
Нет, мне именно и нужно в PascalABC.Net
А пишете а-ля Турбо Паскаль.
0
0 / 0 / 0
Регистрация: 29.09.2020
Сообщений: 53
13.01.2021, 13:25  [ТС]
Простите) Я еще учусь пользоваться сайтом)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
13.01.2021, 13:26
При чем здесь сайт и Ваш код?
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
13.01.2021, 14:01
ОлАмел, решение задачи есть тут - Найти длину самой длинной цепочки одинаковых чисел, идущих подряд, и записать её в файл output.txt

Цитата Сообщение от ОлАмел Посмотреть сообщение
Нет, мне именно и нужно в PascalABC.Net
так в PascalABC.NET это будет выглядеть примерно так:
код взял тут - Самая длинная цепочка

Pascal
1
2
3
4
5
begin
  var f := ReadAllLines('input.txt');
  var a := f[1].ToIntegers.ToList;
  WriteAllText('output.txt', a.AdjacentGroup.Select(v -> v.Count).Max.toString);
end.
0
0 / 0 / 0
Регистрация: 29.09.2020
Сообщений: 53
13.01.2021, 14:10  [ТС]
Я просто подумала, что вы про сайт может неправильно что написала, когда загружала на сайт. Поэтому не сразу поняла. Турбо паскаль никогда не пользовалась, а с АВС Net вроде все схоже.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
13.01.2021, 14:17
mr-Crocodile, А зачем вы преобразовываете в List? И - у .Max есть перегрузка, принимающая преобразователь, то есть .Select можно тоже выкинуть.
1
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
13.01.2021, 14:18
ОлАмел, после моего сообщения не возникло сомнений в том, что PascalABC.NET - это не совсем такой же Pascal, какой был в Turbo Pascal?
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
13.01.2021, 14:20
Я бы вообще делал так:
Pascal
1
2
3
4
5
6
7
## Reset(input, 'input.txt');
WriteAllText('output.txt',
  ReadSeqInteger(ReadlnInteger)
  .AdjacentGroup
  .Max(g->g.Length)
  .ToString
);
2
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
13.01.2021, 14:26
Sun Serega, согласен. спасибо за замечания!

Добавлено через 2 минуты
а в связи с тем, что файлы не нужны, то можно вообще так:
Pascal
1
##   ReadArrInteger(ReadInteger).AdjacentGroup.Max(v -> v.Count).PrintLn;
Добавлено через 1 минуту
ОлАмел, обратите внимание, что это ЦЕЛИКОМ ПОЛНОСТЬЮ ВСЯ ПРОГРАММА для Pascal ABC.NET

(тут в примере два значка ## отменяют необходимость писать BEGIN и END. )
1
0 / 0 / 0
Регистрация: 29.09.2020
Сообщений: 53
13.01.2021, 15:02  [ТС]
Я не могу сравнить с Турбо паскаль, потому что никогда им не пользовалась. Только абс нет

Добавлено через 39 секунд
внимание я конечно же обратила и все поняла, спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.01.2021, 15:02
Помогаю со студенческими работами здесь

Подсчитать количество одинаковых чисел массива, идущих подряд
program qwe; const n=20; var arr: array of integer; i:integer; count:byte; begin randomize; for i:=1 to n do...

Максимальное число идущих подряд равных элементов
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой...

Определить наибольшее число идущих подряд одинаковых элементов в массиве
Помогите изменить программу. Дана: Определить наибольшее число идущих подряд положительных элементов в массиве А. Необходимо: Дан...

Определить наибольшее число подряд идущих одинаковых элементов последовательности
Дана последовательность натуральных чисел, завершающаяся числом 0. Определите, какое наибольшее число подряд идущих элементов этой...

Из каждой группы подряд идущих одинаковых элементов оставить только один
Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один. С объяснениями что как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru