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

подскажите пожалуйста в чем ошибка) - C++

Восстановить пароль Регистрация
 
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 17:23     подскажите пожалуйста в чем ошибка) #1
при написании программы вылезла ошибка "...Возможно, вы забыли добавить директиву "#include "stdafx.h"" в источник" - добавил #include "stdafx.h" вылезло еще куча ошибок. в чем дело, подскажите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 17:23     подскажите пожалуйста в чем ошибка)
Посмотрите здесь:

C++ Пожалуйста, подскажите в чем у меня ошибка?
C++ подскажите пожалуйста, в чем моя ошибка?
C++ Подскажите в чем ошибка
подскажите в чем ошибка C++
C++ Подскажите, в чем ошибка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
10.12.2013, 17:29     подскажите пожалуйста в чем ошибка) #2
наверное в ошибках!!!!

C++
1
#include "stdafx.h"
вставляете самым первым инклудом, а потом исправляете ошибки, что за ним вылезли

увы, астральный шар и бубен изьяла милиция, не могу теперь сказать точно, что там...
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 17:35  [ТС]     подскажите пожалуйста в чем ошибка) #3
помогите пожалуйста как исправить ошибки:
#include <stdafx.h>
#include <stdio.h>



int main(void)
{
static const char filename[] = "file.txt";
FILE * file = fopen ("C:\\file.txt", "r");
int i = 0;
if(file !=NULL)
{
char line[128]; //max size of vector;
int y[128];
int x[128];

while(fgets(line, sizeof line, file) != NULL )
{
sscanf(line,"%d ; %d", &x[i], &y[i]);
printf("x = %d ; y = %d\n", x[i],y[i]);
i++;
}
}
fclose(file);

int xy[128];
int x2[128];
int x_summ, y_summ, xy_summ,x2_summ = 0;
for (int n = 0; n < i /*i+1*/ ; n++)
{

xy[n] = x[n]*y[n];
x2[n] = x[n]*x[n];
x_summ+=x[n];
y_summ+=y[n];
xy_summ+=xy[n];
x2_summ+=x2[n];
}
double a = (i*xy_summ - x_summ*y_summ)/(i*x2_summ - x2_summ);
double b = (y_summ - a*x_summ)/i;

fprintf("y = %f x+%f\n", a,b);
return 0;
}


вот этот код выполняет такую функцию:программа запрашивает имя файла, в этом файле в два столбца записаны значения функции y=f(x); ( значения х и значения у через ";"), мне требуется считать все значения, которые из файла, построить линию тренда ( уравнение прямой , которые наиболее близко располагаются к этим точкам (у=kx+b) (метод наименьших квадратов)

Добавлено через 34 секунды
а то я попытался исправить, так их еще больше стало...
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
10.12.2013, 17:39     подскажите пожалуйста в чем ошибка) #4
....
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 17:40  [ТС]     подскажите пожалуйста в чем ошибка) #5
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
#include <stdafx.h>
#include <stdio.h>
 
 
 
int main(void)
{
    static const char filename[] = "file.txt";
    FILE * file = fopen ("C:\\file.txt", "r");
    int i = 0;
    if(file !=NULL)
    {
        char line[128]; //max size of vector;
        int y[128];
        int x[128];
       
        while(fgets(line, sizeof line, file) != NULL )
        {
            sscanf(line,"%d ; %d", &x[i], &y[i]);
            printf("x = %d ; y = %d\n", x[i],y[i]);
            i++;
        }
    }
    fclose(file);
 
    int xy[128];
    int x2[128];
    int x_summ, y_summ, xy_summ,x2_summ = 0;
    for (int n = 0; n < i /*i+1*/ ; n++)
    {
       
        xy[n] = x[n]*y[n];
        x2[n] = x[n]*x[n];
        x_summ+=x[n];
        y_summ+=y[n];
        xy_summ+=xy[n];
        x2_summ+=x2[n];
    }
    double a = (i*xy_summ - x_summ*y_summ)/(i*x2_summ - x2_summ);
    double b = (y_summ - a*x_summ)/i;
 
    fprintf("y = %f x+%f\n", a,b);
    return 0;
}
lpvoid
 Аватар для lpvoid
318 / 301 / 17
Регистрация: 06.03.2013
Сообщений: 869
10.12.2013, 17:42     подскажите пожалуйста в чем ошибка) #6
Ms Proger,

Не по теме:

удивительно как люди умудряются писать на плюсах как на си. чем вас std::*fstream не устроили?

stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
10.12.2013, 17:50     подскажите пожалуйста в чем ошибка) #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
#include <stdio.h>
 
#define MAX_SIZE 128
 
int main(void)
{
    FILE *fd = NULL;
    const char filename[] = "file.txt";
 
 
    if ((fd = fopen ("C:\\file.txt", "r")) != NULL);
    {
        printf("can not open file\n");
        return 1;
    }
 
    int y[MAX_SIZE]= {0};
    int x[MAX_SIZE] = {0};
    char line[MAX_SIZE] = {0};
 
    int count = 0;
    for (; fgets(line, MAX_SIZE, fd); ++count)
    {
        sscanf(line, "%d ; %d", &x[count], &y[count]);
        printf("x = %d ; y = %d\n", x[count], y[count]);
    }
 
    fclose(fd);
 
    int x_summ = 0, y_summ = 0, xy_summ = 0, x2_summ = 0;
    for (int i = 0; i < count; ++i)
    {
        x_summ += x[i];
        y_summ += y[i];
 
        xy_summ += x[i] * y[i];
        x2_summ += x[i] * x[i];
    }
 
    double a = (count * xy_summ - x_summ * y_summ) / (count * x2_summ - x2_summ);
    double b = (y_summ - a * x_summ) / count;
 
    printf("y = %fx + %f\n", a, b);
    return 0;
}
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 18:02  [ТС]     подскажите пожалуйста в чем ошибка) #8
Цитата Сообщение от lpvoid Посмотреть сообщение
Не по теме:
удивительно как люди умудряются писать на плюсах как на си. чем вас std::*fstream не устроили?
простите, я вас не понял

Добавлено через 1 минуту
Цитата Сообщение от stima Посмотреть сообщение
Код C++
скажите, что вы изменили в моём коде (какие ошибки у меня были)? и при запуске компиллятора выплывает консолька с текстом "cannot open fie" что это значит?
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
10.12.2013, 18:05     подскажите пожалуйста в чем ошибка) #9
Это значит что кто-то невнимательный).

Исправленно
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
#include <stdio.h>
 
#define MAX_SIZE 128
 
int main(void)
{
    FILE *fd = NULL;
    const char filename[] = "file.txt";
 
 
    if ((fd = fopen ("C:\\file.txt", "r")) == NULL);
    {
        printf("can not open file\n");
        return 1;
    }
 
    int y[MAX_SIZE]= {0};
    int x[MAX_SIZE] = {0};
    char line[MAX_SIZE] = {0};
 
    int count = 0;
    for (; fgets(line, MAX_SIZE, fd); ++count)
    {
        sscanf(line, "%d ; %d", &x[count], &y[count]);
        printf("x = %d ; y = %d\n", x[count], y[count]);
    }
 
    fclose(fd);
 
    int x_summ = 0, y_summ = 0, xy_summ = 0, x2_summ = 0;
    for (int i = 0; i < count; ++i)
    {
        x_summ += x[i];
        y_summ += y[i];
 
        xy_summ += x[i] * y[i];
        x2_summ += x[i] * x[i];
    }
 
    double a = (count * xy_summ - x_summ * y_summ) / (count * x2_summ - x2_summ);
    double b = (y_summ - a * x_summ) / count;
 
    printf("y = %fx + %f\n", a, b);
    return 0;
}
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 18:29  [ТС]     подскажите пожалуйста в чем ошибка) #10
а все, увидел это в printf (cannot open file)... но почему же тогда в консольке нельзя больше делать никаких дальнейших действий? (простите меня что задаю такие глупые вопросы) я просто программирование с нуля учу)

Добавлено через 14 минут
может нужно что-то с файлом проработать?
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
10.12.2013, 18:38     подскажите пожалуйста в чем ошибка) #11
Я добавил коментарии
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
#include <stdio.h>
 
#define MAX_SIZE 128
 
int main(void)
{
    FILE *fd = NULL;
    const char filename[] = "C:\\file.txt";  //полынй путь к файлу который мы будем открывать
 
    if ((fd = fopen (filename, "r")) == NULL); //елси fopen вернет NULL, то
    {
        printf("can not open file\n"); //выведем сообщение
        return 1; //выйдем из программы
    }
 
    //файл удачно открыт
 
    int y[MAX_SIZE]= {0};
    int x[MAX_SIZE] = {0};
    char line[MAX_SIZE] = {0};
 
    int count = 0;
    for (; fgets(line, MAX_SIZE, fd); ++count) //считываем с файла размером MAX_SIZE
    {
        sscanf(line, "%d ; %d", &x[count], &y[count]);   //парсим строку по нужному паттерну
        printf("x = %d ; y = %d\n", x[count], y[count]);  //выводим то что мы получили
    }
    //прочитали все
 
    fclose(fd); //закрыли файл
 
    int x_summ = 0, y_summ = 0, xy_summ = 0, x2_summ = 0;
    for (int i = 0; i < count; ++i) //начали суммировать по количеству прочитанных данных
    {
        x_summ += x[i];
        y_summ += y[i];
 
        xy_summ += x[i] * y[i];
        x2_summ += x[i] * x[i];
    }
 
    double a = (count * xy_summ - x_summ * y_summ) / (count * x2_summ - x2_summ); 
    double b = (y_summ - a * x_summ) / count;
 
    printf("y = %fx + %f\n", a, b); //вывли нужные нам данные
    return 0; //вышли
}
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 19:15  [ТС]     подскажите пожалуйста в чем ошибка) #12
в каких случаях fopen ворачивает null?
stima
430 / 285 / 16
Регистрация: 22.03.2011
Сообщений: 929
Завершенные тесты: 1
10.12.2013, 19:19     подскажите пожалуйста в чем ошибка) #13
В каких ворачивает я не знаю, а возвращает - если не удалось открыть файл.

п.с. Вам пора начать хоть немного искать информацию самомоу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 19:23     подскажите пожалуйста в чем ошибка)
Еще ссылки по теме:

Подскажите пожалуйста, я тут новенький в чем ошибка? C++
Подскажите в чем ошибка! C++
C++ Подскажите пожалуйста в чем ошибка?(С++,структуры,стек)

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

Или воспользуйтесь поиском по форуму:
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
10.12.2013, 19:23  [ТС]     подскажите пожалуйста в чем ошибка) #14
спасибо большое)))
Yandex
Объявления
10.12.2013, 19:23     подскажите пожалуйста в чем ошибка)
Ответ Создать тему
Опции темы

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