Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Обработка матрицы.⇐ ПредыдущаяСтр 14 из 14
В квадратной матрице порядка 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 приводит к усложнению программы и затрудняет отладку. Он нарушает принцип структурного программирования, согласно которому все блоки, составляющие программу, должны иметь только один вход и один выход. В большинстве алгоритмов применения этого оператора можно избежать
|