отчет 2 семестр практика 1 11 вариант
.docxБалтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова
Кафедра И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;
}
Результат тестирования программы:
Вывод:
Ожидаемые результаты и результаты тестирования совпали. Поэтому можно сказать, что программа работает правильно.