powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / задача для начинающих
213 сообщений из 213, показаны все 9 страниц
задача для начинающих
    #36560747
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
изучаю С++ по Дейтелу. оч хорошая книга. но заставила задуматься.
в общем так. в конце каждой главы есть задания. которые нужно решить.
ответов нет.
пробежал несколько глав. забежал немного вперед. а теперь изучаю досканально каждую главу.
подробно и т.д.

в конце второй главы ( в домашнем задании) возник вопрос. который решить не могу.

авторзадание: Напишите программу, которая считывает пять целых чисел, определяет и печатает наибольшее и наименьшее значение из них. Используйте только те приемы программирования которые были изучены в этой главе .

то, что выделенно. меня особенно настораживает.
я знаю как решить эту задачу другими методами, которые будут описываться в следующих главах.
но в этой главе не было даже if-else.
в этой главе были только операции <, >, =, -, +, *, /, и единственное if (без else)
ну и cout и cin разумеется.

то есть два числа еще можно сравнить. но тут их пять!
может быть ошибка. не в той главе поставили задачу?
...
Рейтинг: 0 / 0
задача для начинающих
    #36560804
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281 wrote:
> изучаю С++ по Дейтелу. оч хорошая книга. но заставила задуматься.
> в общем так. в конце каждой главы есть задания. которые нужно решить.
> ответов нет.

Это же задания, а не вопросы.
Одну и ту же программу можно по-разному написать.

> задание: Напишите программу, которая считывает пять целых чисел,
> определяет и печатает наибольшее и наименьшее значение из них.
> *Используйте только те приемы программирования которые были изучены в
> этой главе*.

Какие это приёмы ? Массивы STL уже были изучены ?

> но в этой главе не было даже if-else.
> в этой главе были только операции <, >, =, -, +, *, /, и единственное if
> (без else)
> ну и cout и cin разумеется.

Вообще-то есть функция max (и в STL тоже),
ну и операцию ? : наверное в этом разделе тоже давали.
Раз уж это раздел про операции. А через ? maximum пишется
просто. Ну и ещё тебе может быть понадобится массив, но
можно и без массива: достаточно иметь два числа, большее
и меньшее, и на ходу после ввода их вычислять.

Наветное ещё нужен цикл while, и выход из него по if.

> то есть два числа еще можно сравнить. но тут их пять!
> может быть ошибка. не в той главе поставили задачу?

Не думаю. Вообще, Дейтел старший -- профессиональный преподаватель
университета, и его книга как раз очень хороша тем, что она методически
выверина.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36560811
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, вперед не надо бегать

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 int tmp
 cin >> tmp;
 int min(tmp);
 int max(tmp);
// 4 четыре раза так
 cin >> tmp;
 if (tmp < min)
   min = tmp;
 if (tmp > max)
   max = tmp;
...
Рейтинг: 0 / 0
задача для начинающих
    #36560820
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281то есть два числа еще можно сравнить. но тут их пять!
может быть ошибка. не в той главе поставили задачу?
С помощью перечисленных операций вполне можно выполнить заданное.
Заведите две переменные - для мин. и макс. значений.
Заполните обе первым числом.
По мере ввода остальных чисел обновляйте каждую из них.
...
Рейтинг: 0 / 0
задача для начинающих
    #36560875
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blinded и Anatoly Moskovsky
спасибо за код. но достаточно было бы напомнить мне о том, что переменная на то она и называется переменной. и ей присущ процесс разрушения...
все понял.

у остальных буду по позже спрашивать. слижком уж намудрили.

всем спасибо!
...
Рейтинг: 0 / 0
задача для начинающих
    #36560972
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
#include <iostream>

using namespace std;

int main ()
{
int a, b, c, d, e;


cout << "enter five integers!" << endl;
cin >> a >> b >> c >> d >> e;
cout << endl;

int min = a;
int max = a;

if ( b < a )
min = b;
if ( c < b )
min = c;
if ( d < c )
min = d;
if ( e < d )
min = e;

if ( b > a )
max = b;
if ( c > b )
max = c;
if ( d > c )
max = d;
if ( e > d )
max = e;

cout << "min = "<< min << "\n"
<< "max = "<< max << endl;

return 0;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36561120
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще. заключительное задание к этой главе. все уже решил.
посмотрите пожалуйста. не слижком ли я намудрил с кодом?
авторусловие: Напишите программу, которая выводит число из пяти цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга с тремя пробелами между ними.
может быть можно как то легче написать? если учитывать только то. что решение должно быть наипростейшим. вторая глава как ни как
автор#include <iostream>

using namespace std;

int main ()
{
int i;
int a, b, c, d, e;

cout << "Enter integer!" << endl;
cin >> i;

e = i%10;
d = (i%100)/10;
c = (i%1000)/100;
b = (i%10000)/1000;
a = (i%100000)/10000;

cout << a << " " << b << " " << c << " " << d << " " << e << endl;

return 0;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36572542
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, подскажите пожалуйста начинающему чайнику.
как я уже писал, занимаюсь по Дейтелу. в его книге раннее введение в классы.
в принципе, как строить классы я уже понял.
у меня другой вопрос, вот задача:
авторСоздайте класс с именем Date , включающий в качестве элементов данных три информационных пункта месяц (тип int) , день месяца (тип int) и год(тип int) .
Ваш класс должен иметь конструктор с тремя параметрами для инициализации этих элементов данных. Для целей этого упражнения предположите, что данные для года и дня правильные, но проверьте, что значение месяца находится в диапазоне 1-12 ; если нет, устанавливайте месяц равным 1. Предусмотрите set и get функции для каждого элемента данных. Предусмотрите элемент-функцию displayDate , которая выводит месясц, день и год, разделенные дробной чертой (/) . Напишите готовую программу, демонстрирующую возможности класса Date .

вот мой код: Date.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#include <iostream>

using namespace std;

class Date
{
public:
	Date ( int, int, int );

	void displayData ();

	void setDay ( int );
	int getDay ();

	void setMonth ( int );
	int getMonth ();

	void setYear ( int );
	int getYear ();

private:
	int day;
	int month;
	int year;
};

далее elem-func
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
#include "Date.h"

using namespace std;

Date::Date(int dataDay, int dataMonth, int dataYear)
{
	setDay ( dataDay );
	setMonth ( dataMonth );
	setYear ( dataYear );
}

void Date::displayData ()
{
	cout << Date::getDay () << " / " << Date::getMonth () << " / " << Date::getYear () << endl;
}

///////////////////////////////////////////////////
void Date::setDay( int dataDay )
{

	if ( dataDay >=  1 , dataDay <=  30  )
	day = dataDay;
		
	if ( dataDay <  1 , dataDay >  30  )
	{
		cout << "Day \"" << day << "\" can be in 1-30 diapazon"
			<< "\n day set 1" << endl;
		day =  1 ;
	}
}
///////////////////////////////////////////////////

int Date::getDay ()
{
	return day;
}

///////////////////////////////////////////////////
void Date::setMonth( int dataMonth )
{
	if ( dataMonth >=  1 , dataMonth <=  12  )
		month = dataMonth;
	if ( dataMonth <  1 , dataMonth >  12  )
	{
		cout << "Month \"" << month << "\" can be in 1-12 diapazon"
			<< "\n month set 1" << endl;
		month =  1 ;
	}
}
///////////////////////////////////////////////////

int Date::getMonth ()
{
	return month;
}

///////////////////////////////////////////////////
void Date::setYear( int dataYear )
{
	if ( dataYear >=  1 , dataYear <=  3000  )
		year = dataYear;
	if ( dataYear <  1 , dataYear >  3000  )
	{
		cout << "Year \"" << year << "\" can be in 1-3000 diapazon"
			<< "\n year set 2010" << endl;
		year =  2010 ;
	}
}
///////////////////////////////////////////////////

int Date::getYear ()
{
	return year;
}

и main
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include "Date.h"

using namespace std;

int main ()
{
	Date celendar ( - 1 , - 1 , - 1  );

	celendar.displayData ();
	//cout << celendar.getDay () << " / " << celendar.getMonth () << " / " << celendar.getYear () << endl;

	return  0 ;
}

вопрос вот в чем.
почему диапазоны не работают? :-(
то есть неправильно инициализируется. при начальном введении данных в main
напомню что было изучение только if , без всяких примочек.
...
Рейтинг: 0 / 0
задача для начинающих
    #36572554
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281
...
вопрос вот в чем.
почему диапазоны не работают? :-(
то есть неправильно инициализируется. при начальном введении данных в main
напомню что было изучение только if , без всяких примочек.А где у Вас диапазоны, которые не работают?
Если Вы имеете в виду строки типа этой:
santexnik281
...
if ( dataYear >= 1, dataYear <= 3000 )
...то глубоко ошибаетесь. Читайте про оператор "," и оператор "&&".
P.S. Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.
...
Рейтинг: 0 / 0
задача для начинающих
    #36572619
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avb1003Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.и неплохо бы автору ещё изучить тег src для размещения кода в форуме.

Модератор: Автор, egorych прав на все 100. Тег SRC -- и твой код будет чистым и шелковистым.


Модератор: egorych, ты в комодераторы напрашиваешься? Можно устроить ...
...
Рейтинг: 0 / 0
задача для начинающих
    #36572622
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void Date::setDay( int dataDay )
{
if ( dataDay >=  1 , dataDay <=  30  )
day = dataDay;

if ( dataDay <  1 , dataDay >  30  ) //! \bug, но, тем не менее...
...
}
...что будем делать с 30 февраля и с 31 мая, например?
...
Рейтинг: 0 / 0
задача для начинающих
    #36572674
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#include <iostream>

using namespace std;

class Date
{
public:
	Date ( int, int, int );

	void displayData ();

	void setDay ( int );
	int getDay ();

	void setMonth ( int );
	int getMonth ();

	void setYear ( int );
	int getYear ();

private:
	int day;
	int month;
	int year;
};

Все getter-ы должны быть CONST.
displayData тоже должна быть CONST.

Код: plaintext
1.
2.
3.
4.
5.
	void displayData () const;

	int getDay () const;
	int getMonth () const;
	int getYear () const;


int year; -- согласен.

int day;
int month;

-- нет. Месяц может принимать значения от 1 до 12. Одного беззнакового байта будет достаточно.
Итого -- unsigned char. День может принимать значения от 1 до 31, также будет достаточно одного беззнакового байта. Итого -- unsigned char ОБА. Соответственно, нужно поменять типы параметров конструктора и геттеров/сеттеров.
...
Рейтинг: 0 / 0
задача для начинающих
    #36572677
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя кстати почему-то день может быть только до 30.

if ( dataDay >= 1, dataDay <= 30 )

Это как-то странно.
...
Рейтинг: 0 / 0
задача для начинающих
    #36572678
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это
Код: plaintext
if ( dataDay <  1 , dataDay >  30  )

надо записывать так:
Код: plaintext
1.
2.
if ( dataDay <  1  || dataDay >  30  )


или так, если включишь в свою программу специальный заголовок (не помню уже какой)
Код: plaintext
1.
2.
if ( dataDay <  1  or dataDay >  30  )



Бинарная инфиксная Операция , в С и С++ вычисляет свои левый и правый операнды и возвращает значение правого. Т.е. в твоём

Код: plaintext
if ( dataDay <  1 , dataDay >  30  )

первая проверка будет просто игнорироваться.

(P.S. а фантазия у тебя богатая !)
...
Рейтинг: 0 / 0
задача для начинающих
    #36572679
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avb1003
P.S. Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.

Эту правильную книгу нужно читать именно в том порядке, в котором она написана .
Как автор и делает (надеюсь). Он в этом молодец, а ошибки -- ну кто ж их не делает.
Зато теперь будет на всю жизнь знать, что такое оператор ,
...
Рейтинг: 0 / 0
задача для начинающих
    #36572741
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychavb1003Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.и неплохо бы автору ещё изучить тег src для размещения кода в форуме.

Модератор: Автор, egorych прав на все 100. Тег SRC -- и твой код будет чистым и шелковистым.


Модератор: egorych, ты в комодераторы напрашиваешься? Можно устроить ...
Спасибо за помощ, но еще раз хочу как бы уточнить ситуацию,
я понимаю все прелести С++ относительно того, что одну и ту же задачу можно решить разными методами.
Но в этом то и вся прелесть, что изучить нужно всё, начиная с простейших методов.
(как гласит одна мудрая китайская пословица "Тот кто шагает твердо - далеко пойдет на своем пути"

Как и учат в этой книге. Вон, поглядите простой пример в начале этого топика.
Нашлось ведь решение очень простое, согласно пройденной тематике.

так вот к чему я это все написал SRC еще не был изучен.
egorych
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
void Date::setDay( int dataDay )
{
if ( dataDay >=  1 , dataDay <=  30  )
day = dataDay;

if ( dataDay <  1 , dataDay >  30  ) //! \bug, но, тем не менее...
...
}
...что будем делать с 30 февраля и с 31 мая, например?
MasterZivУ тебя кстати почему-то день может быть только до 30.

if ( dataDay >= 1, dataDay <= 30 )

Это как-то странно.
я понимаю, что это частные случаи, и программа несколько кривая, но тут ведь задача стоит не в том, чтоб написать программу которая будет эталоном всемирной даты.
в противном случае, пришлось бы писать программу спустя еще несколько глав книги.
потому как данными методами будет тяжко решить ее
MasterZiv
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#include <iostream>

using namespace std;

class Date
{
public:
	Date ( int, int, int );

	void displayData ();

	void setDay ( int );
	int getDay ();

	void setMonth ( int );
	int getMonth ();

	void setYear ( int );
	int getYear ();

private:
	int day;
	int month;
	int year;
};

Все getter-ы должны быть CONST.
displayData тоже должна быть CONST.

Код: plaintext
1.
2.
3.
4.
5.
	void displayData () const;

	int getDay () const;
	int getMonth () const;
	int getYear () const;


int year; -- согласен.

int day;
int month;

-- нет. Месяц может принимать значения от 1 до 12. Одного беззнакового байта будет достаточно.
Итого -- unsigned char. День может принимать значения от 1 до 31, также будет достаточно одного беззнакового байта. Итого -- unsigned char ОБА. Соответственно, нужно поменять типы параметров конструктора и геттеров/сеттеров.
интересно конечно, но и CONST еще не было в книжке.
p/s/ быть может выложить оглавление книги в конце концов?
MasterZivЭто
Код: plaintext
if ( dataDay <  1 , dataDay >  30  )

надо записывать так:
Код: plaintext
1.
2.
if ( dataDay <  1  || dataDay >  30  )


или так, если включишь в свою программу специальный заголовок (не помню уже какой)
Код: plaintext
1.
2.
if ( dataDay <  1  or dataDay >  30  )



Бинарная инфиксная Операция , в С и С++ вычисляет свои левый и правый операнды и возвращает значение правого. Т.е. в твоём

Код: plaintext
if ( dataDay <  1 , dataDay >  30  )

первая проверка будет просто игнорироваться.

(P.S. а фантазия у тебя богатая !)
согласен. но логическое ||или еще не изучали(

еще раз спасибо всем, сейчас постараюсь написать оглавление книги...
...
Рейтинг: 0 / 0
задача для начинающих
    #36572751
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281 wrote:

> У тебя кстати почему-то день может быть только до 30.
> я понимаю, что это частные случаи, и программа несколько кривая, но тут
> ведь задача стоит не в том, чтоб написать программу которая будет
> эталоном всемирной даты.

Безусловно. Просто странно, что ты именно так мыслишь.
Почему 30 ? почему не 42 например ?


> интересно конечно, но и *CONST* еще не было в книжке.
> *p/s/ быть может выложить оглавление книги в конце концов?*

Ну, значит вспомни об этом, когда будеш изучать.

> согласен. но логическое *||или* еще не изучали(

Ага, || не изучали, а , уже изучали. Не верю.
Ну а если не изучали, то нужно было делать два вложенных if-а.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36572754
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

логическое или еще не изучали. это сто пудово. в след главе.
а вот с вложенным if спасибо. ща попробую)
...
Рейтинг: 0 / 0
задача для начинающих
    #36572759
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор egorych, ты в комодераторы напрашиваешься? Можно устроить ... чур меня, чур. ))
...
Рейтинг: 0 / 0
задача для начинающих
    #36572770
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

вложенный If помог. значит пока всё в рамках изученной главы.
void Date::setDay( int dataDay )
{

if ( dataDay >= 1 )
{
if ( dataDay <= 30 )
day = dataDay;
}
if ( dataDay < 1 )
{
cout << "Day \"" << day << "\" can be in 1-30 diapazon"
<< "\nday set 1" << endl;
day = 1;
}
if ( dataDay > 30 )
{
cout << "Day \"" << day << "\" can be in 1-30 diapazon"
<< "\nday set 1" << endl;
day = 1;
}
}
но, как быть с "мусором" в переменной?
почему оператора cout выводит мне
авторDay "-858993460" can be in 1-30 diapazon
ведь я в конструкторе (в main) даю ему конкретную цифру.
почему выводит не эту конкретную цифру а "мусор" "-858993460"?
где тут цобака зарыта?
...
Рейтинг: 0 / 0
задача для начинающих
    #36572797
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот я олень начинающий.
всё, не надо подсказывать. понял)
...
Рейтинг: 0 / 0
задача для начинающих
    #36572805
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivavb1003
P.S. Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.

Эту правильную книгу нужно читать именно в том порядке, в котором она написана .
Как автор и делает (надеюсь). Он в этом молодец, а ошибки -- ну кто ж их не делает.
Зато теперь будет на всю жизнь знать, что такое оператор , Как нужно читать - зависит от поставленной цели. Если цель заслужить похвалу -"молодец", от тех, кто считает что нужно читать все подряд, то это одно. Если цель изучить/освоить язык программирования, то это другое. Не читал и даже не видел "эту правильную книгу", но увидев "неправильную" программу "правильного" читателя этой книги, просто предлоположил, что порядок предложенных задач плохо соответсвует порядку подачи материала. Или же автор книги пытается реализовать своеобразую "дедовщину" в программирование. Вместо того, что бы писать, как все нормальные люди:
Код: plaintext
1.
2.
3.
if ( dataYear >=  1  && dataYear <=  3000 ) {
...
}
"молодой" должен вначале попрактиковаться в написании уродливых для проверки интервала конструкций типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
if(dateYear>= 1 ) {
     if(dateYear<= 3000 ) {
        cout << "Ok" << endl;
     } else {
        cout << "Must be less or equal then 3000"<<endl;
     }
} else {
        cout << "Must be great or equal then 1"<<endl;
}
Хотя может быть автор и прав. Я же просто хотел донести мысль, что точно также как топикстартер ищет помощи на этом форуме, он их может искать на страницах книги, до которых он еще не дошел в своем последовательном чтении. По крайней мере мне этот прием всегда помогал.
...
Рейтинг: 0 / 0
задача для начинающих
    #36572808
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avb1003,

да все просто. я уже написал. что хочу последовательно понять ВСЕ.
и решать задачи ИМЕННО ИЗУЧЕННЫМИ методами, не забегая вперед.
а книга. книга очень хорошая кстати, это я торможу
...
Рейтинг: 0 / 0
задача для начинающих
    #36572809
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
avb1003,

и else которую вы предложили, изучается в след главе..
...
Рейтинг: 0 / 0
задача для начинающих
    #36572849
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avb1003 wrote:

> это одно. Если цель изучить/освоить язык программирования, то это
> другое.

Блин, цель одна -- изучить язык С++. И для этого учебник по языку С++,
составленный профессиональным и успешным преподавателем высшей школы
и методически выверенный, нужно изучать от начала к концу.

> подачи материала. Или же автор книги пытается реализовать своеобразую
> "дедовщину" в программирование. Вместо того, что бы писать, как все
> нормальные люди:

Я не знаю к какому разделу это задание и какова его цель.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36577685
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще раз доброго времени суток уважаемые!
Напоминаю Вам, что Вы поневоле своей становитесь свидетелями того, как рождается новая звизда С++ в моем лице.
с Вашей помощью разумеецо.

у меня снова созрел вопрос, на этот раз с кодом все ок.
почему консольная егзешка так себя ведет?

вот код:
автор
#include <iostream>
#include <iomanip>
using namespace std;

int main ()
{
int a;
int b;
int totala = 0;
int totalb = 0;

cout << "enter a or -1 to quit: ";
cin >> a;
while ( a != -1 )
{
cout << "enter b: ";
cin >> b;

totala += a;
totalb += b;

cout << "a/b is: "
<< static_cast< double > ( a ) / static_cast< double > ( b )
<< setprecision ( 6 ) << fixed << endl;
cout << "Total a/b is: " << static_cast< double > ( totala )
/ static_cast< double > ( totalb ) << setprecision ( 6 ) << fixed
<< endl;

cout << "\nenter a or -1 to quit";
cin >> a;
}

return 0;
}


а вот то, что на выходе:
авторenter a or -1 to quit: 287
enter b: 13
a/b is: 22.0769
Total a/b is:22.076923

enter a or -1 to quit: 200
enter b: 10
a/b is: 20.000000
Total a/b is:21.173913

enter a or -1 to quit: 120
enter b: 5
a/b is: 24.000000
Total a/b is:21.678571

итак вопрос: почему в первом случае только 4 значения после точки, хотя setprecision ( 6 ) ?
и еще, если ставлю setprecision ( 2 ), то значения после точки заменяются на две цифры, везде кроме этой самой первой фигни.
...
Рейтинг: 0 / 0
задача для начинающих
    #36577944
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,
Код: plaintext
cout << setprecision(  6  ) << fixed << static_cast< double > ( a ) / static_cast< double > ( b ) << endl;
?
...
Рейтинг: 0 / 0
задача для начинающих
    #36578075
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychsantexnik281,
Код: plaintext
cout << setprecision(  6  ) << fixed << static_cast< double > ( a ) / static_cast< double > ( b ) << endl;
?

при вводе тех же a 287 и b 13
a/b is: 5DB9DBCC21.615385
Total a/b is: 21.615385
...
Рейтинг: 0 / 0
задача для начинающих
    #36582991
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели нет ответа?

оператор один и тот же.
почему же во втором и последующих циклах выводится 6 цифр после точки, а в первом только 4?
...
Рейтинг: 0 / 0
задача для начинающих
    #36583028
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281неужели нет ответа?

оператор один и тот же.
почему же во втором и последующих циклах выводится 6 цифр после точки, а в первом только 4?
santexnik281при вводе тех же a 287 и b 13
a/b is: 5DB9DBCC21.615385
Total a/b is: 21.615385
...
Рейтинг: 0 / 0
задача для начинающих
    #36585684
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и снова прибегаю к вашей помощи, господа.
без вас мне не быть звиздой С++

задача которая после изучения циклов заставила задуматься

авторНапишите программу, которая читает размер стороны квадрата и затем печатает звездочками и пробелами пустой квадрат заданного размера. Ваша программа должна работать для любых размеров, заданных в интервале 1-20. Например, если программа прочла размер 5, то должна напечатать:
*****
*.....*
*.....*
*.....*
*****

без точек внутри квадрата. это чтоб понятно было. пробелы не печатаются.

используются циклы
...
Рейтинг: 0 / 0
задача для начинающих
    #36585746
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, и? в чём вопрос-то? ))
...
Рейтинг: 0 / 0
задача для начинающих
    #36585778
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,
не могу алгоритм реализовать :(
...
Рейтинг: 0 / 0
задача для начинающих
    #36585784
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

могу построить только одну верхнюю сторону квадрата.

count = 1
while ( count <= x )
{
cout << "x";
count++;
}

а как быть еще с тремя?
...
Рейтинг: 0 / 0
задача для начинающих
    #36585956
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281а как быть еще с тремя?потребуется вложенный цикл ;-))
...
Рейтинг: 0 / 0
задача для начинающих
    #36586279
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

ммм.. если это верное решение задачи, то пока не подсказывайте больше.
как "устану" отпишусь :)
...
Рейтинг: 0 / 0
задача для начинающих
    #36586482
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё. устал.
мож подскажете а.
...
Рейтинг: 0 / 0
задача для начинающих
    #36586549
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Урррррааааааааааааааааа!
все! получилось. ток маинькый косяг.
подскажите как быть?
подходят любые значения, кроме единицы((

вот код:
автор#include <iostream>

using namespace std;

int main ()
{
int a = 1;
int b = 1;
int c = 1;
int d = 1;

int x;

cout << "Enter x: ";
cin >> x;



while ( a <= x )
{
cout << "*";
a++;
}
while ( b <= ( x - 2 ) )
{
cout << "\n*";
c = 1;
while ( c <= ( x - 2 ))
{
cout << " ";
c++;
}
cout << "*";
b++;
}
cout << endl;
while ( d <= x )
{
cout << "*";
d++;
}

return 0;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36586553
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

а ладно. хрен с ним с единицей.
задача была на управление вложенными вайлами.

спасип Егорычу.

единицу можно отрубить элсом ;)
...
Рейтинг: 0 / 0
задача для начинающих
    #36599352
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые знатоки, будьте любезны. уделите еще пару минут чайнику.
спасибо.

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

единственно подсказка вот: должно быть что то в роде этого.
то есть эта прога находит только одно наибольшее. а нужно два.
нужно использовать такой вот пример. то есть. эта задача продолжение той, код которой я выкладываю:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#include <iostream>
using namespace std;

int main ()
{
	int counter =  1 ;
	int number;
	int largest =  0 ;

	while ( counter <=  10  )
	{
		cout << "Enter numb: ";
		cin >> number;
		
		if ( number > largest )
			largest = number;
		counter++;
	}

	cout << "Largest is: " << largest << endl;
}
сначала была задача найти одно число максимальное.
а следом задание найти два максимальных.

пс. тег выучен))
...
Рейтинг: 0 / 0
задача для начинающих
    #36599354
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Замечание: Каждое число вводится только один раз.
...
Рейтинг: 0 / 0
задача для начинающих
    #36599573
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,

завести 2 переменные largest1 и largest2?
...
Рейтинг: 0 / 0
задача для начинающих
    #36599932
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych пишет:
> завести 2 переменные largest1 и largest2?

Лучше массив из 2-х элементов.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36600081
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
egorych пишет:
> завести 2 переменные largest1 и largest2?

Лучше массив из 2-х элементов.
массивы, грит, отдыхают.. а так да, конечно, лучше ))
...
Рейтинг: 0 / 0
задача для начинающих
    #36600778
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

ну я понял, что две переменные.
а дальше? как это будет происходить в сравнениях?

зы. массивы отдыхают((

блин. вот нафига я сначала всю книгу пробежал то?
а теперь кода задачи решаю, хочицо сразу более легким методам решить. ан нет.
афтар книги грит мол низзя так делать. нуно сё последоватильно
...
Рейтинг: 0 / 0
задача для начинающих
    #36601516
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
#include <iostream>
using namespace std;

int main ()
{
	int counter =  1 ;
	int number;
	int largestMax =  0 ;
	int largestMin =  0 ;

	while ( counter <=  10  )
	{
		cout << "Enter numb: ";
		cin >> number;
		
		if ( number > largestMin )
		{
			if ( number < largestMax )
			largestMin = number;
		}

		if ( number > largestMax )
		{
			largestMin = largestMax;
			largestMax = number;
		}
		counter++;
	}

	cout << "LargestMax is: " << largestMax
		<< "\nLargestMin is: " << largestMin << endl;

return forumnax :)
}
разабралсо
...
Рейтинг: 0 / 0
задача для начинающих
    #36601524
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, ну вишь как, маладец! ))
...
Рейтинг: 0 / 0
задача для начинающих
    #36601577
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

это исчо не все.
на ваших глазах рождаецо новайа звизда с плас плас.
так шо, ждите, скоро начну такие вопросы задавать, гологу ломать буити))

зы. что мне нравится в этом форуме, так это то, что явную подсказку не дают, а наводят на мысль.
...
Рейтинг: 0 / 0
задача для начинающих
    #36601582
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,

forum_nenax!

Код: plaintext
1.
2.
3.
4.
5.
for(int counter =  1 ; counter <  10 ; i++)
...
largestMin = (number < largestMin) ? number : largestMin;  // в исходнике ошибка - largestMax
...
else if ( number > largestMax ) // аналогично


ЗЫ. А то Паскалист еще вырастет '-(
...
Рейтинг: 0 / 0
задача для начинающих
    #36601587
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ля.
Код: plaintext
for(int counter =  0 ; counter <  10 ; i++)
конечно
...
Рейтинг: 0 / 0
задача для начинающих
    #36601754
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl,

фор эт конечно хорошо.
знаю такой. но он был в след главе =Р
нужно было вайлами решать.

to Siemargl, вы наверно не с самого начала читали топег?
там же ясно сказано, решать ИЗВЕСТНЫМИ методами.
не забегая вперед.
другое дело вы не в курсе что там в книге дано.

а паскаль нее, ниразу не.))
...
Рейтинг: 0 / 0
задача для начинающих
    #36601767
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,

и что там, тернарный оператор после циклов идёт, в твоей чудо-книге?
...
Рейтинг: 0 / 0
задача для начинающих
    #36601878
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

сами цыклы просто были разбиты. в одной главе вайл,
в следующей фор, ду-вайл и свич вместе с тернарной фигней
так что все в пределах "правил"))

вы мне лучше посоветуйте книжку какую нибудь. чтоб были только задачи.
без всякого учебного материала. материала пока хватает.
...
Рейтинг: 0 / 0
задача для начинающих
    #36601898
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281вы мне лучше посоветуйте книжку какую нибудь. чтоб были только задачи.
без всякого учебного материала. материала пока хватает.в топку книжки с задачами, программируй реальные проекты. Что толку учебную жвачку перемалывать.
...
Рейтинг: 0 / 0
задача для начинающих
    #36602147
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl пишет:
> for(int counter = *0*; counter < *10*; i++)
>
> конечно


for(int counter = 0; counter < 10; ++ i) // !!

Пусть уж привыкает к хорошему смолоду.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36602205
Микросекунда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv пишет:

M> for(int counter = 0; counter < 10; ++i) // !!

M> Пусть уж привыкает к хорошему смолоду.

Оно конечно верно, сам двумя руками ЗА это же, но справедливости ради: в случае int-ов (да и других неклассов) компилятор генерит совершенно одинаковый код как в случае использования i++, так и ++i. Т.е. компилятор понимает, что возвращаемое значение не используется, и генерит "++i" в любом случае.

PS: а почему инициализируется counter, а увеличивается i ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36603972
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МикросекундаMasterZiv пишет:

M> for(int counter = 0; counter < 10; ++i) // !!

M> Пусть уж привыкает к хорошему смолоду.

Оно конечно верно, сам двумя руками ЗА это же, но справедливости ради: в случае int-ов (да и других неклассов) компилятор генерит совершенно одинаковый код как в случае использования i++, так и ++i. Т.е. компилятор понимает, что возвращаемое значение не используется, и генерит "++i" в любом случае.
Смысл то просто в привычки и глаз начинает цепляется на i++. Там же может быть не только int.
...
Рейтинг: 0 / 0
задача для начинающих
    #36605068
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav,

в циклах по барабану как ставить посфикс или префикс.

а для правильной привычки нужно просто четко понимать когда нужно ставить пост.. а когда пре..
...
Рейтинг: 0 / 0
задача для начинающих
    #36605095
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychsantexnik281вы мне лучше посоветуйте книжку какую нибудь. чтоб были только задачи.
без всякого учебного материала. материала пока хватает.в топку книжки с задачами, программируй реальные проекты Что толку учебную жвачку перемалывать.
совет неплохой. я согласен.
но есть одно [size=7]маленькое НО
я всего два месяца как начал изучать с++.
никакой базы у меня нет, ваабще. то есть с нуля. полностью.
я еще даже треть книжки не изучил.
КАК я могу начинать что либо проектировать???
если я даже не знаю элементарных вещей
...
Рейтинг: 0 / 0
задача для начинающих
    #36605237
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281 wrote:
>> в циклах по барабану как ставить посфикс или префикс.
не в каждом цикле по барабану, в том то и дело. Во второй ( или в третьей ) трети книжки доберёшься до циклов, где i++ будет давать оверхед.

>>а для правильной привычки нужно просто четко понимать когда нужно ставить пост.. а когда пре..
для правильной привычки не надо ничего понимать, надо рисовать на автомате в цикле ++i, и всё, потому что есть случаи, когда оба варианта одинаковы, а есть случаи, когда префиксная форма позволяет выиграть в скорости. ну и зачем тогда использовать постфикс в цикле?
...
Рейтинг: 0 / 0
задача для начинающих
    #36605633
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за развернутые ответы.
...
Рейтинг: 0 / 0
задача для начинающих
    #36605652
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в кратце можно дать определение "стек"а

не как по книжкам учили, а как бы вы объяснили для чайника
на примерах из жизни
...
Рейтинг: 0 / 0
задача для начинающих
    #36605680
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,

ОМГ, снова...
...
Рейтинг: 0 / 0
задача для начинающих
    #36606347
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mozok,

%-)
глаза в кучу.

ладно. не буду забивать мозг раньше времени.

как говорят психологи, лучше запоминается то и именно то, что интересует в данный момент.
и менее запоминается то, что пока не интересно.

подожду до того момента, как стек будет требовать от меня каких либо скачков мозга и т.п..
а там и разобраться будет не сложно
...
Рейтинг: 0 / 0
задача для начинающих
    #36606361
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281Mozok,

%-)
глаза в кучу.

ладно. не буду забивать мозг раньше времени.

как говорят психологи, лучше запоминается то и именно то, что интересует в данный момент.
и менее запоминается то, что пока не интересно.

подожду до того момента, как стек будет требовать от меня каких либо скачков мозга и т.п..
а там и разобраться будет не сложно
Стек очень важное понятие в С++. И крайне простое.

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

В следующий раз тебе посоветуют прочесть несколько книг - ты положишь их поверх первой и все прочитаешь. А потом отбросишь эти книги. И вернешься к первой.

Так и стек - когда вызывается функция (или метод класса - это одно и тоже) - процессор кладет поверх старых данных (книг) новые данные (книги) и обрабатывает новые данные (книги) - на выходе из функции (когда он прочел новые книги).

Программирование - это всегда способ описания реальности. Ничего больше.
...
Рейтинг: 0 / 0
задача для начинающих
    #36606387
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav,

то есть, другими словами, во время выполнения конкретной задачи ( чтение книги ) компьютер скрывает старые переменные ( те книги которые под..), и вновь обращается к ним ( отбрасывает верхние книги) открывая?

я так понял одна и та же переменная в разных стеках может иметь разные значения. right?

стек n / int x = 9
стек ...
стек 4 / int x = 2
стек 3 / int x = 3
стек 2 / int x = 8
стек 1 / int x = 5

допустим переменные x в ходе программы не меняются.
задача дошла до стека n и манипулирует функциями в которых x = 9..,
высвобождаясь от поверх наложенных стеков ( решив их, и возвратившись в начало )
в текущей задаче x все равно будет 5 как и инициализировалось в самом начале?
...
Рейтинг: 0 / 0
задача для начинающих
    #36606412
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281petrav,

то есть, другими словами, во время выполнения конкретной задачи ( чтение книги ) компьютер скрывает старые переменные ( те книги которые под..), и вновь обращается к ним ( отбрасывает верхние книги) открывая?

Не всегда. В моем примере, при чтении новых книг ты же можешь пролистать и первую - ведь физика это не запрещает. Так и в стеке новые данные (книги) не всегда абсолютно перекрывают старые.

santexnik281я так понял одна и та же переменная в разных стеках может иметь разные значения. right?

Может. Но не всегда. Аналогия с книгами абсолютно верна, представь что ты их складываешь в стопку по мере перекрестных ссылок этих книг. Может быть даже бесконечный цикл. Книга1 ссылается на Книга2, а Книга2 ссылается на Книга1.

santexnik281стек n / int x = 9
стек ...
стек 4 / int x = 2
стек 3 / int x = 3
стек 2 / int x = 8
стек 1 / int x = 5

допустим переменные x в ходе программы не меняются.
задача дошла до стека n и манипулирует функциями в которых x = 9..,
высвобождаясь от поверх наложенных стеков ( решив их, и возвратившись в начало )
в текущей задаче x все равно будет 5 как и инициализировалось в самом начале?

Да. Но опять же.

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

Так и в программировании. Оба подхода совершенно корректны. Но выбрать нужно правильный в данной ситуации.

А вообще, все это лирика. Вступление. Как это работает все равно нужно понять в деталях.

Ты хотел жизненный пример. Получил. Но невозможно на пальцах пояснить в точности как работает телевизор. Нужно учиться.
...
Рейтинг: 0 / 0
задача для начинающих
    #36606428
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спс
petrav[quot santexnik281]petrav,
Ты хотел жизненный пример. Получил. Но невозможно на пальцах пояснить в точности как работает телевизор. Нужно учиться.
имхо. телевизор объяснить легче, чем физику с++
...
Рейтинг: 0 / 0
задача для начинающих
    #36606488
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281я так понял одна и та же переменная в разных стеках может иметь разные значения. right?

стек n / int x = 9
стек ...
стек 4 / int x = 2
стек 3 / int x = 3
стек 2 / int x = 8
стек 1 / int x = 5
нет никаких разных стеков. стек один на программу. Ты видел когда-нибудь банку чипсов принглс? такую цилиндрическую? вот это стек. а чипсины - данные, которые в нём хранятся.
...
Рейтинг: 0 / 0
задача для начинающих
    #36606502
avb1003
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych...
нет никаких разных стеков. стек один на программу. ...Слишком категорично.
man sigaltstack
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SIGALTSTACK(2)                                Linux Programmer's Manual                                SIGALTSTACK(2)



NAME
       sigaltstack - set and/or get signal stack context

     ....
      sigaltstack() allows a process to define a new alternate signal stack and/or retrieve the state of an existing
       alternate signal stack.
      ....
       Establishing an alternate signal stack is useful if a process expects that it may exhaust its standard  stack.
       This may occur, for example, because the stack grows so large that it encounters the upwardly growing heap, or
       it reaches a limit established by a  call  to  setrlimit(RLIMIT_STACK,  &rlim).   If  the  standard  stack  is
       exhausted,  the  kernel sends the process a SIGSEGV signal.  In these circumstances the only way to catch this
       signal is on an alternate signal stack.

А еще бывают многопоточные программы и каждый поток имеет свой стек.
...
Рейтинг: 0 / 0
задача для начинающих
    #36606931
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avb1003, молодец, умный мальчик. садись, пять
...
Рейтинг: 0 / 0
задача для начинающих
    #36608097
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егорыч. вы по какой книге учились?
если в институте то не обязательно отвечать..

просто иногда я прихожу к мысли что заниматься по единственной книге это несколько не то.. (хотя книга очень компетентна)
вот и думаю какую книжку выбрать в качестве дополнительной, чтоб мозг загружался в дуплексном режиме.

народ. может че посоветуете в качестве дополнения?

судить о книге по рейтингу продаж не хоцца.
нужен совет бывалых акул бороздящих кибер пространство)
...
Рейтинг: 0 / 0
задача для начинающих
    #36608106
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще вопрос.
относительно обучения.

в программировании кроме как высшей математики нужно что то еще знать?
может быть есть что то, что следовало бы изучить?
...
Рейтинг: 0 / 0
задача для начинающих
    #36608112
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281и еще вопрос.
относительно обучения.

в программировании кроме как высшей математики нужно что то еще знать?
может быть есть что то, что следовало бы изучить?
Высшую математику тоже по книгам и заданиям учишь?
...
Рейтинг: 0 / 0
задача для начинающих
    #36608240
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281 пишет:

> в программировании кроме как высшей математики нужно что то еще знать?
> может быть есть что то, что следовало бы изучить?
>
Да. Программирование.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36608276
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ржунимагу. хD
короче я понял.
какой вопрос - такой и ответ.
...
Рейтинг: 0 / 0
задача для начинающих
    #36608287
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281судить о книге по рейтингу продаж не хоцца.
нужен совет бывалых акул бороздящих кибер пространство)
Программирование - это практическая наука и изучать её только читая книжки это всё равно что пытаться приобщиться к большому спорту путём просмотра футбольных новостей по ТВ и прочий онанизм.

Бери тестовые задания (ими завален весь интернет, для фрилансеров) и начинай кодить. Моё программирование началось, когда мне надоело играть в игры на 8-ми разрядных ЭВМ. Я начал разбирать как игры устроены внутри. Тут и началось...
...
Рейтинг: 0 / 0
задача для начинающих
    #36608297
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
santexnik281 пишет:

> в программировании кроме как высшей математики нужно что то еще знать?
> может быть есть что то, что следовало бы изучить?
>
Да. Программирование.
а вот высшая математика как раз в собственно программировании нафиг не упёрлась, кстати =))
...
Рейтинг: 0 / 0
задача для начинающих
    #36608472
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

это уже интересно.
как бы еще найти "правильный" код в сети?
ведь процентов на 80 инфа в нет выкидывается "посредственными" представителями..
хотелось бы сразу уж какую нибудь книжку. это и время поиска сэкономит, и избавит от "несовсем правильного" кода.

так что посоветуете?
...
Рейтинг: 0 / 0
задача для начинающих
    #36608474
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

Егорыч, а если я допустим захочу CoD MW-3 написать? вышка тоже не нужна?)
это я утрирую конечно.
вопрос другой - где находится эта грань, за которой нужно знать вышку в программировании?
...
Рейтинг: 0 / 0
задача для начинающих
    #36608484
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, для собственно программирования высшая математика не нужна, для программирования предметной области может потребоваться, а может и нет, зависит от предметной области.
Честно говоря, не могу вспомнить такого чудо-задачника, который ты хочешь от нас, скорее всего, его просто нет. )) Хотя... "философия С++" от Брюса Эккеля и "язык программирования С++" от Бьёрна Страуструпа - на мой взгляд, достаточные книги. А далее - по ссылкам по интересующим темам. Процесс изучения не должен прекращаться никогда, но и без практического программирования тоже обойтись не удастся.
...
Рейтинг: 0 / 0
задача для начинающих
    #36608509
алчность
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281egorych,
вопрос другой - где находится эта грань, за которой нужно знать вышку в программировании?
Изучать что-то только потому, что оно может быть понадобится - глупо
...
Рейтинг: 0 / 0
задача для начинающих
    #36608661
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281.
как бы еще найти "правильный" код в сети?
ведь процентов на 80 инфа в нет выкидывается "посредственными" представителями..
хотелось бы сразу уж какую нибудь книжку. это и время поиска сэкономит, и избавит от "несовсем правильного" кода.
1) Правильный код существует только в воспалённых умах теоретиков. Любой исходник чуть сложнее чем "ПреведМир" уже может вызвать нарекания. По крайней мере я всегда смогу указать на отсутствие в нём рефакторинга и т.п.

Чисто из любопытства советую вам посмотреть как пишут и оформляют open-исходники здесь.

http://sourceforge.net/

2) Хороший образец практикумума по написанию правильного кода я не смогу посоветовать. Я такого просто не знаю.
...
Рейтинг: 0 / 0
задача для начинающих
    #36608788
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281mayton,

это уже интересно.
как бы еще найти "правильный" код в сети?
ведь процентов на 80 инфа в нет выкидывается "посредственными" представителями..
хотелось бы сразу уж какую нибудь книжку. это и время поиска сэкономит, и избавит от "несовсем правильного" кода.

так что посоветуете?
Я советую тебе купить Александреску "Современное проектирование на С++". Отличная книга. Инфа 100%. =)))
...
Рейтинг: 0 / 0
задача для начинающих
    #36608789
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
1) Правильный код существует только в воспалённых умах теоретиков. Любой исходник чуть сложнее чем "ПреведМир" уже может вызвать нарекания. По крайней мере я всегда смогу указать на отсутствие в нём рефакторинга и т.п.
Как можно указывать на отсутствие рефакторинга, если это суть процесс улучшения работающего кода? Это же не видно по исходникам был он или нет.
...
Рейтинг: 0 / 0
задача для начинающих
    #36608846
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav, Ну купит он Александреску,может быть даже что-то прочитает, потом положит на полку и будет бояться открыть. Ему до осмысленного прочтения того что там написано года 2-3 надо активно программировать.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609270
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedpetrav, Ну купит он Александреску,может быть даже что-то прочитает, потом положит на полку и будет бояться открыть. Ему до осмысленного прочтения того что там написано года 2-3 надо активно программировать.
Это была шутка юмора.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609274
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хорошо. можно ли упростить задачу.

в общем так. нужна книга. в которой будут осуществляться две задачи одновременно.
теория и практика.

например, я вижу это след образом.

книга содержит код какого либо проекта, достаточного, охватывающего по крайней мере базовую часть теории. и по мере углубления теории, углубляется и код проекта.
то есть на примере живого кода какого либо проекта идет теория, где объясняется, что куда и почему а также зачем и для чего.

от простого к сложному.

начиная с хеловорлд
далее ( теория, код )
далее ( теория, код )
далее ( теория, код )
.. ..
заканчивая приложением вин32

не просто как в задачах каждый пример отрешен от остальных примеров.
а чтоб все было взаимосвязано.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609279
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эх. ладно. покидаю форум на неопределенное время.
до того момента, когда хотя бы смогу задавать вопросы по существу, в другой форме.
поучу, по"кодю", и т.д. и т.п.

не прощаюсь
...
Рейтинг: 0 / 0
задача для начинающих
    #36609471
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravmayton
1) Правильный код существует только в воспалённых умах теоретиков. Любой исходник чуть сложнее чем "ПреведМир" уже может вызвать нарекания. По крайней мере я всегда смогу указать на отсутствие в нём рефакторинга и т.п.
Как можно указывать на отсутствие рефакторинга, если это суть процесс улучшения работающего кода? Это же не видно по исходникам был он или нет.
Рефакторинг - это бесконечный процесс.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609583
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonpetravmayton
1) Правильный код существует только в воспалённых умах теоретиков. Любой исходник чуть сложнее чем "ПреведМир" уже может вызвать нарекания. По крайней мере я всегда смогу указать на отсутствие в нём рефакторинга и т.п.
Как можно указывать на отсутствие рефакторинга, если это суть процесс улучшения работающего кода? Это же не видно по исходникам был он или нет.
Рефакторинг - это бесконечный процесс.
Почему бесконечный?
Я иногда говорю себе: хватит, и так работает, чего еще нужно.
Понятие правильного кода - это странное понятие.
Были на работе такие проблемы раньше - я говорил одному: так правильно, а он мне говорил нет, вот так правильно писать. Ну начальник нас рассудил :)
...
Рейтинг: 0 / 0
задача для начинающих
    #36609591
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAYAKOV_SVПочему бесконечный?
Я иногда говорю себе: хватит, и так работает, чего еще нужно.
Понятие правильного кода - это странное понятие.
Были на работе такие проблемы раньше - я говорил одному: так правильно, а он мне говорил нет, вот так правильно писать. Ну начальник нас рассудил :)
Верно. Но не надо забывать, даже Мартин Фаулер пишет что начальство вобщем не заинтересовано в рефакторинге. Нет экономически точких показателеф полезности этого процесса. Поддержка кода в "живом", готовом к эволюции состоянии - это 100% задача разработчика. И это сродни хорошему этикету в сообществе девелоперов.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609657
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Верно. Но не надо забывать, даже Мартин Фаулер пишет что начальство
> вобщем не заинтересовано в рефакторинге. Нет экономически точких
> показателеф полезности этого процесса. Поддержка кода в "живом", готовом
> к эволюции состоянии - это 100% задача разработчика. И это сродни
> хорошему этикету в сообществе девелоперов.

Это смотря какое начальство.
Прожект мэнежеры -- да. Они тупо рассуждают, им только новые фичи подавай.
А тимлиды понимают, что из говнокода путь -- только в сортир слить.

Я вот например на данный момент ТААК СИИИЛЬНО в рефакторинге заинтересован...
что даже до самого высшего начальства наконец дошло.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36609722
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychа есть случаи, когда префиксная форма позволяет выиграть в скорости
А кстати, что за случаи?
...
Рейтинг: 0 / 0
задача для начинающих
    #36609742
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky пишет:

> А кстати, что за случаи?

В случае, если инкрементируемый объект -- не фундаментальный тип, а
класс. Типа итератора. Тогда, чтобы вернуть значение ДО инкремента,
нужно копировать объект.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36609766
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> А кстати, что за случаи?

В случае, если инкрементируемый объект -- не фундаментальный тип, а
класс. Типа итератора. Тогда, чтобы вернуть значение ДО инкремента,
нужно копировать объект.

Я имел в виду случаи когда возвращаемое значение игнорируется (как в цикле).
Например те же итераторы STL постинкремент реализуют в инлайн методе, который после подстановки и удаления неиспользуемого кода, которое выполняется любым самым захудалым компилятором, превращается в преинкремент.
Вот меня и интересует, встречаются ли в реальной жизни случаи, когда в void контексте префиксный оператор быстрее постфиксного.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609796
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
include <philosophy>
using namespace std;

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

// и все таки. к каким же наукам относится программирование?
// к точным или нет?

// к примеру, совсем недавно с дружком ( он юзает яву ), за пивом мы обсуждали эту тему.
// пришли к тому, что кодинг является своего рода искусством, творчеством, с родни похожем
// на художество, лепку из глины, музыку, и т.д. и т.п.
// как считаете?

Модератор: Философствовать -- пожалуйста. В другом топике, в другом форуме. Надеюсь, C-c C-v нажать сам сможешь.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609885
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky пишет:

> Я имел в виду случаи когда возвращаемое значение игнорируется (как в цикле).

В случае переопределённого оператора ++ компилятор не сможет использовать
префиксный оператор вместо постфиксного. У них разная семантика может быть.
Так что будет использован ровно тот оператор, который вызывается.
И максимум, что компилятор сможет -- это инлайнить метод и применить RVO.
Именно поэтому и надо "с молоду" учиться писать тот инкрементор, который именно
тебе нужен.

> Например те же итераторы STL постинкремент реализуют в инлайн методе,
> который после подстановки и удаления неиспользуемого кода, которое
> выполняется любым самым захудалым компилятором, превращается в преинкремент.

Это я что-то очень сомневаюсь. Пруфлинк ?

Заменить преинкремет на постинкремент -- это всё равно, что заменить, например,
сложение на умножение. Ради оптимизации.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36609905
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281хорошо. можно ли упростить задачу.

в общем так. нужна книга. в которой будут осуществляться две задачи одновременно.
теория и практика.

например, я вижу это след образом.

книга содержит код какого либо проекта, достаточного, охватывающего по крайней мере базовую часть теории. и по мере углубления теории, углубляется и код проекта.
то есть на примере живого кода какого либо проекта идет теория, где объясняется, что куда и почему а также зачем и для чего.

от простого к сложному.

начиная с хеловорлд
далее ( теория, код )
далее ( теория, код )
далее ( теория, код )
.. ..
заканчивая приложением вин32

не просто как в задачах каждый пример отрешен от остальных примеров.
а чтоб все было взаимосвязано.
Teach Yourself Windows 95 Programming in 21 Days/ И аналоги по VC++ тут (ссылки не проверял)
...
Рейтинг: 0 / 0
задача для начинающих
    #36609908
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Я вот например на данный момент ТААК СИИИЛЬНО в рефакторинге заинтересован...
что даже до самого высшего начальства наконец дошло.

Когда сроки поджимают, пишу на скорую руку, да и знаний и опыта у меня пока недостаточно, для профессионального программирования.
Когда время свободное появляется или ситуация особая возникает, делаю рефакторинг.
Если его не делать, то программа постепенно разрастаясь кодом, превращается в непонятный хаос из операторов. Плюс у меня идеи появляются иногда новые, делаю перестройку кода.
Начальнику не очень нравится, когда на это время уходит, а продвижения в проекте нету.
Но относится с терпением, практика показала, что рефакторинг стОит того и приносит большую пользу.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609909
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Например те же итераторы STL постинкремент реализуют в инлайн методе,
> который после подстановки и удаления неиспользуемого кода, которое
> выполняется любым самым захудалым компилятором, превращается в преинкремент.

Это я что-то очень сомневаюсь. Пруфлинк ?

Заменить преинкремет на постинкремент -- это всё равно, что заменить, например,
сложение на умножение. Ради оптимизации.

+1. Оптимизатор - может.
У компилятора разные функции вызываются
operator++()
и
operator++(int)

Он просто не знает, что подмена возможна.

Конечно, это в одном модуле - парсин и оптимизация, но этапы разные.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609913
MAYAKOV_SV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Верно. Но не надо забывать, даже Мартин Фаулер пишет что начальство вобщем не заинтересовано в рефакторинге. Нет экономически точких показателеф полезности этого процесса. Поддержка кода в "живом", готовом к эволюции состоянии - это 100% задача разработчика. И это сродни хорошему этикету в сообществе девелоперов.
Моя начальница не знает такого слова - рефакторинг :)
Эфективность есть - легче сопровождать, развивать.
Но иногда лучше не трогать код, если он надежно работает, а рефакторинг в данной ситуации пользы особой не принесет. Тут нужна разумная мера.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609933
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это верно. Самое сложно в рефакторинге - доказать эквивалентность преобразований. Т.е. ты кодишь-кодишь, улучшаешь... а потом - Бац! И софт не работает. А модульные тесты прошли успешно. Хотя что такое тесты? Мне удавалось тестами охватить только статические функции и редкий набор инстанциируемых в памяти классов (эдакие сферические лошади в вакууме). До функциональных тестов я как-то не доходил по причине сложности формирования условий. (Это уже не 20% времени от разработки, а поболее будет). И это для Java.

А в других технологиях подкидывает дерьмеца Oracle/PLSQL для которой модульные тесты - слабо интегрируются да и само их применение - под большим вопросом.
...
Рейтинг: 0 / 0
задача для начинающих
    #36609973
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Например те же итераторы STL постинкремент реализуют в инлайн методе,
> который после подстановки и удаления неиспользуемого кода, которое
> выполняется любым самым захудалым компилятором, превращается в преинкремент.

Это я что-то очень сомневаюсь. Пруфлинк ?

Заменить преинкремет на постинкремент -- это всё равно, что заменить, например,
сложение на умножение. Ради оптимизации.

Я не говорю что сам компилятор заменяет пост на пре.
Я говорю что пост-операторы в STL внутри реализованы как копирование плюс пре-оператор либо как пост-оператор непосредственно с raw-указателем.
Поэтому при подстановке лишнее копирование будет соптимизировано и останется только пре-оператор.
Для конкретики возьмем vector::iterator (<vector> в MSVC и <bits/stl_iterator.h> в G++).

Понятно что можно извратиться и специально сделать, чтобы постоператоры в таком контексте нельзя было оптимизировать. Но вряд ли кто-то это будет делать специально, верно?
Вот я и спрашивал, в каких же таких случаях реализовано так что компилятор не сможет соптимизировать?
...
Рейтинг: 0 / 0
задача для начинающих
    #36611744
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
системы личных сообщений нет?
как быть?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618261
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток господа Джедаи, властители силы !
Помогите начинающему ОбиВану в его нелегком пути познания истины всего могущества светлой стороны.

я запутался. как такое вообще возможно?
задача:
авторФункция floor может использоваться для округления значения до ближайшего целого.
Оператор:
y = floor ( x * 10 + .5 ) / 10;
округляет х с точностью до одной десятой (первая позиция справа от десятичной точки).
Оператор:
y = floor ( x * 100 + .5 ) / 100;
округляет х с точностью до одной сотой (вторая позиция справа от десятичной точки).
Напишите программу, которая определяет четыре функции для округления х различными способами:
a) roundToInteger (number)
b) roundToTenths (number)
c) roundToHundredths (number)
d) roundToThousandths (number)
Для каждого прочитанного значения ваша программа должна печатать исходное значение, число, округленное до ближайшего целого; число, округленное до ближайшей десятой, число округленное до ближайшей сотой, число округленное до ближайше тысячной.
все вроде бы понятно. но непонятно одно
как вообще это представлять?
ведь выражение floor(х) это округление х до наибольшего целого, не меньшего чем х .
другими словами я не понимаю смысл выражения
y = floor ( x * 10 + .5 ) / 10; не важно какие аргументы у floor а, ведь отдает он целый результат.
может ошибка где в задаче?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618274
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
double floor ( double x );
...
Рейтинг: 0 / 0
задача для начинающих
    #36618275
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все понял уже
...
Рейтинг: 0 / 0
задача для начинающих
    #36618280
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl,

обязательно ли нужно прибавлять 0.5?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618284
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281все понял уже
Понял понял. (с) Star Wars

RTFM
...
Рейтинг: 0 / 0
задача для начинающих
    #36618288
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl,

а я думал Великим Джедаям чужды подобные ухмылки

к чему добавлять половину то?
физический смысл?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618290
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

если есть ceil(x)
...
Рейтинг: 0 / 0
задача для начинающих
    #36618321
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281к чему добавлять половину то?приведение double к int по правилам С++ - отброс дробной части, округление в математическом смысле - округление до ближайшего целого, для эмуляции математического округления в С++ используется конструкция ( x + 0.5 )
...
Рейтинг: 0 / 0
задача для начинающих
    #36618743
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

чем же ceil(x) не устраивает?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618767
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281santexnik281,

если есть ceil(x)
Есть три вида округления. С избытком. С недостатком. И арифметическое.
Т.е. по правилам математики, если дробная часть больше половины то единица
идёт в старший разряд.
...
Рейтинг: 0 / 0
задача для начинающих
    #36618776
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton пишет:

> Есть три вида округления. С избытком. С недостатком. И арифметическое.
> Т.е. по правилам математики, если дробная часть больше половины то единица
> идёт в старший разряд.

Есть ещё бухгалтерское. Что-то типа чётное десятое в одну сторону, нечётное --
в другую. Хотя я сам про применение такого не слышал.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36618803
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЕсть ещё бухгалтерское. Что-то типа чётное десятое в одну сторону, нечётное --
в другую. Хотя я сам про применение такого не слышал.

Да... это странно. Алхимия какая-то.
...
Рейтинг: 0 / 0
задача для начинающих
    #36618846
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281egorych,

чем же ceil(x) не устраивает?потому что ceil округляет всегда в большую сторону, а это не арифметическое округление ни разу.
...
Рейтинг: 0 / 0
задача для начинающих
    #36618885
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

да понял я что округляет.
есть некий господин Икс, допустим его надо округлить..
Зачем ДО округления прибавлять половину то?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618889
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо взять modf и написать то округление которое надо
...
Рейтинг: 0 / 0
задача для начинающих
    #36618911
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281mayton,

да понял я что округляет.
есть некий господин Икс, допустим его надо округлить..
Зачем ДО округления прибавлять половину то?затем, чтобы продемонстрировать, чего надо получить. Это же задание? предполагается, видимо, что выполняющий его знает, как происходит округление в С++.
...
Рейтинг: 0 / 0
задача для начинающих
    #36618946
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281mayton,

да понял я что округляет.
есть некий господин Икс, допустим его надо округлить..
Зачем ДО округления прибавлять половину то?
Какой-же ты непроходимый болв сантехник Чтобы число 2.5 после мат. округления дало 3.0 надо к нему прибавить 0.5 и вычислить floor. Чтобы формула работала для заданного разряда, число подвергают линейной функции (в данном случае - это умножение на число кратное десяти) и переносят операцию округления на любой разряд, а потом линейно возвращают обратно.

Чтобы не задавать слишком глупых вопросов надо сначала почитать матчасть!
...
Рейтинг: 0 / 0
задача для начинающих
    #36618959
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, а как на счет -2.5 ?
...
Рейтинг: 0 / 0
задача для начинающих
    #36618962
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я общий принцип объяснил.
...
Рейтинг: 0 / 0
задача для начинающих
    #36618980
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, понятно!Мое дело - стратегия, а кто кошке колокольчик привешивать будет, я не знаю
...
Рейтинг: 0 / 0
задача для начинающих
    #36619176
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все таки корни программирования уходят в философию.. :)

еще вопросик созрел.
чисто так. интереса ради.

вот
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#include <iostream>
using namespace std;

char multiple ( int a, int b )
{
	char answer;
	if ( a % b ==  0  )
	answer = true;
	else
		answer = false;
	return answer;
}

int main ()
{
	int x, y;
	cout << "Enter two integers: ";
	cin >> x >> y;

	cout << x << " : " << y << " result " << multiple ( x, y ) << endl;

	return  0 ;
}

странно, в случае true консоль выводит смайлик,
а вот в случае false, консоль после " result " не выводит ни че го.
...
Рейтинг: 0 / 0
задача для начинающих
    #36619183
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
задача для начинающих
    #36619185
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonсмайлик я уже видел
ответьте по сучиству!
...
Рейтинг: 0 / 0
задача для начинающих
    #36619191
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, а что ты хотел, чтобы тебе делала функция multiple? там какая-то херня понаписана, прости господи ))
...
Рейтинг: 0 / 0
задача для начинающих
    #36619194
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, кстати, вывод правильный, скорее всего, особенно для неверного результата
...
Рейтинг: 0 / 0
задача для начинающих
    #36619201
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... кагбе я не помню как поступает count при попытке вывести в поток булевую переменную приведённую к типу char. Да.... здесь есть над чем поломать мозг. Самое и интересное что здесь есть масса вариантов угадать желание автора. Что он хотел получить? Вопрос на мильён багсов.
...
Рейтинг: 0 / 0
задача для начинающих
    #36619225
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ржете господа.
это тупо задача, вот
авторНапишите функцию multiple, которая определяет для пары целых чисел, кратно ли второе число первому. Функция должна принимать два целых аргумента и возвращать true, если второе число кратно первому, и false, если нет. Используйте эту функцию в программе, которая вводит последовательность пар целых чисел.
...
Рейтинг: 0 / 0
задача для начинающих
    #36619238
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй как-то вот так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#include <iostream>
using namespace std;

bool multiple ( int a, int b )
{
	char answer;
	if ( a % b ==  0  )
	answer = true;
	else
		answer = false;
	return answer;
}

int main ()
{
	int x, y;
	cout << "Enter two integers: ";
	cin >> x >> y;

	cout << x << " : " << y << " result " << multiple ( x, y )? "кратно":"ни хера не кратно" << endl;

	return  0 ;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36619243
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да... И еще "char answer;" заменить на "bool answer;".
...
Рейтинг: 0 / 0
задача для начинающих
    #36619248
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

интересный прием, реально так можно?
такого еще не изучал, но запомню.
одно но, то есть два но:
автор
error C2563: mismatch in formal parameter list
error C2568: '<<' : unable to resolve function overload
...
Рейтинг: 0 / 0
задача для начинающих
    #36619251
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

и вообще не пойму смысл задачи.
тут видимо что то другое подразумевается... раз нужно использовать тру и фолс..

а иначе автор книги попросил бы чтоб функция мультипл выводила "кратно" и "нихера не кратно
...
Рейтинг: 0 / 0
задача для начинающих
    #36619259
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281а иначе автор книги попросил бы чтоб функция мультипл выводила "кратно" и "нихера не кратно
Это - краеугольyый камень рефакторинга. Ты можешь перенести формирование ответа в функцию multiple. Развивая идею, можно заинлайнить код и сделать всё внутри main. Это вопрос практики. И смыслом это наполняется только при дальнейшем развитии кода. Кстати С/С++ проводит полиморфизацию между int и boolean (или bool). И функцию bool multiple ( int a, int b ) можно записать так.

Код: plaintext
1.
2.
3.
int notMultiple(int a, int b){
 return a%b;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36619283
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Экзотическими словами оперируете судорь.
вернусь к этому посту через некоторое время..

а вообще нравится мне это занятие. главное что это пока в роли увлечения, типа хобби что ли..
знаю что в ближайшем будущем, года два как минимум не смогу реализовывать свои познания,
но интерес тем не менее не уходит.
надоело быть инженером и выполнять поставленные задачи "по шаблону" (так не делай, делай вот так..)

все дело времени. как говорится.
думаю, тема моя будет существовать вечно )
по крайней мере до тех пор, пока у меня будут вопросы. а они будут всегда..
...
Рейтинг: 0 / 0
задача для начинающих
    #36619284
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с праздником вас, господа Джедаи!)
...
Рейтинг: 0 / 0
задача для начинающих
    #36619297
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
иногда я не понимаю автора. (интересно что он курит, вот бы попробовать..)

задача
автор
Напишите программу, которая отображает у левого края экрана сплошной квадрат из звездочек, сторона которого указана целым параметром side . Например, если side равна 4, функция должна отображать следующую картинку:
****
****
****
****

решать ее не хочу. решал подобную, более сложную. см выше в топике.
но, вот что занепонятило меня:
авторМодифицируйте функцию, созданную в упражнении выше, так, чтобы формировать квадрат из любых символов, указанных в символьном параметре fillCharacter . Таким образом, если side равна 5 и fillCharacter есть # , то эта функция должна печатать:
#####
#####
#####
#####
#####
че это за фигня?
я так понимаю функция должна генерить случайные символы ( rand or/and srand ) которыми нужно заполнять квадрат или что?

прошу отвечать как обычно - наводящими вопросами.
спасибо
...
Рейтинг: 0 / 0
задача для начинающих
    #36619318
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, принимать от пользователя ещё и символ, которым надо квадраты рисовать, ась? ;-))
...
Рейтинг: 0 / 0
задача для начинающих
    #36619324
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

формировать из любых символов, указанных в символьном параметре fillCharacter!!!
указанных в параметре, а не пользователем
...
Рейтинг: 0 / 0
задача для начинающих
    #36619432
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281все таки корни программирования уходят в философию.. :)

еще вопросик созрел.
чисто так. интереса ради.

вот
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <iostream>
using namespace std;

char multiple ( int a, int b )
{
	char answer;
	if ( a % b ==  0  )
	answer = true;
	else
		answer = false;
	return answer;
}

странно, в случае true консоль выводит смайлик,
а вот в случае false, консоль после " result " не выводит ни че го.

Тип bool - искусственно введен в С++ не с самого начала, для читаемости.

В С и раннем С++ всегда использовался int. == 0 -false, !=0 - true;
char - это маленький int
Потому операция int rc = a < b даст в результате 0 или 1.

Ну и на выводе смайлик - ascii 1, а ascii 0 пустой символ ))))

Ну и конечно писать надо так
Код: plaintext
1.
2.
3.
4.
5.
6.
char multiple ( int a, int b )  // лучше вернуть int, чтобы компилятору было легче обращаться с родным для процессора типом
{
    return a % b ==  0 ;  

}
// ну не помешает знать про inline, хотя компиляторы сейчас понимают без него
...
Рейтинг: 0 / 0
задача для начинающих
    #36619480
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281иногда я не понимаю автора. (интересно что он курит, вот бы попробовать..)

....

че это за фигня?
я так понимаю функция должна генерить случайные символы ( rand or/and srand ) которыми нужно заполнять квадрат или что?

прошу отвечать как обычно - наводящими вопросами.
спасибо
Непонятно где ты увидел "случайные символы".

Это очень простая задача. Специально для новичков. Ты-б почитал постановки на контестерах. Там вообще чёрт мозг сломает. Даже по тестовому примеру трудно понять что надо сделать.
...
Рейтинг: 0 / 0
задача для начинающих
    #36619870
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо.

еще вопрос.
генерить случайные целые числа в любом диапазоне я уже научился.
а как быть с дробными?

например сгенерить случайные числа в заданном диапазоне с точностью с заданным количеством знаков после запятой?

ну к примеру 1.00 <= n <= 2.00
чтоб рандомизация затрагивала числа вплоть до сотых.

в принципе можно было бы поступить след образом
рандомизовать в диапазоне 100 <= n <= 200
а потом поделить полученный рандом на 100 .

а если я допустим хочу рандомизовать unsigned long?
чтож мне теперь использовать величины большие чем unsigned long?

поэтому я и спрашиваю, есть ли еще какой способ?
...
Рейтинг: 0 / 0
задача для начинающих
    #36619873
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonsantexnik281иногда я не понимаю автора. (интересно что он курит, вот бы попробовать..)

....

че это за фигня?
я так понимаю функция должна генерить случайные символы ( rand or/and srand ) которыми нужно заполнять квадрат или что?

прошу отвечать как обычно - наводящими вопросами.
спасибо
Непонятно где ты увидел "случайные символы".

Это очень простая задача. Специально для новичков. Ты-б почитал постановки на контестерах. Там вообще чёрт мозг сломает. Даже по тестовому примеру трудно понять что надо сделать.
хорошо, как вы представляете себе fillCharacter
что это такое вообще? функция или что?
мне задача непонятна сама
...
Рейтинг: 0 / 0
задача для начинающих
    #36619894
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281хорошо, как вы представляете себе fillCharacter
что это такое вообще? функция или что?
мне задача непонятна сама
Ну... в переводе на нашу мову это должно означать нечто вроде "ЗаполнитьСимволом". В задаче сказано что должен быть квадрат из символов со стороной side. Тогда функция будет выглядеть примерно так.

Код: plaintext
1.
2.
3.
4.
5.
6.
void fillCharacter(int side,char filling)
{
  for(int i= 0 ;i<side;i++){ 
     for(int j= 0 ;j<side;j++) putchar(filling);     
     putchar('\n');
  }
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36619905
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281спасибо.

еще вопрос.
генерить случайные целые числа в любом диапазоне я уже научился.
а как быть с дробными?

например сгенерить случайные числа в заданном диапазоне с точностью с заданным количеством знаков после запятой?

ну к примеру 1.00 <= n <= 2.00
чтоб рандомизация затрагивала числа вплоть до сотых.

в принципе можно было бы поступить след образом
рандомизовать в диапазоне 100 <= n <= 200
а потом поделить полученный рандом на 100 .

а если я допустим хочу рандомизовать unsigned long?
чтож мне теперь использовать величины большие чем unsigned long?

поэтому я и спрашиваю, есть ли еще какой способ?
У тебя определённо слабая математика. От этого половина твоих бед. Если у тебя есть любой генератор случайных чисел (для С++ обычно это линейный конгруэнтный метод ). Например функция rand(). Она выдаёт целые числа в диапазоне 2^32 (unsigned int). Из неё легко получить случайную величину в диапазоне unsigned long. Как это сделать - масса способов от арифметических до машинных. Я предпочту работу с битовыми операциями как наиболее быструю и без потерь точности на округлениях.

Например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
/*
Здесь надо форсировать опции компиллятора чтобы 
он понял что мы работает с 64 битами и операции
сдвига в частности это понимали */
UINT64 rand64()
{
   return ((UINT64)rand()<< 32 )|(UINT64)rand();
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36619919
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

я не про то спрашивал.

существует ли в природе какой то оператор. который работает именно с дробными числами?
или все приходится преобразовывать математически?
...
Рейтинг: 0 / 0
задача для начинающих
    #36619923
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

то есть именно так вы понимаете задачу
пайду стукнусь ап стену
...
Рейтинг: 0 / 0
задача для начинающих
    #36619925
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю что в природе существует. Но если ты попробуешь его формально описать в концепции ДЕЙСТВУЮЩЕГО языка программирования то увидешь что получится унылое говно ерунда.
...
Рейтинг: 0 / 0
задача для начинающих
    #36619928
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

это именно то что я хотел услышать.
...
Рейтинг: 0 / 0
задача для начинающих
    #36621164
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
допустим нужно выдавать разные ответы типа string.
которые генерирует
rand () % x
где x количество уже подготовленных ответов.
кроме как switch можно еще чем нибудь оперировать?
...
Рейтинг: 0 / 0
задача для начинающих
    #36621185
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281где x количество уже подготовленных ответов.кем подготовленных, когда, в каком виде хранятся? расшифруй ))
...
Рейтинг: 0 / 0
задача для начинающих
    #36621265
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
string randomUp () // генерация ответов при верном результате
{
	int i = rand () %  4 ;
	string answer;
	switch ( i )
	{
	case  0 :
		answer = "Ochen' xorowo!\n";
		break;
	case 1:
		answer = "Otlichno!\n";
		break;
	case 2:
		answer = "Chudesnaya rabota!\n";
		break;
	case 3:
		answer = "Prodolzhaite rabotat' v tom zhe duxe!\n";
		break;
	default: // чисто привычки ради. не обязательно
		answer = "Tvoritsya xyi znaet chto!";
		break; // не обязательно. выход из свитч в любом случае
	}
	return answer;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36621298
Микросекунда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
массивы для чего придуманы ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36621318
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микросекундамассивы для чего придуманы ?
+1
...
Рейтинг: 0 / 0
задача для начинающих
    #36621380
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

массивы массивы...

массивы в след главе. а я не хочу забегать фпирёд.

так значит акромя массивов больше никак низзя. понял. :)

еще вопросик.

как можно в main получить доступ к переменной, которая находится в другой функции?
или никак?

например

int func ();
{
int a;
...
...
...
}

int main ()
{
...
...
допустим вот в этом месте мне нужна эта переменная а.
}

как ее туда затащить?

Унарная операция разрешения области действия разрешает обращаться к глобальным переменным.
а как обращаться к переменным которые находятся в других функциях?
...
Рейтинг: 0 / 0
задача для начинающих
    #36621392
Микросекунда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281 пишет:

s> а как обращаться к переменным которые находятся в
s> других функциях?

Никак. А зачем ?
Если переменная объявлена как локальная, то она и нужна только в том блоке, где объявлена. Если же она нужна всем, то она уже не локальная.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36621420
Микросекунда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микросекунда пишет:

М> Если переменная объявлена как локальная, то она и нужна только в том
М> блоке, где объявлена. Если же она нужна всем, то она уже не локальная.

Даже не просто "нужна", а более того: локальная переменная существует только внутри блока, в котором объявлена. По выходу из блока она удаляется (вызывается деструктор). Таким образом, задача получить значение неких локальных переменных, объявленных в других блоках, не решается в принципе.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
задача для начинающих
    #36621427
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пусть лучше скажет зачем нужна. Мы посоветуем решение...
...
Рейтинг: 0 / 0
задача для начинающих
    #36621456
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

да ладно. спасибо. как я и ожидал.

да там.. нужна была одна переменная специфицирующая счетчик кое какой..
придеца все в майн перетащить.
...
Рейтинг: 0 / 0
задача для начинающих
    #36621522
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

слушай. все таки скорее всего fillCharacter это параметр который хранит введенный пользователем символ, ась?
...
Рейтинг: 0 / 0
задача для начинающих
    #36621587
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281mayton,

слушай. все таки скорее всего fillCharacter это параметр который хранит введенный пользователем символ, ась?
Мучают Гамлетовские сомнения? Ты можешь называть её как угодно. Для препода - решительно всё равно как называются переменные.
...
Рейтинг: 0 / 0
задача для начинающих
    #36621648
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonПусть лучше скажет зачем нужна. Мы посоветуем решение...

я пониль. еси нужно вытащить какую нить переменную какого нибудь типа из какой нибудь функции, то нуно ее определить не в функции, а глобально.
...
Рейтинг: 0 / 0
задача для начинающих
    #36621655
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonsantexnik281mayton,

слушай. все таки скорее всего fillCharacter это параметр который хранит введенный пользователем символ, ась?
Мучают Гамлетовские сомнения? Ты можешь называть её как угодно. Для препода - решительно всё равно как называются переменные.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
#include <iostream>
#include <string>
using namespace std;

int side; // сторона квадрата
char symb; // символ заполнения
	
void graff ( int, char );

int main ()
{


	cout << "Enter side: ";
	cin >> side;

	cout << "Enter symb: ";
	cin >> symb;

	graff ( side, symb );

	return  0 ;
}
void graff ( int a, char b )
{
	for ( int i =  1 ; i <= a; i++ )
	{
		cout << "\n";
		for ( int j =  1 ; j <= a; j++ )
			cout << b;
	}
}

локальных переменных с таким же именем нет. значит можно не ставить ::
райт?
...
Рейтинг: 0 / 0
задача для начинающих
    #36621679
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшой рефакторинг. Глобальное прячем внутрь. Это секюрно и концептуально. Есть несколько исключений когда нужны именно глобальные но тебе еще до них далеко (это шаг в мультизадачность и т.п.).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
#include <iostream>
#include <string>
using namespace std;
	
void graff ( int, char );

int main ()
{
        int side; // сторона квадрата
        char symb; // символ заполнения

	cout << "Enter side: ";
	cin >> side;

	cout << "Enter symb: ";
	cin >> symb;

	graff ( side, symb );

	return  0 ;
}
void graff ( int a, char b )
{
	for ( int i =  1 ; i <= a; i++ )
	{
		cout << "\n";
		for ( int j =  1 ; j <= a; j++ )
			cout << b;
	}
}
...
Рейтинг: 0 / 0
задача для начинающих
    #36621681
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
реально автор что то курит.
след задание:
авторИспользуйте подход, развитый в предыдущем упражнении, для создания программы, которая вычерчивает разнообразные формы.

как это понимать?
то есть, как это понимаете вы, читатели?
...
Рейтинг: 0 / 0
задача для начинающих
    #36621683
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

да я изначально и прятал их внутри майн.
а потом вынес их в качестве эксперимента наружу.
...
Рейтинг: 0 / 0
задача для начинающих
    #36621721
Дональдак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, автор предлагает тебе не только рисовать произвольными символами,
но и произвольные фигуры.

Нарисуй еще, например, треугольник или хотя бы прямоугольник.
...
Рейтинг: 0 / 0
задача для начинающих
    #36621789
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дональдак,

ну прямоугольник это просто.
можно задать стонону a ( 1 + rand () % x) и сторону b ( 1 + rand () % y )
не хочу на это время тратить. я итак много времени потерял...
а с треугольниками как?
опять же, равнобедренный?
или произвольный?
я так понимаю должна быть какая то функция, генерирующая именно форму
как быть?
...
Рейтинг: 0 / 0
задача для начинающих
    #36622029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Растеризация треугольника в общем виде. Разбиваем его на объединение двух треугольников с основанием параллельным оси OX. Определяем уравнения двух прямых AB,AC заполняем фигуру ограниченную прямыми множеством отрезков вдоль scanline. Потом аналогично заполняем BC, AC. Для оптимизации скорости используем целочисленно-точные алгоритмы Брезенхейма.
...
Рейтинг: 0 / 0
задача для начинающих
    #36622278
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

приколист блин.
я вернусь к этому сообщению. не скоро
...
Рейтинг: 0 / 0
задача для начинающих
    #36632869
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДОброго времени суток дамы и господа
подскажите почему не получаица?

нужно чтоб переменная а "преобразовалась" в число меньшего разряда.

например из 12345 в 2345

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
int main ()
{
	double a =  12345 ;
	double b;

	a = a % ( pow (  10 , b -  1  ));

}

b это разрядность числа, которую определяет другая функция
но суть не в этом.

почему выскакивает ошибка с2296 и с 2297
C2296: '%' : illegal, left operand has type 'double'
C2297: '%' : illegal, right operand has type 'double'

что не хватает?
...
Рейтинг: 0 / 0
задача для начинающих
    #36632874
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,

Остаток от деления (%) он для целых чисел.
...
Рейтинг: 0 / 0
задача для начинающих
    #36632877
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl,

черт. вот я олень

спасибо
...
Рейтинг: 0 / 0
задача для начинающих
    #36632883
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возникают другие ошибки.
как вообще работает pow ( x, y )?
...
Рейтинг: 0 / 0
задача для начинающих
    #36632948
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

повер не работает с типом int, int.
pow (int, int) ???

как заставить его?
...
Рейтинг: 0 / 0
задача для начинающих
    #36633066
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,

1. int неявно приводится к double
2. явно привести через операторы приведения типов
3. привести текст ошибки
...
Рейтинг: 0 / 0
задача для начинающих
    #36635929
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorych,

static_cast ом можно к дабл возводить.. а к инту как?
...
Рейтинг: 0 / 0
задача для начинающих
    #36635967
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281,
Код: plaintext
1.
2.
3.
double pi =  3 . 14 ;
int p = pi;
int i = static_cast< int >( pi );
выбирай на вкус, в чём проблема у тебя, мне лично не понятно.
...
Рейтинг: 0 / 0
задача для начинающих
    #36635971
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281egorych,

static_cast ом можно к дабл возводить.. а к инту как?почему статик_кастом к инту нельзя приводить, можешь рассказать?
...
Рейтинг: 0 / 0
задача для начинающих
    #36639468
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не приводица. пробовал
...
Рейтинг: 0 / 0
задача для начинающих
    #36639496
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281, текст ошибки?

ЗЫ почему у меня вот приводицо, интересно?
...
Рейтинг: 0 / 0
задача для начинающих
    #36647703
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Егорыч. с тем вопросом разобрался.
ща перешел к массивам. изучаю себе неспеша, значит, а тут такое вот. несчастье.
в чем проблема?
...
Рейтинг: 0 / 0
задача для начинающих
    #36647711
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя в самой vs ошибок нет
1>------ Build started: Project: 7_05, Configuration: Debug Win32 ------
1>Linking...
1>Embedding manifest...
1>Build log was saved at "file://d:\Documents\Visual Studio 2008\Projects\my projects\lesson\7_05\Debug\BuildLog.htm"
1>7_05 - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
...
Рейтинг: 0 / 0
задача для начинающих
    #36647717
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все понял. число повторений..
...
Рейтинг: 0 / 0
задача для начинающих
    #36647807
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
santexnik281возникают другие ошибки.
как вообще работает pow ( x, y )?
Если pow определён в заголовочнике как

Код: plaintext
double pow(double a,double b)

то это приближённая формула возведения числа а в степень b. Ввиду того что b может быть дробным, используется известная формула математики



Из-за того что используется численный метод (сходящийся ряд Тейлора для расчёта логарифма), результат не обязан быть точным на всём диапазоне веществ. чисел.

Данный метод нельзя использовать в криптографии например. Следует поискать целочисленные имплементации.
...
Рейтинг: 0 / 0
задача для начинающих
    #36664475
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
есть вопрос:?
можно ли как то вычислять время выполнения консольного приложения.
это так.. чисто из соображений эффективности.

можно ли это время засечь штатно, компилятором? (использую VC 2008 )
или как то нужно внести код в начало и в конец проги?
...
Рейтинг: 0 / 0
задача для начинающих
    #36664653
Дональдак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все можно. :-)
Вот тема была недавно.
...
Рейтинг: 0 / 0
задача для начинающих
    #36664771
santexnik281
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дональдак,

круто)
...
Рейтинг: 0 / 0
задача для начинающих
    #36664808
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будь осторожен! Чистое время работы приложения очень трудно получить в мультизадачной среде. Особенно если приложение работает менее чем 3-5 сек.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
задача для начинающих
    #37933780
Чуев Д.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

На С у меня получилось вот так:

#include <stdio.h>

int main(){
int number, count = 0;
printf("Введите длину стороны квадрата (целое число): ");
scanf("%d", &number);
while(count < number){
int count1 = 0;
while(count1 < number){
if (count == 0)
printf("*");
else if (count == number-1)
printf("*");
else
printf("%s", count1%(number-1) ? " ": "*");
++count1;
}
printf("\n");
++count;
}
return 0;
}
...
Рейтинг: 0 / 0
задача для начинающих
    #38076884
Dmitriy_sokolov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
santexnik281,

#include<iostream>
using namespace std;



int main()
{
int x;int Xmax=0;
for(int i=0;i<10;++i)
{
cin>> x;
if(x>Xmax)
Xmax=x;
}
cout<<"vot samoe balshoe: "<< Xmax <<endl;
cin.get();
cin.get();
return 0;
}
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
задача для начинающих
    #38749518
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте я тоже начал учить язык, только не си++, а просто си) и сейчас у меня тоже вот такое задание как когда-то было у автора этой темы на самой первой страницы этой теме вот это -
авторзадание: Напишите программу, которая считывает пять целых чисел, определяет и печатает наибольшее и наименьшее значение из них. Используйте только те приемы программирования которые были изучены в этой главе.

Вопрос в принципе тот же? как всё это дело делать с помощью, только if потому как там написано используйте только те методы которые мы проходили, а проходили там собственно ещё мало чего и только if без даже else или ещё чего-то.. Помогите разобраться пожалуйста, я никогда не изучал языки программирования поэтому многих вещей могу не знать которые программистам кажутся в полне возможно очевидными.. и спросить соответственно не у кого.. вот приходится как-то в инете искать и т.д... подскажите что и как пожалуйста?
...
Рейтинг: 0 / 0
задача для начинающих
    #38749533
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava1500как всё это дело делать с помощью, только if потому как там написано
используйте только те методы которые мы проходили, а проходили там собственно ещё мало
чего и только if без даже else или ещё чего-то..
Ну так подожди немного, завтра пройдёте типы данных и for.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача для начинающих
    #38749537
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На первом уроке мы будем делать из напильника и большой отвертки маленькую отвертку (С)
...
Рейтинг: 0 / 0
задача для начинающих
    #38749541
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

Ясно, спасибо)
...
Рейтинг: 0 / 0
задача для начинающих
    #38749670
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё оказалось проще чем я думал) вот оказывается как можно написать на Си:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#include <stdio.h>
int main()
{
     int a, b, c, d, e, min, max;
     scanf("%d %d %d %d %d", &a, &b, &c, &d, &e);
     max = a;
     min = a;
     if (b < min) min = b;
     if (b > max) max = b;
     if (c < min) min = c;
     if (c > max) max = c;
     if (d < min) min = d;
     if (d > max) max = d;
     if (e < min) min = e;
     if (e > max) max = e;
 
     printf("min = %d, max = % d", min, max);
     return 0;
}


Просто интересно было как это сделать чисто используя if как говорилось в самой книге вот оказывается как)) а я if"ы" плодил и выскакивало куча строк на экране))
...
Рейтинг: 0 / 0
задача для начинающих
    #38749687
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava1500Всё оказалось проще чем я думал) вот оказывается как можно написать на Си:

теперь подумай как можно оптимизировать этот код :)
...
Рейтинг: 0 / 0
задача для начинающих
    #38749750
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

что значит оптимизировать? не понял)) по другому написать как-то или что???
...
Рейтинг: 0 / 0
задача для начинающих
    #38749890
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть количество строк исходного текста и (примерное) число операций которое должен выполнить процессор.
Оптимизация - процесс (априорного) уменьшения второго показателя. Иногда удаётся при одновременном уменьшении первого
...
Рейтинг: 0 / 0
задача для начинающих
    #38749908
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПопробуй как-то вот так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#include <iostream>
using namespace std;

bool multiple ( int a, int b )
{
	char answer;
	if ( a % b == 0 )
	answer = true;
	else
		answer = false;
	return answer;
}

int main ()
{
	int x, y;
	cout << "Enter two integers: ";
	cin >> x >> y;

	cout << x << " : " << y << " result " << multiple ( x, y )? "кратно":"ни хера не кратно" << endl;

	return 0;
}



весёлые текст сообщений:D, остальные 8 страниц не стал читать, так и не понял что тут обсуждали так долго.

PS
только функцию бы вот так написал )
Код: plaintext
1.
2.
3.
4.
bool multiple ( int a, int b )
{
	return ( a % b == 0 );
}



прошу прощение за оффтоп.
...
Рейтинг: 0 / 0
задача для начинающих
    #38749932
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava1500Dima T,

что значит оптимизировать? не понял)) по другому написать как-то или что???
Обойти выполнение заведомо ненужных операций.

Если min <= max то может быть одновременно x < min и x > max ? А у тебя всегда обе проверки выполняются.

PS не заметил что вы else еще не проходили, тогда нечем оптимизировать :)
...
Рейтинг: 0 / 0
задача для начинающих
    #38750104
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Напишите пожалуйста, про что вы имеете в виду, просто здесь же надо сравнивать все значения чисел введённые с клавиатуры, а если я добавлю else, то сравнения в каком-то моменте может же прикатится, если выполнится условие, что называется истинна или я ошибаюсь?)
...
Рейтинг: 0 / 0
задача для начинающих
    #38750199
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tтогда нечем оптимизировать :)
Есть чем. Это из класса задач "найти самый тяжёлый предмет из Х за N взвешиваний".
Решается за log2(N) операций.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
задача для начинающих
    #38752757
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте дорогие форумчане, никак не могу понять как решать задачу:
Из за высокой цены на бензин водители интересуются пробегом своих автомобилей. Некий водитель отследил несколько заправок своего автомобиля,
записывая пройденное расстояние в милях и объём каждой заправки в галлонах. Разработайте программу на С для ввода пройденного расстояния в милях
и объёма каждой заправки в галлонах. Программа должна вычислять и отображать на экране количество пройденных миль на галлон для каждой заправки автомобиля.
После обработки всей входной информации программа должна вычислить и вывести общее количество пройденных миль на галлон по всем заправкам.

Я видел её ответ на форуме другом, но интересует другое не просто ответ а понять что к чему.. вот я допустим ввожу в программу расход бензина это имеется в виду расход на 100 км? или миль? не понятно.. ну допустим цифра 7, затем мне нужно ввести расстояние допустим 30 и нужно делить расстояние на бензин так же?! и потом в том решение человек прибавляет переменную которая ровна 1??? вообще не пойму зачем это? А ещё вопрос, а как рассчитать вот допустим мне известен расход на 100 км предположим 8 литров, проехал я например 50 км и я хочу узнать сколько я истратил бензина на это расстояние можете помочь разобраться пожалуйста? что там надо надо на что делить и т.д.?
...
Рейтинг: 0 / 0
задача для начинающих
    #38752787
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava1500,

Ты за рулем никогда не сидел?
Заезжаешь на заправку, заливаешь полный бак, записываешь пробег. Это стартовая точка.
Ездишь пока бензин не кончится. Заезжаешь на заправку заливаешь сколько-то в бак. На чеке будет написано сколько ты залил. Записываешь пробег. Это точка номер 1.
Ездишь пока бензин не кончится. Заезжаешь на заправку заливаешь сколько-то в бак. На чеке будет написано сколько ты залил. Записываешь пробег. Это точка номер 2.
Ездишь пока бензин не кончится. Заезжаешь на заправку заливаешь сколько-то в бак. На чеке будет написано сколько ты залил. Записываешь пробег. Это точка номер 3.
И так продолжаешь пока не вспомнишь зачем ты этим занимаешься....
Потом собираешь все чеки - суммируешь сколько ты залил бензина начиная с чека номер 1. Берешь пробег записанный на последней точке, отнимаешь от него стартовый пробег - это сколько ты всего проехал. Делишь одно на другое и получаешь искомый mpg.
Все просто и легко.
...
Рейтинг: 0 / 0
задача для начинающих
    #38752845
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Slava1500, прежде чем что-то писать надо придумать алгоритм, если не получается сделать это в уме - берем ручку, тетрадку и изобретаем. Когда алгоритм готов - пишем код на том языке, на котором хочется. Для начала попробуй решить свою задачу экселем. White Owl алгоритм расписал.
...
Рейтинг: 0 / 0
задача для начинающих
    #38752926
Slava1500
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, что-то совсем туго даётся мне... язык вроде нравится и само программирование меня уже давно привлекает, но как блин дохожу до самостоятельных задач, то всё ступор (я в школе плохо учился ещё признаюсь..), не знаю как быть например знаю как примерно это делать на самом языке Си, но не знаю как саму задачу решить то есть не понимаю, что на что делить.. как эту тему подтянуть тоже не пойму с каких учебников? да и сколько это времени надо, что же получается придётся тогда программирование отложить на задний план пока с математикой не наладится?! А ещё нужно знать же английский! а я его знаю на начальном уровне. У меня вопрос можно ли эти три направления развивать одновременно? Или будет мало толку? или в начале английский с математикой, а потом программирование?
...
Рейтинг: 0 / 0
задача для начинающих
    #38752989
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начни с алгебры и геометрии. Учебники школьного курса во всех книжных магазинах.
Без английского можно легко прожить.
...
Рейтинг: 0 / 0
задача для начинающих
    #38753049
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С новым годом, дорогие некромансеры.
...
Рейтинг: 0 / 0
задача для начинающих
    #38773366
coffee998
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#include <iostream>

using namespace std;

int main()
{  
    int a,b;
    cin>>a;
    while(a>0){ 
           b=a%10; 
           a=a/10; 
           cout<<b<<endl;
    } 
    system("pause");
    return 0;
}



i eto vse
hotj i 10-znacnoe cislo =)
...
Рейтинг: 0 / 0
213 сообщений из 213, показаны все 9 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / задача для начинающих
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]