Опишите объект «обыкновенная дробь» с методами «НОД числителя и знаменателя», «сокращение» - Pascal ABC
Формулировка задачи:
Дана преподавателем программа, а при вводе она не работает, выдает ошибку(((((
Очень нужна помощь того, кто в этом понимает!!!!
Лабораторная работа 13-14.
Объектно-ориентированное программирование
Задание 1. Опишите объект «обыкновенная дробь» с методами «НОД числителя и знаменателя», «сокращение», «натуральная степень».
Задание 2.
Пусть имеется родительский объектный тип «выпуклый четырехугольник» (поля типа «координаты вершин, заданные в порядке их обхода») и типы, им порожденные: параллелограмм, ромб, квадрат. Описать для указанных фигур методы «вычисление углов» (в градусах), «вычисление диагоналей», «вычисление длин сторон», «вычисление периметра», «вычисление площади».
Решение задачи: «Опишите объект «обыкновенная дробь» с методами «НОД числителя и знаменателя», «сокращение»»
textual
Листинг программы
Type Natur=1..32767; Frac=Record P: Integer; Q: Natur End; {Описание объектного типа} Drob=Object A: Frac; Procedure Vvod; {ввод дроби} Procedure NOD(Var C: Natur); {НОД} Procedure Sokr; Procedure Stepen(N: Natur; Var C: Frac); Procedure Print; {вывод дроби} End; {Описания методов объекта} Procedure Drob.NOD; Var M,N: Natur; Begin M:=Abs(A . P); N:=A .Q; While M<>N Do If M>N Then If M Mod N<>0 Then M:=M Mod N Else M:=N Else If N Mod M<>0 Then N:=N Mod M Else N:=M; C:=M End; Procedure Drob.Sokr; Var N: Natur; Begin If A. P<>0 Then Begin Drob.NOD(N); A . P:=A . P Div N; A . Q:=A . Q Div N End Else A . Q:=1 End; Procedure Drob.Stepen; Var I: Natur; Begin C.P:=1; C.Q:=1; For I:=1 To N Do Begin C.P:=C.P*A.P; C.Q:=C.Q*A.Q End; End; Procedure Drob.Vvod; Begin Write('Введите числитель дроби: '); ReadLn(A.P); Write('Введите знаменатель дроби: ');ReadLn(A.Q) ; End; Procedure Drob.Print; Begin WriteLn(A.P,'/',A.Q) End; {Основная программа} Var Z: Drob; F: Frac; Begin Z.Vvod; {ввод дроби} Z.Print; {печать введенной дроби} Z.Sokr; {сокращение введенной дроби} Z. Print; {печать дроби после сокращения} Z.Stepen(4, F); {возведение введенной дроби в 4-ю степень} WriteLn(F.P,'/',F.Q); End.
Объяснение кода листинга программы
- В объектно-ориентированном языке программирования создан тип данных
Frac
, который представляет обыкновенную дробь с числителем и знаменателем типа Integer. - Создана процедура
Vvod
, которая запрашивает ввод числителя и знаменателя для объекта типаDrob
. - Создана процедура
NOD
для нахождения НОД числителя и знаменателя объекта типаDrob
. - Создана процедура
Sokr
, которая сокращает дробь, используя найденный НОД. - Создана процедура
Stepen
, которая возводит дробь в степень, заданную в качестве аргумента. - Создана процедура
Print
, которая выводит дробь на экран. - В основной программе создан объект
Z
типаDrob
, в который введен числитель и знаменатель. - Дробь выводится на экран.
- Дробь сокращается.
- Сокращенная дробь выводится на экран.
- Дробь возводится в 4-ю степень.
- Результат возведения в степень выводится на экран в виде дроби.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д