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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.67
DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 19:03     Подключение библиотек #1
c:\documents and settings\admin\рабочий стол\compressed_matrix\compressed_matrix\main.cpp(4) : fatal error C1083: Не удается открыть файл include: stdafx: No such file or directory
С чем может быть связано? (#include <stdafx.h>)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RazorQ
 Аватар для RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.06.2009, 19:09     Подключение библиотек #2
Цитата Сообщение от DiegoGonzalez Посмотреть сообщение
: No such file or directory
нет файла или директории. А по русски, удалил ты его или не включил вообще
DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 19:35  [ТС]     Подключение библиотек #3
Эм...я конечно не совсем крутой программер,но я пробовал даже пересобрать проект....
Могу выложить код,только там порядка 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
RazorQ
 Аватар для RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.06.2009, 19:46     Подключение библиотек #4
должно быть так
#include "stdafx.h"
в файле compressed_matrix.cpp
(в ковычках, а не скобочках)
И проверь есть ли вообще этот файл в папке с проэктом
DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 19:53  [ТС]     Подключение библиотек #5
Не.....не помогает...((
И это не файл вообще...а библиотека....
RazorQ
24.06.2009, 19:54
  #6

Не по теме:

Цитата Сообщение от DiegoGonzalez Посмотреть сообщение
И это не файл вообще...а библиотека....
А с каких пор библиотека не файл

DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 19:56  [ТС]     Подключение библиотек #7
Ну в смысле есть оно...пересобирал ведь даже...в других прогах работает..
RazorQ
 Аватар для RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.06.2009, 20:02     Подключение библиотек #8
Общие замечания не по теме: а почему ты комбинируешь printf/scanf с cout/cin
Это не запрещено, но выглядит не очень. Если пишешь на плюсах, то используй возмоности плюсов.

Добавлено через 2 минуты 47 секунд
Судя по сообщению
Цитата Сообщение от DiegoGonzalez Посмотреть сообщение
c:\documents and settings\admin\рабочий стол\compressed_matrix\compressed_matrix\main.cpp( 4) : fatal error C1083: Не удается открыть файл include: stdafx: No such file or directory
нет файла stdafx.h в каталоге, где лежит файл main.cpp

Добавлено через 1 минуту 40 секунд
этот файл выглядит так
C++
1
2
3
4
5
6
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
создай вручную и создай файл stdafx.cpp (на всякий) с текстом
C++
1
#include "stdafx.h"
DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 20:06  [ТС]     Подключение библиотек #9
Ну это я так....прога не доделана...в разное время разные части писал...ну и в общем так получилось...

Добавлено через 4 минуты 12 секунд
c:\documents and settings\admin\рабочий стол\compressed_matrix\compressed_matrix\stdafx.cpp(1) : fatal error C1083: Не удается открыть файл include: stdafx.h: No such file or directory
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
24.06.2009, 20:07     Подключение библиотек #10
Нажимаем Alt+F7 -> Configuration Properties -> C/C++ -> Perecompiled Headers -> Create/Use Precompiled Header ставим Not Using Precompiled Headers
DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
24.06.2009, 20:13  [ТС]     Подключение библиотек #11
"Не использовать предварительно скомпилированные заголовки"
так и стоит
RazorQ
 Аватар для RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.06.2009, 20:42     Подключение библиотек #12
Цитата Сообщение от DiegoGonzalez Посмотреть сообщение
так и стоит
тогда вообще удаляй все stdafx.h
DiegoGonzalez
 Аватар для DiegoGonzalez
0 / 0 / 0
Регистрация: 09.04.2009
Сообщений: 22
25.06.2009, 06:42  [ТС]     Подключение библиотек #13
Удалять тоже пробовал....59 ошибок...оно должно там быть.....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2009, 07:09     Подключение библиотек
Еще ссылки по теме:

C++ Подключение неиспользуемых библиотек
C++ Подключение библиотек
Подключение своих библиотек C++
Автоматическое подключение библиотек C++
Подключение библиотек C++

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

Или воспользуйтесь поиском по форуму:
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
25.06.2009, 07:09     Подключение библиотек #14
проект на чем?
MS VS 2005/2008?
если да, то такая ерунда бывает, когда проект создаешь неправильно.
читал у мелкомягкого - там что-то, связанное с базовыми параметрами проекта.
в результате, половина разделов настроек проекта вообще не отображается.
убил не один час, но как их поменять на правильные после созадания, я так и не понял.
проще сделать нормальный проект заново, и скопировать в него свои сpp/h.
Yandex
Объявления
25.06.2009, 07:09     Подключение библиотек
Ответ Создать тему
Опции темы

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