Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по инф с 4 по 10 (3 вариант) .doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
440.32 Кб
Скачать

Int main(void)

{ int *y, *z;

int i,k,m,*ky,*kz;

float *my, *mz;

cout<<"Vvedite razmer Y:";

cin>>k;

y=new int[k];//выделяем память для массива

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

{cout<<"Entered Y["<<setw(2)<<i<<"]= ";

cin>>y[i]; }

ky=new int;//памыть для

my=new float;//результатов

sred(y,k,ky,my);

cout<<"Array Y"<<endl;

for(i=0;i<k;i++)//выводим исходный массив

cout<<setw(8)<<y[i];

if (ky[0]>0)//выводим среднее и количество простых

{cout<<endl<<"Srednee prostix dvuzn:"<<my[0]<<", kol-vo: "<<ky[0]<<endl;

if (ky[0]>2)//если количество больше 2-х

{for (i=0;i<k;i++)

{if ((abs(y[i])>10)&&(abs(y[i])<99))

if (prost(y[i])) {del(y,&k,i); i--;}//удаляем элемент

}

cout<<"Array Y posle obrabotki"<<endl;

for(i=0;i<k;i++)//выводим массив после обработки

cout<<setw(8)<<y[i];

} }

else

cout"<<endl<<"Net prostix”;

delete [] y; //освобождаем память

delete ky;

delete my;

cout<<endl<<"Vvedite razmer Z:";

cin>>m;

z=new int[m];//аналогично для массива z

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

{cout<<"Entered Z["<<setw(2)<<i<<"]= ";

cin>>z[i];

}

kz=new int;

mz=new float;

sred(z,m,kz,mz);

cout<<"Array Z"<<endl;

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

cout<<setw(8)<<z[i];

if (kz[0]>0)

{

cout<<endl<<"Srednee prostix dvuzn:"<<mz[0]<<", kol-vo: "<<kz[0]<<endl;

if (kz[0]>2)

{for (i=0;i<m;i++)

{if ((abs(y[i])>10)&&(abs(y[i])<100))

if (prost(z[i])) {del(z,&m,i); i--;}

}

cout<<"Array Z posle obrabotki"<<endl;

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

cout<<setw(8)<<z[i];

} }

else

cout"<<endl <<"Net prostix"<<endl;

delete [] z;

delete kz;

delete mz;

return 0;

}

  1. Контрольный расчет.

Лабораторная работа №10

Тема «Обработка двумерных массивов»

Цель работы: Изучение двумерных массивов в языке С++. Знакомство с основными алгоритмами работы с матрицами– определение суммы, произведения элементов, поиска максимального или минимального элемента, работа с диагоналями квадратной матрицы.

Задание. Составить алгоритм решения задачи согласно своему варианту и написать программу на языке С++.

Вариант 3. Задана матрица целых чисел a(n,n). Вывести номера столбцов, в которых находится более двух простых чисел. Найти сумму положительных элементов матрицы.

  1. Блок-схема алгоритма.

  1. Листинг программы.

#include <iostream.h>

#include <iomanip.h>

#include <math.h>

Int main(void)

{

int i,j,k,n,*a;

int summ,cnt,cura;

cout<<"Entered N: ";

cin>>n;

a=new int[n*n];//выделяем память для матрицы

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

for(j=0;j<n;j++) //ввод матрицы

{ cout<<"Entered A["<<setw(2)<<i<<"]["<<setw(2)<<j<<"]: ";

cin>>a[7*i+j];//элемент расположен по этому адресу памяти

}

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

{for(j=0;j<n;j++) //форматированный вывод матрицы

cout<<setw(6)<<a[7*i+j];

cout<<endl;

}

summ=0;

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

{ cnt=0;

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

{if (a[7*j+i]>0) summ+=a[7*j+i];

cura=abs(a[7*j+i]);//здесь j выступает строкой

if (cnt<3)

{for(k=2;k<cura;k++)//проверка число-простое?

if (cura%k==0)

{cnt--;

break;

};

cnt++;

}

}

if(cnt>2) cout<<"Column "<<setw(2)<<i<<" >2 prost"<<endl;

}

cout<<"Summa positive= "<<summ<<endl;

delete [] a;

return 0;

}

  1. Контрольный расчет.