Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1.doc
Скачиваний:
20
Добавлен:
16.04.2015
Размер:
289.28 Кб
Скачать

Лабораторная работа № 4

Вложенные циклы и разветвления в матричных задачах.

ЦЕЛЬ РАБОТЫ.

  • научиться использовать в программах многомерные массивы и сложные сочетания циклов и разветвлений.

ПРАКТИЧЕСКОЕ ЗАДАНИЕ.

  1. Дана квадратная матрица A= вещественных чисел размера NxN. В соответствии с вариантом задания произвести вычисления с элементами матрицы A.

  2. Составьте отчет о выполнении лабораторной работы, в который включите:

    1. Название и цель работы;

    2. Индивидуальное задание;

    3. Текст программы;

    4. Результат решения задачи;

    5. Блок-схему алгоритма решения задачи.

ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ.

Поменять местами строки квадратной матрицы A (N=10), содержащие максимальный и минимальный элементы матрицы.

Будем хранить элементы матрицы A в двумерном массиве a[10][10], а текущие значения максимального и минимального элементов и номера их строк в переменных max, min, m и n соответственно.

Предположим, что максимальный и минимальный элементы массива есть его первый элемент. Далее во вложенных циклах будем сравнивать эти значения с остальными элементами и, когда очередной элемент массива окажется больше или меньше значения max и min соответственно, исправим их на новые значения. Одновременно в переменных m и n будем сохранять номер строки этого элемента. И, наконец, если m не равно n, то переставим местами соответствующие строки матрицы.

/* Лабораторная работа 4 */

# include <stdio.h>

#include <stdlib.h>

int main(int argc, char *argv[])

{

int i, j, m = 0, n = 0;

float a[4][4], max, min, u;

/*Ввод элементов матрицы*/

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

{

printf(”\n”);

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

scanf(”%f ”, &a[i][j]);

}

/*Поиск максимального и минимального элементов матрицы */

/*и номеров их строк */

max = min = a[0][0];

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

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

{

if (a[i][j] > max)

{

max = a[i][j]; m = i;

}

else if (a[i][j] < min)

{

min = a[i][j]; n = i;

}

}

/*Перестановка местами строк матрицы/

if (m != n)

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

{

u = a[m][i];

a[m][i] = a[n][i];

a[n][i] = u;

}

/*Вывод элементов новой матрицы/

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

{

printf (”\n”);

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

printf(" %6.2f ", a[i][j]);

}

printf ("\nmax=%f\tmin=%f",max,min);

system("PAUSE");

return 0;

}

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

Массив

Задание

Условия и

ограничения

1

Х[5][5]

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

2

А[4][3]

Вычислить среднее арифме­тическое значение положительных элементов массива А

3

Х[3][5]

Найти сумму целых положительных чисел, кратных 4.

4

В[6][2]

Определить максимальный элемент массива В и его порядковый номер

bij - действительные числа

5

С[4][3]

Вычислить минимальный элемент массива С и его порядковый номер

сij - действительные числа

6

D[2][6]

Найти максимальный и минимальный элементы массива D и поменять их местами

dij - целые числа

7

Y[4][2]

Вычислить среднее геомет­рическое положительныых элементов массива Y

- целые числа

8

Z[5][3]

Найти сумму и количество четных чисел, меньших 10.

zij - натуральные числа

9

N[5][2]

Определить сумму элементов массива N, кратных трем ()

натуральные числа

10

A[3][5]

Найти сумму и количество отрицательных элементов массива А

11

X[3][3]

Найти сумму и количество целых положительных чисел, больших 20, меньших 50.

12

X[4][4]

Найти сумму целых положительных чисел, кратных 2 и меньших 50.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]