![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
** Создано: 30/10/2007
Автор: Коррекции: Благодарности: wils0n, DjoNIK, FREEDEV, Kuvaldis, Lazin, Optimus =2, SergeCpp
Суть проги - в зависимости от числа мы добавляем к нему слово "рубль" в правильном склонении. Вопрос следующий: можно ли эту задачу было реализовать покороче, не так как у меня. Это сообщение отредактировал(а) Ufyljy - 30.10.2007, 02:10 |
|||
|
||||
| archimed7592 |
|
||||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Ну, начнём с того, что она неправильно работает
Насчёт короче... Как-то странно(я бы даже сказал ужасно) у тебя логика сделана По сути вот это то же самое, только намного понятней любому программисту:
Непонятно зачем нужен был вложенный do..while, зачем нужна переменная b, зачем нужно было делать управление работой через i... Добавлено через 12 минут и 23 секунды
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||||
|
|||||||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
А у меня логики нету, зато классно.. вопрос стиля
За прогу огромное спасибо. > По сути вот это то же самое, только намного понятней любому программисту Нет, не надо утрировать)) я поимел ввиду то, что способ реализации этой проги совершенно другой, а не просто подкорректить всякие b=b+1; Это сообщение отредактировал(а) Ufyljy - 30.10.2007, 09:06 |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Я думаю, что это плохой стиль. Учись писать программы, понятные не одному тебе.
Я бы сказал, что у меня способ реализации понятный, а у тебя, чтобы враг не догадался(если бы там было около тысячи подобных строк, то точно никто не догадается "как ЭТО может работать"). -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Я и не спорю, что у тя все гуд.
Нет-нет, смысл в том, чтобы задача была реализована другим спосом. Например, через символьный тип, другой подход к задаче. |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Вгляделся в твой исходный код, и понял, что я мало чего понял в этом коде.
1) int teen = h >= 11 && h <= 19; - вообще такую конструкцию я вижу впервые; ты переменной teen присваиваешь значение переменной h, которая в диапазоне от 11 до 19? Другими словами, переменной teen присваиваются те значения h, которые входят в промежуток от 11 до 19? 2) const char *w=""; - непонятно const перед char, и указатель перед w 3) while(1) - это "бесконечное пока"? Можешь объяснить это типа фокус, фишка? |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Ufyljy,
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| archimed7592 |
|
||||||||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
У меня такой же подход, как и у тебя, только короче и понятнее. Нет. Равносильно следующему:
Или этому:
Или этому(в твоём стиле
Ну и где понятней?
Если язык Си, то IIRC, const будет выдавать только предупреждения. В С++ попытка изменить значение по указателю на константу приведёт к ошибке компиляции:
А for(;;) - это что фокус, фишка? Вот while(1) - то же самое. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||||||||
|
|||||||||||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
2 MAKCim: Че?
2 Архимед: что за оператор "?" и 1 - здесь истина, 0 - ложно? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Через плечо. RTFM! Тринарный условный оператор. Тебе помог мой ответ? Нет? Тогда RTFM! 0 - ложь. НЕ 0 - истина. Не помогло? RTFM! -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
Ufyljy, если будешь задавать вопросы вроде
тебя самого склонять будут |
|||
|
||||
| FREEDEV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: нет Всего: 3 |
опять все закончилось RTFMом
Ufyljy, это все концепции С++, которые очень полезно знать, они действительно сделают твой код более читабельным. Пока можешь особо не заморачиваться, главное чтоб в итоге твои программы работали, со временем все поймешь. Ну, и нужно больше читать уже готовых исходников. --------------------
Microsoft Windows Visla © |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
FREEDEV, не смеши мои тапочки. Тут нет ни одной концепции(как в общем, так и С++ в частности). Тут есть базовые(очень базовые) основы языка Си. Человек, задающий подобные вопросы с тем же успехом мог бы спросить "а что такое число?" "а кто я?" "а где я?" "а что я здесь делаю?" "а как зовут мою кошку?" и т.д.
А насчёт "можешь не заморачиваться" - нет, ну конечно можно не заморачиваться, но, боюсь, что с таким алгоритмическим стилем программист из него не получится, а если и получится, то такой, который проверяет булеву переменную на истину в лучших традициях индусов(БОР) if (b.toString().Length < 5) -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| FREEDEV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: нет Всего: 3 |
Может так оно и есть, но каждый с чего-то начинал. Нельзя сесть и начать писать "правильно", к этому нужно прийти. Ну не знает он оператора "?", - познакомиться позже, главное было б желание.
--------------------
Microsoft Windows Visla © |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Нет, мне не понятно, что от меня хотел MAKCim.
(он даже модератор, что меня очень страшит с его злым смайликом; если я задаю тупые вопросы - это пройдет, поверьте, без причины я не стану спрашивать) К сожалению у меня в методичке нету оператора "?", поэтому и спрашиваю > Человек, задающий подобные вопросы с тем же успехом мог бы спросить "а что такое число?" "а кто я?" "а где я?" "а что я здесь делаю?" "а как зовут мою кошку?" и т.д. Люди, поймите, все относительно. Везде разные системы отчета. > Тринарный условный оператор А чем отличается унарный оператор от тринарного? |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Он тебе нарисовал смайлик под названием "RTFM". Это равносильно тому, что сказать, иди ка ты, мальчик, книжку почитай.
Значит он тебе не нужен. Что за чушь? Почти любой человек, приходящий на этот форум либо имеет определённую подготовку в вопросе, либо вопросов не задаёт, либо отправляется читать книгу. Здесь не центр обучения программированию... Разве это не понятно? Количеством операндов. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
количеством операндов: унарные: ++x; !y; *z; бинарные: x+y; y-z; z[x]; тернарный (почему то у нас так называли) в с++ только один: x ? y : z; он сказал rtfm, и правильно сделал, в VS ответ на твой вопрос можно получить поставив курсор на знак вопроса (в тернарной операции) и нажав F1, или забить в гугле "операции в с++" или еще куева туча вариантов, а ты просишь здесь перепечатать тебе учебник. Вообщем создается впечатление, что кое кому здесь просто влом читать мануалы - отсюда такая реакция. у тебя гугл есть, можно выкинуть методичку |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
* ушел учить стандарт С++
> Что за чушь? Это не чушь Это сообщение отредактировал(а) Ufyljy - 31.10.2007, 16:09 |
|||
|
||||
| FiMa1 |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Ufyljy, это неизвестно никому, даже archimed7592. Он просто очепяталсо. Речь шла о тернарном операторе. Вот что о нем написали Керган и Ритчи:
А что бы не приходилось вот так копипастить классиков, тебя и отослали читать доки.
Не стоит, начни с обычного самоучителя, а сомнительную свою методичку, в которой даже нет упоминания про этот оператор, употреби по назначению (надеюсь бумага достаточно мягкая). Это сообщение отредактировал(а) FiMa1 - 31.10.2007, 16:25 |
||||||||||||
|
|||||||||||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ответы на ваши вопросы есть в любых учебниках по С вот я и направил вас читать эти учебники Добавлено через 1 минуту и 16 секунд -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Вот даже как... Так это С++ был Ты бы сначала с языком ознакомился, а потом уже за Стандарт брался. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
Благодарности: wils0n, DjoNIK, FREEDEV, Kuvaldis, Lazin, Optimus =2, SergeCpp, archimed7592 =5, FiMa1 =2, zkv, bsa, Ln78
Теперь и склоняет отрицательные значения, это кому надо. Вообще очень благодарен вам всем за то, что откликнулисьсь Хоть и кто-то( может стебаться, юродстововать, утрировать надо мной скоко угодно, мне пох, главное научиться) |
|||
|
||||
| FiMa1 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Позвольте несколько уточняющих вопросов и небольших замечаний...
Это сообщение отредактировал(а) FiMa1 - 1.11.2007, 10:27 |
||||||
|
|||||||
| Ufyljy |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 5.10.2007 Репутация: нет Всего: 1 |
> Как конечный пользователь узнает про магическое число -500 - ключ завершения работы программы?
Да. Конечный пользователь не узнает, вообще-то народ интересуют исходники, я думаю, в принципе ясно. > Где-то переопределен оператор or? В смысле п е р е о п р е д е л е н? > Нет проверки ввода (программа упадет при вводе символьных данных). Хорошо, я этим займусь немедленно Это сообщение отредактировал(а) Ufyljy - 1.11.2007, 11:17 |
|||
|
||||
| FiMa1 |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Я чего-то туплю или в Си действительно есть оператор or?
Нет если, конечно, сделать так:
Вот я и говорю где-то переопределен оператор or или я морально устарел... |
||||||||
|
|||||||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
||||
|
||||
| FiMa1 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 408 Регистрация: 23.9.2006 Репутация: 5 Всего: 6 |
Большое спасибо! Вопрос снят.
Согласен, коробит, но это зависит от того с чего человек начал привыкать. А, вообще, для обычных людей OR вещь более информативная чем ||, так что определенные плюсы есть [оффтоп:] Я вот на днях узнал, занимаясь, по просьбе, написанием макроса для MS Excel, что в VB индексация массивов начинается с 1, много плакал... |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |