|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.07.2012, 12:51 | #1 |
Пользователь
Регистрация: 02.07.2012
Сообщений: 11
|
Создать файл, содержащий координаты точек в двумерном пространстве . На Си
Создать файл, содержащий координаты точек в двумерном пространстве (вещественные числа типа double). записать все точи из первой координатной четверти в файл 1.dat, второй четверти - 2.dat, третьей четверти - 3.dat, четвертой четверти - 4.dat. Внутри каждого из 4 файлов упорядочить точки в порядке удаления от центра координат.
|
03.07.2012, 12:57 | #2 | |
Пользователь
Регистрация: 02.07.2012
Сообщений: 11
|
Цитата:
запись будет примерно так : 1) если x>0 и y>0 то записываем в 1dat., 2)если x<0 и y>0 то записываем в 2.dat. 3)если x<0 и y<0 то записываем в 3.dat. 4)если x>0 и y<0 то записываем в 4.dat. Файлы должны записываться куда нибудь на диск например на D Вот наработки: #include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> #define NPTS 10 #define FN1 "1.DAT" #define FN2 "2.DAT" #define FN3 "3.DAT" #define FN4 "4.DAT" typedef struct tagPoint { double x, y; } Point, *PPoint; double dist(const Point* p1, const Point* p2) { return sqrt( pow(p1->x-p2->x,2)+pow(p1->y-p2->x,2) ); } double signedRnd() { return (rand() > 0.5*RAND_MAX ? -1 : 1) * rand() % 100; } void getRndPts(Point pts[], int n ) { int i; srand(time(NULL)); for (i=0; i<n; ++i) { pts[i].x = signedRnd(); pts[i].y = signedRnd(); } } void toFiles(Point pts[], int n) { int i; FILE *f1, *f2, *f3, *f4; f1 = fopen(FN1, "w"); f2 = fopen(FN2, "w"); f3 = fopen(FN3, "w"); f4 = fopen(FN4, "w"); for ( i=0; i<n; ++i ) { if ( (pts[i].x >= 0.0) && (pts[i].y >= 0.0) ) fprintf(f1, "%f %f\n", pts[i].x, pts[i].y); else if ( (pts[i].x >= 0.0) && (pts[i].y < 0.0) ) fprintf(f4, "%f %f\n", pts[i].x, pts[i].y); else if ( (pts[i].x < 0.0) && (pts[i].y > 0.0) ) fprintf(f2, "%f %f\n", pts[i].x, pts[i].y); else if ( (pts[i].x < 0.0) && (pts[i].y < 0.0) ) fprintf(f3, "%f %f\n", pts[i].x, pts[i].y); } fclose(f1);fclose(f2);fclose(f3);fc lose(f4); } int compare( const void *p1, const void *p2 ) { Point z = {0,0}; double d1, d2; d1 = dist((const PPoint)p1, &z); d2 = dist((const PPoint)p2, &z); if ( d1 < d2 ) return -1; return d1==d2?0:1; } int main() { Point pts[NPTS]; getRndPts(pts, NPTS); // generate random points qsort(pts, NPTS, sizeof(Point), compare); // sort by distances from origin toFiles(pts, NPTS); // write to files return 0; } Последний раз редактировалось ganster; 03.07.2012 в 14:56. |
|
03.07.2012, 13:03 | #3 |
Форумчанин
Регистрация: 23.09.2010
Сообщений: 682
|
А вас мама в детстве словам: здресте, пожалуйста не научила???
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить. |
03.07.2012, 13:08 | #4 |
Software Developer
Участник клуба
Регистрация: 01.03.2011
Сообщений: 1,098
|
Да тут кросспостинг...
Такая же тема в ветке С/С++
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв. Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062 |
03.07.2012, 13:26 | #5 |
Пользователь
Регистрация: 02.07.2012
Сообщений: 11
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать файл, содержащий координаты точек в двумерном пространстве. На Си | ganster | Общие вопросы C/C++ | 2 | 03.07.2012 11:55 |
Создать файл, содержащий справки об отправке поездов | [ Senya Black ] | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 11.04.2012 19:21 |
Создать файл, содержащий сведения о сотрудниках института. | Olgaandsasha | Помощь студентам | 4 | 10.04.2012 03:11 |
Создать файл содержащий сведения о телефонах абонентов | region23 | Помощь студентам | 2 | 30.11.2010 15:18 |
Создать файл содержащий сведения о том | kot i @ | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 25.05.2010 17:27 |