Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

отчет 1 семестр практика 6 16 вариант

.docx
Скачиваний:
8
Добавлен:
06.07.2021
Размер:
270.29 Кб
Скачать

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова

Кафедра И5 «Информационные системы и программная инженерия»

Практическая работа №6 по дисциплине «Информатика: Основы программирования» на тему «Матрицы»

Вариант №16

Выполнил: Студент Эрмекбаев Рустам Хурваевич Группа О401Б Преподаватель: Лазарева Татьяна Ильинична

Санкт-Петербург 2020 г.

Задача 1

Условие задачи:

В каждой строке заданной вещественной матрицы В размером 9х8

поменять знак у максимального по модулю элемента на противоположный

Исходные данные:

Матрица В, обозначим В, тип int.

Результирующие данные:

Измененная матрица В.

Дополнительные переменные:

Максимальный по модулю элемент в каждой строке, обозначим max, тип int.

Структурная схема программы:

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

#include <stdio.h>

#include <stdlib.h>

#define N 3

#define M 3

int main()

{

int i, j;

int B[N][M];

int* max;

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

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

scanf_s("%d", &B[i][j]);

printf("\ninitial\n");

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

{

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

printf("%6d", B[i][j]);

printf("\n");

}

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

{

max = &B[i][1];

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

if (B[i][j] * B[i][j] > (*max) * (*max))

max = &B[i][j];

*max = -(*max);

}

printf("\nresult\n");

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

{

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

printf("%6d", B[i][j]);

printf("\n");

}

}

Результат тестирования программы:

Входные данные

Ожидаемый результат

Результат программы

3 6 7

-6 5 -88

22 -33 55

initial

3 6 7

-6 5 -88

22 -33 55

result

3 6 -7

-6 5 88

22 -33 -55

initial

3 6 7

-6 5 -88

22 -33 55

result

3 6 -7

-6 5 88

22 -33 -55

-33 66 7

65 10 -3

-6 33 99

initial

-33 66 7

65 10 -3

-6 33 99

result

-33 -66 7

-65 10 -3

-6 33 -99

initial

-33 66 7

65 10 -3

-6 33 99

result

-33 -66 7

-65 10 -3

-6 33 -99

77 77 77

66 22 44

-55 -55 -55

initial

77 77 77

66 22 44

-55 -55 -55

result

77 -77 77

-66 22 44

-55 55 -55

initial

77 77 77

66 22 44

-55 -55 -55

result

77 -77 77

-66 22 44

-55 55 -55

Вывод:

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

Задача 2

Условие задачи:

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

выше главной диагонали квадратной матрицы.

Исходные данные:

Матрица B, обозначим B, тип int.

Результирующие данные:

Среднее арифметическое элементов лежащих выше главной диагонали, обозначим average, тип double.

Исходные данные:

Количество элементов выше диагонали, обозначим num, тип double.

Структурная схема программы:

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

#include <stdio.h>

#include <stdlib.h>

#define N 3

int main()

{

int i, j;

int B[N][N];

double average, num;

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

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

scanf_s("%d", &B[i][j]);

average = 0;

num = 0;

printf("\ninitial\n");

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

{

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

{

printf("%6d", B[i][j]);

if (j > i)

{

average += B[i][j];

num++;

}

}

printf("\n");

}

average /= num;

printf("average = %lf", average);

}

Результат тестирования программы:

Входные данные

Ожидаемый результат

Результат программы

3 3 3

3 3 3

3 3 3

initial

3 3 3

3 3 3

3 3 3

average = 3.000000

initial

3 3 3

3 3 3

3 3 3

average = 3.000000

6 1 2

3 1 4

1 24 5

initial

6 1 2

3 1 4

1 24 5

average = 2.333333

initial

6 1 2

3 1 4

1 24 5

average = 2.333333

9 3 5

6 54 21

0 3 4

initial

9 3 5

6 54 21

0 3 4

average = 9.666667

initial

9 3 5

6 54 21

0 3 4

average = 9.666667

Вывод:

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