Переписать код c Python на Pascal
Здравствуйте. Есть код на Python, написанный мною, но надо такую же программу в точности на Pascal ABC. Я раз 200 пробовал переписать с помощью нейросети, но она всё время выдаёт ошибки, либо проблема с кодировкой utf-8.
(Прошу прощения, текст въехал весь влево...)
Сам код:
file = [i.split(',') for i in open("database.txt", encoding = "utf-8").read().split("\n")]
us_record = input('Что сделать?\n\t1) Записать в файл;\n\t2) Удалить из файла;\n\t3) Вывести все данные на экран (По столице);\n\t4) Найти государство с мин/макс плотностью населения\n(Введите число)\n')
if us_record == '1':
try:
us_country = input('Страна: ').capitalize()
us_capital = input('Столица: ').capitalize()
us_area = float(input('Площадь: '))
us_population = int(input('Население: '))
f = open("database.txt", "a", encoding = "utf-8")
f.write(f"{us_country},{us_capital},{us_area},{us_population}\n")
except:
print("Произошла ошибка. Обратитесь к администратору.")
finally:
f.close()
print('Данные добавлены')
elif us_record == '2':
name_del = input('Введите столицу страны, данные о которой надо удалить: ')
for i in range(len(file)):
if file[i][1] == name_del:
file.pop(i)
break
try:
f = open("database.txt", "w", encoding = "utf-8")
f.write('')
f.close()
f = open("database.txt", "a", encoding = "utf-8")
for i in file:
if i[0] != '':
line = ",".join(j for j in i if j != " " or j != "'")
f.write(f"{line}\n")
except:
print("Произошла ошибка. Обратитесь к администратору.")
finally:
f.close()
print('Данные удалены.')
elif us_record == '3':
name_print = input('Введите столицу страны, данные о которой надо вывести: ')
for i in range(len(file)-1):
if file[i][1] == name_print:
print(f'Страна: {file[i][0]}\nПлощадь: {file[i][2]} кв. км.\nНаселение: {file[i][3]} чел.')
elif us_record == '4':
m_m = []
for i in range(len(file)-1):
print(f"Плотностью населения {file[i][0]} --> {round(float(file[i][3]) / float(file[i][2]),2)}")
m_m.append([round(float(file[i][3]) / float(file[i][2]),2),file[i][0]])
print(f'\nМинимальная плотность населения в {min(m_m)[1]}: {min(m_m)[0]}')
print(f'Максимальная плотность населения в {max(m_m)[1]}: {max(m_m)[0]}')
else:
print('Неверный ввод!\nПрограмма закрывается!')
Код слишком большой получился у меня и я загрузила на https://github.com/eminsk/pascal/blob/main/pascal.pas
Ну так и переписывай. На классическом паскале одна только работа с файлами займет в 3 раза больше места, чем весь этот код. Никто ради тебя так даваться тут не будет, дерзай сам.