Реализация алгоритмов задач первого типа

Задача 1.Дана матрица вещественных чисел А = {аij}4х6.
Вычислить значение Z = Р1/|Р2|, где Р1 и Р2 – произведения положительных и отрицательных элементов матрицы соответственно.

Решение

Эта задача относится к первому типу, так как для вычисления P1 и P2 следует просмотреть всю матрицу. В этой задаче инициализацию переменных P1 и P2 следует сделать один раз перед циклами по индексам элементов матрицы.

Z=P1/|P2|
Вывод Z
Конец
Aij<0  
P2=P2 . Aij  
P1=P1 . Aij
Aij>0
i = 0, 3
P1=0 P2=0
J = 0, 5
НАЧАЛО
Ввод матрицы А
Да
Да

 


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

#include "stdafx.h"

#include<math.h>

int main()

{ float A [4][6] ; // описание матрицы А

int i;

int j;

float P1, 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/abs(P2);

printf("Z=%10.2f \n",Z);

return 0;

}

Задача 2.В квадратной целочисленной матрице В= {bij}5х5 вычислить модуль разности между числом нулевых элементов, стоящих ниже главной диагонали, и числом нулевых элементов, стоящих выше главной диагонали.

Введем обозначения:

L1 – счетчик нулевых элементов ниже главной диагонали;

L2 – счетчик нулевых элементов выше главной диагонали;

Требуется найти L = | L1 -L2 |.

L = | L1 – L2 |
Вывод L
Конец
i< j  
L2 = L2 + 1  
L1 = L1 + 1
Bij = 0
i = 0, 4
L1=0 L2=0
J = 0, 4
НАЧАЛО
Ввод матрицы B
Да
i > j
Для заполнения матрицы воспользуемся датчиком случайных чисел.

 

 

Да
Да

 


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

#include "stdafx.h"

#include<math.h>

#include<stdlib.h>

#include<iostream>

int 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);

std::cout<<"L="<<L<<"\n";

return 0;

}

 

 








Дата добавления: 2015-02-10; просмотров: 692;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.