Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
изучаю С++ по Дейтелу. оч хорошая книга. но заставила задуматься. в общем так. в конце каждой главы есть задания. которые нужно решить. ответов нет. пробежал несколько глав. забежал немного вперед. а теперь изучаю досканально каждую главу. подробно и т.д. в конце второй главы ( в домашнем задании) возник вопрос. который решить не могу. авторзадание: Напишите программу, которая считывает пять целых чисел, определяет и печатает наибольшее и наименьшее значение из них. Используйте только те приемы программирования которые были изучены в этой главе . то, что выделенно. меня особенно настораживает. я знаю как решить эту задачу другими методами, которые будут описываться в следующих главах. но в этой главе не было даже if-else. в этой главе были только операции <, >, =, -, +, *, /, и единственное if (без else) ну и cout и cin разумеется. то есть два числа еще можно сравнить. но тут их пять! может быть ошибка. не в той главе поставили задачу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 11:39 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
santexnik281 wrote: > изучаю С++ по Дейтелу. оч хорошая книга. но заставила задуматься. > в общем так. в конце каждой главы есть задания. которые нужно решить. > ответов нет. Это же задания, а не вопросы. Одну и ту же программу можно по-разному написать. > задание: Напишите программу, которая считывает пять целых чисел, > определяет и печатает наибольшее и наименьшее значение из них. > *Используйте только те приемы программирования которые были изучены в > этой главе*. Какие это приёмы ? Массивы STL уже были изучены ? > но в этой главе не было даже if-else. > в этой главе были только операции <, >, =, -, +, *, /, и единственное if > (без else) > ну и cout и cin разумеется. Вообще-то есть функция max (и в STL тоже), ну и операцию ? : наверное в этом разделе тоже давали. Раз уж это раздел про операции. А через ? maximum пишется просто. Ну и ещё тебе может быть понадобится массив, но можно и без массива: достаточно иметь два числа, большее и меньшее, и на ходу после ввода их вычислять. Наветное ещё нужен цикл while, и выход из него по if. > то есть два числа еще можно сравнить. но тут их пять! > может быть ошибка. не в той главе поставили задачу? Не думаю. Вообще, Дейтел старший -- профессиональный преподаватель университета, и его книга как раз очень хороша тем, что она методически выверина. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 12:01 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
santexnik281, вперед не надо бегать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 12:04 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
santexnik281то есть два числа еще можно сравнить. но тут их пять! может быть ошибка. не в той главе поставили задачу? С помощью перечисленных операций вполне можно выполнить заданное. Заведите две переменные - для мин. и макс. значений. Заполните обе первым числом. По мере ввода остальных чисел обновляйте каждую из них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 12:06 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
blinded и Anatoly Moskovsky спасибо за код. но достаточно было бы напомнить мне о том, что переменная на то она и называется переменной. и ей присущ процесс разрушения... все понял. у остальных буду по позже спрашивать. слижком уж намудрили. всем спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 12:23 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
#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; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 12:50 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
и еще. заключительное задание к этой главе. все уже решил. посмотрите пожалуйста. не слижком ли я намудрил с кодом? авторусловие: Напишите программу, которая выводит число из пяти цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга с тремя пробелами между ними. может быть можно как то легче написать? если учитывать только то. что решение должно быть наипростейшим. вторая глава как ни как автор#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; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2010, 13:38 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, подскажите пожалуйста начинающему чайнику. как я уже писал, занимаюсь по Дейтелу. в его книге раннее введение в классы. в принципе, как строить классы я уже понял. у меня другой вопрос, вот задача: авторСоздайте класс с именем 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. далее 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. и main Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. вопрос вот в чем. почему диапазоны не работают? :-( то есть неправильно инициализируется. при начальном введении данных в main напомню что было изучение только if , без всяких примочек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 23:09 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
santexnik281 ... вопрос вот в чем. почему диапазоны не работают? :-( то есть неправильно инициализируется. при начальном введении данных в main напомню что было изучение только if , без всяких примочек.А где у Вас диапазоны, которые не работают? Если Вы имеете в виду строки типа этой: santexnik281 ... if ( dataYear >= 1, dataYear <= 3000 ) ...то глубоко ошибаетесь. Читайте про оператор "," и оператор "&&". P.S. Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2010, 23:28 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
avb1003Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.и неплохо бы автору ещё изучить тег src для размещения кода в форуме. Модератор: Автор, egorych прав на все 100. Тег SRC -- и твой код будет чистым и шелковистым. Модератор: egorych, ты в комодераторы напрашиваешься? Можно устроить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 02:16 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 02:20 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
Код: 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. Все getter-ы должны быть CONST. displayData тоже должна быть CONST. Код: plaintext 1. 2. 3. 4. 5. int year; -- согласен. int day; int month; -- нет. Месяц может принимать значения от 1 до 12. Одного беззнакового байта будет достаточно. Итого -- unsigned char. День может принимать значения от 1 до 31, также будет достаточно одного беззнакового байта. Итого -- unsigned char ОБА. Соответственно, нужно поменять типы параметров конструктора и геттеров/сеттеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 10:16 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
У тебя кстати почему-то день может быть только до 30. if ( dataDay >= 1, dataDay <= 30 ) Это как-то странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 10:21 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
Это Код: plaintext надо записывать так: Код: plaintext 1. 2. или так, если включишь в свою программу специальный заголовок (не помню уже какой) Код: plaintext 1. 2. Бинарная инфиксная Операция , в С и С++ вычисляет свои левый и правый операнды и возвращает значение правого. Т.е. в твоём Код: plaintext первая проверка будет просто игнорироваться. (P.S. а фантазия у тебя богатая !) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 10:25 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
avb1003 P.S. Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем. Эту правильную книгу нужно читать именно в том порядке, в котором она написана . Как автор и делает (надеюсь). Он в этом молодец, а ошибки -- ну кто ж их не делает. Зато теперь будет на всю жизнь знать, что такое оператор , ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 10:31 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
egorychavb1003Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем.и неплохо бы автору ещё изучить тег src для размещения кода в форуме. Модератор: Автор, egorych прав на все 100. Тег SRC -- и твой код будет чистым и шелковистым. Модератор: egorych, ты в комодераторы напрашиваешься? Можно устроить ... Спасибо за помощ, но еще раз хочу как бы уточнить ситуацию, я понимаю все прелести С++ относительно того, что одну и ту же задачу можно решить разными методами. Но в этом то и вся прелесть, что изучить нужно всё, начиная с простейших методов. (как гласит одна мудрая китайская пословица "Тот кто шагает твердо - далеко пойдет на своем пути" Как и учат в этой книге. Вон, поглядите простой пример в начале этого топика. Нашлось ведь решение очень простое, согласно пройденной тематике. так вот к чему я это все написал SRC еще не был изучен. egorych Код: plaintext 1. 2. 3. 4. 5. 6. 7. 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. Все getter-ы должны быть CONST. displayData тоже должна быть CONST. Код: plaintext 1. 2. 3. 4. 5. int year; -- согласен. int day; int month; -- нет. Месяц может принимать значения от 1 до 12. Одного беззнакового байта будет достаточно. Итого -- unsigned char. День может принимать значения от 1 до 31, также будет достаточно одного беззнакового байта. Итого -- unsigned char ОБА. Соответственно, нужно поменять типы параметров конструктора и геттеров/сеттеров. интересно конечно, но и CONST еще не было в книжке. p/s/ быть может выложить оглавление книги в конце концов? MasterZivЭто Код: plaintext надо записывать так: Код: plaintext 1. 2. или так, если включишь в свою программу специальный заголовок (не помню уже какой) Код: plaintext 1. 2. Бинарная инфиксная Операция , в С и С++ вычисляет свои левый и правый операнды и возвращает значение правого. Т.е. в твоём Код: plaintext первая проверка будет просто игнорироваться. (P.S. а фантазия у тебя богатая !) согласен. но логическое ||или еще не изучали( еще раз спасибо всем, сейчас постараюсь написать оглавление книги... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 13:17 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
santexnik281 wrote: > У тебя кстати почему-то день может быть только до 30. > я понимаю, что это частные случаи, и программа несколько кривая, но тут > ведь задача стоит не в том, чтоб написать программу которая будет > эталоном всемирной даты. Безусловно. Просто странно, что ты именно так мыслишь. Почему 30 ? почему не 42 например ? > интересно конечно, но и *CONST* еще не было в книжке. > *p/s/ быть может выложить оглавление книги в конце концов?* Ну, значит вспомни об этом, когда будеш изучать. > согласен. но логическое *||или* еще не изучали( Ага, || не изучали, а , уже изучали. Не верю. Ну а если не изучали, то нужно было делать два вложенных if-а. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 13:37 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
MasterZiv, логическое или еще не изучали. это сто пудово. в след главе. а вот с вложенным if спасибо. ща попробую) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 13:47 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
Модератор egorych, ты в комодераторы напрашиваешься? Можно устроить ... чур меня, чур. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 14:05 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
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"? где тут цобака зарыта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 14:20 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
Вот я олень начинающий. всё, не надо подсказывать. понял) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:06 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
MasterZivavb1003 P.S. Не все книги и не всегда нужно читать в том порядке, каком они написаны. А некоторые книги не нужно читать совсем. Эту правильную книгу нужно читать именно в том порядке, в котором она написана . Как автор и делает (надеюсь). Он в этом молодец, а ошибки -- ну кто ж их не делает. Зато теперь будет на всю жизнь знать, что такое оператор , Как нужно читать - зависит от поставленной цели. Если цель заслужить похвалу -"молодец", от тех, кто считает что нужно читать все подряд, то это одно. Если цель изучить/освоить язык программирования, то это другое. Не читал и даже не видел "эту правильную книгу", но увидев "неправильную" программу "правильного" читателя этой книги, просто предлоположил, что порядок предложенных задач плохо соответсвует порядку подачи материала. Или же автор книги пытается реализовать своеобразую "дедовщину" в программирование. Вместо того, что бы писать, как все нормальные люди: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:17 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
avb1003, да все просто. я уже написал. что хочу последовательно понять ВСЕ. и решать задачи ИМЕННО ИЗУЧЕННЫМИ методами, не забегая вперед. а книга. книга очень хорошая кстати, это я торможу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:24 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
avb1003, и else которую вы предложили, изучается в след главе.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 15:26 |
|
||
|
задача для начинающих
|
|||
|---|---|---|---|
|
#18+
avb1003 wrote: > это одно. Если цель изучить/освоить язык программирования, то это > другое. Блин, цель одна -- изучить язык С++. И для этого учебник по языку С++, составленный профессиональным и успешным преподавателем высшей школы и методически выверенный, нужно изучать от начала к концу. > подачи материала. Или же автор книги пытается реализовать своеобразую > "дедовщину" в программирование. Вместо того, что бы писать, как все > нормальные люди: Я не знаю к какому разделу это задание и какова его цель. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2010, 16:43 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=36560875&tid=2019278]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 192ms |

| 0 / 0 |
