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

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

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

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

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

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

Вариант №14

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

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

Задача 1

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

Подсчитать количество простых чисел в целочисленном массиве

А (N) и матрице В (МхМ). Для подсчета количества простых чисел в массиве и в матрице, использовать одну функцию

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

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

Массив А, обозначим А, тип int.

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

Количество простых чисел, обозначим kolvo, тип int.

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

Переменная для проверки на множители, обозначим pr, тип int.

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

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

#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>

void input(int* a, int n); //прототипы

void output(int* a, int n, int m);

int search(int* a, int n, int m);

void input(int* a, int n) //функция ввода

{

for (; n > 0; n--)

scanf_s("%d", a++);

}

void output(int* a, int n, int m) //функция вывода

{

int i, j;

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

{

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

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

printf("\n");

}

}

int search(int* a, int n, int m) //функция поиска простых чисел

{

int i, j, pr, kolvo;

kolvo = n * m;

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

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

{

pr = 3;

if ((*(a + i * n + j) == 1) || (*(a + i * n + j) == 0))

kolvo--;

if ((*(a + i * n + j) != 2) && (*(a + i * n + j) % 2 == 0))

kolvo--;

else

while (pr * pr < *(a + i * n + j))

{

pr += 2;

if (*(a + i * n + j) % pr == 0)

{

kolvo--;

break;

}

}

}

return(kolvo);

}

int main()

{

int n, m, * a, * b;

printf("Enter the array size\n");

scanf_s("%d", &n);

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

printf("\nEnter the array\n");

input(a, n);

printf("\nEnter the matrix size\n");

scanf_s("%d", &m);

b = (int*)malloc(m * m * sizeof(int));

printf("\nEenter the matrix\n");

input(b, m * m);

printf("\nInitial\n");

output(a, 1, n);

printf("\n");

output(b, m, m);

printf("\nThe number of prime numbers in the array %d\n", search(a, 1, n));

printf("\nThe number of prime numbers in the matrix %d", search(b, m, m));

free(a);

free(b);

}

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

Вывод:

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