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

Оптимизация кода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Предлага готовые задачи по ООП http://www.cyberforum.ru/cpp-beginners/thread623309.html
Предлагаю решение следующих задач по ООП: 1) Класс Дробное число со знаком (Fractions). Число должно быть представлено двумя полями: целая часть - длинное целое со знаком, дробная часть - беззнаковое короткое целое. Реализовать арифметические операции сложения, вычитания, умножения и операции сравнения. В функции main проверить эти методы. 2) Класс Деньги для работы с денежными...
C++ Размещение переменных в памяти пользуюсь Dev-C++, стало интересно, как компиляторы размещают даныые: последовательно, или как попало? предположим есть объявление int i; int j; как они будут располагаться в памяти? j сразу же за i ? или нельзя быть точно уверенным как? http://www.cyberforum.ru/cpp-beginners/thread623262.html
вчем разница между с++ и ++с C++
Не как него могу понять в чем разница между с++ и ++с ? с - счетчик. просто пример: int main() { int c = 0; // счетчик int k; while (cin >> k) { if(k == 1) c++; //++c;
C++ Передать двумерный массив в функцию
Доброе утро! Подскажите пожалуйста как можно передать двумерный массив из функции в main(). к примеру функция dataFromFile() в ней создаётся двумерный массив со строками, как передать весь массив в функцию main()?
C++ Как использовать Dev C++? http://www.cyberforum.ru/cpp-beginners/thread623182.html
Помогите мне пожалуйста. Пишу программы на Dev C++, ошибок нет, но программа не работает. Даже самые простые программы. например, #include<iostream> int main() { int number1; int number2; int sum;
C++ Преобразовать параметр из "WCHAR [260]" в "const char *" Подскажите пожалуйста, как " преобразовать параметр из "WCHAR " в "const char *""? Вот,по коду я думаю понятно будет. Если поставить ((соnst char*)win.cFileName) то получу только первую букву файла,а нужно так преобразовать,чтобы получить все название. Подскажите, пожалуйста. http://pastebin.com/qrP1HKiq Проблема в 23 строке. В 18 получаю только первый символ. подробнее

Показать сообщение отдельно
Mr.Armik
2 / 2 / 0
Регистрация: 11.06.2010
Сообщений: 88
19.07.2012, 12:23  [ТС]     Оптимизация кода
Вдруг кому то пригодится. Выкладываю рабочий код:
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
#include <stdlib.h>
#include <time.h>
#include <iostream>
#include <conio.h>
#include <time.h>
 
using namespace std;
 
const int N = 4;
const int M = 200;
    //заполнение матрицы размерностью nxn случайными числами
double** generation(int n)
{
    double **a;
    a = (double**)malloc(sizeof(double *)*n);
    for(int i=0;i<n;i++)
    {
        a[i] = (double*)malloc(sizeof(double)*n);
        for(int j=0;j<n;j++)
            a[i][j] = rand()%100;
    }
    return a;
}
 
    //вывод на консоль матрицы
void print(double **c)
{
    for (int i=0;i<N;i++)
    {
        for (int j=0;j<N;j++)
            printf("%7.0f",c[i][j]);
        cout<<"\n";
    }
}
    //перемножение матриц a и b
void multiply (double **a,double **b,double **c)
{
    for (int i=0;i<N;i++)
        for(int j=0;j<N;j++)
            for (int k=0;k<N;k++)
                c[i][j]+=a[i][k]*b[k][j];
}
 
    //суммирование матриц
void summ (double **a, double **b,double **c)
{
    for (int i=0;i<N;i++)
        for(int j=0;j<N;j++)
            c[i][j] = a[i][j]+b[i][j];
}
 
int main(int argc, char**argv)
{
    cout<<"Enter any cymbol."<<endl;
    _getch();
    double **x[M][M],**y[M][M],**z[M][M];
    double **c;
    
    c = (double**)malloc(sizeof(double *)*N);
    for(int i=0;i<N;i++)
        c[i] = (double*)malloc(sizeof(double)*N);
    
    cout<<"Generation..."<<endl;
    for (int i=0;i<M;i++)
        for(int j=0;j<M;j++)
        {
            x[i][j] = generation(N);
            y[i][j] = generation(N);
            z[i][j] = generation(N);
        }
    cout<<"Colculation..."<<endl;
    clock_t t1 = clock(); //время до выполнения
    for (int i=0;i<M;i++)
        for(int j=0;j<M;j++)
            for (int k=0;k<M;k++)
            {
                multiply(x[i][k],y[k][j],c);
                summ(z[i][j],c,z[i][j]);
            }
 
    clock_t t2 = clock(); // время после
    cout<<"Successful."<<endl;
    cout << "Time: " << (double) (t2-t1) / (double)CLOCKS_PER_SEC << '\n'; // время в секундах
    return 0;
}
Код не идеальный, но все же рабочий, может кому то пригодится для начала работы...
 
Текущее время: 15:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru