Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2019, 19:52   #1
JustRespectMe
Новичок
Джуниор
 
Регистрация: 12.04.2019
Сообщений: 2
По умолчанию Работа с файлами. Взять из файла и записать в файл

Здравствуйте. Есть готовая программа. Нужно вместо ручного ввода данных и вывода в консоли, сделать это через файлы. Считать с файла "1.txt" и записать в файл "2.txt". Совсем не понимаю в файлах и не сталкивался с ними. В комментариях написано что взять и что записать
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>
#define e 0.01
using namespace std; 
int main()
{
    setlocale(LC_ALL, "rus");
    int i,j,k,n;
    float a[10][10],x[10];
    float sum,temp,error,big; 
    printf("Введите количество неизвестных : ");
    scanf("%d",&n) ;
    printf("Введите коэффициенты полной матрицы: \n");
    for(i=1;i<=n;i++)   // взять из файла 
        {
        for(j=1;j<=n+1;j++)
            {
                printf("a[%d][%d]= ",i,j); 
                scanf("%f",&a[i][j]);  
            }
    }
    sum=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<n;j++)
        {
            sum=sum+a[i][j];
        }
        for(k=1;k<=n;k++)
        {
            if(a[i][k]>sum-a[i][k])
            {
                swap(a[i][k], a[i][i]);
            }
        }
        sum=0;
    }
    cout<<"Ваша матрица"<<endl;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
    for(i=1;i<=n;i++)
        {
             x[i]=0;
        }
    do
        {
            big=0;
            for(i=1;i<=n;i++)
                {
                    sum=0;
                    for(j=1;j<=n;j++)
                        {
                            if(j!=i)
                                {
                                    sum=sum+a[i][j]*x[j];
                                }
                        }
                    temp=(a[i][n+1]-sum)/a[i][i];
                    error=fabs(x[i]-temp);
                    if(error>big)
                        {
                            big=error;
                        }
                    x[i]=temp;
                    printf("\nx[%d] =%f",i,x[i]);  // записать в файл
                }
            printf("\n");
        }
    while(big>=e);
    printf("\n\Искомый результат: ");
    for(i=1;i<=n;i++)
        {
            printf("\nx[%d]=%f",i,x[i]);
        }
getch();
}
JustRespectMe вне форума Ответить с цитированием
Старый 12.04.2019, 20:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

1. Нумерация в массивах с 0
2. Нет проверки, что n < 10
3.
Код:
for(j=1;j<=n+1;j++)
явно +1 лишний
4.
Цитата:
Сообщение от JustRespectMe Посмотреть сообщение
Совсем не понимаю в файлах и не сталкивался с ними.
Просвещайтесь:
https://purecodecpp.com/archives/2751
http://cppstudio.com/post/446/
http://kvodo.ru/urok-10-1-rabota-s-t...ylami-v-c.html
p51x на форуме Ответить с цитированием
Старый 12.04.2019, 20:09   #3
JustRespectMe
Новичок
Джуниор
 
Регистрация: 12.04.2019
Сообщений: 2
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нумерация в массивах с 0
если играет роль в работе с файлами, то переделать могу

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет проверки, что n < 10
нет необходимости, значения буду вводиться намного меньше 10

Цитата:
Сообщение от p51x Посмотреть сообщение
явно +1 лишний
нет, так должно быть. условие такое, что столбцов на 1 больше, чем строк

программа полностью рабочая и проверенная. осталось лишь сделать все это через файлы
за ссылки, спасибо. я бы с радостью сам разобрался, но не смог. поэтому прошу помощи
JustRespectMe вне форума Ответить с цитированием
Старый 12.04.2019, 20:15   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну если вам лишь бы сдать и за вас написали, то раздел фриланса вас ждет.
p51x на форуме Ответить с цитированием
Старый 23.04.2019, 14:51   #5
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от JustRespectMe Посмотреть сообщение
если играет роль в работе с файлами, то переделать могу
Оно играет роль в самих массивах.
taras-proger77 вне форума Ответить с цитированием
Старый 23.04.2019, 14:52   #6
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от JustRespectMe Посмотреть сообщение
нет необходимости, значения буду вводиться намного меньше 10
Есть. Может ты очепятку допустишь и вместо 8 введёшь 88? Или сдашь готовую софтину, а юзверь захочет решить систему в 17 000 строк с 17 000 неизвестными? Весь ввод должен проверяться.

Последний раз редактировалось taras-proger77; 23.04.2019 в 14:55.
taras-proger77 вне форума Ответить с цитированием
Старый 23.04.2019, 14:58   #7
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от JustRespectMe Посмотреть сообщение
нет, так должно быть. условие такое, что столбцов на 1 больше, чем строк
Нет. Во-первых у тебя матрица квадратная. А во-вторых даже 10-го столбца уже нет. Их всего 10: нулевой, первый, второй, третий, четвёртый, пятый, шестой, седьмой, восьмой и девятый. А ты лезешь уже в одиннадцатый. Ты трёшь другие данные, а то и адрес возврата. А если систему сделать по-извращенски, то можешь и код затереть. И куда твоя программа после этого убежит и что будет делать не известно. Получился вирус с мутагеном к нему в одном флаконе.

Последний раз редактировалось taras-proger77; 23.04.2019 в 15:00.
taras-proger77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеется типизированный файл с тридцатью числами. Записать в другой файл числа имеющегося файла в обратном порядке. Валентин77 Общие вопросы C/C++ 8 17.12.2013 22:53
Работа с файлами: записать в конец файла строку символов Iren1993 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 24.04.2013 19:08
Файлы,паскаль - Файл содержит пары чисел.Из каждой пары взять большее и записать в другой файл Vika2112 Помощь студентам 1 13.12.2012 08:35
файл f целого типа, число компонент файла делится на 10. Записать в файл g наибольшие значения каждых десяти компонент файла kulak_sacharik Паскаль, Turbo Pascal, PascalABC.NET 5 25.11.2012 16:17