Задание. Cоставить программу вычисления значений
Y1=(B/D)^3-A mod(B/D)^2+F, Y2=F^4+(B/C+D/F)+E mod 2.
и установления соотношения между ними Y1 @ Y2. Предусмотреть возможность ввода исходных данных как с клавиатуры терминала, так и из файла на диске. Результаты также должны быть получены сначала на терминале, а затем на устройстве печати. Для осуществления последней операции необходимо результаты вывести в файл на диске.
Программа
'Вычисление'(R1,R):-see(R1),
write('Введите B='),read(B),write('Введите D='),read(D),
write('Введите A='),read(A),write('Введите F='),read(F),
write('Введите C='),read(C),write('Введите E='),read(E),nl,
seen,N is (B/D),
Y1 is N*N*N-A mod N*N+F,
Y2 is F*F*F*F+(B/C+B/F)+E mod 2,tell(R),
write('печать данных'),nl,
write('B='),write(B),tab(3),write('D='),write(D),nl,
write('A='),write(A),tab(3),write('F='),write(F),nl,
write('C='),write(C),tab(3),write('E='),write(E),nl,
write('результат'),nl,
write('Y1='),write(Y1),tab(3),write('Y2='),write(Y2),nl,
write('сравнение Y1 и Y2'),nl,
'сравнение'(Y1,Y2),tab(3),write('конец'),told.
'сравнение'(Y1,Y2):-Y1>Y2,write('Y1 больше Y2'),nl.
'сравнение'(Y1,Y2):-Y1
'сравнение'(Y1,Y2):-Y1=Y2,write('Y1Y2'),nl.
Выполнение программы
Ввод данных с клавиатуры и вывод результатов на экран дисплея.
yes
?- 'Вычисление'(user,user).
Введите B=9.
Введите D=8.
Введите A=7.
Введите F=6.
Введите C=5.
Введите E=4.
печать данных
B=9 D=8
A=7 F=6
C=5 E=4
результат
Y1=7.14257813 Y2=1299.3
сравнение Y1 и Y2
Y1 меньше Y2
Конец
Ввод данных из файла на диске Data.txt и вывод результатов в файл с именем
Result.txt
Data.txt
1. 2. 3. 4. 5. 6.
Result.txt
печать данных
B=1 D=2
A=3 F=4
C=5 E=6 результат Y1=4.125 Y2=256.45
сравнение Y1 и Y2 Y1 меньше Y2
конец
Ввод с клавиатуры, вывод в файл на диске «T.txt»:
?- 'Вычисление'(user,user).
Введите B=42.
Введите D=3.
Введите A=5.
Введите F=2.
Введите C=6.
Введите E=1.
Result.txt
печать данных
B=4 D=3
A=5 F=2
C=6 E=1 результат Y1=3.03703704 Y2=19.66666667
сравнение Y1 и Y2 Y1 меньше Y2
конец |