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

Подключение библиотек - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ цикл http://www.cyberforum.ru/cpp-beginners/thread41864.html
Помогите пожалуйста. Этот цикл должен уменьшать значения вектор x, если хотя бы одно из его значений , за исключением последнего, больше 1 + и увеличивать, если меньше нуля...Но этот цикл не работает в итоге. for (i = 0; i < n-1; i++) { if (x <= 0) { printf("x<=0!\n"); while(x>0) ...
C++ пример базы данных на с/с++ с использование структур если у кого есть выложите плиз пример любой базы данных на с/с++ с использованием структур (там полегче какой нибудь) чтобы разобраться http://www.cyberforum.ru/cpp-beginners/thread41857.html
Двумерные массивы, экзамен, онлайн C++
Здравствуйте! Очень нужна помощь на экзамене который состоится 26.06 в пятницу в 10:00 По Москве (9:00 по киеву). Мне понадобится помощь в области двумерных динамических массивов, не более. То есть глубокие познания не потребуються. Помощи буду просить по аське, сюда напишу врядли. Кто готов стучите в аську 449554828, буду несказанно рад))) Помогите спасти стипендию пожалуйста! Буду очень...
C++ Что выведется на экран в результате выполнения фрагмента кода?
Помогите пожалуйста, сделать 5 небольших задач , спасибо всем кто откликнется! 1.Что выведется на экран в результате выполнения следующего фрагменту кода? int sum=0,a=2;for(int i=0;i<10;i++){ sum+=a;i++;} cout<< "сумма введенных значений"<<sum; 2.Чему будет равно z после выполнения следующего фрагменту кода? int z=1,y; for( y=1;y++<8;y++) z+=y++; cout<<z;
C++ Алгоритм для моментальной лотерей http://www.cyberforum.ru/cpp-beginners/thread41834.html
Нужно придумать алгоритм , вот я думаю может здесь помогут. для простоты понимания упрошу. Есть 3 выйгрышные комбинации и по каждой свой приз Приз 1 Приз 2 Приз 3, и у каждой комбинации своя вероятность выпадения. Приз 1. 1 к 16.67 Приз 2. 1 к 25 Приз 3. 1 к 27.78 По какому алгоритму должны выпадать выйгрышные варианты. По какому алгоритму в моментальных лотереях забивают...
C++ работа со стеком попалась такая задача: создать стек для положительных и отрицательных чисел. максимальный размер стека ввести с экрана. Создать функции для ввода и вывода элементов стека. ВВести с экрана 4 элемента, предусмотрев опадание в стек только отрицательных элементов. Вывести все эелементы стека. посмотрите плз чего тут нехватает, где ошибки. #include<stdio.h> #include<conio.h> #include<stdlib.h>... подробнее

Показать сообщение отдельно
DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 19:35  [ТС]     Подключение библиотек
Эм...я конечно не совсем крутой программер,но я пробовал даже пересобрать проект....
Могу выложить код,только там порядка 300 строк кода и разделено на 3 файла,один из которых заголовочный...

Добавлено через 7 минут 30 секунд
compressed_matrix.h
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
//#include <stdafx.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
 
//базовый абстрактный класс
class matrix {
public:
    int number_of_rows; //число строк (равно n)
  //  virtual int print_to_file(FILE *stream, int flag)=0;//виртуальная функция вывода матриц
 }
 
 
//класс полной матрицы
class Cfull_matrix : public matrix
{
    //friend int print_to_file(FILE *stream, int flag);
    //переменные
public:
    full_matrix(int number_of_rows); //в конструкторе производится обнуление всех переменных и указателей
    ~full_matrix(); //в деструкторе производится удаление выделенной памяти и обнуление всех переменных и указателей
    int number_of_rows; //число строк (равно n)
    double init_full(); //инициализация матрицы
    double sum_full(full_matrix &mf1, full_matrix &mf2); //суммирование матриц
 
protected:
    //полный формат хранения
     double **mf; //указатель на двумерный массив размерностью nxn      
}
 
 
//класс сжатой матрицы
class compressed_matrix : public matrix
{
        //friend int print_to_file(FILE *stream, int flag);
//переменные
public:
    compressed_matrix(int number_of_rows); //в конструкторе производится обнуление всех переменных и указателей
    ~compressed_matrix(); //в деструкторе производится удаление выделенной памяти и обнуление всех переменных и указателей
    int number_of_elements; //число ненулевых элементов матрицы
    int number_of_rows; //число строк (равно n)
    double init_compres(); //инициализация матрицы
    double *get_values_ptr(); //возвращает указатель на массив values
    int *get_columns_ptr(); //возвращает указатель на массив columns
    int *get_rows_ptr(); //возвращает указатель на массив rows
    double sum_compress(compressed_matrix &mc1, compressed_matrix &mc2); //суммирование матриц
 
protected:
    //сжатый формат хранения
     int *rows; //массив из n+1 элемента; rows[i] хранит номера элементов массивов values и
                //columns, с которых начинается i-я строка матрицы (rows[0]=0,
                //rows[n+1]=number_of_elements+1)
     int *columns; //массив, хранящий номера столбцов ненулевых элементов
     double *values; //массив значений ненулевых элементов
     int size_of_columns; //длина массива columns
     int size_of_values; //длина массива values
}
compressed_matrix.cpp
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include "stdlib.h"    // для функций работы с числами    
#include <iostream> // для работы   cin
//#include <stdafx.h>
#include <stdio.h>    // для printf
 
#ifndef COMPRESSED_MATRIX__H        // заголовочный для класса
#define COMPRESSED_MATRIX
     
using namespace std;
 
Ccompressed_matrix::Ccompressed_matrix(int number_of_rows)
{
        //присвоим внутренним переменным переданные параметры
        int size_of_columns = number_of_rows*number_of_rows;
        int size_of_values = number_of_rows*number_of_rows;
 
        //Для хранения собственно данных матрицы сначала выделим память для массивов
        int *rows = NULL;
        rows = new int[number_of_rows];
        int *columns = NULL;
        columns = new int[size_of_columns];
        double *values = NULL;
        values = new double[size_of_values];
}
 
Ccompressed_matrix::~Ccompressed_matrix()
{   //освобождение памяти
    delete []*rows;
    delete []*columns;
    delete []*values;
}
 
Cfull_matrix::full_matrix(int number_of_rows)
{
    //number_of_rows// присвоим внутренним переменным переданные параметры
 
    //Для хранения собственно данных матрицы сначала выделим память
     double **mf = NULL;
     mf1 = new double*[number_of_rows];
     for (int i = 0; i < number_of_rows; i++) {
     mf1[i] = new double[number_of_rows];
     }
}
 
Cfull_matrix::~Ccompressed_full_matrix()
{   //освобождение памяти
    delete []**mf
}
 
//инициализация сжатой матрицы
 double Ccompressed_matrix::init_compres(int number_of_rows){
        int number_of_elements=0,j,i;
        double r,a1,a2;
        //ввод диапазона значений
        printf("vvedite a1:\n");
        scanf_s("%lf", &a1);
        printf("vvedite a2:\n");
        scanf_s("%lf", &a2);
 
        srand(unsigned(time(NULL)));
        //обнуление массивов
        for (i=0;i<size_of_columns;i++){
            columns[i]=0;
            values[i]=0;
        };
        //заполнение значениями
         for (i=0;i<number_of_rows;i++)
             {
                 for (j=0;j<number_of_rows;j++){
                     r=rand()& 1;
                    if (r!= 0) { r =(double)((double)rand()/(double)RAND_MAX*(a2-a1)+a1);
                                        values[number_of_elements] = r;
                                        columns[number_of_elements]=j;
                                        number_of_elements=number_of_elements+1;}
                        printf("%7.3lf", r);
                 };
            rows[i]=number_of_elements;
            printf("\n");
             };
 
                printf("\n");
            
             for (i=0;i<number_of_rows;i++){    printf("%3d", rows[i]);};
             printf("\n");
             for (i=0;i<number_of_elements;i++){printf("%3d", columns[i]);};
             printf("\n");
             for (i=0;i<number_of_elements;i++){printf("%7.3lf", values[i]);};
        return 0;
 }
 
//инициализация полной матрицы
 double Cfull_matrix::init_full(int number_of_rows){
        int i,j;
        double a1,a2;
        srand(unsigned(time(NULL)));
        //ввод диапазона значений
        printf("vvedite a1:\n");
        scanf_s("%lf", &a1);
        printf("vvedite a2:\n");
        scanf_s("%lf", &a2);
        //заполнение значениями
         for (i=0;i<number_of_rows;i++){
                 for (j=0;j<number_of_rows;j++){
                    mf[i][j]=rand()& 1;
                    if (mf[i][j]!=0) { mf[i][j]=(double)((double)rand()/(double)RAND_MAX*(a2-a1)+a1);}
                    printf("%8.3lf", mf[i][j]);
        }
        printf("\n");
         }
    return 0;
}   
 
 
//сложение сжатых матриц
double Ccompressed_matrix::sum_compress(compressed_matrix &mc1, compressed_matrix &mc2, int number_of_rows){
    
    int i,j1,j2,k;
    double Prod=1;
 
    for(i=0;i<number_of_rows;i++)
        {
            for(j1=row1[i];j1<rows[i+1];j1++)
                {
                    for(j2=rows2[i];columns2[j2]<=columns1[j1];j2++)
                    {
                        k=0;
                        if (columns1[j1]==columns2[j2])
                            {Prod=Prod*(values1[j1]+values2[j2]);
                             k=1;
                             break;
                            }
                        if (k==0) Prod=Prod*values1[j1];
                    }
                }
 
            for(j2=row2[i];j2<rows2[i+1];j2++)
                {
                    for(j1=rows1[i];columns1[j1]<=columns2[j2];j1++)
                        {
                        if (columns1[j1]==columns2[j2])
                            {
                             k=1;
                             break;
                            }
                        if (k==0) Prod=Prod*values2[j2];
                        }
                }
        }
    return Prod;
}
 
//сложение полных матриц
double Cfull_matrix::sum_full(full_matrix &mf1, full_matrix &mf2, int number_of_rows){
    
    double Prod=1;
    int i,j;     
         for (i=0;i<number_of_rows;i++)
                  {
                      for (j=0;j<number_of_rows;j++){
                        printf("%8.3lf", m1[i][j] + m2[i][j]);
                        if (m1[i][j] + m2[i][j]!= 0) Prod=Prod*(m1[i][j] + m2[i][j]);
 
                      }
                  printf("\n");
                }
    return Prod; 
}
 
//int print_to_file(FILE *stream, int flag){}
#endif
main.cpp
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
97
#include <iostream>
#include <stdio.h>
#include <stdlib.h> 
#include "stdafx.h"
 
 
#ifndef COMPRESSED_MATRIX__H
#define COMPRESSED_MATRIX
 
using namespace std;
 
void main()
{
    int i, punkt;
    char filename[20];
    
    // спросим сколько строк
    int number_of_rows;
    cout << "\n Number_of_rows ?:" ;
    cin >> number_of_rows ;
    
    
    while(1) {
    system("cls");
    printf("Vy hotite slozit polnie ili szatie matrici?\n");
    printf("1-Polnie\n");
    printf("2-Szatie\n");
    printf("3-Vyiti\n");
    scanf_s("%d", &punkt); 
    int flag=0; 
    //цикл до тех пор пока не выбран правильный пункт меню
    while(flag==0)
    { 
                //правильный ли выбран пункт
                if ((punkt<'1')&&(punkt>'3')) 
                {
                    cout <<"Takogo punkta net. Nagmite any key i povtorite vvod:\n";
                    _getch();
                    system ("cls"); 
                    printf("Vy hotite slozit polnie ili szatie matrici?\n");
                    printf("1-Polnie\n");
                    printf("2-Szatie\n");
                    printf("3-Vyiti\n");
                    scanf_s("%d", &punkt);
                }                               
                else flag=1;         
            }
    //если выбран пункт "полные"
    if (punkt == 1) {
        system("cls");
        printf("Vvedite imja fayla dlya zapisi: ");
        cin >> filename;
        ofstream out(filename, ios::out);  //создание потока
        //проверка создания файла
        if (!out)
        {
            cerr << "Oshibka sozdaniya faila!" << endl;
        }
        out.close();
 
    Cfull_matrix mf1(int number_of_rows);   // создадим матрицу 1
    mf1.init_compres(int number_of_rows);    // заполним значениями
 
    Cfull_matrix mf2(int number_of_rows);   // создадим матрицу 2
    mf2.init_compres(int number_of_rows);    // заполним значениями
        
    double sum_full(full_matrix &mf1, full_matrix &mf2); //суммирование
    }
 
        //если выбран пункт "сжатые"
    if (punkt == 2) {   
        system("cls");
        printf("Vvedite imja fayla dlya zapisi: ");
        cin >> filename;
        ofstream out(filename, ios::out);  //создание потока
        //проверка создания файла
        if (!out)
        {
            cerr << "Oshibka sozdaniya faila!" << endl;
        }
        out.close();
 
        Ccompressed_matrix mc1(int number_of_rows); // создадим матрицу 1
        mc1.init_compres(int number_of_rows);    // заполним значениями
 
        Ccompressed_matrix mc2(int number_of_rows); // создадим матрицу 2
        mc2.init_compres(int number_of_rows);    // заполним значениями
 
        //суммирование
        double Ccompressed_matrix::sum_compress(compressed_matrix &mc1, compressed_matrix &mc2, int number_of_rows);
        
    }
    if (punkt == 3){exit(0);}
    }
    return 0;
}
#endif
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru