Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая часть.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
61.39 Кб
Скачать

Int main()

{

int **A, **B, **C;

int i, j, ASize;

cin >> ASize;

A = new int *[ASize];

B = new int *[ASize];

C = new int *[ASize];

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

{

A[i] = new int [ASize];

B[i] = new int [ASize];

C[i] = new int [ASize];

}

for (i = 0; i < ASize; ++i) /*Ввод массива A*/

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

cin >> A[i][j];

for (i = 0; i < ASize; ++i) /*Ввод массива B*/

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

cin >> B[i][j];

for (i = 0; i < ASize; ++i) /*Ввод массива C*/

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

cin >> C[i][j];

int SummA = SummProst(A, ASize), SummB = SummProst(B, ASize), SummC = SummProst(C, ASize);

if (SummA < SummB && SummA < SummC) vivod(A, ASize);

else if (SummB < SummC && SummB < SummA) vivod(B, ASize);

else vivod(C, ASize);

}

int prost(int x)

{

int i,k=0;

if (x == 1 || x == 0) return 0;

else if ((x==2)||(x==3)) return 1;

else for(i=2;i<x;i++)

if (x%i==0) k++;

if (k) return 0;

else return 1;

}

int SummProst(int **x, int n)

{

int summ = 0;

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

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

if (prost(x[i][j])) summ++;

return summ;

}

void vivod(int **x, int n)

{

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

{

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

cout << x[i][j];

cout << endl;

}

}

  1. Из одномерного массива, содержащего натуральные числа, создать три новых одномерных массива. Первый массив содержит совершенные числа входного массива, второй – четные, третий – числа, не попавшие в два первых массива. Является ли число совершенным, оформить как функцию. Глобальных переменных не использовать. Совершенные числа – это натуральные числа, которые равны сумме своих делителей за исключением самого числа (например, число 6 совершенно 6 = 1+2+3).

#include <iostream>

using namespace std;

int prost(int x);

int SummProst(int **, int n);

void vivod(int **x, int n);

Int main()

{

int **A, **B, **C;

int i, j, ASize;

cin >> ASize;

A = new int *[ASize];

B = new int *[ASize];

C = new int *[ASize];

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

{

A[i] = new int [ASize];

B[i] = new int [ASize];

C[i] = new int [ASize];

}

for (i = 0; i < ASize; ++i) /*Ввод массива A*/

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

cin >> A[i][j];

for (i = 0; i < ASize; ++i) /*Ввод массива B*/

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

cin >> B[i][j];

for (i = 0; i < ASize; ++i) /*Ввод массива C*/

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

cin >> C[i][j];

int SummA = SummProst(A, ASize), SummB = SummProst(B, ASize), SummC = SummProst(C, ASize);

if (SummA < SummB && SummA < SummC) vivod(A, ASize);

else if (SummB < SummC && SummB < SummA) vivod(B, ASize);

else vivod(C, ASize);

}

int prost(int x)

{

int i,k=0;

if (x == 1 || x == 0) return 0;

else if ((x==2)||(x==3)) return 1;

else for(i=2;i<x;i++)

if (x%i==0) k++;

if (k) return 0;

else return 1;

}

int SummProst(int **x, int n)

{

int summ = 0;

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

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

if (prost(x[i][j])) summ++;

return summ;

}

void vivod(int **x, int n)

{

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

{

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

cout << x[i][j];

cout << endl;

}

}

  1. }Из одномерного массива, содержащего натуральные числа, создать три новых одномерных массива. Первый массив содержит простые числа входного массива, второй – четные, третий – все остальные. Является ли число простым, оформить как функцию. Глобальных переменных не использовать. Простые числа – это натуральные числа, которые делятся только на единицу и сами на себя.

#include <stdio.h>

#include <conio.h>

#include <math.h>

int prost(int x)

{

int i,k=0;

if ((x==1)||(x==2)||(x==3)) return 1;

for(i=2;i<x;i++)

if (x%i==0) k++;

if (k) return 0;

else return 1;

}

void main()

{

int i,n,*A,*B,*C,*D,b=0,c=0,d=0;

printf("vvedite kol-vo elementov\n");

scanf("%d",&n);

A=new int [n];

B=new int [n];

C=new int [n];

D=new int [n];

printf("vvedite elements\n");

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

{

scanf("%d",&A[i]);

if (prost(A[i]))

{

B[b]=A[i];

b++;

}

else

if (A[i]%2==0)

{

C[c]=A[i];

c++;

}

else

{

D[d]=A[i];

d++;

}

}

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

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

printf("\n");

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

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

printf("\n");

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

printf("%d ",D[i]);

getch();

}

  1. Дано: прямоугольная целочисленная матрица A[N,M]. Определить номера строк матрицы, в которых содержится хотя бы один элемент, являющийся совершенным числом. Память под матрицу выделить в динамической области. Определение, является ли число совершенным, оформить как функцию. Глобальных переменных не использовать. Совершенные числа – это натуральные числа, равные сумме всех своих делителей за исключением самого себя (например, число 6 совершенно 6 = 1+2+3)

#include <stdio.h>

#include <conio.h>

#include <math.h>

int cover(int x)

{

if (x==1) return 0;

int s=1,i;

for(i=2;i<x;i++)

if (x%i==0) s=s+i;

if (s==x) return 1;

else return 0;

}

void main()

{

int i,j,**A,n,m;

printf("vvedite n and m\n");

scanf("%d%d",&n,&m);

A=new int *[n];

printf("vvedite matricy\n");

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

{

A[i]=new int [m];

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

{

scanf("%d",&A[i][j]);

}

}

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

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

if (cover(A[i][j]))

{

printf("v %d stroke estb covershennoe 4islo\n",i+1);

break;

}

getch();

}

  1. Дана прямоугольная целочисленная матрица A[N,M]. Сформировать одномерный массив В из элементов матрицы, расположенных по периметру. Полученный массив отсортировать по неубыванию.

#include<stdio.h>

#include<conio.h>

#include<iostream>