Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
robar
Сообщений: n/a
#1

Работа с дробями - C++

27.04.2011, 11:48. Просмотров 978. Ответов 2
Метки нет (Все метки)

Создать программу в виде учебника, раздел дроби, провести тестирования по теме.

Код
program s1;
uses crt;
Var   a,b,f:word;
st:string;
Function HOD(a,b:word):word;
var i,c:word;
begin
Hod:=1;
If a<b then begin
       c:=a;
    a:=b;
    B:=c;  end;
for i:=1 to a div 2 do begin
      If (a mod i=0) and(b mod i=0) then Hod:=i;
    end

        end;
procedure drob(s:string;var a,b:word);
var I,d:integer;
c,t:string;
 begin
 i:=1;
    while s[i]<>'/' do inc(i);
 d:=length(s)-i;
 c:=copy(s,1,i-1);
 t:=copy(s,i+1,d);
 val(c,a,d);
 val(t,b,d);
end;
begin

readln(st);
drob(st,a,b);
f:=Hod(a,b);
A:=a div f;
b:=b div f;
write(a,'/',b);

readln;
end.
Код перевода дроби в несократимую

Код
program hhh;
uses ctr;
var
 a,b,c      :longint:
 a2, b1     :longint:    
 a2, b2     :longint:
 nok        :longint:
procedure Nod {процедура находит НОД чисел a и d}
              {a,b,c - глобальные параметры     }
begin
  if b>a then begin {высчитываем наибольшее число и записываем его в
                   переменную a, наименьшее - в d}
    c:=a;
    a:=b;
    b:=c;
   end;
   while a mod b <> 0 do begin
      c:=b;
      b:=a mod d;
      a:=c;
   end;
end;

begin
  GlrScr;
  Write('Введите числитель 1ой дроби:>'>;Reedln(a1);
  Write('Введите числитель 1ой дроби:>'>;Reedln(b1);
  Write('Введите числитель 2ой дроби:>'>;Reedln(a2);
  Write('Введите знаменатель 2ой дроби:>'>;Reedln(d2);

if (b1=0) or (d2=0) then begin {проверка на правильность ввода чисел}
  Writeln('ошибка!! Знаменатель не должен равнятся нулю.');
  Readkey;
  Halt(1);
end;
Write(a1,'/',b1,'+',a2,'/',b2,'=');

if (a1=0) or (a2=0) then begin {если числитель одной из дробей равен нулю,
          то мы пропускаем пункт сложения дробей}

  if a1=0 then begin 
    a:=a2;b:=b2;
    a1:=a2;nok:=b2;
  end
  else begin
    a:=a1;b:=b1;
    nok:=b1;
  end;
end
else begin 
  a:=b1; d:=b2;
  Nod; {находим НОД и записываем его в переменную b}
 
  nok:b1*b2 div b; {наховим НОК знаменателей 2х дробей (d1 и b2)}
  a1:=a1*nok div b1; {умножаем числитель первой дроби на дополнительный 
                      множетель}
  a2:=a2*nok div b2; {умножаем числитель второй дроби на дополнительный 
                      множетель}
  a1:=a1+a2; {складываем дроби : числитель полученной дроби - a1, знаменатель 
              требуемой дроби -nok}

  a:=a1; b:=nok;
 end;

 Nod;   {сокращаем полученную дробь до несократимой дроби}
 Write (a1 div b);    {выводим на экран полученый результат}
 if nok div b<>1 then Writeln('/',nok div b);
 writeln;
 Redkey; 
END.
И сложение дробей. Что дальше делать не понимаю. Прога вроде должна быть больше и как это все соеденить. Кто знает или у кого есть идеи пишите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2011, 11:48     Работа с дробями
Посмотрите здесь:

Работа с дробями - C++
Написать программу, работы с дробями используя структуры. Написал функцию сложения (но чет напортачил) #include&lt;iostream&gt; ...

Работа с дробями - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; void main() { setlocale(LC_ALL, &quot;RUSSIAN&quot;); char a; char fn; ...

Работа с десятичными дробями - C++
Ув. господа:) В качестве тренировки написал на Борланде простенький калькулятор, и почти все работает, за исключением счета десятичных...

Модули работа с дробями. - C++
Вот мне дали такое задание. См.рис. Задание не особо сложное.Но я немогу сделать некоторые вещи. 1 и 2 задание. С помошью функции...

Структуры, работа с дробями. - C++
Пишу в Microsoft Visual Studio -&gt;Win32 Console application -&gt;C++. Имеется такая задача: Создайте структуру, описывающую простую дробь....

Калькулятор. Работа с обыкновенными дробями - C++
подскажите с чего начать...

Класс с дробями - C++
Всем привет. Помогите пожалуйста решить задачу: &quot;Создать класс «Дробь», содержащий два поля: числитель и знаменатель. Оба этих поля...

Задачка с дробями - C++
Здравствуйте! Ломаю голову над следующей задачей: Найти все простые несократимые дроби, заканчивающиеся между 0 и 1, знаменатели которых не...

Операции с дробями - C++
Подскажите, пожалуйста, где я ошибаюсь? Вроде логика правильная, а на выходе - чушь :wall: #include &lt;iostream&gt; #include &lt;windows.h&gt; ...

Калькулятор с дробями, классы - C++
Помогите пожалуйста, что ни так? #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; class Calc {public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
27.04.2011, 16:01     Работа с дробями #2
Есть идея отправить все это в раздел PASCAL.
babazoya
7 / 7 / 3
Регистрация: 28.12.2010
Сообщений: 39
27.04.2011, 19:26     Работа с дробями #3
Отличная идея
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru