- •4. 1. Базовые средства языка
- •Алфавит языка
- •4.1.5. Типы данных Си
- •Логический тип
- •4.1.8. Операции и выражения
- •Операции присваивания
- •Арифметические операции
- •Логические операции
- •4.1.10. Структура программы
- •4.1.11. Ввод и вывод данных
- •Функции ввода- вывода
- •Объектно-ориентированные средства ввода-вывода.
- •4.2. Операторы управления
- •4.2.1. Понятие алгоритма
- •4.2.2. Изображение алгоритма в виде блок-схемы
- •2.3. Составной оператор
- •2.4. Операторы ветвления
- •If (выражение) оператор;
- •4.2.5. Примеры программ
- •4.2.6. Оператор варианта
- •4.2.7. Алгоритмы циклической структуры
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Операторы передачи управления
- •4.2.8. Решение задач с использованием циклов
- •4.3. Обработка массивов
- •4.3.1. Описание массивов
- •4.3.2. Основные операции над массивами
- •4.3.3. Ввод-вывод элементов массива
- •4.3.4. Вычисление суммы элементов массива
- •4.3.5. Вычисление произведения элементов массива
- •4.3.6. Поиск максимального элемента и его номера
- •4.3.7. Сортировка элементов в массиве
- •4.3.8. Удаление элемента из массива
- •4.3.9. Решение задач с использованием массивов
- •4.4. Обработка матриц
- •4.4.1. Ввод-вывод матрицы
- •4.4.2. Примеры алгоритмов обработки матрицами
- •4.5.1. Передача параметров в функцию
- •4.5.2. Возврат результата с помощью оператора return
- •4.6. Указатели и динамические массивы
- •5. Примеры организации вычислительного процесса
- •5.1 Организация разветвляющегося вычислительного процесса
- •5.2. Организация циклов с известным числом повторений»
- •Блок-схема
- •Текст программы
- •Блок-схема
- •Текст программы
- •5.4.Обработки одномерного массива с перестановкой элементов
- •5.5. Обработка матрицы.
- •Литература
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();
}
Литература
Алексеев Е.Р., Чеснокова О.В. Турбо Паскаль 7.0. Самоучитель. - М.: НТ-Пресс, 2004. – 320с.
Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си: От Турбо Си к Borland С++. – Минск: Вышэйшая школа, 1992. – 240с.
Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003. – 461с.
Паппас К., Мюррей У. Программирование на С и С++. - К.: BHV, 2000. – 320c.
Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих. – М.: Мир, 1988. -512с.
Шмидский Я. К. Программирование на языке С/С++. Самоучитель. – М.: Вильямс, 2004. -352с.
1Текстовые файлы, в которых содержится описание используемых в программе элементов.
2Служат для уточнения внутреннего представления и диапазона значений стандартных типов
3Поток – виртуальный канал связи, создаваемый в программе для передачи данных
4Синтаксической ошибки нет. Операция присваиванияa=1формирует результат, который и оценивается на равенство или неравенство нулю. В данном примере присваиваниеb=0 будет выполнено независимо от значения переменнойa.
5Обычно применение оператораgotoприводит к усложнению программы и затрудняет отладку. Он нарушает принцип структурного программирования, согласно которому все блоки, составляющие программу, должны иметь только один вход и один выход. В большинстве алгоритмов применения этого оператора можно избежать