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