Курсовая по программированию, 1 курс. Что должна делать программа:
Чтение из текстового файла координат вершин, вывод в другой текстовый координат вершин, образующих равнобедренные треугольники вывод графики (собственно, треугольников)
Сроки: сроки поджимают, завтра-послезавтра уже работать над сопроводительной запиской, сдача 25-го, но в этот же день "полуэкзамен" по другому предмету, так же нужно готовится.
В чем ведется работа: Visual Studio 2013
С программированием у меня, честно признаюсь, не очень, особенно на С++. Был бы очень рад помощи в написании программы, если найдутся желающие. Заплатить,увы, не смогу, разве что "плюсик в карму", если интересует, и помощь в ответ в роли 3D-шника: создание текстур окружения (тайл), моделирование и текстурирование объектов окружения для вашего проекта (предпочтительно неорганика средней сложности).
Добавлено (22.06.2014, 15:30) --------------------------------------------- Немного псевдокода, хотя писал чисто для себя, чтобы понять, что вообще я должен делать:
Код
int X[30]; int Y[30]; int L1, L2;
int main(){ открываем файл для чтения('input.txt'); пока не конец файла { читаем n - ную строку; X[n] = /значение до " "/; //значение до пробела Y[n] = /значение после " "и до "/n"/;//значение после пробела и до '/n' n++; }
for (int i = 0; i <= n; i++) { for (int j = 0; j <= n; j++) { вычисляем L1((x[i], y[i]); (x[j], y[j])); for (int k = j + 1; k <= n; k++) { if (L1 == L2((x[i], y[i]); (x[k], y[k]))) { if ((x[k] != x[j])&(y[k] != y[j])&(L1 + L2 != L3((x[i], y[i]); (x[k], y[k])))) //если точки не совпадают и отрезки не лежат на одной прямой записываем в output.txt новой строкой; } } } тут вывод графики(треугольников) на основе output.txt, но я х.з., как его сделать вообще
} return 0; }
Добавлено (22.06.2014, 21:22) --------------------------------------------- Ап! Программа уже собственноручно написана в плане анализа данных и вывода в файл(правда в виде консольного приложения). Остался вопрос вывода графики. Неужели никто не может помочь?
FILE *in = fopen("input.txt", "r"); //открываем файл с данными if((in = fopen("input.txt", "r")) == 0) //проверка на открытие потока { cout << "Ошибка открытия входного файла"; system("pause"); return 1; } int i = 0; while (!feof(in)){ //Пока не конец файла, читаем данные fgets(st[i], 30, in); cout << st[i]; for (int j = 0; j < strlen(st[i]); j++) //Переводим их в числовые значения { if (st[i][j] != ' ') X[i] = X[i] * 10 + st[i][j] - '0'; else { j++; for (int k = j; k < strlen(st[i])-1; k++) {
Y[i] = Y[i] * 10 + st[i][k] - '0';
} break; }
} i++; } int n = i; i = 0; cout << "\n"; while (X[i] != 0 & Y[i]!=0) { cout << "X[" << i << "]=" << X[i] << " Y[" << i << "]="<< Y[i]<<"\n"; i++; } system("pause");
bool analise(int i, int j, int k) { bool r = false; int t1 = (((X[i] - X[j])*(X[i] - X[j])) + ((Y[i] - Y[j])*(Y[i] - Y[j]))); //выражение, находящееся при вычислении длины отрезка под корнем int t2 = (((X[i] - X[k]) *(X[i] - X[k])) + ((Y[i] - Y[k])*(Y[i] - Y[k]))); //выражение, находящееся при вычислении длины отрезка под корнем //cout << t1 <<" "<< t2; //вывод для проверки вычислений //system("pause"); if (t1==t2) if (X[j] != X[k] & Y[j]!=Y[k]) //если i-я и k-я точки не совпадают if ((((X[j] - X[k])*(X[j] - X[k])) + ((Y[j] - Y[k])*(Y[j] - Y[k]))) != 4 * t1) //если отрезки не лежат на одной прямой, т.е. расстояние от j-й до k-й не равно длине двух отрезков { r = true; } return r; }
void art(int x1, int y1, int x2, int y2, int x3, int y3)//отрисовка треугольника {
int r, g, b,m,sd; r = 128 + rand() % (255 - 128);//задаем рандомное значение цвета от 128 до 255 g = 128 + rand() % (255 - 128); b = 128 + rand() % (255 - 128); m = 5; //масштаб, по умолчанию рекомендуется значение 5 sd = 60; //сдвиг начала координат, по умолчанию рекомендуется значение 60
case 1: FILE *in = fopen("input.txt", "r"); //открываем файл с данными if ((in = fopen("input.txt", "r")) == 0) //проверка на открытие потока { cout << "Can't open file\n"; system("pause"); return 1; } int i = 0;
while (!feof(in)){ //Пока не конец файла, читаем данные fgets(st[i], 30, in); for (int j = 0; j < strlen(st[i]); j++) //Переводим их в числовые значения { if (st[i][j] != ' ') X[i] = X[i] * 10 + st[i][j] - '0'; else { j++; for (int k = j; k < strlen(st[i]) - 1; k++) {
Y[i] = Y[i] * 10 + st[i][k] - '0';
} break; }
} i++; } }
//----------------------------------------------------------------------------------------------------------------------------------------- //анализируем данные int i = 0; int j ; int k ; while (X[i]!=0&Y[i]!=0) { j = 0; while (X[j] != 0 & Y[j] != 0) { k = j+1; while (X[k] != 0 & Y[k] != 0) {
if (analise(i,j,k)) { ofstream out("output.txt", ios::app); //вывод координат, удовлетворяющих условию в output.txt out<<X[i]<<"|"<<Y[i]<<" |"<<X[j]<<"|"<<Y[j]<<" |"<<X[k]<<"|"<<Y[k]<<"\n";
} j++; } i++; } string ex; cin >> ex;//просто замена system("pause"), не перекрывающая область отрисовки, ни на что не влияет. Позволяет просмотреть вывод. return 0; }
"Счастье для всех, даром, и пусть никто не уйдет обиженный!" - Рэд Шухарт ("Пикник на обочине", Стругацкие А. и Б.) ***
Извиняюсь за часто появляющиеся "оЧеПЯтки", виной тому моя невнимательность...
Сообщение отредактировал Eyks001 - Вторник, 24 Июня 2014, 12:13
goldsphere, у меня типичное направление из разряда -у вас ведь куча возможностей, с нашим дипломом многие двери будут перед вами открыты! -Как хотя-бы специальность свою назвать? -А... Да фиг ее знает...
Вообще, Факультет Радиоэлектроники и информатики, направление Информатики и Вычислительной техники.
morglodddd, заявил даже не прочитавший темы диванный аналитик "Счастье для всех, даром, и пусть никто не уйдет обиженный!" - Рэд Шухарт ("Пикник на обочине", Стругацкие А. и Б.) ***
Извиняюсь за часто появляющиеся "оЧеПЯтки", виной тому моя невнимательность...
А может это и хорошо, что кресты на первых курсах. Лет через пять с буста вообще начинать будут, вот благодать наступит! Ни одного велосипедиста, всё шаблонами, как подобает настоящим мужчинам. Как правильно задавать вопросы
morglodddd, ибо в теме черным по белому написано, что знания есть, и более того, программа-таки написана, я просто надеялся, что остались еще люди, готовые бескорыстно помочь)Следовательно, от темы прочитано разве что название и немного из вступления) *** К модератору: тему, думаю, стоит прикрыть, а то тут уже подтягивается очередной бессмысленный срач "Счастье для всех, даром, и пусть никто не уйдет обиженный!" - Рэд Шухарт ("Пикник на обочине", Стругацкие А. и Б.) ***
Извиняюсь за часто появляющиеся "оЧеПЯтки", виной тому моя невнимательность...