|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.06.2010, 12:17 | #1 |
Новичок
Джуниор
Регистрация: 14.06.2010
Сообщений: 2
|
найти разность и пересечение множеств (синтаксис СИ)
народ,плиз,помогите с прогой
заданы 2 множества точек A и В (с разным количеством точек).Найти пересечение и разность этих множеств.Координаты точек-переменные структурного типа (struct) выводятся из файла. |
14.06.2010, 12:30 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Сделаю за деньги.
Аська в профиле.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
14.06.2010, 12:46 | #3 |
Пользователь
Регистрация: 11.06.2010
Сообщений: 78
|
И в чем сложность задачи? Главное знание определений пересечения
http://ru.wikipedia.org/wiki/%D0%9F%...81%D1%82%D0%B2 и разность двух множеств, http://ru.wikipedia.org/wiki/%D0%A0%...81%D1%82%D0%B2 а дальше дело техники =)
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
|
14.06.2010, 13:07 | #4 |
Новичок
Джуниор
Регистрация: 14.06.2010
Сообщений: 2
|
так в том-то и дело,что техника хромает,я прогу написал,но она считывает с файла не все точки,т.е если множества различаются больше чем на 1 точку,то остальные точки не считываются
x1 y1 x2 y2 1 3 1 3 2 0 0 2 5 5 1 2 точка множества А(1,2) уже не считывается вот листинг моей проги #include<stdio.h> #include<conio.h> int main(int argc, char* argv[]) { int i,j; //переменные, используемые в циклах int chislo_tochekA; // количество точек в множестве А int chislo_tochekB; // количество точек в множестве В int a,b; //переменные, используемые в качестве счетчиков int k; //дополнительная переменная struct A //структура точек множества А { int x1; //координаты X1 точек множества A int y1; //координаты Y1 точек множества A }; struct A A1[100]; //в структуре A содержится до 100 значений каждой координаты struct B //структура точек множества В { int x2; //координаты X2 точек множества B int y2; //координаты Y2 точек множества B }; struct B B1[100]; //в структуре В содержится до 100 значений каждой координаты FILE *file; //открываем файл mnozestva.txt для чтения file = fopen("mnozestva.txt","r"); //если файл не найден,выводится на экран сообщение об ошибке if(file==NULL) { printf("file not found\n"); return 1; } a=0; b=0; while(!feof(file)) //"Забираем" точки из файла { fscanf(file,"%i",&A1[a].x1); if(A1[a].x1> 1000 || A1[a].x1<-1000) { printf ("element isn’t for source interval"); return 1; } fscanf(file,"%i",&A1[a].y1); if(A1[a].y1> 1000 || A1[a].y1<-1000) { printf ("element isn’t for source interval"); return 1; } a++; fscanf(file,"%i",&B1[b].x2); if(B1[b].x2> 1000 || B1[b].x2<-1000) { printf ("element isn’t for source interval"); return 1; } fscanf(file,"%i",&B1[b].y2); if(B1[b].y2> 1000|| B1[b].y2<-1000) { printf ("element isn’t for source interval"); return 1; } b++; } chislo_tochekA=a-1; //число точек множества А chislo_tochekB=b-1; //число точек множества В for (i=0;i<chislo_tochekA;i++) { for (j=0;j<chislo_tochekB;j++) { if (A1[i].x1==B1[j].x2 && A1[i].y1==B1[j].y2) { /* если координаты точек обоих множеств равны,то выводим их на экран,они и будут являться точками искомого пересечения*/ printf("X(peresechenia)= %i",A1[i].x1); printf(" Y(peresechenia)= %i",A1[i].y1); k=i; } if (A1[i].x1!=A1[k].x1 && A1[i].y1!=A1[k].y1) { /* Выводим на экран координаты точек множества А, не входящих во множество В */ printf(" X(raznosti)= %i",A1[i].x1); printf(" Y(raznosti)= %i",A1[i].y1); } printf("\n"); } getch(); return 0; } |
14.06.2010, 13:50 | #5 |
Пользователь
Регистрация: 11.06.2010
Сообщений: 78
|
А нельзя немного подредактировать документ откуда берутся точки. Пусть в начале документа идет количество точек в множестве A, затем количество точек в B, а потом только их координаты. Это решит все ваши проблемы да и поможет избавится от
Код:
Пожалуйста, перед опубликованием кода, корректируйте его через теги =)
Я не волшебник, я еще только учусь ٩(๏̯͡๏)۶
Последний раз редактировалось dxdy; 14.06.2010 в 13:53. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пролог!!!!!" Пересечение множеств | giga1989 | Помощь студентам | 0 | 28.04.2010 21:27 |
пересечение двух множеств | Олежек | Фриланс | 7 | 10.03.2010 18:46 |
Найти разность мин и макс значение функции | J0n1cK | Помощь студентам | 1 | 19.06.2009 20:12 |
перетин множеств | designer | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 15.05.2009 12:17 |
Найти разность суммы элементов массива В(20) с чётными номерами... | никита989 | Помощь студентам | 6 | 16.01.2008 13:51 |