М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
abeloglazova891
abeloglazova891
28.12.2020 03:35 •  Информатика

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида (p – целое, q—натуральное): а) сложения; б) умножения; в) сокращения дроби. дробь представить следующим типом: type frac=record p: integer; q: 1..32767 end; используя этот модуль найти: 1) сумму двух дробей, результат представить в виде несократимой дроби; 2) произведение двух дробей, результат представить в виде несократимой дроби.

👇
Ответ:
msteep6
msteep6
28.12.2020
Type
  Frac = record
    P: integer;
    Q: 1..32767
  end;

function gcd(a: integer; b: integer): integer;
{Нахождение НОД}
var
  i: integer;
begin
  while b <> 0 do
  begin
    a := a mod b;
    i := b; b := a; a := i
  end;
  result := a
end;

function RedFrac(a: Frac): Frac;
{Сокращение дроби}
var
  igcd: integer;
  r: Frac;
begin
  igcd := gcd(a.P, a.Q);
  r.P := a.P div igcd;
  r.Q := a.Q div igcd;
  RedFrac := r
end;

function Add(a, b: Frac): Frac;
{Сложение дробей}
var
  r: Frac;
begin
  r.P := a.P * b.Q + b.P * a.Q;
  r.Q := a.Q * b.Q;
  Add := RedFrac(r)
end;

function Mult(a, b: Frac): Frac;
{Умножение дробей}
var
  r: Frac;
begin
  r.P := a.P * b.P;
  r.Q := a.Q * b.Q;
  Mult := RedFrac(r)
end;

var
  m, n, k: Frac;

begin
  m.P := 4; m.Q := 15; {4/15}
  n.P := 9; n.Q := 25; {9/25}
  k := Add(m, n);
  Writeln(k.P, '/', k.Q);
  k := Mult(m, n);
  Writeln(k.P, '/', k.Q);
end.

Результат выполнения программы:
47/75
12/125
4,6(61 оценок)
Открыть все ответы
Ответ:
elizka070408
elizka070408
28.12.2020

То же задание, только другой вывод? Ну, вот например, несколько вариантов (все выводят одно и то же- ну, если конечно на вход подавать число, указанное в задании, а не что попало :)

1) текстовый вариант (запрашиваемое число вводится сразу в текстовом виде):

алг

нач

лит т

вывод "Введите четырёхзначное число",нс

ввод т

вывод т[1],"+",т[2],"=",Цел(т[1],0)+Цел(т[2],0),", "

вывод т[3],"*",т[4],"=",Цел(т[3],0)*Цел(т[4],0)

кон

2) числовой вариант (простой):

алг

нач

цел а,б,в,г,д

вывод "Введите четырёхзначное число",нс

ввод а

д:=mod(а,10);а:=div(а,10)

г:=mod(а,10);а:=div(а,10)

в:=mod(а,10);а:=div(а,10)

б:=mod(а,10)

вывод б,"+",в,"=",б+в,", ",г,"*",д,"=",г*д

кон

3) числовой вариант (так себе):

алг

нач

цел а,ц

цел таб т[1:4]

вывод "Введите четырёхзначное число",нс

ввод а

нц для ц от 1 до 4

т[ц]:=mod(а,10)

а:=div(а,10)

кц

вывод т[4],"+",т[3],"=",т[4]+т[3],", ",т[2],"*",т[1],"=",т[2]*т[1]

кон

4) число-текстовый вариант (ерунда какая то, типа если не очень то, что в первом варианте число вводится как текст) -цикл перевода сделан для разнообразия, и так то заменяется одним алгоритмом, переводящим всё число сразу- цел_в_лит(а),  при этом и начальное значение  т  задавать не надо.

алг

нач

цел а

лит т=""

вывод "Введите четырёхзначное число",нс

ввод а

нц 4 раз

т:=символ(48+mod(а,10))+т

а:=div(а,10)

кц

вывод т[1],"+",т[2],"=",Цел(т[1],0)+Цел(т[2],0),", "

вывод т[3],"*",т[4],"=",Цел(т[3],0)*Цел(т[4],0)

кон

5) числовой вариант (непойми что и сбоку бантик):

алг

нач

цел а,б,в,н,ц

цел таб т[1:4]

вывод "Введите четырёхзначное число",нс

ввод а

нц для н от 1 до 4

а:=mod(а,10**(5-н))

т[н]:=div(а,10**(4-н))

в:=т[н]

ц:=div(н,4)

если 2*ц=н-2 то

вывод б,символ(43-ц),в,"=",б+в-(б+в-б*в)*ц,символ(44-12*ц)," " все

б:=т[н]

кц

кон


Написать программу на языке Кумир: Для введенного с клавиатуры четырехзначного числа найти сумму дву
4,6(25 оценок)
Ответ:
2499930
2499930
28.12.2020

То же задание, только другой вывод? Ну, вот например, несколько вариантов (все выводят одно и то же- ну, если конечно на вход подавать число, указанное в задании, а не что попало :)

1) текстовый вариант (запрашиваемое число вводится сразу в текстовом виде):

алг

нач

лит т

вывод "Введите четырёхзначное число",нс

ввод т

вывод т[1],"+",т[2],"=",Цел(т[1],0)+Цел(т[2],0),", "

вывод т[3],"*",т[4],"=",Цел(т[3],0)*Цел(т[4],0)

кон

2) числовой вариант (простой):

алг

нач

цел а,б,в,г,д

вывод "Введите четырёхзначное число",нс

ввод а

д:=mod(а,10);а:=div(а,10)

г:=mod(а,10);а:=div(а,10)

в:=mod(а,10);а:=div(а,10)

б:=mod(а,10)

вывод б,"+",в,"=",б+в,", ",г,"*",д,"=",г*д

кон

3) числовой вариант (так себе):

алг

нач

цел а,ц

цел таб т[1:4]

вывод "Введите четырёхзначное число",нс

ввод а

нц для ц от 1 до 4

т[ц]:=mod(а,10)

а:=div(а,10)

кц

вывод т[4],"+",т[3],"=",т[4]+т[3],", ",т[2],"*",т[1],"=",т[2]*т[1]

кон

4) число-текстовый вариант (ерунда какая то, типа если не очень то, что в первом варианте число вводится как текст) -цикл перевода сделан для разнообразия, и так то заменяется одним алгоритмом, переводящим всё число сразу- цел_в_лит(а),  при этом и начальное значение  т  задавать не надо.

алг

нач

цел а

лит т=""

вывод "Введите четырёхзначное число",нс

ввод а

нц 4 раз

т:=символ(48+mod(а,10))+т

а:=div(а,10)

кц

вывод т[1],"+",т[2],"=",Цел(т[1],0)+Цел(т[2],0),", "

вывод т[3],"*",т[4],"=",Цел(т[3],0)*Цел(т[4],0)

кон

5) числовой вариант (непойми что и сбоку бантик):

алг

нач

цел а,б,в,н,ц

цел таб т[1:4]

вывод "Введите четырёхзначное число",нс

ввод а

нц для н от 1 до 4

а:=mod(а,10**(5-н))

т[н]:=div(а,10**(4-н))

в:=т[н]

ц:=div(н,4)

если 2*ц=н-2 то

вывод б,символ(43-ц),в,"=",б+в-(б+в-б*в)*ц,символ(44-12*ц)," " все

б:=т[н]

кц

кон


Написать программу на языке Кумир: Для введенного с клавиатуры четырехзначного числа найти сумму дву
4,6(63 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ