Top.Mail.Ru
Ответы

Переписать код 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 раза больше места, чем весь этот код. Никто ради тебя так даваться тут не будет, дерзай сам.