Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория по языку СИ.doc
Скачиваний:
38
Добавлен:
03.03.2016
Размер:
1.93 Mб
Скачать

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

В квадратной матрице порядка 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приводит к усложнению программы и затрудняет отладку. Он нарушает принцип структурного программирования, согласно которому все блоки, составляющие программу, должны иметь только один вход и один выход. В большинстве алгоритмов применения этого оператора можно избежать