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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
#1

Запись и считывание в/из ФАЙЛА - C++

27.05.2014, 23:07. Просмотров 455. Ответов 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
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
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <math.h>
 
using namespace std;
 
void Show(int, double*);
void PryamojHod(int, double**, double*);
void ObratnyHod(int, double**, double*, double*);
 
int main()
{
    SetConsoleOutputCP(1251);
    int n;
    cout << "\n Введите количество переменных: ";
    while(!(cin >> n) || (cin.peek() != '\n') || (n <=0))
    {
        cin.clear();
        while(cin.get() != '\n');
        cout << "\n\a Ошибка! \n для новой попытки, нажмите любую кнопку...";
        getch();
        system("cls");
        cout << "\n Введите количество переменных: ";
    }
 
    // выдиляем память под матрицу А и векторы В и Х
    double **a = new double *[n];
    for (int i = 0; i < n; i++)
        a[i] = new double [n];
    double *b = new double [n];
    double *x = new double [n];
 
    // ввод данных
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
            while(!(cin >> a[i][j]) || (cin.peek() != '\n'))
            {
                cin.clear();
                while(cin.get() != '\n');
                cout << "\n Ошибка ввода!\n для новой попытки, нажмите любую кнопку...";
                getch();
                system("cls");
                cout << " Введите " << (j+1) << "й коэффициент " << (i+1) << "го уравнения: ";
            }
        }
        cout << " Введите " << (i+1) << "й свободный член " << (i+1) << "го уравнения: ";
        while(!(cin >> b[i]) || (cin.peek() != '\n'))
        {
            cin.clear();
            while(cin.get() != '\n');
            cout << "\n Ошибка ввода!\n для новой попытки, нажмите любую кнопку...";
            getch();
            system("cls");
            cout << " Введите " << (i+1) << "й свободный член " << (i+1) << "го уравнения: ";
        }
    }
 
    // вывод СЛАУ
    cout << "\n Матрица А: " << endl;
    for(int i = 0; i < n; i++)
        Show(n, a[i]);
    cout << "\n Вектор B: " << endl;
    Show(n, b);
 
 
    PryamojHod(n, a, b);
    ObratnyHod(n, a, b, x);
 
    cout << "\n Результат: " << endl;
    Show(n, x);
 
    // освобождаем память
    for (int i = 0; i < n; i++)
        delete [] a[i];
    delete [] a;
    delete [] b;
    delete [] x;
 
    return 0;
}
 
void Show(int n, double *vec)
{
    for(int i = 0; i < n; i++)
    {
        cout << "\t" << vec[i];
    }
    cout << endl;
}
 
void PryamojHod(int n, double **a, double *b)
{
    double v = 0;
    for(int k(0), im; k < n; k++)
    {
        im = k;
        for(int i = k+1; i < n; i++)
        {
            if(fabs(a[im][k]) < fabs(a[i][k]))
                im = i;
        }
        if(im != k)
        {
            for(int j(0); j < n; j++)
            {
                v = a[im][j];
                a[im][j] = a[k][j];
                a[k][j] = v;
            }
            v = b[im];
            b[im] = b[k];
            b[k] = v;
        }
        for(int i = k + 1; i < n; i++)
        {
            v = 1.0*a[i][k]/a[k][k];
            a[i][k] = 0;
            b[i] = b[i]-v*b[k];
            if(v != 0)
            {
                for(int j = k + 1; j < n; j++)
                    a[i][j] = a[i][j]-v*a[k][j];
            }
        }
    }
}
 
void ObratnyHod(int n, double **a, double *b, double *x)
{
    double s = 0;
    x[n-1]=1.0*b[n-1]/a[n-1][n-1];
    for(int i = n - 2; i >= 0; i--)
    {
        s = 0;
        for(int j = i + 1; j < n; j++)
        {
            s=s+a[i][j]*x[j];
        }
        x[i]=1.0*(b[i]-s)/a[i][i];
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 23:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись и считывание в/из ФАЙЛА (C++):

Считывание файла в массив и запись нового файла - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Запись и считывание из файла - C++
Написал 2 метода, один из них запись в файл, а другой соответственно считывание из него. Как модифицировать код записи так, чтобы он в...

Запись и считывание из файла - C++
Помогите пожалуйста с лабой. Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные...

Построчная запись и считывание из файла - C++
Пытаюсь разобраться - как работать с файлами в C++, элементарные вещи получаются, а вот чуть посложнее и всё.. ничего не выходит... Работал...

Запись и считывание из бинарного файла - C++
Допустим я реализовываю АТД - контейнер. Там будет функция обновления (Все данные скопировать в файл на жестком дискке, а потом обратно)....

Считывание и запись файла блоками - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Gelo123321
21 / 21 / 4
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
27.05.2014, 23:28 #2
andreyananas
#include <fstream>

ifstream save_file("file1.txt");
save_file<<Записываем нужные нам данные.;

ofstream read_file("file1.txt");
read_file>>Выводим значения куда нужно.;
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
27.05.2014, 23:45  [ТС] #3
Цитата Сообщение от Gelo123321 Посмотреть сообщение
#include <fstream>
ifstream save_file("file1.txt");
save_file<<Записываем нужные нам данные.;
ofstream read_file("file1.txt");
read_file>>Выводим значения куда нужно.;
Если я записал в файл СЛАУ и его решение и так три раза.
Как мне в следующий раз считать с файла только СЛАУ?!
0
Gelo123321
21 / 21 / 4
Регистрация: 05.01.2012
Сообщений: 282
Завершенные тесты: 1
28.05.2014, 00:06 #4
andreyananas,
С помощью оператора get можно считывать с файла каждый символ, и если имеется например двоеточие ":", тогда, то, что после него выводить.
C++
1
2
ifstream file1("file1.txt");
while(!file1.eof()) if(file1.get()==':') {// }
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
28.05.2014, 10:24  [ТС] #5
Можешь показать на каком то примере?

Добавлено через 9 часов 2 минуты
ап хелп плс
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
28.05.2014, 11:59 #6
в чём проблема? как ты изменил программу для работы с файлами?
покажи пример своего файла с уравнением?
P.S. что такое СЛАУ?
0
andreyananas
22 / 22 / 9
Регистрация: 15.10.2013
Сообщений: 862
Завершенные тесты: 2
28.05.2014, 12:23  [ТС] #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в чём проблема? как ты изменил программу для работы с файлами?
еще никак

Добавлено через 27 секунд
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
что такое СЛАУ?
Система линейных алгебраических уравнений
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
28.05.2014, 12:30 #8
Цитата Сообщение от andreyananas Посмотреть сообщение
еще никак
Ну дык в чём же вопрос тогда? Изменяй! покажи, какой текст из файла читаешь. Я покажу, где ошибка, как прочитать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 12:30
Привет! Вот еще темы с ответами:

Считывание из файла и запись в файл - C++
не знаю в чем ошибся, не могу найти ничего, помогите пожалуйста, да если не сложно , еще нужно избавиться от глобальных переменных, не знаю...

Считывание\запись int из файла\в файл - C++
как считать Int из файла потом его же записать?

Считывание чисел из файла и запись их в массив - C++
Имеется файл txt со следующей строкой: ght# 1, nkat= 8, str= 1.00000, lmv= 0.5000 0.0001 0.0001 (reduced coord) ght# 2, nkat= ...

Запись и считывание объектов класса в/из файла - C++
Здравствуйте! Помогите, пожалуйста, разобраться с проблемой. Нужно записать объект класса в файл и после считать его. Код работает, но,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.05.2014, 12:30
Ответ Создать тему
Опции темы

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