Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++(файлы текстовые,функции)

61K
30 апреля 2011 года
jenoid
19 / / 02.04.2011
Помогите пожалуйста!
Задать значения вещественным элементам матриц
А = {аij} и Q = {qij}, где i = 0, 1, 2,…, 6; j = 0, 1, 2,…, 4 и сформировать массивы B и R, состоящие из минимальных элементов столбцов матриц A и Q соответственно.

Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл в виде:
X Y
49 25
49 3
49 7
49 -
Считать из файла пары значений и в тех из них, где X является точным квадратом Y или наоборот, найти сумму значений X и Y. Результат записать в другой текстовый файл в виде

X Y sum
5 25 30
49 3
49 7 56
29K
01 мая 2011 года
Енот_в_Засаде
224 / / 09.11.2010
Цитата: jenoid
Помогите пожалуйста!
Задать значения вещественным элементам матриц
А = {аij} и Q = {qij}, где i = 0, 1, 2,…, 6; j = 0, 1, 2,…, 4 и сформировать массивы B и R, состоящие из минимальных элементов столбцов матриц A и Q соответственно.

Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл в виде:
X Y
49 25
49 3
49 7
49 -
Считать из файла пары значений и в тех из них, где X является точным квадратом Y или наоборот, найти сумму значений X и Y. Результат записать в другой текстовый файл в виде

X Y sum
5 25 30
49 3
49 7 56


Это задание двух лаб или одной?. Вообщем я сделал всё в одной, если что сами разделите на две:)
как - то так:

Код:
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <stdio.h>
#include <fstream>



using namespace std;

void main()
{
    setlocale(LC_ALL, "Russian");

    void ShowMatr(int n,int m, int **a); //вывод матрицы на экран
    int* MinValue(int n, int m, int **a); //мин. знач. в столбце
    void ShowMas(int n, int *a);//вывод массива на экран
    void PairValues();//создание массива пар и запись его в файл
    void MatrInFile(int n, int m, int **a);//запись матрицы в файл

    int mSizeX1, mSizeY1; //размерность первой матрицы
    int mSizeX2, mSizeY2; //размерность второй матрицы


            cout<<"Введите размерность первой матрицы:\n";
        cout<<"Введите количество строк:\n";
        cin>>mSizeX1;
        cout<<"Введите количество столбцов:\n";
        cin>>mSizeY1;
        cout<<"Заполните матрицу...\n";
           // заполнение первой матрицы
        int **A = new int* [mSizeX1]; //первая матрица
        for (int i=0; i<mSizeX1;i++)
        {
            A=new int[mSizeY1];
            for (int j=0;j<mSizeY1;j++)
            {
                cin>>A[j];  //если заполнять случайным образом, то так: A[j] = rand();
            }
        }
       

        cout<<"Введите размерность второй матрицы:\n";
        cout<<"Введите количество строк:\n";
        cin>>mSizeX2;
        cout<<"Введите количество столбцов:\n";
        cin>>mSizeY2;
        // заполнение второй матрицы
        cout<<"Заполните матрицу...\n";
        int **Q = new int* [mSizeX2]; //вторая матрица
        for (int i=0; i<mSizeX2;i++)
        {
            Q=new int[mSizeY2];
            for (int j=0;j<mSizeY2;j++)
            {
                 cin>>Q[j]; //если заполнять случайным образом, то так: Q[j] = rand();
            }
        }
       

        cout<<"\n Первая матрица: \n";
        ShowMatr(mSizeX1,mSizeY1,A);
        cout<<"\n Вторая матрица: \n";
        ShowMatr(mSizeX2,mSizeY2,Q);


        //поиск минимальных элементов в столбцах
        int* B = new int[mSizeY1];
        B=MinValue(mSizeX1,mSizeY1,A);
        cout<<"\n Минимальные элементы столбцов первой матрицы: \n";
        ShowMas(mSizeY1, B);

        int* R = new int[mSizeY2];
        R=MinValue(mSizeX2,mSizeY2,Q);
        cout<<"\n Минимальные элементы столбцов второй матрицы: \n";
        ShowMas(mSizeY2, R);
   

        //"Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл"
        PairValues();
       

}


    // ф-ция вывода матриц
    void ShowMatr(int n, int m, int **a)
    {
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
                cout<<setw(5)<<*(*(a+i)+j)<<ends;
            cout<<endl;
        }
    }


    // ф-ция вывода массивов
    void ShowMas(int n, int *a)
    {
        for(int i=0;i<n;i++)
        {          
            cout<<a<<" ";
        }
        cout<<endl;
    }


     // ф-ция поиска минимальных значений в столбцах
    int* MinValue(int n, int m, int **a)
    {
        int* mas = new int[m]; //сюда записываются значения мин. эл. столбцов
        int min;

       
        for (int j=0; j<m; j++)
        {
            min=a[0][j];
            for (int i=0; i<n; i++)
            {
                if (a[j]<min)
                {
                    min=a[j];
                }
            }
           
            mas[j] = min;
        }
       
        return mas;
    }


    //ф-ция записи матрицы в файл
    void MatrInFile(int n, int m, int **a)
    {
        FILE* file = fopen("matrix.txt", "w+b");
        for (int i=0; i<n; i++)
        {
            for (int j=0; j<m; j++)
            {
                fprintf(file,"%4d", a[j]);
            }
            fprintf(file,"\n");

        }
        fclose(file);

    }


    // ф-ция создания массива пар и записи его в файл
    void PairValues()
    {
        int n;
        cout<<"Введите количество строк:\n";
        cin>>n;
        int **PairMatr = new int* [n];
        for (int i=0; i<n;i++)
        {
            PairMatr=new int[2];
            for (int j=0;j<2;j++)
            {
                PairMatr[j] = rand()%10;
            }
        }
        cout<<"Созданная матрица: \n";
        ShowMatr(n,2,PairMatr);

        //запись в файл
        MatrInFile(n,2,PairMatr);

        //чтение из файла
        int **temp = new int* [n];
        fstream fs;
        fs.open("matrix.txt", ios::in);
       
        for (int i=0; i<n; i++)
        {
            temp = new int[2];
            for (int j=0; j<2; j++)
            {              
                    fs>>temp[j];
           
            }
        }
        fs.close();
        cout<<"Матрица считанная из файла:\n";
        ShowMatr(n, 2,temp);

        /*Считать из файла пары значений и в тех из них,
        где X является точным квадратом Y или наоборот,
        найти сумму значений X и Y. Результат записать в другой текстовый файл*/
        FILE *res = fopen("result.txt", "w+b");
        for (int i=0; i<n; i++)
        {
            if (temp[0]*temp[0]==temp[1] || temp[1]*temp[1]==temp[0])
            {
                fprintf(res,"%4d", temp[0]);
                fprintf(res,"%4d", temp[1]);
                fprintf(res,"%4d", temp[0]+temp[1]);
                fprintf(res,"\n");
               
            }
           
        }
        fclose(res);
    }


ЗЫ: писал в 2008 студии, создаваемые файлы будут находиться в папке с проектом
278
01 мая 2011 года
Alexander92
1.1K / / 04.08.2008

 
Код:
#include <iostream>
...
#include <stdio.h>
#include <fstream>
...



Енот_в_Засаде, некрасиво как-то. =) Уже либо чистым iostream / fstream пользуйтесь, либо stdio.h.

29K
01 мая 2011 года
Енот_в_Засаде
224 / / 09.11.2010
Цитата: Alexander92
Енот_в_Засаде, некрасиво как-то. =) Уже либо чистым iostream / fstream пользуйтесь, либо stdio.h.



если честно, просто я не смог fstream'ом красиво в файл записать матрицу) был бы рад если бы ты показал как)

278
01 мая 2011 года
Alexander92
1.1K / / 04.08.2008
Да хоть бы вот так:
Код:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

int main(void) {
    int A[3][3] = {{0,1,2},{3,4,5},{6,7,8}};
    ofstream os("out.txt");
    if (os.good()) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++)
                os << setw(4) << A[j];
            os << endl;
        }
        os.close();
    }
    return 0;
}


Результат:
 
Код:
0   1   2
   3   4   5
   6   7   8


P.S. На худой конец напиши просто через табуляции.)
 
Код:
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++)
        os << "\t" << A[j];
    os << endl;
}
29K
01 мая 2011 года
Енот_в_Засаде
224 / / 09.11.2010
Alexander92 Cпасибо, буду знать)
61K
02 мая 2011 года
jenoid
19 / / 02.04.2011
Енот_в_Засаде - спасибо. Две лабы)
29K
22 мая 2011 года
Енот_в_Засаде
224 / / 09.11.2010
лаба 1:
Код:
#include <iostream>
#include <iomanip>

using namespace std;

void main()
{
    void ShowMatr(int n,int m, int **a); //вывод матрицы на экран
    int* MinValue(int n, int m, int **a); //мин. знач. в столбце
    void ShowMas(int n, int *a);//вывод массива на экран

    setlocale(LC_ALL, "Russian");

    int mSizeX1, mSizeY1; //размерность первой матрицы
    int mSizeX2, mSizeY2; //размерность второй матрицы


        cout<<"Введите размерность первой матрицы:\n";
        cout<<"Введите количество строк:\n";
        cin>>mSizeX1;
        cout<<"Введите количество столбцов:\n";
        cin>>mSizeY1;
        cout<<"Заполните матрицу...\n";
           // заполнение первой матрицы
        int **A = new int* [mSizeX1]; //первая матрица
        for (int i=0; i<mSizeX1;i++)
        {
            A=new int[mSizeY1];
            for (int j=0;j<mSizeY1;j++)
            {
                cin>>A[j];  //если заполнять случайным образом, то так: A[j] = rand();
            }
        }
       

        cout<<"Введите размерность второй матрицы:\n";
        cout<<"Введите количество строк:\n";
        cin>>mSizeX2;
        cout<<"Введите количество столбцов:\n";
        cin>>mSizeY2;
        // заполнение второй матрицы
        cout<<"Заполните матрицу...\n";
        int **Q = new int* [mSizeX2]; //вторая матрица
        for (int i=0; i<mSizeX2;i++)
        {
            Q=new int[mSizeY2];
            for (int j=0;j<mSizeY2;j++)
            {
                 cin>>Q[j]; //если заполнять случайным образом, то так: Q[j] = rand();
            }
        }
       

        cout<<"\n Первая матрица: \n";
        ShowMatr(mSizeX1,mSizeY1,A);
        cout<<"\n Вторая матрица: \n";
        ShowMatr(mSizeX2,mSizeY2,Q);


        //поиск минимальных элементов в столбцах
        int* B = new int[mSizeY1];
        B=MinValue(mSizeX1,mSizeY1,A);
        cout<<"\n Минимальные элементы столбцов первой матрицы: \n";
        ShowMas(mSizeY1, B);

        int* R = new int[mSizeY2];
        R=MinValue(mSizeX2,mSizeY2,Q);
        cout<<"\n Минимальные элементы столбцов второй матрицы: \n";
        ShowMas(mSizeY2, R);
   
        //освобождаем память выделенную под матрицы
        for (int i=0; i<mSizeX1; i++)
        {
            delete[] A;
        }
        delete[] A;
         
        for (int i=0; i<mSizeX2; i++)
        {
            delete[] Q;
        }
        delete[] Q;

        //освобождаем память выделенную под массивы

        delete[] B;
        delete[] R;

}

 // ф-ция вывода матриц
    void ShowMatr(int n, int m, int **a)
    {
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
                cout<<setw(5)<<*(*(a+i)+j)<<ends;
            cout<<endl;
        }
    }


    // ф-ция вывода массивов
    void ShowMas(int n, int *a)
    {
        for(int i=0;i<n;i++)
        {          
            cout<<a<<" ";
        }
        cout<<endl;
    }


     // ф-ция поиска минимальных значений в столбцах
    int* MinValue(int n, int m, int **a)
    {
        int* mas = new int[m]; //сюда записываются значения мин. эл. столбцов
        int min;

       
        for (int j=0; j<m; j++)
        {
            min=a[0][j];
            for (int i=0; i<n; i++)
            {
                if (a[j]<min)
                {
                    min=a[j];
                }
            }
           
            mas[j] = min;
        }
       
        return mas;
    }
29K
22 мая 2011 года
Енот_в_Засаде
224 / / 09.11.2010
лаба 2:

Код:
#include <iostream>
#include <iomanip>
#include <fstream>


using namespace std;

void main()
{
    void ShowMatr(int n,int m, int **a); //вывод матрицы на экран
    void PairValues();//создание массива пар и запись его в файл
    void MatrInFile(int n, int m, int **a);//запись матрицы в файл


    setlocale(LC_ALL, "Russian");

    //"Случайным образом создать таблицу пар целочисленных значений и записать её в текстовый файл"
        PairValues();
}

 //ф-ция записи матрицы в файл
    void MatrInFile(int n, int m, int **a)
    {
        fstream fout;
        fout.open("matrix.txt", ios::out);
        for (int i=0; i<n; i++)
        {
            for (int j=0; j<m; j++)
            {
                fout<<a[j]<<setw(4);
            }
            fout<<endl;

        }
        fout.close();

    }

 // ф-ция вывода матриц
    void ShowMatr(int n, int m, int **a)
    {
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<m;j++)
                cout<<setw(5)<<*(*(a+i)+j)<<ends;
            cout<<endl;
        }
    }



    // ф-ция создания массива пар и записи его в файл
    void PairValues()
    {
        int n;
        cout<<"Введите количество строк:\n";
        cin>>n;
        int **PairMatr = new int* [n];
        for (int i=0; i<n;i++)
        {
            PairMatr=new int[2];
            for (int j=0;j<2;j++)
            {
                PairMatr[j] = rand()%10;
            }
        }
        cout<<"Созданная матрица: \n";
        ShowMatr(n,2,PairMatr);

        //запись в файл
        MatrInFile(n,2,PairMatr);

        //чтение из файла
        int **temp = new int* [n];
        fstream fs;
        fs.open("matrix.txt", ios::in);
       
        for (int i=0; i<n; i++)
        {
            temp = new int[2];
            for (int j=0; j<2; j++)
            {              
                    fs>>temp[j];
           
            }
        }
        fs.close();
        cout<<"Матрица считанная из файла:\n";
        ShowMatr(n, 2,temp);

        /*Считать из файла пары значений и в тех из них,
        где X является точным квадратом Y или наоборот,
        найти сумму значений X и Y. Результат записать в другой текстовый файл*/
        fstream res;
        res.open("result.txt", ios::out);
        for (int i=0; i<n; i++)
        {
            if (temp[0]*temp[0]==temp[1] || temp[1]*temp[1]==temp[0])
            {
               
                res<<temp[0]<<setw(4);
                res<<temp[1]<<setw(4);
                res<<temp[0]+temp[1]<<setw(4);
                res<<"\n";
               
               
            }
           
        }
        res.close();
    }
61K
30 мая 2011 года
jenoid
19 / / 02.04.2011
Огромное спасибо=)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог