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

Не работает пример умножения и деления дробей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что будет выведено на экран в результате выполнения приведенного фрагмента кода? http://www.cyberforum.ru/cpp-beginners/thread1085593.html
Что будет выведено на экран в результате выполнения приведенного фрагмента кода? int n = 1; while (n<=10) { if (n%2) printf("%d\n", n); n++; return;...
C++ Найти среднее арифметическое элементов, не являющихся простыми числами, но при этом стоящих на чётных местах Найти среднее арифметическое элементов, не являющихся простыми числами, но при этом стоящих на чётных местах. http://www.cyberforum.ru/cpp-beginners/thread1085562.html
1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными э C++
1. Написать функцию проверяющую есть ли отрицательные элементы в указанной строке двумерного массива. Удалить из массива все строки с отрицательными элементами, удаленная строка заполняется 0 и...
C++ Задан двумерный массив N x N. Проверить можно ли выполнив конечное число перестановок в столбцах, расположить на побочной диагонали так, чтобы они во
Задан двумерный массив N x N. Разрешается произвольно переставлять элементы внутри любого столбца. Проверить можно ли выполнив конечное число перестановок в столбцах, расположить на побочной...
C++ Пожалуста, обьясните настройки компилятора и что они делают http://www.cyberforum.ru/cpp-beginners/thread1085501.html
Для Visual Studio 2010. Хочется все же понять что например означает /ZI Includes debug information in a program database compatible with Edit and Continue Или /Ox Uses maximum optimization...
C++ Максимальное слово В строке, состоящей из слов и знаков препинания (пробел . : , ! ?-;), найти слово максимальной длины; Программа должна обрабатывать любое количество вариантов данных. Добрый вечер помогите... подробнее

Показать сообщение отдельно
Samat B
0 / 0 / 0
Регистрация: 04.08.2013
Сообщений: 170

Не работает пример умножения и деления дробей - C++

30.01.2014, 18:26. Просмотров 516. Ответов 7
Метки (Все метки)

Я переводил программу из паскаля, на паскале переменные в формате Реал а в си++ в Интежер. Так сделано потому что не смог преобразовать RealToStr в си++. Использую GCC (Code Blocks) Win 7.
Пример с ошибками на си++
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <cmath>
#define nullptr NULL
#include <sstream>
#include <stdlib.h>
 
 
using namespace std;
 
 
string *drobi_umnojenie(int a, int b, int c, int d, size_t arraySize = 3)
{
    int a_c;
    int bd;
 
    string *res = new string [arraySize];
 
    a_c = a*c;
    bd = b*d;
 
    char str[10];
    char str_1[10];
 
    itoa(a_c, str, 10);
    itoa(bd, str_1, 10);
 
    res[1] = str;
    res[2] = '/';
    res[3] = str_1;
 
    return res;
}
 
string *drobi_delenie(int a, int b, int c, int d, size_t arraySize = 3)
{
    int ad;
    int bc;
 
    string *res = new string [arraySize];
 
    ad = a*d;
    bc = b*c;
 
    char str[10];
    char str_1[10];
 
    itoa(ad, str, 10);
    itoa(bc, str_1, 10);
 
    res[1] = str;
    res[2] = '/';
    res[3] = str_1;
 
    return res;
}
 
int knopka_1()
{
    string stroka_1;
    string *res = drobi_umnojenie(2, 2, 2, 2);
    stroka_1 = res[1]+res[2]+res[3];
    cout << "кнопка1=" << endl;
    cout << stroka_1<< endl;
 
    delete [] res;
    res = nullptr;
 
    return 0;
}
 
int knopka_2()
{
    string stroka_1;
    string *res = drobi_delenie(2, 2, 2, 2);
    stroka_1 = res[1]+res[2]+res[3];
    cout << "кнопка2=" << endl;
    cout << stroka_1<< endl;
 
    delete [] res;
    res = nullptr;
 
    return 0;
}
 
int main()
{
    knopka_1();
    knopka_2();
    return 0;
}
Тот же пример на FPC(Lazarus) он работает
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 
type
  massiv_type = array[0..2] of string;
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
function drobi_umnojenie(a,b,c,d:real):massiv_type;
var
  a_c:real;
  bd:real;
  res:massiv_type;
  begin
    a_c:=a*c;
    bd:=b*d;
 
    res[0]:=FloatToStr(a_c);
    res[1]:='/';
    res[2]:=FloatToStr(bd);
 
    Result:=res;
  end;
 
function drobi_delenie(a,b,c,d:real):massiv_type;
var
  ad:real;
  bc:real;
 
  res:massiv_type;
  begin
    ad:=a*d;
    bc:=b*c;
 
    res[0]:=FloatToStr(ad);
    res[1]:='/';
    res[2]:=FloatToStr(bc);
 
    Result:=res;
  end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  res:massiv_type;
  str:string;
begin
   res:=drobi_umnojenie(1,4,1,4);
   str:=res[0]+res[1]+res[2];
   ShowMessage(str);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var
  res:massiv_type;
  str:string;
begin
   res:=drobi_delenie(1,4,1,4);
   str:=res[0]+res[1]+res[2];
   ShowMessage(str);
end;
 
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru