powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / задача для начинающих
25 сообщений из 213, страница 6 из 9
задача для начинающих
    #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
25 сообщений из 213, страница 6 из 9
Форумы / C++ [игнор отключен] [закрыт для гостей] / задача для начинающих
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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