Задача по пиис на Иван Петров Иванов студент от специалност ссс, I курс, 10 група, ф. №11222



Дата03.01.2017
Размер45.65 Kb.
#11591
ТипЗадача


УНИВЕРСИТЕТ ПО АРХИТЕКТУРА, СТРОИТЕЛСТВО и ГЕОДЕЗИЯ

КАТЕДРА „АВТОМАТИЗАЦИЯ НА ИНЖЕНЕРНИЯ ТРУД”

__________________________________________________________________________________________

КУРСОВА ЗАДАЧА

по ПИИС

на Иван Петров Иванов



студент от специалност ССС, I курс,

10 група, ф. № 11222

Дата: ..................... Проверил: .........................

/гл. ас. арх. Стоянка Иванова/

Условие:

Дадена е матрица Х с М реда и N стълба, съставена от реални елементи, записани в текстов файл.

4.1. Да се разменят съответните елементи от първия и последния ред на матрицата.

4.2. Да се разменят съответните елементи от първия и последния стълб на матрицата.

Получената матрица да се запише в нов файл.

// Първи етап – цялата задача в главна функция

#include

const Nmax=30;

float X[Nmax][Nmax];

int M, N;

void main () { // главна функция

int i, j;

do {


cout<<"Брой редове М="; cin>>M; }

while (M<2 || M>Nmax);

do {

cout<<"Брой стълбове N="; cin>>N; }



while (N<2 || N>Nmax);

for (i=0; i

for (j=0; j

cout<<"X["<>X[i][j];

}

float t;


// размяна на съдържанието на редове 0 u M-1

for (int j=0; j

t=X[0][j]; X[0][j]=X[M-1][j]; X[M-1][j]=t;

}

// размяна на съдържанието на стълбове 0 u N-1



for (int i=0; i

t=X[i][0]; X[i][0]=X[i][N-1]; X[i][N-1]=t;

}

// извеждане на променената матрица на екрана



cout<<"Променена матрица:\n";

for (i=0; i

for (j=0; j

cout<

cout<

}

}



// Втори етап – използване на функции

#include

const Nmax=30;

float X[Nmax][Nmax];

int M, N;

int Input_N(char prompt[30], int Min, int Max) {

// функция за въвеждане на брой редове или брой стълбове в зададен диапазон

int N;


do {

cout <
>N;

}

while (NMax);



return N;

}

void Input_Matrix(char name, int M, int N, float A[Nmax][Nmax]) {



// функция за въвеждане на матрица от клавиатура

for (int i=0; i

for (int j=0; j

cout<>A[i][j];

}

}

void Write_Matrix(char name[30], int M, int N, float A[Nmax][Nmax]) {



// функцията извежда матрица на екрана

cout<<"Matrix "<

for (int i=0; i

for (int j=0; j

cout<

cout<

}

}

void swap_float(float &a, float &b) {



// функцията разменя стойностите на две променливи чрез псевдоними

float c;


c=a; a=b; b=c;

}

void Exchange_Rows(int i1, int i2, int N, float A[Nmax][Nmax]) {



// функцията разменя съдържанието на ред i1 и ред i2

for (int j=0; j

swap_float(A[i1][j],A[i2][j]);

}

void Exchange_Columns(int j1, int j2, int M, float A[Nmax][Nmax]) {



// функцията разменя съдържанието на стълб j1 и стълб j2

for (int i=0; i

swap_float(A[i][j1],A[i][j2]);

}

void main () { // главна функция, вика останалите функции



// въвеждане на входни данни

M=Input_N("Брой редове М=", 2, Nmax); // въвежда брой редове

N=Input_N("Брой стълбове N=", 2, Nmax); // въвежда брой стълбове

Input_Matrix('X', M, N, X); // въвежда матрица от клавиатурата

// изчислителна част

Exchange_Rows(0,M-1,N,X); // разменя елементите от първия и последния ред

Exchange_Columns(0,N-1,M,X); // разменя елементите от първия и последния стълб

// извеждане на резултата

Write_Matrix("X - modified",M,N,X); // извежда променената матрица на екрана

}

// Трети етап – използване на функции и файлове

#include

const Nmax=30;

float X[Nmax][Nmax];

int M, N;

void Open_Matrix(char fname[30], int &M, int &N, float A[Nmax][Nmax]) {

// функцията чете матрица от файл

ifstream fin(fname,ios::in);

fin>>M>>N;

for (int i=0; i

for (int j=0; j

fin>>A[i][j];

fin.close();

}

void Write_Matrix(char name[30], int M, int N, float A[Nmax][Nmax]) {



// функцията извежда матрица на екрана

cout<<"Matrix "<

for (int i=0; i

for (int j=0; j

cout<

cout<

}

}

void swap_float(float &a, float &b) {



// функцията разменя стойностите на две променливи чрез псевдоними

float c;


c=a; a=b; b=c;

}

void Exchange_Rows(int i1, int i2, int N, float A[Nmax][Nmax]) {



// функцията разменя съдържанието на ред i1 и ред i2

for (int j=0; j

swap_float(A[i1][j], A[i2][j]);

}

void Exchange_Columns(int j1, int j2, int M, float A[Nmax][Nmax]) {



// функцията разменя съдържанието на стълб j1 и стълб j2

for (int i=0; i

swap_float(A[i][j1], A[i][j2]);

}

void Save_Matrix(char fname[30], int M, int N, float A[Nmax][Nmax]) {



// функцията записва матрица в нов файл

ofstream fout(fname,ios::out);

fout<

for (int i=0; i

for (int j=0; j

fout<

fout<

}

fout.close();



}

void main () { // главна функция, вика останалите функции

// въвеждане на входните данни от файл

Open_Matrix("d:\\matrix.txt", M, N, X); // чете матрица от файл

// контролно извеждане на прочетената матрица на екрана

Write_Matrix("X - original",M,N,X); // извежда матрицата на екрана

// изчислителна част

Exchange_Rows(0,M-1,N,X); // разменя елементите от първия и последния ред

Exchange_Columns(0,N-1,M,X); // разменя елементите от първия и последния стълб

// извеждане на резултата на екрана и във файл

Write_Matrix("X - modified",M,N,X); // извежда променената матрица на екрана

Save_Matrix("d:\\matrix-new.txt", M, N, X); // записва променената матрица във файл

}

Файл с входни данни: d:\matrix.txt



3 4

1 2 3 4


5 6 7 8

9 10 11 12

Резултати: файл d:\matrix-new.txt

3 4


12 10 11 9

8 6 7 5


4 2 3 1


Каталог: filebank
filebank -> Тема на дипломната работа
filebank -> Доклад на национален дарителски фонд „13 века българия
filebank -> 1 3 в е к а б ъ л г а р и я“ Утвърдил
filebank -> Доклад на национален дарителски фонд „13 века българия
filebank -> Доклад на национален дарителски фонд „13 века българия
filebank -> Зимна сесия – уч. 2015– 2016 г. Начало на изпитите 00 ч. Теоретична механика ІІ ч. Динамика
filebank -> Упражнение №1
filebank -> О т ч е т на проф. Д-р инж. Борислав маринов – декан на геодезическия факултет при уасг пред общото събрание на факултета
filebank -> Техническа механика
filebank -> Дати за поправителната сесия септември 2013 г катедра “Техническа механика”


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница