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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2011, 22:53   #1
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию Не могу понять где ошибка.

Здравствуйте. Есть 100% работающая программа, она состоит из opengl окна и функции main(которую я взял из своей консольной программы). Окно opengl по моей задумке должно использовать результаты вычисления функции main. Это у меня реализовано так: объявлен глобальной переменной массив и в этот массив, напрямую без указателей записаны результаты вычисления функции main и к этому же массиву, так же без указателей обращается окно opengl(можно ли так делать?). Так же в функции main есть некий блок кода, который отвечает за сравнение между собой коэффициентов прямых заданных уравнением ax+by+c=0, которые он считывает из файла.Загвоздка в том, что отдельным приложение этот блок кода работает, а в совокупности с окном opengl,нет. Поэтому у меня вопрос что я делаю не так? Ведь алгоритм логически построен верно.И что бы не быть голословным предоставляю часть кода программы которая вызвала у меня все эти вопросы.
Код:
#include "stdafx.h"
#include "Expiriens.h"
#define SIZE 21
#define RAND_MAX 0x7fff
int p[SIZE]={0};
int num=0;
int pointsX[14]={0};
int pointsY[14]={0};
void main(){
int k=0;
setlocale(LC_ALL,"Russian_Russia.1251");
for(int i=0;i<14;i++)
   pointsX[i]=(double)rand()/(RAND_MAX+1)*(10-(-10))+(-10);
std::ofstream out("E:\\Documents\\InputData.txt");
for(int i=0;i<SIZE;i++){
    p[i]=(double)rand()/(RAND_MAX+1)*(10-(-10))+(-10);
}
for(int i=0;i<SIZE;i++){
   out<<p[i]<<" ";
}
out.close();
for(int i=0;i<SIZE;i++){
    p[i]=0;
}
std::ifstream in("E:\\Documents\\InputData.txt");
for(int i=0;i<SIZE;i++){
   in>>p[i];
}
in.close();
for(int g=0;g<2;){
	if(k<14)
   for(int i = 0;i < SIZE; i +=3){
		   if(!p[i+1]){
		       pointsX[k]=pointsX[k+1]=-p[i+2]/p[i];
			   pointsY[k]=20;
			   pointsY[k+1]=-20;
			   k++;
           }
		   else{
			   pointsX[k]=-20;
		       pointsY[k]=(-p[i]*pointsX[k]-p[i+2])/p[i+1];
			   pointsX[k+1]=20;
			   pointsY[k+1]=(-p[i]*pointsX[k+1]-p[i+2])/p[i+1];
			  k++;
		   }
   }
 g++;
}
k=0;
std::ifstream cs("E:\\Documents\\InputData.txt");
for(int i=0;i<SIZE;i++)
cs>>p[i];
   for(int i = 0;i < SIZE; i +=3){
    for(int j =i+3; j < SIZE; j +=3){
        if(p[i] == p[j] && p[i+1] == p[j+1])
        {
            if(p[i+2]==p[j+2])
                std::cout<<"\nСовпадают прямые с коэфициентами: a="<<p[i+2]<<" b="<<p[i+1]<<" c="<<p[i];  
            else
                std::cout<<"Параллельны прямые с коэфициентами: a="<<p[i]<<" b="<<p[i+1]; 
        }
    }
}
in.close();
std::cout<<"\n";
system("PAUSE");
}
int DrawGLScene(GLvoid){                                 //Здесь будет происходить вся прорисовка
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glLoadIdentity();
	glBegin(GL_LINES);
	       glVertex2d(0,-400);
	       glVertex2d(0,400);
		   glVertex2d(-400,0);
		   glVertex2d(400,0);
     for(int i=-400;i<400;i=i+20){
	     glBegin(GL_LINES);
		    glVertex2d(num+i,-10);
		    glVertex2d(num+i,10);
		    glVertex2d(-10,num+i);
            glVertex2d(10,num+i);
		  glEnd;
	  }
	   for(int i=0;i<14;i+=2){
		 glBegin(GL_LINES);
		    glVertex2d(pointsX[i]*5,pointsY[i]*5);
		    glVertex2d(pointsX[i+1]*5,pointsY[i+1]*5);
		 glEnd;
	   }
    glEnd;
	return true;
}
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 27.05.2011, 00:15   #2
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Кто нибудь, помогите мне разобраться с массивами, пожалуйста. Это курсовая работа, совсем скоро сдавать, а тут уже все сделано только с массивами и проблема.
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 27.05.2011, 09:01   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Пытался скомпилить в борланде. Нет файлов
#include "stdafx.h"
#include "Expiriens.h"
Скинь, разберёмся.
Выдаёт кучу ошибок. Даже смотренть дальше не стал.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 27.05.2011 в 09:04.
Smitt&Wesson вне форума Ответить с цитированием
Старый 27.05.2011, 11:54   #4
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

#include <Expiriens.h>содержит:
#pragma once

#include "resource.h"содержит:
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by Expiriens.rc
//

#define IDS_APP_TITLE 103

#define IDR_MAINFRAME 128
#define IDD_EXPIRIENS_DIALOG 102
#define IDD_ABOUTBOX 103
#define IDM_ABOUT 104
#define IDM_EXIT 105
#define IDI_EXPIRIENS 107
#define IDI_SMALL 108
#define IDC_EXPIRIENS 109
#define IDC_MYICON 2
#ifndef IDC_STATIC
#define IDC_STATIC -1
#endif
// Следующие стандартные значения для новых объектов
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NO_MFC 130
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 110
#endif
#endif

#include <stdafx.h>содержит:
#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
// Файлы заголовков Windows:
#include <windows.h>
#include <gl\GL.h>
#include <gl\GLU.h>
#include <gl\glaux.h>
// Файлы заголовков C RunTime
#include <stdio.h> // заголовочный файл для стандартного ввода/вывода
#include <stdarg.h> // заголовочный файл для манипуляций с переменными аргументами
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <iostream>
#include <fstream>
#include <conio.h>
#include <clocale>
#include <time.h>
#include <cstdlib>.

Так же для вашего компилятора нужно убрать все "std::" в моей программе.
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 27.05.2011, 13:31   #5
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Блин, до меня только дошло. У тебя не получиться скомпилировать этот код, потому что он не полный. Я написал сюда только тот код, в котором какая то логическая ошибка. Сама программа рабочая, т.е. компилируется и выводит окно, но прямые которые она рисует не соответствуют тем прямым которые у меня есть, либо же нахождение координат x и y у меня написано не верно.
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
где ошибка в коде ?не могу понять Qiper Общие вопросы C/C++ 26 02.04.2012 21:19
не могу понять где ошибка Neon-z PHP 13 22.01.2011 16:15
Не могу понять где ошибка Азиза Общие вопросы C/C++ 1 11.01.2011 14:03
Не могу понять, где ошибка( IROKEZ Общие вопросы C/C++ 4 16.12.2010 21:00
Не могу понять где ошибка в коде SeRhy Общие вопросы C/C++ 5 20.09.2009 13:10