|
|
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Пусть во входном потоке находится последовательность символов, заканчивающаяся точкой (кодировка ASCII). Вывести в выходной поток последовательность символов, измененную следующим образом: 1) удалить все комбинации символов the; 2) оставить только те группы цифр, которые составлены из подряд идущих цифр с возрастающими значениями; все остальные цифры и группы цифр удалить ( другие символы копировать в выходной поток без изменения); Необходимо использовать только функции чтения/записи символов в поток (putchar, getchar,getch,getche). Предполагается, что задачи можно выполнить без массивов и указателей. Но всё обстоит так, что нам необходимо запоминать предыдущие последовательности символов и пропускать их, если, например, последовательность подряд идущих цифр нарушается. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2014, 11:42 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Тут нужно максимум 2 переменные для запоминания двух предыдущих символов. Никаких массивов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2014, 13:42 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Я вроде так и делал. В задании не сказано, должны ли последовательности цифр отстоять друг от друга. Ну, например, в поток вводятся символы 0123458745789. После первой 5 порядок нарушается, но неизвестно, значит ли это, что такую последовательность нужно исключить целиком. Получается, что все предыдущие символы необходимо запоминать, чтобы в случае, когда последовательность удовлетворяет условию, вывести её. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2014, 16:04 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Winplex, если они идут подряд, зачем запоминать их все? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2014, 16:22 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Winplex, формулировка задания действительно неоднозначна и позволяет понять его минимум тремя разными способами. Но вне зависимости от этого подумайте об одном простом факте: любую возрастающую последовательность цифр можно сохранить в виде одной логической и одной интовой переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2014, 17:12 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
хватит и десяти бит, т.е. одного word ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2014, 18:02 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
softwarerWinplex, формулировка задания действительно неоднозначна и позволяет понять его минимум тремя разными способами. Но вне зависимости от этого подумайте об одном простом факте: любую возрастающую последовательность цифр можно сохранить в виде одной логической и одной интовой переменных. имеется ввиду упаковка этих самых цифр в один int? Нет, не думаю, что в задании такое подразумевается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2014, 11:49 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahovесли они идут подряд, зачем запоминать их все? "Возрастающие" != "монотонно возрастающие". В примере последовательность цифр возрастает до 8, и только потом идёт падение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2014, 15:27 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
А если вспомнить про такое понятие как рекурсия, то дополнительные переменные не нужны (ну то есть данные сохраняться конечно будут, но неявно... в стеке). А вообще, автор похоже заморачивается, так как формулировка задачи явно для начинающих... и какие там извороты нужны тогда? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2014, 16:42 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovAleksandr Sharahovесли они идут подряд, зачем запоминать их все? "Возрастающие" != "монотонно возрастающие". В примере последовательность цифр возрастает до 8, и только потом идёт падение. А еще "возрастающие" != "убывающие". Я, вроде, нигде не просил что-то мне объяснить :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2014, 20:06 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
softwarer, я тут раскинул мозгом в метро, вроде одного integer должно хватить вообще на всю программу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 09:30 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
это не самый минимум по памяти для переменных, можно еще по крайней мере 10 бит сэкономить, но ценой еще большего ущерба понятности Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:16 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, в Сях есть битовые структуры. Самое оно для такой задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:17 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
1) удалить все комбинации символов the; Для этого нужно запомнить макс. 3 идущих подряд символа. 2) оставить только те группы цифр, которые составлены из подряд идущих цифр с возрастающими значениями; все остальные цифры и группы цифр удалить ( другие символы копировать в выходной поток без изменения); тут речь идёт о неопределённо длинной последовательности из цифр, которые надо обрабатывать, т.е. о последовательности цифр бесконечной длинны. Для её хранения нужна память, тут никуда не денешься. Можно это обрабатывать в два прохода чтения исходного потока, но не понятно, можно ли это делать, и тогда нужна память для сохранения смещений цифровых групп. Так что требования: авторПредполагается, что задачи можно выполнить без массивов и указателей. невыполнимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:19 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
MasterZivтут речь идёт о неопределённо длинной последовательности из цифр, которые надо обрабатывать, Неверно. Попробуйте построить максимально возможную последовательность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:29 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
MasterZivДля этого нужно запомнить макс. 3 идущих подряд символа. Для этого нужно максимум два флага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:30 |
|
||
|
Задачи на программирование на C
|
|||
|---|---|---|---|
|
#18+
softwarerAleksandr Sharahov, в Сях есть битовые структуры. Самое оно для такой задачи. На Паскальных записях тот код, если только не пытаться его дальше ужимать, тоже вполне прилично будет выглядить: Код: pascal 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. Идея того кода была в том, чтобы использовать "одну целочисленную переменную". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 23:31 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38820329&tid=1341146]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 343ms |

| 0 / 0 |
