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

отчет 2 семестр практика 1 11 вариант

.docx
Скачиваний:
13
Добавлен:
08.07.2021
Размер:
201.74 Кб
Скачать

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

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

Практическая работа №6 по дисциплине «Программирование на ЯВУ» на тему «Матрицы»

Вариант №11

Выполнил: Студент Ситева Софья Борисовна Группа О401Б Преподаватель: Ракова Ирина Константиновна

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

Задача 1

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

Дана матрица В размером 7х7. Преобразовать матрицу так, чтобы

минимальные элементы строк оказались на главной диагонали.

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

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

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

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

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

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

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

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

include <stdio.h>

#include <stdlib.h>

#define N 7

int main()

{

int B[N][N];

int i, j, min;

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

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

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

printf("\ninitial\n");

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

{

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

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

printf("\n");

}

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

{

min = B[i][1];

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

{

if (B[i][j] < min)

min = B[i][j];

}

B[i][i] = min;

}

printf("\nresult\n");

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

{

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

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

printf("\n");

}

return 0;

}

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

Вывод:

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

Задача 2

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

Транспонированием квадратной матрицы называется такое ее

преобразование, при котором строки и столбцы меняются ролями: i-й

столбец становится i-й строкой. Дана квадратная матрица размера nxn.

Получить транспонированную матрицу.

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

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

Размер матрицы, обозначим n, тип int.

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

Транспонированная матрица A, обозначим A, тип int.

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

Переменная для запоминания значения, обозначим key, тип int.

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

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

#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>

int main()

{

int* a;

int i, j, n, key;

scanf_s("%d", &n);

a = (int*)malloc(n * n * sizeof(int));

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

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

scanf_s("%d", (a + i * n + j));

printf("initial\n");

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

{

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

printf("%5.d", *(a + i * n + j));

printf("\n");

}

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

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

{

key = *(a + i * n + j);

*(a + i * n + j) = *(a + j * n + i);

*(a + j * n + i) = key;

}

printf("result\n");

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

{

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

printf("%5.d", *(a + i * n + j));

printf("\n");

}

free(a);

return 0;

}

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

Вывод:

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