Опишите объект «обыкновенная дробь» с методами «НОД числителя и знаменателя», «сокращение» - 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.

Объяснение кода листинга программы

  1. В объектно-ориентированном языке программирования создан тип данных Frac, который представляет обыкновенную дробь с числителем и знаменателем типа Integer.
  2. Создана процедура Vvod, которая запрашивает ввод числителя и знаменателя для объекта типа Drob.
  3. Создана процедура NOD для нахождения НОД числителя и знаменателя объекта типа Drob.
  4. Создана процедура Sokr, которая сокращает дробь, используя найденный НОД.
  5. Создана процедура Stepen, которая возводит дробь в степень, заданную в качестве аргумента.
  6. Создана процедура Print, которая выводит дробь на экран.
  7. В основной программе создан объект Z типа Drob, в который введен числитель и знаменатель.
  8. Дробь выводится на экран.
  9. Дробь сокращается.
  10. Сокращенная дробь выводится на экран.
  11. Дробь возводится в 4-ю степень.
  12. Результат возведения в степень выводится на экран в виде дроби.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы