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

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

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

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

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

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

Вариант №13

Выполнил: Студент Тананыкина Надежда Андреевна Группа О401Б Преподаватель: Лазарева Татьяна Ильинична

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

Задача 1

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

Дана вещественная матрица C размером 4х3. В каждой строке определить

количество элементов, больших среднего арифметического этой строки.

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

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

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

Количество элементов больших среднего арифметического, обозначим k, тип int.

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

Среднее арифметическое в каждой строке, обозначим sr, тип double.

Количество элементов больших среднего арифметического, обозначим k, тип int.

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

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

#include <stdio.h>

#include <stdlib.h>

#define N 4

#define M 3

int main()

{

int i, j, k;

double sr[N];

int C[N][M];

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

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

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

printf("initial\n");

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

{

sr[i] = 0;

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

{

sr[i] += C[i][j];

printf("%5d", C[i][j]);

}

printf("\n");

}

printf("\nresult\n");

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

{

k = 0;

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

{

if (C[i][j] > sr[i] / M)

k++;

printf("%5d", C[i][j]);

}

printf("\tnumber %d\n", k);

}

}

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

Вывод:

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

Задача 2

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

Дана вещественная матрица C размером 7х8. Отсортировать вторую

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

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

Матрица С, обозначим С, тип double*.

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

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

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

Переменная для запоминания числа при замене, обозначим hold, тип double.

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

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

#include <stdio.h>

#include <stdlib.h>

#define N 3

#define M 3

int main()

{

int i, j;

double hold;

double* c;

c = (double*)malloc(N * M * sizeof(double));

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

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

scanf_s("%lf", (c + i * N + j));

printf("initial\n");

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

{

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

{

printf("%lf\t", *(c + i * N + j));

}

printf("\n");

}

for (i = 1; i < M - 1; i++) // сортировка вставками

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

if (*(c + M + i) > *(c + M + j))

{

hold = *(c + M + j);

*(c + M + j) = *(c + M + i);

*(c + M + i) = hold;

}

printf("result\n");

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

{

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

{

printf("%lf\t", *(c + i * N + j));

}

printf("\n");

}

}

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

Вывод:

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