Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Обработка матрицы.






В квадратной матрице порядка n поменять местами столбец с номером K и строку с номером L

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

 

#include < stdio.h>

#include < conio.h>

#define N 5

main()

{

/* ===============ishodnie dannie ========= */

int k, l; /* nomer stolbca i nomer stroki */

int n; /* poryadok */

float a[N][N]; /* matrica */

 

/* ====== ======= promezhutochnie dannie ==== */

int i, j; /* indeksi */

int error; /* kod oshibki */

float r; /* rabochaya peremennaya dlya perestanovki */

/* ============== proverka ogranichenii */

clrscr();

do

{

printf(" Vvedite poryadok matrici: \n");

error=0;

scanf(" %d", & n);

if (n< =1 || n> N)

{printf(" Oshibka! Povtorite vvod! \n");

error=1;

}

}

while (error);

do

{

printf(" Vvedite nomer stolbca i nomer stroki dlya zameni: \n");

error=0;

scanf(" %d %d", & k, & l);

if (k< 1 || k> n || l< 1 ||l> n)

{printf(" Oshibka! Povtorite vvod! \n");

error=1;

}

}

while (error);

/* ========== Vvod matrici =========== */

printf(" Vvedite elementi matrici po strokam: \n");

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

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

{ printf(" \na[%d, %d]=", i+1, j+1);

scanf(" %f", & r);

a[i][j]=r;

}

/* ============Vivod ishodnoi matrici ===== */

printf(" Ishodnaia matrica A: \n");

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

{for(j=0; j< n; j++)

printf(" a[%d, %d]=%f; ", i+1, j+1, a[i][j]);

printf(" \n");

}

/* ========== Preobrazovanie matrici ====== */

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

if (i! =l-1 & & i! =k-1)

{

r=a[i][k-1];

a[i][k-1]=a[l-1][i];

a[l-1][i]=r;

}

r=a[l-1][l-1];

a[l-1][l-1]=a[k-1][k-1];

a[k-1][k-1]=r;

/* ============Vivod rezultatov ===== */

printf(" Preobrazovannaya matrica A: \n");

/* ====== Vivod po strokam ========== */

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

{for(j=0; j< n; j++)

printf(" a[%d, %d]=%f; ", i+1, j+1, a[i][j]);

printf(" \n");

}

getch();

}


Литература

1. Алексеев Е.Р., Чеснокова О.В. Турбо Паскаль 7.0. Самоучитель. - М.: НТ-Пресс, 2004. – 320с.

2. Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си: От Турбо Си к Borland С++. – Минск: Вышэйшая школа, 1992. – 240с.

3. Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003. – 461с.

4. Паппас К., Мюррей У. Программирование на С и С++. - К.: BHV, 2000. – 320c.

5. Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих. – М.: Мир, 1988. -512с.

6. Шмидский Я. К. Программирование на языке С/С++. Самоучитель. – М.: Вильямс, 2004. -352с.


 


[1] Текстовые файлы, в которых содержится описание используемых в программе элементов.

[2] Служат для уточнения внутреннего представления и диапазона значений стандартных типов

[3] Поток – виртуальный канал связи, создаваемый в программе для передачи данных

[4] Синтаксической ошибки нет. Операция присваивания a=1 формирует результат, который и оценивается на равенство или неравенство нулю. В данном примере присваивание b=0 будет выполнено независимо от значения переменной a.

[5] Обычно применение оператора goto приводит к усложнению программы и затрудняет отладку. Он нарушает принцип структурного программирования, согласно которому все блоки, составляющие программу, должны иметь только один вход и один выход. В большинстве алгоритмов применения этого оператора можно избежать


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал