| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Бесплатный софт проектировщика(Создание)

Бесплатный софт проектировщика(Создание)

Ответ
Поиск в этой теме
Непрочитано 07.12.2012, 13:51 1 |
Бесплатный софт проектировщика(Создание)
DEM
 
YngIngKllr
 
СПб
Регистрация: 29.03.2005
Сообщений: 12,968

Родилась идея, о создании бесплатного аналога программ Арабат, Кристал, Вест и отдельных модулей НормКада....
Данный проект можно сделать с открытыми исходниками а разработку его вести на основе ГитХаба или Google Code....
В качестве языка программирования предлагаю принять VB.net т.к. он все таки победил в теме....
Можно было конечно принять матерный, но к сожалению, тогда придется проект делать закрытым, и исходники хранить на флешках в защищенных от доступа детей местах...
Прошу высказывать свои пожелания и предложения к данному проекту...

PS. Прошу всех кто согласен участвовать в проекте отписаться в личку....

Список участников:
DEM
bargool
RrRR
ябс
Cosinus
swell{d}
Akim_1989
Djur
Ratmir
Yasnogor
P1@t0n
GradRusStroy
gabidullin

PS. Всем заинтересованным, во включении каких то программ, прошу заполнить форму, чтобы можно было добавлять программу....

Вложения
Тип файла: zip Программа.zip (794 байт, 2607 просмотров)

__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.

Последний раз редактировалось DEM, 17.12.2012 в 10:44.
Просмотров: 517295
 
Автор темы   Непрочитано 27.08.2014, 07:45
#1321
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Chardash
О как ты тоже C++ изучать начал...
Я сейчас тоже С++ изучаю, чтобы с АПИ СКАДа разобраться...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 27.08.2014, 09:05
#1322
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,202


Код:
[Выделить все]
 01
....
53
    Fib = (Fibt[m - 1][n - 1] +  (Fibt[m ][n-1]-Fibt[m - 1][n - 1])*pn)*(1-pl)+
54
       (Fibt[m - 1][n] +  (Fibt[m ][n]-Fibt[m - 1][n] )*pn)*pl ;

....
Offtop: как-то так. Что-то я затупил
Прежде, чем писать код, лучше подробно расписать алгоритм (по шагам, как бы ты интерполировал вручную).
И лучше писать короткие формулы. Чем примитивнее код - тем эффективнее программа.
__________________
Не откладывайте на завтра! Положите на всё уже сегодня.(с)

Последний раз редактировалось Бахил, 27.08.2014 в 10:27.
Бахил вне форума  
 
Автор темы   Непрочитано 27.08.2014, 09:40
#1323
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Может стоить сделать справочное приложение к СНИПам с интерполяцией по таблицам...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 27.08.2014, 10:23
#1324
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,202


Цитата:
Сообщение от DEM Посмотреть сообщение
Может стоить сделать справочное приложение к СНИПам с интерполяцией по таблицам...
Это проще всего сделать в Excel c VBA.
__________________
Не откладывайте на завтра! Положите на всё уже сегодня.(с)
Бахил вне форума  
 
Непрочитано 27.08.2014, 10:33
#1325
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


Бахил, не работает и так. Кажется нашел ошибку, у меня условия if и цикл for как в fortran осталось. На с++ видимо не совсем так все.
Должно быть как на скрине, в исходнике фортрана нормально работает. Кстати, ответ в нем тоже не совсем бьется с решением в книге, пока не понял, какими преобразованиями и упрощениями автор пришел к квадратному уравнениями, может ошибка где то здесь.
Изображения
Тип файла: jpg проверка.jpg (21.8 Кб, 500 просмотров)
Тип файла: jpg 1.jpg (12.2 Кб, 494 просмотров)

Последний раз редактировалось Chardash, 27.08.2014 в 10:39.
Chardash вне форума  
 
Непрочитано 27.08.2014, 10:40
#1326
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,202


Попробуй запустить пошагово с просмотром промежуточных значений.
Offtop: Вообще писать на С - дело неблагодарное - отлаживать замучаешься
Похоже, с циклами всё нормально.
Кстати, формулу подправил.
__________________
Не откладывайте на завтра! Положите на всё уже сегодня.(с)
Бахил вне форума  
 
Непрочитано 27.08.2014, 14:50
1 | #1327
andsan


 
Регистрация: 24.06.2005
Москва
Сообщений: 290


Chardash
Массивы хранятся в С++ по строкам, а в Фортране по столбцам, в фортране индексация начинается с единицы, а в С с нуля.
Думаю причина ошибки в этом.
andsan вне форума  
 
Непрочитано 27.08.2014, 15:35
#1328
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


andsan, да, наверное дело в этом и нужно было делать цикл в цикле. С нуля, но и принято от единицы до n включительно, иначе, если с нуля то просто меньше без равно. https://yadi.sk/d/5MX2GVj3aWgFB
Бахил , получилось тоже самое, что было.

Цитата:
Chardash
О как ты тоже C++ изучать начал...
Ога, почти домашняя работа)

----- добавлено через ~6 мин. -----
Надеюсь, скоро закончу, выложу сюда.
Chardash вне форума  
 
Непрочитано 27.08.2014, 15:54
#1329
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,202


Вообще-то задача тривиальна. Сейчас напишу на бейсике и выложу.

----- добавлено через ~11 мин. -----
Цитата:
Сообщение от andsan Посмотреть сообщение
Массивы хранятся в С++ по строкам, а в Фортране по столбцам,
Точно! В этом всё дело. Поменяй местами m и n в описании.
__________________
Не откладывайте на завтра! Положите на всё уже сегодня.(с)
Бахил вне форума  
 
Непрочитано 27.08.2014, 18:06
1 | #1330
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,202


Как и обещал.
__________________
Не откладывайте на завтра! Положите на всё уже сегодня.(с)

Последний раз редактировалось Бахил, 22.09.2014 в 18:24.
Бахил вне форума  
 
Непрочитано 05.09.2014, 13:34
#1331
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


Все заработало, если кому то интересно, выше поправил свой пост.
Теперь есть другой актуальный вопрос. Хотелось бы разложить код на отдельные функции (как в примере с фортраном), желательно убрать их в отдельные файлы, дабы избежать глобальных переменных. Пробовал соорудить подобное, запутывался в море указателей и ссылок к ним. Понимаю, скорее всего все намного проще, только вот как?

Или, есть, например, функция

Код:
[Выделить все]
 
float point(float nln, float lamb, int m, int n, float pn, float pl);
Когда указываю ее в мэйне, ругается на неинициализированные переменные, те некоторые параметры функции должны вычисляться ранее, не могу просто указать их и получить ответ. Те , функция с неизвестными параметрами

ps там же ответ Дэму.

Последний раз редактировалось Chardash, 05.09.2014 в 14:00.
Chardash вне форума  
 
Непрочитано 05.09.2014, 14:22
#1332
Нитонисе


 
Регистрация: 05.11.2009
Сообщений: 4,360


Цитата:
Сообщение от Chardash Посмотреть сообщение
Когда указываю ее в мэйне, ругается на неинициализированные переменные, те некоторые параметры функции должны вычисляться ранее, не могу просто указать их и получить ответ. Те , функция с неизвестными параметрами
Ничего не понятно. Покажите весь код.
Нитонисе вне форума  
 
Непрочитано 05.09.2014, 15:21
#1333
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


Нитонисе, вот код
Код:
[Выделить все]
 
#include <iostream>
#include <conio.h>
#include "data1.h"

using namespace std;

//float t26(int, int, float, float)
//float point(float, float, int, int, float, float)

float point(float nln, float lamb, int m, int n, float pn, float pl)

{
	nln = 0.75;
	lamb = 6.0;
	int lamt[8] = { 6, 8, 10, 12, 14, 16, 18, 20 };
	float nlnt[3] = { 0, 0.5, 1.0 };


	for (m = 0; m < 3; m++)
	{
		if (nln <= nlnt[m]) break;
	}
	if (m == 0) { m = 1; pn = 0; }
	else
		return pn = (nln - nlnt[m - 1]) / (nlnt[m] - nlnt[m - 1]);
	
	for (n = 0; n < 8; n++)
	{
		if (lamb <= lamt[n]) break;
	}
	if (n == 0) { n = 1, pl = 0; }
	else
		return pl = (lamb - lamt[n - 1]) / (lamt[n] - lamt[n - 1]);

	//return 0;
}

float t26(float *Fib)
{

	float Fibt[3][8] = { .93, .92, .91, .90, .89, .88, .86, .84,
						.92, .91, .90, .89, .86, .82, .78, .72,
						.92, .91, .89, .86, .82, .76, .69, .61 };

	*Fib = (1 - pn) * (1 - pl) * Fibt[m - 1][n - 1] + (1 - pn) * pl * Fibt[m - 1][n] +
		pn * (1 - pl) * Fibt[m][n - 1] + pn * pl * Fibt[m][n];

	return 0;
}
int main()
{
	t26(&Fib);
	cout << "m=" << m << "\n" << "n=" << n << "\n" << "pl=" << pl << "\n";
	cout << "t26=" << Fib << "\n";

	/*point(nln, lamb, m, n, pn, pl);
	cout << "m=" << m << "\n" << "n=" << n << "\n" << "pl=" << pl << "\n";*/
	_getch();
	return 0;
}
Хочу, чтобы значения, полученные в одной функции передались в другую. Пробовал функцию заменить указателем с одним параметром, позже по ссылкам вытащить полученные значения в другой функции, но тоже пока не то
Имею ввиду, чтобы как тут, только сиауты в мэйне не на экран, а в функцию:
Код:
[Выделить все]
 
#include <iostream>
using namespace std;

int a;
float y; 
float rez;
float rez1;
//int f1(int i) //данные передаются по значению
//{
//	return (i++);
//}
//int f2(int* j) //данные передаются по адресу
//{ //при подстановке фактического параметра,
//	//для получения его значения, применяется операция разадресации *
//	return((*j)++);
//}
float f3(float *rez) //изменение параметра не предусмотрено
{
	y = 5.0;
	a = 10;
	*rez = a + y;

	return 0;
}
float f4(float *rez1)
{
	*rez1 = a * y;

	return 0;
}
int main()
{
	//int a;
	//float y;
	//cout << "a=";
	//cin >> a;
	//f1(a);
	//cout << "a=" << a << "\n";
	//f2(&a); //для передачи фактического параметра
	////используется операция взятия адреса &
	//cout << "a=" << a << "\n";
	f3(&rez);
	cout << "a=" << a << "\n" <<"y=" << y << "\n" <<"f3=" << rez << "\n";
	f4(&rez1);
	cout << "a=" << a << "\n" <<"y=" << y << "\n" <<"f3=" << rez1 << "\n";
	system("pause");
	return 0;
}

Последний раз редактировалось Chardash, 05.09.2014 в 16:08.
Chardash вне форума  
 
Непрочитано 05.09.2014, 16:24
#1334
Нитонисе


 
Регистрация: 05.11.2009
Сообщений: 4,360


Chardash, во-первых ваша функция t26() не будет работать, потому что вы передаете в нее неинициализированные значения. Должно быть что-то вроде:
Код:
[Выделить все]
 
float m,n,pn,pl;
cout << "m?";
cin >> m;
cout << "n?";
cin >> n;
cout << "pn?";
cin >> pn;
cout << "pl?";
cin >> pl;
float t26_result = t26(m, n, pn, pl);
С функцией point() та же самая история. Вы передаете в нее неизвестные параметры. Например что такое lamb? Функция main() ничего не знает об этой переменной. Она должна быть предварительно объявлена:
Код:
А чтобы эта переменная корректно могла быть обработана функцией point() надо полагать в нее должно быть записано конкретное значение. Конкретное значение (инициализацию) можно выполнить при объявлении:
Код:
[Выделить все]
 float lamb = 1;
или сначала объявить, а потом присвоить какое-то значение, например через cin:
Код:
[Выделить все]
 float lamb;
cin >> lamb;
Нитонисе вне форума  
 
Непрочитано 05.09.2014, 16:28
#1335
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


Нитонисе,
Да, забыл выложить data1.h - это все там, но не важно, объяви эти переменные глобально или локально, результат все тот же
И в том и дело, что переменные pl, pn, m, n нам изначально неизвестны, они считаются в одной из функций, потом результаты должны быть задействованы в другой
Chardash вне форума  
 
Непрочитано 05.09.2014, 16:30
#1336
Нитонисе


 
Регистрация: 05.11.2009
Сообщений: 4,360


Цитата:
Сообщение от Chardash Посмотреть сообщение
И в том и дело, что переменные pl, pn, m, n нам изначально неизвестны, они считаются в одной из функций
В какой функции они считаются? Не вижу.
Нитонисе вне форума  
 
Непрочитано 05.09.2014, 16:31
#1337
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


Код:
[Выделить все]
 
float point(float nln, float lamb, int m, int n, float pn, float pl)

{
	nln = 0.75;
	lamb = 6.0;
	int lamt[8] = { 6, 8, 10, 12, 14, 16, 18, 20 };
	float nlnt[3] = { 0, 0.5, 1.0 };


	for (m = 0; m < 3; m++)
	{
		if (nln <= nlnt[m]) break;
	}
	if (m == 0) { m = 1; pn = 0; }
	else
		return pn = (nln - nlnt[m - 1]) / (nlnt[m] - nlnt[m - 1]);
	
	for (n = 0; n < 8; n++)
	{
		if (lamb <= lamt[n]) break;
	}
	if (n == 0) { n = 1, pl = 0; }
	else
		return pl = (lamb - lamt[n - 1]) / (lamt[n] - lamt[n - 1]);

	//return 0;
}
Chardash вне форума  
 
Непрочитано 05.09.2014, 16:40
1 | #1338
Нитонисе


 
Регистрация: 05.11.2009
Сообщений: 4,360


Ясно. В функцию point() передавать параметры nln и lamb вроде как нет необходимости, потому что вы задаете их жестко внутри функции. Параметры m,n,pn,pl я так понял определяются внутри функции и нужны для использования вне ее. Тогда сигнатуру функции можно записать так:
Код:
[Выделить все]
 
void point(int &m, int &n, float &pn, float &pl);
При этом в коде функции уберите везде return. Эта функция принимает в качестве параметров адреса переменных. Внутри функции они могут использоваться как обычные переменные, но изменение их значения отразится на исходных переменных. Вот как это используется в функции main():
Код:
[Выделить все]
 
int m,n;
float pn,pl;
point(m,n,pn,pl);
В результате эти переменные заполнятся значениями, которые будут им присвоены в функции point(). Далее эти переменные можно использовать где-то еще.

Последний раз редактировалось Нитонисе, 05.09.2014 в 16:57. Причина: Подправил последний фрагмент кода
Нитонисе вне форума  
 
Непрочитано 05.09.2014, 17:41
#1339
Chardash

Соискатель
 
Регистрация: 12.03.2011
Урал
Сообщений: 1,497


Спасибо, Нитонисе, заработало
Chardash вне форума  
 
Непрочитано 05.09.2014, 17:53
#1340
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Вы тут что барашков считаете? хи-хи
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Бесплатный софт проектировщика(Создание)

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли бесплатный конвертор PDF в DWG (именно официальный и бесплатный) ? star282 Прочее. Программное обеспечение 3 14.09.2012 11:44
Подскажите, пожалуйста, софт для проектирования remenikomer Прочее. Программное обеспечение 7 02.08.2011 12:05
Софт по расчету зубчатых зацеплений. Mageslay Машиностроение 4 12.02.2010 13:18
"Милый дом" 3D - дизайн интерьеров (бесплатный софт) ETCartman Прочее. Программное обеспечение 9 13.10.2009 23:18
Подскажите - есть ли какойнибудь софт для расчета разверток. Sunny Расчетные программы 1 14.08.2004 01:32