Вопрос задан 10.05.2019 в 21:35. Предмет Информатика. Спрашивает Майер Настя.

Pascal ABC Дан текстовый файл t1.txt, содержащий целые числа, не превышающие 30000. Найти длину

самой длинной цепочки одинаковых чисел, идущих подряд в файле t1.txt и записать эту цепочку в файл t2.txt То есть вывести на экран длину самой длинной цепочки и записать в файл эту цепочку Можно решить как через файлы, так и не через файлы
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Nurmamedova Emiliya.
Если цепочки две, то выводится ближайшая. Пойдет?

//t1.txt должен быть в папке с программой
//Pascal
var
  f: text;
  numValue, Counts, n, c, t, i: integer;
begin
  assign(f, 't1.txt');
  reset(f);
  Counts := 0;
  c := 0;
  while not eof(f) do
    begin
      readln(f, n);
      if (c = 0) or (n = t) then
        c := c + 1
      else
        c := 1;
      t := n;
      if c > Counts then
      begin
          Counts := c;
          numValue := n
      end
    end;
  close(f);
  assign(f, 't2.txt');
  rewrite(f);
  writeln('Длина цепочки: ', Counts);
  for i := 1 to Counts do
    writeln(f, numValue);
  close(f)
end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа на языке Pascal, которая решает задачу:

```pascal program maxChain; var inputFile, outputFile: TextFile; inputFileName, outputFileName: string; number, currentNumber, maxChainLength, currentChainLength: integer; begin // Запрашиваем у пользователя имя входного файла Write('Введите имя входного файла: '); ReadLn(inputFileName);

// Открываем входной файл для чтения AssignFile(inputFile, inputFileName); Reset(inputFile);

// Инициализируем значения переменных maxChainLength := 0; currentChainLength := 1; ReadLn(inputFile, currentNumber);

// Пока не достигнут конец файла while not Eof(inputFile) do begin // Считываем число из файла ReadLn(inputFile, number);

// Если число равно предыдущему, увеличиваем длину текущей цепочки if number = currentNumber then begin currentChainLength := currentChainLength + 1; end else // В противном случае сбрасываем текущую цепочку и начинаем новую begin if currentChainLength > maxChainLength then begin maxChainLength := currentChainLength; end; currentChainLength := 1; end; currentNumber := number; end;

// Закрываем входной файл CloseFile(inputFile);

// Запрашиваем у пользователя имя выходного файла Write('Введите имя выходного файла: '); ReadLn(outputFileName);

// Открываем выходной файл для записи AssignFile(outputFile, outputFileName); Rewrite(outputFile);

// Записываем найденную максимальную цепочку в выходной файл Writeln(outputFile, 'Максимальная длина цепочки: ', maxChainLength); Writeln(outputFile, 'Цепочка чисел:'); // Открываем входной файл снова Reset(inputFile);

currentChainLength := 1; ReadLn(inputFile, currentNumber);

while not Eof(inputFile) do begin ReadLn(inputFile, number); if number = currentNumber then begin currentChainLength := currentChainLength + 1; Writeln(outputFile, currentNumber); end else begin if currentChainLength = maxChainLength then begin Break; end; currentChainLength := 1; end; currentNumber := number; end;

// Закрываем входной и выходной файлы CloseFile(inputFile); CloseFile(outputFile); end. ```

Пояснение к программе:

1. Пользователю предлагается ввести имя входного файла с числами. 2. Открываем входной файл для чтения и инициализируем переменные. 3. Читаем первое число из файла и сохраняем его в переменной `currentNumber`. 4. Запускаем цикл `while`, который будет выполняться до конца файла. - Считываем число из файла в переменную `number`. - Если `number` равно `currentNumber`, значит мы нашли следующее число в цепочке. Увеличиваем переменную `currentChainLength` на 1. - Если `number` не равно `currentNumber`, значит мы достигли конца текущей цепочки чисел. Проверяем, если текущая цепочка длиннее максимальной цепочки, то обновляем значение `maxChainLength`. - Сбрасываем значение `currentChainLength` в 1 и сохраняем `number` в `currentNumber`. 5. Запрашиваем у пользователя имя выходного файла. 6. Открываем выходной файл для записи. 7. Записываем в выходной файл информацию о максимальной длине цепочки. 8. Открываем входной файл снова. 9. Запускаем цикл `while` для записи самой длинной цепочки чисел в выходной файл. - Считываем число из файла в переменную `number`. - Если `number` равно `currentNumber`, значит мы нашли следующее число в цепочке. Увеличиваем переменную `currentChainLength` на 1 и записываем `currentNumber` в выходной файл. - Если `number` не равно `currentNumber`, значит мы достигли конца текущей цепочки чисел. Проверяем, если текущая цепочка есть самая длинная цепочка, то выходим из цикла. - Сбрасываем значение `currentChainLength` в 1 и сохраняем `number` в `currentNumber`. 10. Закрываем входной и выходной файлы.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос