|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помогите с 3-мя программами |
|
C/C++ - Помогите с 3-мя программами
|
Пользователь Сообщения: 133 |
Профиль | Отправить PM | Цитировать
Помогите написать программы:
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. хотя бы третью помогите доделать,а то уже неделю с бубном и учебниками парюсь |
|
Отправлено: 16:49, 16-12-2010 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать VokaMut, процедуры и функции вещь пройденная? Если да, то переписывай программу с их использованием. Это структурирует задачу и делает проще в понимании, отладке. Соотв. разбивай задачу на этапы и функциональный шаги, и милости просим с комментариями к коду, наработками сделанными ранее.
Проверку на простоту тоже желательно вынести отдельной функцией. |
------- Отправлено: 18:45, 16-12-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 133
|
Профиль | Отправить PM | Цитировать lxa85, Комментарии написал в программе, мне бы только создать проверку на простые числа в массиве
|
Отправлено: 20:17, 16-12-2010 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать VokaMut, самый банальный способ исходит из определения простого числа.
Простые числа - это целое положительное число больше единицы, которое не делится без остатка ни на одно другое целое положительное число, кроме единицы и самого себя. Цикл от 2 до n + проверка остатка от деления (mod). |
------- Отправлено: 21:24, 16-12-2010 | #4 |
Пользователь Сообщения: 133
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 22:42, 16-12-2010 | #5 |
Пользователь Сообщения: 133
|
Профиль | Отправить PM | Цитировать Третью и вторую написал.
Со второй помогите. На счет того как нас учат.нам дают примеры и делайте по их подобию. Не удобно,хоть и комментарии написаны к коду. |
Отправлено: 21:47, 17-12-2010 | #6 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать VokaMut, у тебя правильная проверка на простое число. Меня % смущал, но сейчас разобрался.
Вводи дополнительный цикл. Собственно что тебя смутило? |
------- Отправлено: 02:16, 18-12-2010 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Цитата lxa85:
И ставьте отступы пробелы в коде, вы что, жалеете кнопку пробел или пытаетесь за счёт отсутствия пробелов уменьшить размер программы? |
|
------- Отправлено: 23:54, 18-12-2010 | #8 |
Пользователь Сообщения: 133
|
Профиль | Отправить PM | Цитировать Всем спасибо,лабы сделал,вот третья(Может пригодится ):
#include <iostream.h> #include <conio.h> #include <stdlib.h> #include <iomanip.h> #include <fstream.h> #include <math.h> void main() { do { int i,j,min,max,matrix[4][8],z=0,mass1[100],mass2[100],mass3[100],q,w,ch=0,qq; cout<<"Vvedite diapazon:\nmin: "; cin>>min; cout<<"\nmax: "; cin>>max; cout<<"\n\nMatrix:\n"; for(i=0; i<4;i++) { for(j=0; j<8;j++) { matrix[i][j]=min+rand()%(max-min+1); cout<<setw(3)<<matrix[i][j]<<" "; } cout<<endl; } j=0; cout<<"\n\nMassiv pologitelinix 4isel:\n"; for(i=0;i<4;i++) { for(j=0;j<8;j++) { if(matrix[i][j]>0) { mass1[z]=matrix[i][j]; cout<<mass1[z]<<" "; z++; } } } q=z; cout<<"\n\nMassiv otricatelinix 4isel:\n"; for(i=0;i<4;i++) { for(j=0;j<8;j++) { if(matrix[i][j]<0) { mass2[z]=matrix[i][j]; cout<<mass2[z]<<" "; z++; } } } j=0; w=z; for (i=0;i<q-1;i++) { for (j=i+1;j<q;j++) { if (mass1[i]>mass1[j]) { z=mass1[i]; mass1[i]=mass1[j]; mass1[j]=z; } } } for (i=0;i<w-1;i++) { for (j=i+1;j<w;j++) { if (mass2[i]<mass2[j]) { z=mass2[i]; mass2[i]=mass2[j]; mass2[j]=z; } } } cout<<"\n\nMassiv 1: "; for(i=0;i<q;i++) cout<<mass1[i]<<" "; cout<<"\n\nMassiv 2: "; for(i=0;i<w;i++) cout<<mass2[i]<<" "; char flag=1; cout<<"\n\nProst chisla: "; for(qq=0;qq<q;qq++) { flag=1; for(long pr=2;pr<=mass1[qq]/2;pr++) { if(mass1[qq]%pr==0) { flag=0; break; } } if(flag) { cout<<mass1[qq]<<" "; ch++; } } cout<<"\n\nkol-vo number "<<ch; fstream outf("mass1.txt",ios::out); for(i=0;i<q;i++) outf<<mass1[i]<<" "; outf.close(); getch(); outf.open("mass2.txt",ios::out); for(i=0;i<w;i++) outf<<mass2[i]<<" "; outf.close(); }while(getch()!=27); } нужно написать программу которая создает стек целых чисел, считываемых из файла и удаляет из него повторяющиеся. Всё это вывести на экран. Пример со стеком в методичке плохой,он слишком большой,разобраться не могу( |
Отправлено: 14:02, 19-12-2010 | #9 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Система - Создания загрузочного диска с программами | Evgesha_572 | Программное обеспечение Windows | 6 | 04-09-2009 10:35 | |
Загрузка - Проблеа с программами автозапуска.. | Alexxandr | Microsoft Windows 2000/XP | 17 | 29-09-2008 10:59 | |
Проблемы с Интернет-программами | elekta | Microsoft Windows 2000/XP | 3 | 25-05-2006 00:17 | |
Windows XP с программами на 2-х CD | Jamesssss | Автоматическая установка Windows 2000/XP/2003 | 5 | 18-05-2005 12:07 | |
Странности с почтовыми программами | valery559 | Хочу все знать | 5 | 22-10-2002 04:36 |
|