Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПрограммированиеРГР_Матюшков.docx
Скачиваний:
3
Добавлен:
21.09.2019
Размер:
58.39 Кб
Скачать

Текст программы:

#include<iostream>

#include<conio.h>

#include<string>

#include <locale>

using namespace std;

int& max(int v[], int n)

{

int maxf=v[0], nmax=0;

for(int i=1; i<n; i++){

if(v[i]>maxf){

maxf=v[i];

nmax=i;

}

}

return v[nmax];

}

void swap(int& c, int& d) // меняет значение переменных c и d

{

int tmp=c;

c=d;

d=tmp;

}

int main ()

{

setlocale (LC_ALL, "Russian");

int nmax=0;

int i,j,b;

int sum=0;

int s[]={0, 4, -65, 35, 68, 50, 36, 4345, 57, -12, 43};

int n=sizeof(s)/sizeof(int);

j=0;

for(int i=0; i<n; i++)

cout<<s[i]<<", ";

cout<<"\n max="<<max(s, n);

for(i=0;i<n;i++)

{

sum=sum+s[i];

j++;

}

b=sum/j;

int& a=max(s, n); //ссылка на максимальный элемент

cout<<"\nПосле вызова функции: среднее значение ="<<b;

swap(a, b);

for(int i=0; i<n; i++)

cout<<s[i]<<", ";

getch();

return 0;

}

Задача 3(№145)

Постановка задачи: В текстовый файл построчно записаны целочисленные элементы квадратной матрицы размером 4*4. Прочитайте матрицу из файла в двумерный массив, вычеркните заданную строку и столбец, полученную матрицу 3*3 запишите в другой файл.

Алгоритм решения: определим точное число длин строк, числа строк на странице. Определим поток для входа и выхода. Дальше уюираем код из cin читаем массив, дальше вычеркиваем столбец и строку и записываем получившуюся матрицу в файл.

Текст программы:

#include <fstream>

#include <conio.h>

#include <string>

#include <stdlib.h>

#include <iostream>

using namespace std;

const int page=30; // макс число строк на странице

const int maxlen=200; // макс длина строки

const int lenname=15; // длина строки с именем файла

void main()

{

ifstream fin; // файловый поток для ввода

ofstream fout; // файловый поток для вывода

char filename[lenname]; // массив для имени файла

char line[maxlen]; // массив для строк

cout<< "\nBvedite name vhodnogo faila";

cin>> filename;

fin.open(filename);

if(!fin){ // если не удалось открыть входной файл

cerr << "Ne ydalos open fail" << filename;

exit(1);

}

cout << "\n Bvedite name vihodnogo faila";

cin>>filename;

fout.open(filename);

if(!fout){ // если не удалось открыть выходной файл

cerr<< "Ne ydalos open fail" << filename;

exit(1);

}

int i,j;

// cin.get(); // убираем код из sin

double s[4][4];

for (i=0;i<4;i++){

for(j=0;j<4;j++)

fin>>s[i][j];

}

cout << "Pro4itali massiv\n";

for(i=0;i<4;i++){

for(j=0;j<4;j++)

cout<<s[i][j]<<" ";

cout<<endl;

}

cout << "Vvedite # stroki i stolb4a dlya ydl iz matrici\n";

int row, col;

cin >> row >> col;

double d[3][3];

int id=0, jd=0;

for (i=0;i<4;i++){ // цикл о строкам

if(i == row)

continue;

jd=0;

for(j=0;j<4;j++){ // цикл по столбцам

if(j == col)

continue;

d[id][jd]=s[i][j];

jd ++;

}

id++;

}

cout << "Matrica d\n";

for(i=0;i<3;i++){

for(j=0;j<3;j++)

cout<<d[i][j]<<" ";

cout<<endl;

}

// Записи матрицы 3х3 в файл.

for(i=0;i<3;i++){

for(j=0;j<3;j++)

fout<<d[i][j]<<" ";

fout<<endl;

}

fin.close(); // закрытие входного файла

fout.close(); // закрытие выходного файла

getch();

}