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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2015, 11:40   #41
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Мдя... Ранно...
Надо тебе... Страуструпа что ли почитать...
По основам ООП. Обязательно базис, а то ты консоль с ООП путаешь.
ООП с консолью не путаю, просто в консоли меньше работал, чем с ООП.
Вот и писал в консоли задачу, думал что верно сделал.;-)
Dima-91 вне форума Ответить с цитированием
Старый 27.11.2015, 11:44   #42
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Если бы не путали, то не было бы такого вопроса.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.11.2015, 11:50   #43
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
ООП с консолью не путаю, просто в консоли меньше работал, чем с ООП.
Вот и писал в консоли задачу
А мягкое с теплым не путаешь?
Опять фигню написал не прочитав внимательно предыдущие сообщения.

Цитата:
имхо, ооп - это первое что нужно учить. пусть пока hello world на ооп сделает, с get / set функциями и полным фаршем аля вызовом своих же методов в конструкторе.
Зачем учить ООП ради ООП не понимая для чего оно нужно?

Вообще в последнее время модно считать, что полезно знакомиться с функциональной парадигмой (а не только императивной/ООП) как можно раньше. Даже Дейкстра был за это http://habrahabr.ru/company/hexlet/blog/248921/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 27.11.2015 в 11:53.
Alex11223 вне форума Ответить с цитированием
Старый 27.11.2015, 12:12   #44
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в консоли меньше работал, чем с ООП.
Консоль к ООП никакого отношения не имеет. Консоль - это средство вывода на экран, а ООП там или функционалка или еще чего, консольке не важно.
ООП это прежде всего классы. Ну если грубо говорить, но именно с классами и объектами ООП ассоциируется. Вот о чем я тебе намекал. А ты задание читаешь между строк.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2015, 13:29   #45
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию

ООП
private
public
protected
Рекомендую также походить по ссылкам и почитать.
---
Если увидишь в коде &lt -- это автор забыл поставить точку с запятой,
что на языке разметки гипертекста (HTML) означает символ <.

Последний раз редактировалось chipside; 27.11.2015 в 13:55.
chipside вне форума Ответить с цитированием
Старый 28.11.2015, 22:26   #46
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Код:
#include <iostream.h>

class Fibonachchi
{
private:
	long int n;
	int x;
public:
	Fibonachchi()
	{
		n = 6;
		x = 46;
    }
	int fib (int n)
	{
		if (n<3) return 1;
		return fib(n-2)+fib(n-1);
	}
	int max (int n, int x)
	{
		int ma;
		for (int i = 1; i < x; i++)
		{
			if (fib(i)>n)
			{	ma = fib(i);
				break;
			}
		}
		return ma;
	}
	int min (int n, int x)
	{
		int mi;
		for (int i = 1; i < x; i++)
		{
			if (fib(i)>n)
			{
				int mi = fib(i-1);
				break;
			}
		}
		return mi;
	}
	int schet (int n, int x)
	{
		int sch = 0;
		for (int i = 1; i < x; i++)
		{
		sch++;
			if (fib(i)>n) break;
		}
		return sch;
	}
	int sravnenie (int min, int max, int n)
	{
		int	mi = min;
		int ma = max;
		if (n-mi<ma-n) return mi;
		else	return ma;
	}
	void printfib (int sch)
	{
		for (int i = 1; i < sch; i++)
		{
			cout<<fib(i);
		}
	}
};

 int _tmain(int argc, _TCHAR* argv[]) 
{
	bool make;
	Fibonachchi a;
	int t;
	cout<<"Select t"<<"\n";
	cin>>t;
	cout<<"Write line? Yes = 0, no = 1"<<"\n";
	cin>>make;
	if (make == 0)	cout<<a.fib(t);
	else
	{
    	cout<<"ewe delau"<<"\n";
	}

	system("pause");
	return 0;
}
Иду в верном направлении? Скомпилировалось, но по задумке a.fib(t) не расписалось...
Dima-91 вне форума Ответить с цитированием
Старый 29.11.2015, 05:47   #47
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
По умолчанию

Код:
if (make == 0)	for ( int x = t; x > 0; x-- ) cout << a.fib(x) << ' ';
__
Тьфу.
Наоборот!
Код:
if (make == 0)	for ( int x = 1; x <= t; x++ ) cout << a.fib(x) << ' ';
---
У тебя же можно так
Код:
if (make == 0) a.printfib(t);
Только разделители между числами нужны, например пробел.
Код:
void printfib (int sch)
	{
		for (int i = 1; i < sch; i++)
		{
			cout<<fib(i) << ' ';
		}
	}
-----
Долго не мог понять, почему Min() работает неправильно.
Код:
#include <iostream>
using namespace std;
class Fibonachchi
{
private:
	long int n;
	int x;
public:
	Fibonachchi()
	{
		n = 6;
		x = 46;
    }
    int Entry (char UserEntryNumber) {
    	int Min = min (UserEntryNumber,x);
    	cout << "Min = " << Min << endl;
    	int Max = max (UserEntryNumber,x);
    	cout << "Max = " << Max << endl;
    	int Sravnenie = sravnenie (Min, Max, UserEntryNumber);
    	cout << "Sravnenie = " << Sravnenie << endl;
    	int Schet = schet(Sravnenie,x);
    	cout << "Schet = " << Schet << endl;
    	printfib (Schet);
    	cout << "printfib ()" << endl;
    };
	int fib (int n)
	{
		if (n<3) return 1;
		return fib(n-2)+fib(n-1);
	}
	int max (int n, int x)
	{
		int ma = 0;
		for (int i = 1; i < x; i++)
		{
			if (fib(i)>n)
			{	ma = fib(i);
				return ma;
				break; // Это уже не требуется.
			}
		}
		return ma;
	}
	int min (int n, int x)
	{
		int mi = 0;
		for (int i = 1; i < x; i++)
		{
			if (fib(i)>n)
			{
				cout << "fined i in for() in min() now " << i << endl;
				int mi = fib(i-1);
				cout << " mi = " << mi << endl;
				return mi; // Если это закоментировать, то mi в конце станет нулём! (Я в шоке).
				break; // Это уже не требуется.
			}
			cout << "i in for() in min() " << i << endl;
		}
		cout << "mi = " << mi << endl;
		return mi;
	}
	int schet (int n, int x)
	{
		int sch = 0;
		for (int i = 1; i < x; i++)
		{
		sch++;
			if (fib(i)>n) break;
		}
		return sch;
	}
	int sravnenie (int min, int max, int n)
	{
		int	mi = min;
		int ma = max;
		if (n-mi<ma-n) return mi;
		else	return ma;
	}
	void printfib (int sch)
	{
		for (int i = 1; i < sch; i++)
		{
			cout<<fib(i)<< ' ';
		}
		cout << endl;
	}
};

// int _tmain(int argc, _TCHAR* argv[]) 
 int main(int argc, char* argv[]) 
{
	bool make;
	Fibonachchi a;
	int t;
	cout<<"Select t"<<"\n";
	cin>>t;
	cout<<"Write line? Yes = 0, no = 1"<<"\n";
	cin>>make;
	if (make == 0) a.Entry(t);
	else
	{
    	cout<<"ewe delau"<<"\n";
	}

//	system("pause");
	return 0;
}
-----
Отладочные сиауты можешь закомментировать или удалить.
Я просто оставил их, чтобы было понятно, в каком месте ловить ошибку.
Почему min() ведёт себя странно для меня пока остаётся загадкой.
Жду комментариев программистов.
---
Если будешь использовать в функции tmain() (main()) исключительно Entry(),
то можно остальные функции из public убрать в private.
---
x, кстати тоже в данном случае можно убрать.
Код:
#include <iostream>
using namespace std;
class Fibonachchi
{
private:
	long int n;
	int x;
	
	int fib (int n)
	{
		if (n<3) return 1;
		return fib(n-2)+fib(n-1);
	}
	int max (int n)
	{
		int ma = 0;
		for (int i = 1; i < X(); i++)
		{
			if (fib(i)>n)
			{	ma = fib(i);
				return ma;
				break; // Это уже не требуется.
			}
		}
		return ma;
	}
	int min (int n)
	{
		int mi = 0;
		for (int i = 1; i < X(); i++)
		{
			if (fib(i)>n)
			{
				cout << "fined i in for() in min() now " << i << endl;
				int mi = fib(i-1);
				cout << " mi = " << mi << endl;
				return mi; // Если это закоментировать, то mi в конце станет нулём! (Я в шоке).
				break; // Это уже не требуется.
			}
			cout << "i in for() in min() " << i << endl;
		}
		cout << "mi = " << mi << endl;
		return mi;
	}
	int schet (int n)
	{
		int sch = 0;
		for (int i = 1; i < X(); i++)
		{
		sch++;
			if (fib(i)>n) break;
		}
		return sch;
	}
	int sravnenie (int min, int max, int n)
	{
		int	mi = min;
		int ma = max;
		if (n-mi<ma-n) return mi;
		else	return ma;
	}
	void printfib (int sch)
	{
		for (int i = 1; i < sch; i++)
		{
			cout<<fib(i)<< ' ';
		}
		cout << endl;
	}
public:
	Fibonachchi()
	{
		n = 6;
		x = 46;
    }
    int X (void) {
    	return x;
    }
    int Entry (char UserEntryNumber) {
    	int Min = min (UserEntryNumber);
    	cout << "Min = " << Min << endl;
    	int Max = max (UserEntryNumber);
    	cout << "Max = " << Max << endl;
    	int Sravnenie = sravnenie (Min, Max, UserEntryNumber);
    	cout << "Sravnenie = " << Sravnenie << endl;
    	int Schet = schet(Sravnenie);
    	cout << "Schet = " << Schet << endl;
    	printfib (Schet);
    	cout << "printfib ()" << endl;
    };
};

// int _tmain(int argc, _TCHAR* argv[]) 
 int main(int argc, char* argv[]) 
{
	bool make;
	Fibonachchi a;
	int t;
	cout<<"Select t"<<"\n";
	cin>>t;
	cout<<"Write line? Yes = 0, no = 1"<<"\n";
	cin>>make;
	if (make == 0) a.Entry(t);
	else
	{
    	cout<<"ewe delau"<<"\n";
	}

//	system("pause");
	return 0;
}

Последний раз редактировалось chipside; 29.11.2015 в 06:58.
chipside вне форума Ответить с цитированием
Старый 29.11.2015, 09:56   #48
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Иду в верном направлении?
Вот теперь тебя хвалю я.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.11.2015, 10:52   #49
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию

Код:
  int Entry (char UserEntryNumber) {
    	int Min = min (UserEntryNumber,x);
    	cout << "Min = " << Min << endl;
    	int Max = max (UserEntryNumber,x);
    	cout << "Max = " << Max << endl;
    	int Sravnenie = sravnenie (Min, Max, UserEntryNumber);
    	cout << "Sravnenie = " << Sravnenie << endl;
    	int Schet = schet(Sravnenie,x);
    	cout << "Schet = " << Schet << endl;
    	printfib (Schet);
    	cout << "printfib ()" << endl;
    };
это как то слишком круто, думал сперва, что это конструктор по умолчанию. Но как то не похоже

chipside
Вы все задание сделали.

Последний раз редактировалось Аватар; 29.11.2015 в 14:17.
Dima-91 вне форума Ответить с цитированием
Старый 29.11.2015, 13:58   #50
chipside
Форумчанин
 
Регистрация: 03.08.2013
Сообщений: 208
Радость

Цитата:
Сообщение от Dima-91 Посмотреть сообщение
chipside
Вы все задание сделали.
Прости, не ужержался.
Скажи, а у тебя тоже в min косяки были,
или у меня что с компилятором не то?
--
Entry -- это функция. Не более того.
Есть много других альтернативных методов.
Почитай хотябы про
наследование
Потом усовершенствуешь программу.
2 класса -- это уже второй шаг в ООП.
Учитель будет доволен!

Цитата:
Сообщение от Dima-91 Посмотреть сообщение
Код:
  int Entry (char UserEntryNumber) {
    	int Min = min (UserEntryNumber,x);
    	cout << "Min = " << Min << endl;
    	int Max = max (UserEntryNumber,x);
    	cout << "Max = " << Max << endl;
    	int Sravnenie = sravnenie (Min, Max, UserEntryNumber);
    	cout << "Sravnenie = " << Sravnenie << endl;
    	int Schet = schet(Sravnenie,x);
    	cout << "Schet = " << Schet << endl;
    	printfib (Schet);
    	cout << "printfib ()" << endl;
    };
это как то слишком круто, думал сперва, что это конструктор по умолчанию. Но как то не похоже
Да можно все действия и в конструктор засунуть.
Хоть по умолчанию, хоть копий.

Последний раз редактировалось Аватар; 29.11.2015 в 14:17.
chipside вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что вас мотивирует, почему вы предпочитаете именно работу за компьютером, работу программиста? sgasgar Свободное общение 47 03.05.2016 07:27
Какая у вас была мотивация для начала и изучения программирования? monolit9951 Свободное общение 22 14.02.2014 19:57
Мотивация к программированию Nik_Parker Свободное общение 30 05.10.2013 19:12
Программирование, мотивация, перспективы Frants Свободное общение 6 03.10.2012 23:52