Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР11-С++-01-мая-2012.doc
Скачиваний:
18
Добавлен:
15.09.2019
Размер:
2.5 Mб
Скачать

1.8.6. Определение, есть ли в матрице столбец, содержащий хотя бы один нулевой элемент

#include <stdio.h>

#include <conio.h>

int main()

{

int m,n,i,j,t,w;

float x[10][10];

puts("Введите m,n");

scanf("%d %d",&m,&n);

for(i=0;i<m;i++)

for(j=0;j<n;j++)

{

printf("Введите x[%d][%d]=",i, j);

scanf("%f', &x[i][j]);

}

puts("Матрица x:"); for(i=0;i<m;i++)

for(j=0;j<n;j++)

printf("%8.2f',x[i][j]); printf('W');

}

t=1; j=0; //Столбец еще не найден

while(j<n && t)

{

w=1; i=0; //В столбце не найден элем., равный нулю

while(i<m && w)

if(x[i][j]==0) w=0;

else i++;

if(w) j++ //В столбце нет равного 0 элем.

else t=0; // В столбце есть равный 0 элем.

}

if(t) рrintf("Нет\n");

else printf("Есть %d %d\n",ij);

getch();

return(0);

}

Рис. 11.6. Определение, есть ли в матрице столбец, содержащий хотя бы один нулевой элемент

При решении задачи используются две вспомогательные переменные t и w:

t =

1, если столбец не найден;

0, если столбец найден.

w =

1, в столбце не найден элемент, равный нулю

0, в столбце найден элемент, равный нулю.

1.8.7. Обработка элементов квадратных матриц относительно главной и побочной диагоналей

/* Фомирование матрицы */

#include <stdio.h>

int main()

{

const m=10;

int i,j,N;

int x[m][m];

/* Обнуление матрицы */

for(i=0;i<m;i++)

for(j=0;j<m;j++) x[i][j]=0;

рrintf("Номер варианта?");

scanf("%d",&N);

рrintf("Вариант %d:\n",N);

switch(N)

{ case 1:{ /* Вариант 1 */

for(i=0;i<m;i++)

for(j=0;j<i+1;j++)

x[i][j]=i-j+1;

break;}

case 2:{ /* Вариант 2 */

for(j=0;j<m;j++)

for(i=j;i<m;i++)

x[i][j]=j+1;

break; }

case 3: { /* Вариант 3 */

for(i=0;i<m;i++)

for(j=i;j<m;j++)

x[i][j]=i+1;

break; }

case 4: { /* Вариант 4 */

for(i=0;i<m;i++)

for(j=i;j<m;j++)

x[i][j]=j-i+1;

break; }

case 5:{ /* Вариант 5 */

for(i=0;i<m;i++)

for(j=0;j<m;j++)

x[i][j]=i+1;

break; }

case 6: { /* Вариант 6 */

for(i=0;i<m;i++)

for(j=i;j<m;j++)

if (i==j) x[i][j]=1; else x[i][j]=2;

break; }

case 7:{ /* Вариант 7 */

for(i=0;i<m;i++)

for(j=0;j<i+1;j++)

x[i][j]=1;

break; }

case 8:{ /* Вариант 8 /

for(i=0;i<m;i++)

for(j=0;j<i+1;j++)

x[i][j]=(i-j+1)*(i-j+1);

break; }

case 9: { /* Вариант 9 */

for(j=0;j<m;j++)

for(i=j;i<m;i++)

x[i][j]=(j+1)*(j+1);

break; }

case 10:{ /* Вариант 10 */

for(j=0;j<m;j++)

for(i=0;i<m;i++)

if((i+j)%2==0) x[i][j]=1; else x[i][j]=0;

break; }

case 11: /* Вариант 11*/

for(i=0;i<m;i++)

for(j=m-i-1;j<m;j++)

x[i][j]=1;

break; }

case 12:{ /* Вариант 12 */

for(i=0;i<m;i++)

for(j=0;j<m;j++)

x[i][j]=(i+1)*(i+1);

break; }

case 13:{ /* Вариант 13 */

for(i=0;i<m;i++)

for(j=m-i-1;j<m;j++)

if (i+j==m-1) x[i][j]=1; else x[i][j]=2;

break; }

case 14:{ /* Вариант 14 */

for(i=0;i<m;i++)

for(j=i;j<m;j++)

x[i][j]=(j-i+1)*(j-i+1);

break;}

} // Вывод матрицы

for(i=0;i<m;i++)

{ for(j=0;j<m;j++)

printf("%4d",x[i][j]); printf("\n");

}

fflush(stdin); getchar();

return(0);

}

Рис. 11.7. Обработка элементов квадратных матриц относительно

главной и побочной диагоналей

2. ЗАДАНИЕ

2.1. Изучить теоретические сведения.

2.2. Разобрать и выполнить примеры к данной лабораторной работе.

2.3. Написать и отладить семь программ на языке С++.

2.4. Задания для выполнения на занятиях

2.4.1. Задание 1. Вычисление сумм, количеств и произведений элементов матрицы

2.4.1.1. Условие задания

В каждой из задач данного раздела (табл. 11.1) предполагается, что задана матрица размером NхM. Программа должна:

1) вводить размерность и элементы матрицы;

2) вводить некоторые дополнительные числа;

3) выполнять действия в соответствии с условием задачи;

4) выводить исходные данные и результаты вычислений.

Исходные данные для отладки программы выбрать самостоятельно. Массив объявить как статический.

Таблица 11.1

Варианты заданий

Задание

1

Вычислить сумму положительных элементов, расположенных в столбцах с четными номерами.

2

Вычислить произведение отрицательных элементов, расположенных в строках с нечетными номерами.

3

Вычислить сумму квадратов элементов из интервала [A,B], расположенных в строках с четными номерами.

4

Определить количество элементов, больших заданного А и расположенных в строках с нечетными номерами.

5

Вычислить сумму элементов, меньших заданного В и расположенных в столбцах с номерами, кратными 3.

6

Вычислить произведение положительных элементов, расположенных в строках с номерами, кратными 4.

7

Вычислить сумму квадратов отрицательных элементов, расположенных в столбцах с четными номерами.

8

Определить количество элементов, непринадлежащих промежутку (A,B) и расположенных в столбцах с нечетными номерами.

9

Вычислить сумму элементов, неменьших заданного D и расположенных в строках с четными номерами.

10

Вычислить произведение элементов, небольших заданного F и расположенных в строках с нечетными номерами.

11

Вычислить сумму квадратов положительных элементов, расположенных в столбцах с номерами, кратными 3.

12

Определить количество отрицательных элементов, расположенных в строках с номерами, кратными 3.

13

Вычислить сумму элементов, принадлежащих промежутку [A,B) и расположенных в столбцах с четными номерами.

14

Вычислить произведение элементов, больших заданно го Х и расположенных в столбцах с нечетными номерами.

15

Вычислить сумму квадратов элементов, меньших Y и расположенных в строках с нечетными номерами.

16

Определить, сколько положительных элементов расположено в строках с нечетными номерами.

17

Вычислить сумму отрицательных элементов, расположенных в столбцах с номерами, кратными 3.

18

Вычислить произведение элементов, непринадлежащих интервалу (X, Y) и расположенных в строках с номерами, кратными 3.

19

Вычислить сумму квадратов элементов, неменьших заданного Z и расположенных в столбцах с четными номерами.

20

Найти количество элементов, небольших S и расположенных в строках с нечетными номерами.

21

Вычислить сумму положительных элементов, расположенных в строках с четными номерами.

22

Вычислить произведение отрицательных элементов, расположенных в строках с нечетными номерами.

23

Вычислить сумму элементов, принадлежащих промежутку [X, Y] и расположенных в столбцах с номерами, кратными 3.

24

Определить, сколько элементов, больших заданного Т расположено в строках с номерами, кратными 3.

25

Вычислить сумму квадратов элементов, меньших заданного D и расположенных в столбцах с четными номерами.

26

Вычислить произведение положительных элементов, рас положенных в столбцах с нечетными номерами.

27

Вычислить сумму квадратов отрицательных элементов, расположенных в строках с четными номерами.

28

Вычислить количество элементов, не принадлежащих промежутку [B,C) и расположенных в строках с нечетными номерами.

29

Вычислить сумму элементов, по абсолютной величине больших К и расположенных в столбцах с номерами, кратными 3.

30

Вычислить произведение элементов, по абсолютной величине меньших G и расположенных в строках с номерами, кратными 3.