Pascal ABC. В файле в столбик записаны целые числа, сколько их – неизвестно. Напишите программу, которая определяет длину самой длинной цепочки идущих подряд одинаковых чисел и выводит результат в другой файл напишите подходящую программу.
10 класс.

sofyaoborina12 sofyaoborina12    1   15.05.2020 23:04    50

Ответы
f0xses f0xses  06.09.2020 14:15

Объяснение:

program zadacha;

var d, o: text;

i, j, k, m, s: integer;

 begin

 assign(d, 'c:\data.txt');

 reset(d);

 assign(o, 'c:\output.txt');

 rewrite(o);

 i := 1;

 j := 1;

 readln(d, m);

 s := m;

 while not(eof(d)) do

 begin

     readln(d, k);

     if k = m

       then i := i + 1

       else

         begin

           if i > j then

             begin

               s := m;

               j := i

             end;

           m := k

         end;

   end;

 writeln(o, 'Число: ', s, ', длина цепочки: ', i);

 close(d);

 close(o)

end.

ПОКАЗАТЬ ОТВЕТЫ
arm21 arm21  09.01.2024 09:02
Хорошо, я могу помочь вам написать программу на языке Pascal ABC, которая будет определять длину самой длинной цепочки идущих подряд одинаковых чисел и выводить результат в другой файл. Вот пошаговое решение:

1. Создайте новую программу в среде разработки Pascal ABC.
2. Объявите переменные, которые будут использоваться в программе. Нам понадобится переменная для хранения текущего числа, переменная для хранения предыдущего числа, переменная для подсчета длины текущей цепочки чисел и переменная для хранения максимальной длины цепочки чисел. Например:

```
var
currentNumber, previousNumber, currentLength, maxLength: integer;
```

3. Откройте файл, в котором записаны целые числа, используя процедуру Assign и файловую переменную типа Text. Например:

```
var
inputFile: Text;

Assign(inputFile, 'input.txt');
Reset(inputFile);
```

4. Откройте файл, в который будет записываться результат, используя процедуру Assign и файловую переменную типа Text. Например:

```
var
outputFile: Text;

Assign(outputFile, 'output.txt');
Rewrite(outputFile);
```

5. Инициализируйте переменные: установите начальное значение для переменной currentLength равным 1 и для переменной maxLength равным 1. Также прочитайте первое число из файла и присвойте его переменным currentNumber и previousNumber. Например:

```
currentLength := 1;
maxLength := 1;
Readln(inputFile, currentNumber);
previousNumber := currentNumber;
```

6. Начните цикл, который будет проверять следующие числа в файле. Цикл продолжается до конца файла. Например:

```
while not Eof(inputFile) do
begin
...
end;
```

7. Внутри цикла сравнивайте текущее число (currentNumber) со значением предыдущего числа (previousNumber). Если они равны, значит, найдена цепочка одинаковых чисел. Увеличивайте переменную currentLength на 1. Если currentLength превышает maxLength, обновите значение maxLength. Например:

```
if currentNumber = previousNumber then
begin
currentLength := currentLength + 1;

if currentLength > maxLength then
begin
maxLength := currentLength;
end;
end
else
begin
currentLength := 1;
end;
```

8. После сравнения обновите значение переменной previousNumber, прочитав следующее число из файла. Например:

```
previousNumber := currentNumber;
Readln(inputFile, currentNumber);
```

9. По окончании цикла закройте файлы с помощью процедур Close и файловых переменных. Например:

```
Close(inputFile);
Close(outputFile);
```

10. Запишите в файл с результатом (outputFile) значение переменной maxLength. Например:

```
Writeln(outputFile, maxLength);
```

11. Закройте файл с результатом (outputFile) и завершите программу.

```
Close(outputFile);
```


Это полное решение задачи с подробными объяснениями каждого шага. Вы можете использовать этот код в Pascal ABC, чтобы решить задачу с записью длины самой длинной цепочки одинаковых чисел в другой файл.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика