File24. Дан файл вещественных чисел. Создать файл целых чисел, содержащий длины всех монотонных последовательностей элементов исходного файла. Например, для исходного файла с элементами 1.7, 4.5, 3.4, 2.2, 8.5, 1.2 содержимое результирующего файла должно быть следующим: 2, 3, 2, 2.

Решение на Python 3:

import random

def GenerateNumbers(fname):
N = random.randint(2,15)
print("N = ",N)
L = []
x = random.randrange(1,10)
L.append(x)
for i in range(1,N):
lst_rnd = list(range(1,10))
lst_rnd.remove(x)
x = random.choice(lst_rnd)
L.append(x)
print(L)
try:
f = open(fname, "w")
try:
for x in L:
line = str(x)+"\n"
f.write(line)
finally:
f.close()
except IOError:
print('Write error: ',fname)

def EmptyFile(fname):
open(fname, 'w').close()

def Write2File(fname,value):
try:
f = open(fname, "a")
try:
s = str(value)+'\n'
f.write(s)
finally:
f.close()
except IOError:
print('Write error: ',fname)

f_input = "file24_input.txt"
GenerateNumbers(f_input)

f_output = "file24_output.txt"
EmptyFile(f_output)

i = 0
decrease = 0
increase = 0
try:
with open(f_input,'r') as f_in:
line = f_in.readline()
x = int(line.strip())
i = 1
x1 = x
x2 = x
print(x)
for line in f_in:
i += 1
x = int(line.strip())
print(x)
x1 = x2
x2 = x
if x1 > x2:
decrease += 1
if increase > 0:
print("Increase Length:",increase+1)
Write2File(f_output,increase+1)
increase = 0
else:
increase += 1
if decrease > 0:
print("Decrease Length:",decrease+1)
Write2File(f_output,decrease+1)
decrease = 0

except IOError:
print('Open error: ',f_source)

if decrease > 0:
print("Decrease Length:",decrease+1)
Write2File(f_output,decrease+1)
if increase > 0:
print("Increase Length:",increase+1)
Write2File(f_output,increase+1)