#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);
}
C++(файлы текстовые,функции)
Задать значения вещественным элементам матриц
А = {а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
Цитата: 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
Задать значения вещественным элементам матриц
А = {а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
Это задание двух лаб или одной?. Вообщем я сделал всё в одной, если что сами разделите на две:)
как - то так:
Код:
ЗЫ: писал в 2008 студии, создаваемые файлы будут находиться в папке с проектом
Цитата: Енот_в_Засаде
Код:
#include <iostream>
...
#include <stdio.h>
#include <fstream>
...
...
#include <stdio.h>
#include <fstream>
...
Енот_в_Засаде, некрасиво как-то. =) Уже либо чистым iostream / fstream пользуйтесь, либо stdio.h.
Цитата: Alexander92
Енот_в_Засаде, некрасиво как-то. =) Уже либо чистым iostream / fstream пользуйтесь, либо stdio.h.
если честно, просто я не смог fstream'ом красиво в файл записать матрицу) был бы рад если бы ты показал как)
Код:
#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;
}
#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
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;
}
for (int j = 0; j < 3; j++)
os << "\t" << A[j];
os << endl;
}
Alexander92 Cпасибо, буду знать)
Енот_в_Засаде - спасибо. Две лабы)
Код:
#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;
}
#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;
}
Код:
#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();
}
#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();
}
Огромное спасибо=)