КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Реализация алгоритмов задач второго типа
Реализация алгоритмов задач первого типа Задача 1. Дана матрица вещественных чисел А = {аij}4х6.
Текст программы: #include "stdafx.h" #include<math.h> void main() { float A [4][6]; // описание матрицы А int i; int j; float P1; float P2; float Z; printf("Введите матрицу А\n"); for (i =0; i<4; i++) for (j = 0;j<6; j++) scanf("%f",&A[i][j]); P1=1; // установка начальных значений P2=1; // произведений for (i = 0; i<4; i++) for (j =0; j<6;j++) { if (A[i][j]>0) P1= P1*A[i][j]; // произведение + if (A[i][j]<0) P2 = P2*A[i][j];// произведение - } Z=P1/fabs(P2); printf("Z=%10.2f \n",Z); }
Задача 2. В квадратной целочисленной матрице В= {bij}5х5 вычислить модуль разности между числом нулевых элементов, стоящих ниже главной диагонали, и числом нулевых элементов, стоящих выше главной диагонали. Введем обозначения: L1 – счетчик нулевых элементов ниже главной диагонали; L2 – счетчик нулевых элементов выше главной диагонали; L = |L1 -L2|. Для заполнения матрицы воспользуемся датчиком случайных чисел.
Текст программы: #include "stdafx.h" #include<math.h> void main() { int B[5][5]; /* описание матрицы B */ int i, j, L1, L2, L; for (i = 0; i< 5; i++) for (j = 0;j<5; j++) B[i][j]= floor(rand()/1000.0); L1 = 0; /* инициализация счетчиков L1 и L2 */ L2 = 0; for (i = 0; i< 5; i++) for (j = 0; j< 5; j++) if (B[i][j]==0) /* поиск элементов, равных нулю */ { if (i>j) L1=L1+1; /* выше главной диагонали */ if (i<j) L2=L2+1; /* ниже главной диагонали */ } L = abs(L1 - L2); printf("L=%d", L); } Задача 1. В матрице X ={хij}3х6 вещественных чисел первый элемент каждой строки поменять местами с минимальным элементом этой строки. Вывести матрицу X после обмена. (Для заполнения матрицы воспользуемся датчиком случайных чисел).
Текст программы: #include "stdafx.h" #include<math.h> void main() { float X[3][6]; // описание матрицы X int i,j,jmin; float min;
for(i=0; i<3; i++) /* заполнение матрицы случайными числами*/ for (j= 0; j<6; j++) X[i][j]=rand()/100;
printf(" матрица X\n"); for(i=0; i<3; i++) //вывод матрицы до перестановки { for (j=0; j<6; j++) printf("%8.2f",X[i][j]); printf("\n"); }
for(i=0; i<3; i++) //цикл по строкам { min=+1E6; // установка начального значения min for (j=0; j<6; j++) //цикл по столбцам if (X[i][j]<min) // поиск минимума { min=X[i][j]; jmin=j; } X[i][jmin]=X[i][0]; // перестановка первого элемента X[i][0]=min; // матрицы с наименьшим } for(i=0; i<3; i++) //вывод матрицы после перестановки { for (j=0; j<6; j++) printf("%8.2f",X[i][j]); printf("\n"); } } Задача 2. Дана матрица вещественных чисел С = {сij}8х4. Вычислить среднее арифметическое каждого столбца. Результат оформить в виде одномерного массива S = {sj};j = . #include "stdafx.h" void main() { float C[8][4]; float S[4]; int i, j; printf("Введите матрицу С:\n"); for(i=0; i<8; i++) for (j= 0; j<4; j++) scanf("%f",&C[i][j]); for (j= 0; j<4; j++) { S[j]=0; //начальная установка элемента массива для сумм for(i=0; i<8; i++) S[j]= S[j] + C[i][j]; //накопление суммы j-го столбца S[j]=S[j]/8; //вычисление среднего значения суммы j столбца } for (j= 0; j<4; j++) printf("%8.2f",S[j]); // вывод всех сумм printf("\n"); } В приведенной выше программе для вычисления каждого элемента S[j] организован двойной цикл, в котором индекс j является внешним параметром цикла, а индекс i - внутренним. Приведем вариант программы без использования одномерного массива S. #include "stdafx.h" void main() { float C[8][4]; float S; int i, j; printf("Введите матрицу С:\n"); for(i=0; i<8; i++) for (j= 0; j<4; j++) scanf("%f",&C[i][j]); for (j= 0; j<4; j++) { S=0; for(i=0; i<8; i++) S= S + C[i][j]; S = S/8; printf("Среднее арифметическое %d-го столбца=%8.2f\n", j, S); } }
Дата добавления: 2014-12-26; Просмотров: 338; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |