VokaMut
16-12-2010, 16:49
Помогите написать программы:
1.Которая считывает линейный массив натуральных чисел из файла, имя которого вводится с клавиатуры, и выводит на экран те элементы, которые являются простыми числами.
2.Которая создает стек целых чисел, считываемых из файла и удаляет из него повторяющиеся. Всё это вывести на экран.
3.Которая заполняет квадратную матрицу случайными числами из заданного диапазона. Из полученной матрицы все положительные числа занести во второй массив, а все отрицательные - в третий. Каждый из полученных массивов упорядочить по возрастанию. Определить во втором массиве количество элементов являющихся простыми числами. Второй и третий массивы записать каждый в отдельный файл.
Первую и вторую пытался сделать, но ничего хорошего у меня не вышло.(В первой до проверки на простые числа)
Третью программу сделал почти до конца, осталось сделать в цикле проверку на простые числа.
Третья программа:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <math.h>
void main()
{
do
{
int i=0;
int j=0;
int min,max;
int matrix[10][10];
cout<<"\nVvedite diapazon:"<<endl<<"min - ";
cin>>min;
cout<<endl<<"max - ";
cin>>max;
int mass1[100];
int mass2[100];
int mass3[100];
int z=0;
cout<<endl<<endl;
cout<<endl<<"Matrix:"<<endl;
for(i=0; i<10;i++) \\Создаем матрицу 10х10 из чисел заданного диапазона
{
for(j=0; j<10;j++)
{
matrix[i][j]=min+rand()%(max-min+1);
cout<<setw(3)<<matrix[i][j]<<" ";
}
cout<<endl;
}
j=0;
cout<<endl<<endl;
cout<<"Massiv pologitelinix 4isel:\n";
for(i=0;i<10;i++) \\Создаем из полученной матрицы матрицы массив положительных чисел
{
for(j=0;j<10;j++)
{
if(matrix[i][j]>0)
{
mass1[z]=matrix[i][j];
cout<<mass1[z]<<" ";
z++;
}
}
}
int q,w;
z--;
q=z;
j=0;
cout<<endl<<endl;
cout<<endl<<"Massiv otricatelinix 4isel:\n";
for(i=0;i<10;i++) \\Создаем массив отрицательных чисел
{
for(j=0;j<10;j++)
{
if(matrix[i][j]<0)
{
mass2[z]=matrix[i][j];
cout<<mass2[z]<<" ";
z++;
}
}
}
j=0;
z--;
w=z;
for (i=0;i<q;i++) \\сортируем методом пузырька 1 массив
{
for (j=0;j<q;j++)
{
if (mass1[i]>mass1[j])
{
z=mass1[i];
mass1[i]=mass1[j];
mass1[j]=z;
}
}
}
for(i=0;i<w;i++) \\сортируем второй массив
mass2[i]*=-1;
for (i=0;i<w;i++)
{
for (j=0;j<w;j++)
{
if (mass2[i]<mass2[j])
{
z=mass2[i];
mass2[i]=mass2[j];
mass2[j]=z;
}
}
}
for(i=0;i<w;i++)
mass2[i]*=-1;
cout<<endl<<endl; \\выводим на экран полученное
cout<<endl<<endl<<"Massis 1 : ";
for(i=0;i<q;i++)
cout<<mass1[i]<<" ";
cout<<endl<<endl;
cout<<endl<<endl<<"Massis 2 : ";
for(i=0;i<98-q;i++)
cout<<mass2[i]<<" \n";
int ch=0;
char flag=1;
for(int qq=1;qq<=mass1[i];qq++)
{
for(long pr=0;pr<sqrt(mass1[i]);pr++) \\Проверка на простые числа
{
if(mass1[i]%pr==0)
{
flag=0;
break;
}
}
}
cout<<endl<<endl;
cout<<"kol-vo 4usel 9vl sten 3 "<<ch;
fstream outf("mass1.txt", ios::out); \\записываем в файлы полученные массивы
for(i=0;i<w;i++)
outf<<mass1[i]<<" ";
outf.close();
getch();
outf.open("mass2.txt",ios::out);
for(i=0;i<98-q;i++)
outf<<mass2[i]<<" ";
outf.close();
}while(getch()!=27);
}
Выделил проверку на простые.
Это проверка одного числа, в цикле сделать не получается...
p.s. хотя бы третью помогите доделать,а то уже неделю с бубном и учебниками парюсь
1.Которая считывает линейный массив натуральных чисел из файла, имя которого вводится с клавиатуры, и выводит на экран те элементы, которые являются простыми числами.
2.Которая создает стек целых чисел, считываемых из файла и удаляет из него повторяющиеся. Всё это вывести на экран.
3.Которая заполняет квадратную матрицу случайными числами из заданного диапазона. Из полученной матрицы все положительные числа занести во второй массив, а все отрицательные - в третий. Каждый из полученных массивов упорядочить по возрастанию. Определить во втором массиве количество элементов являющихся простыми числами. Второй и третий массивы записать каждый в отдельный файл.
Первую и вторую пытался сделать, но ничего хорошего у меня не вышло.(В первой до проверки на простые числа)
Третью программу сделал почти до конца, осталось сделать в цикле проверку на простые числа.
Третья программа:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <math.h>
void main()
{
do
{
int i=0;
int j=0;
int min,max;
int matrix[10][10];
cout<<"\nVvedite diapazon:"<<endl<<"min - ";
cin>>min;
cout<<endl<<"max - ";
cin>>max;
int mass1[100];
int mass2[100];
int mass3[100];
int z=0;
cout<<endl<<endl;
cout<<endl<<"Matrix:"<<endl;
for(i=0; i<10;i++) \\Создаем матрицу 10х10 из чисел заданного диапазона
{
for(j=0; j<10;j++)
{
matrix[i][j]=min+rand()%(max-min+1);
cout<<setw(3)<<matrix[i][j]<<" ";
}
cout<<endl;
}
j=0;
cout<<endl<<endl;
cout<<"Massiv pologitelinix 4isel:\n";
for(i=0;i<10;i++) \\Создаем из полученной матрицы матрицы массив положительных чисел
{
for(j=0;j<10;j++)
{
if(matrix[i][j]>0)
{
mass1[z]=matrix[i][j];
cout<<mass1[z]<<" ";
z++;
}
}
}
int q,w;
z--;
q=z;
j=0;
cout<<endl<<endl;
cout<<endl<<"Massiv otricatelinix 4isel:\n";
for(i=0;i<10;i++) \\Создаем массив отрицательных чисел
{
for(j=0;j<10;j++)
{
if(matrix[i][j]<0)
{
mass2[z]=matrix[i][j];
cout<<mass2[z]<<" ";
z++;
}
}
}
j=0;
z--;
w=z;
for (i=0;i<q;i++) \\сортируем методом пузырька 1 массив
{
for (j=0;j<q;j++)
{
if (mass1[i]>mass1[j])
{
z=mass1[i];
mass1[i]=mass1[j];
mass1[j]=z;
}
}
}
for(i=0;i<w;i++) \\сортируем второй массив
mass2[i]*=-1;
for (i=0;i<w;i++)
{
for (j=0;j<w;j++)
{
if (mass2[i]<mass2[j])
{
z=mass2[i];
mass2[i]=mass2[j];
mass2[j]=z;
}
}
}
for(i=0;i<w;i++)
mass2[i]*=-1;
cout<<endl<<endl; \\выводим на экран полученное
cout<<endl<<endl<<"Massis 1 : ";
for(i=0;i<q;i++)
cout<<mass1[i]<<" ";
cout<<endl<<endl;
cout<<endl<<endl<<"Massis 2 : ";
for(i=0;i<98-q;i++)
cout<<mass2[i]<<" \n";
int ch=0;
char flag=1;
for(int qq=1;qq<=mass1[i];qq++)
{
for(long pr=0;pr<sqrt(mass1[i]);pr++) \\Проверка на простые числа
{
if(mass1[i]%pr==0)
{
flag=0;
break;
}
}
}
cout<<endl<<endl;
cout<<"kol-vo 4usel 9vl sten 3 "<<ch;
fstream outf("mass1.txt", ios::out); \\записываем в файлы полученные массивы
for(i=0;i<w;i++)
outf<<mass1[i]<<" ";
outf.close();
getch();
outf.open("mass2.txt",ios::out);
for(i=0;i<98-q;i++)
outf<<mass2[i]<<" ";
outf.close();
}while(getch()!=27);
}
Выделил проверку на простые.
Это проверка одного числа, в цикле сделать не получается...
p.s. хотя бы третью помогите доделать,а то уже неделю с бубном и учебниками парюсь