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

Обьяснить программу (Принципи ее работы) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как достать указатель на объект из контейнера set http://www.cyberforum.ru/cpp-beginners/thread630464.html
Имеется вот такой код #include "stdafx.h" #include <string> #include <iostream> #include <fstream> #include <set> #include <conio.h> using namespace std;
C++ Значение указателей (*ptr.) на пустые ячейки памяти Здравствуйте, уважаемые форумчане! С началом изучения С++ стало возникать множество вопросов. Когда резервируется свободная память некоторого типа, то значения указателей к этим ячейкам выглядят весьма интересно. Вот пример. #include "stdafx.h" #include <iostream> #include <limits.h> http://www.cyberforum.ru/cpp-beginners/thread630426.html
Указатель на массив указателей на объекты, передать в метод объекта C++
Здравствуйте! Нужно решить задачу, есть такой класс. class MyClsDisk { public: void SetDiskOnPurpose(MyClsDisk *p,int ix, MyClsDisk **a) { cout<<(*p).Weight<<endl;
C++ Адресное пространство
Адрес в сипп является 4байтным числом. Возможно ли модифицировать адрес так, что бы залезть в другие процессы? Или для каждого процесса выделяется "локальное" адресное пространство?
C++ Интерфейс в VS2010 http://www.cyberforum.ru/cpp-beginners/thread630407.html
:facepalm:При программировании хочу видеть описание типов, помниться мне что была какая та такая форма интересная например выбераешь мышкой структуру WNDCLASS например и в форме в низу ее свойства типы данных и т.п. сейчас найти не могу. Дальше один раз случай был в студии, зажимаешь пару или кнопку не помню тоже и появлялось описание около мышки (тип данных, кол-во параметров) очень удобно...
C++ Передача параметров для cuda Всем доброго времени суток, столкнулся с такой проблемой, мне нужно передать значения полученные в результате вычисления из одной функции в другую. Проблема в том, что нужно мне это провернуть используя cuda. В коде оставил только основное, постарался упростить короче. Вот есть там в коде в main - x и y вот они у меня высчитываются в другом файле и соответственно их нужно каким-то образом... подробнее

Показать сообщение отдельно
DEA7H
.NET ONLY
 Аватар для DEA7H
62 / 62 / 1
Регистрация: 05.10.2011
Сообщений: 495
30.07.2012, 00:28     Обьяснить программу (Принципи ее работы)
Здравствуйте!
Есть программа:
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
91
92
93
94
95
96
#include <stdio.h>
#include <memory.h>
 
struct arrInt
{
    char * data;
    int length;
 
    void ReadFromFile(FILE *f);
    void WriteToFile(FILE *f);
    void Print();
    arrInt operator * (arrInt& other);
};
 
void    arrInt::ReadFromFile (FILE *f)
{
    char * tmp = new char [2505];
    length = 0;
 
    do
    {
        fscanf(f, "%c", tmp + length);
    } while (tmp [length] >= '0' && tmp [length++] <='9');
 
    data = new char [length + 2];
    for (int i = 0; i<length; i++)
    data [i] = tmp [length - i - 1] - 48;
 
    delete []    tmp;
}
 
void    arrInt::WriteToFile (FILE *f)
{
    bool started = false;
    for (int i = this->length - 1; i >= 0; i--)
    {
    if (started)
        fprintf(f, "%d", this->data [i]);
    else
        if (this->data [i])
        {
            started = true;
            fprintf(f, "%d", this->data [i]);
        }
    }
    if (!started)
    fprintf(f, "0");
 
    fprintf(f, " ");
}
 
void    arrInt::Print()
{
    for (int i = this->length - 1; i >= 0; i--)
    printf("%d", this->data [i]);
    printf("\n");
}
 
arrInt arrInt::operator*(arrInt& other)
{
    arrInt result;
    result.data = new char [this->length + other.length + 2];
    memset(result.data, 0, sizeof(char) * (this->length + other.length + 2));
    result.length = this->length + other.length + 2;
 
    char tmp = 0;
    for (int i = 0; i < other.length; i++)
    {
        for (int j = 0; j<this->length; j++)
        {
            tmp = this->data [j] * other.data[i] + result.data [i + j];
            result.data [i + j] = tmp % 10;
            result.data [i + j + 1] += tmp / 10;
        }
    }
 
    return result;
}
 
int main()
{
    arrInt i1, i2, i3;
 
    FILE *f = fopen("input.txt", "r");
    i1.ReadFromFile(f);
    i2.ReadFromFile(f);
    fclose(f);
 
    i3 = i1 * i2;
 
    f = fopen("output.txt", "wt");
    i3.WriteToFile(f);
    fclose(f);
 
    return 0;
}
Она выполняет вот такую задачу:
Даны целые неотрицательные числа M и N. Требуется найти произведение этих чисел.
Входные данные

Входной файл INPUT.TXT содержит в первой строке число M, а во второй строке – число N. (0 <= M, N <= 102500)
Выходные данные

В выходной файл OUTPUT.TXT выведите произведение чисел M и N.
Опишите мне какие-тут методы используются и как именно она работает...

Заранее благодарен!

Добавлено через 59 секунд
Пример входных данных:
4134937827592
784
Результатом будет:
3241791256832128
Добавлено через 3 минуты
Что это за библиотека такая <memory>?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru