Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2012, 12:51   #1
ganster
Пользователь
 
Регистрация: 02.07.2012
Сообщений: 11
По умолчанию Создать файл, содержащий координаты точек в двумерном пространстве . На Си

Создать файл, содержащий координаты точек в двумерном пространстве (вещественные числа типа double). записать все точи из первой координатной четверти в файл 1.dat, второй четверти - 2.dat, третьей четверти - 3.dat, четвертой четверти - 4.dat. Внутри каждого из 4 файлов упорядочить точки в порядке удаления от центра координат.
ganster вне форума Ответить с цитированием
Старый 03.07.2012, 12:57   #2
ganster
Пользователь
 
Регистрация: 02.07.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от ganster Посмотреть сообщение
Создать файл, содержащий координаты точек в двумерном пространстве (вещественные числа типа double). записать все точи из первой координатной четверти в файл 1.dat, второй четверти - 2.dat, третьей четверти - 3.dat, четвертой четверти - 4.dat. Внутри каждого из 4 файлов упорядочить точки в порядке удаления от центра координат.
Точки типа X и Y.
запись будет примерно так :
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.
ganster вне форума Ответить с цитированием
Старый 03.07.2012, 13:03   #3
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

А вас мама в детстве словам: здресте, пожалуйста не научила???
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 03.07.2012, 13:08   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Да тут кросспостинг...
Такая же тема в ветке С/С++
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 03.07.2012, 13:26   #5
ganster
Пользователь
 
Регистрация: 02.07.2012
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
А вас мама в детстве словам: здресте, пожалуйста не научила???
Извините забыл
Здрасте))) Помогите пожалуйста очень нада)))
ganster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать файл, содержащий координаты точек в двумерном пространстве. На Си 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