|
0 / 0 / 1
Регистрация: 05.03.2016
Сообщений: 106
|
||||||
Размещение данных в статическом массиве байтов фиксированной размерности с контролем переполнения19.04.2016, 16:26. Показов 5757. Ответов 55
Метки нет (Все метки)
Всем привет. С лабой 3 не могу сообразить.
Разработать две функции, одна из которых вводит с клавиатуры набор данных в произвольной последовательности и размещает в памяти в переменном формате. Другая функция читает эти данные и выводит на экран. Программа запрашивает и размещает в памяти несколько наборов данных при помощи первой функции, а затем читает их и выводит на экран при помощи второй. Размещение данных производить в статическом массиве байтов фиксированной размерности с контролем его переполнения. Вариант 10 10. Произвольная последовательность строк и целых переменных. Байт со значением 0 - обозначает начало строки (последовательность символов, ограниченная нулем). Байт со значением N является началом последовательности N целых чисел. Конец последовательности - два нулевых байта. Помогите, пожалуйста! ![]() Добавлено через 23 часа 6 минут Вот код лабы 3
0
|
||||||
| 19.04.2016, 16:26 | |
|
Ответы с готовыми решениями:
55
Реализация удаления по порядковому номеру в статическом стеке размерности 8 Динамическая матрица с контролем корректности размерности и успешности выделения динамической области памяти Дан произвольный двумерный числовой массив фиксированной размерности |
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
|||
| 03.08.2016, 14:05 | |||
|
Длина для всех данных, а в пределах строки ищем терминальный ноль (но тоже с учетом длины, чтобы не выбраться за диапазон). Для чисел два нуля в конце избыточно, т.к. по формату мы храним в начале их количество. Хотя вот сейчас перечитывал и не понятно, вот эта фраза: ![]() Если к последовательности чисел, то у меня сделано правильно, если - это терминал всей последовательности, то мы не сможем правильно остановиться, т.к. два нуля подряд могут встречаться в других контекстах. Хотя вот опять же подумал, может быть в случае, если строка последняя в массиве, то в конце будет три нуля... один ноль от строки, и два терминальных дл последовательности. Но тут коллизия - а вдруг это не терминал, а просто пустая строка идущая следом (за ведущим нулем идет сразу оконечный. Возможно в задании неявный запрет на пустые строки? ![]() В общем, как я уже сказал, задание "приятно" нечеткое. Но, лично я в таких случаях просто делаю реализацию, которая мне кажется уместной, а потом заказчик вносит замечания, если они имеются. К сожалению нечеткие ТЗ - это распространенная практика не только в учебных задачах.
2
|
|||
|
0 / 0 / 1
Регистрация: 05.03.2016
Сообщений: 106
|
|
| 03.08.2016, 15:40 [ТС] | |
|
DrOffset, что-то я не разберу ваш код. Где там статический массив байтов? Два нулевых байта относятся к концу всей последовательности.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
|
| 03.08.2016, 16:59 | |
|
0
|
|
|
|
||
| 03.08.2016, 17:11 | ||
|
Добавлено через 1 минуту Конечно можно обойти если итератор имеет мозги и знает что сканирует (т.е. не типа как стрлен делает), но сложность возрастает.
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||||||||||||||
| 03.08.2016, 17:30 | ||||||||||||||
|
Кликните здесь для просмотра всего текста
При этом у нас невозможно (исходя из условия задачи) хранить пустые строки. При вводе необходимо будет предусмотреть проверку для этого. Добавлено через 4 минуты Так что я считаю, что без знания размера буфера (пусть даже только для контроля диапазона), эта задача в принципе не решается. Добавлено через 9 минут Собственно вот версия без указания размера: Кликните здесь для просмотра всего текста
Естественно работать она будет только на корректных по формату данных.
0
|
||||||||||||||
|
0 / 0 / 1
Регистрация: 05.03.2016
Сообщений: 106
|
|
| 03.08.2016, 17:44 [ТС] | |
|
Ну, я же привел свой код. Ваш же код, DrOffset, совсем не то. Мне нужно запрогать байт со значением N, обозначающий начало последовательности целых чисел, как на рисунке, и написать правильный цикл ввода этих целых чисел. Байт N должен показывать количество введенных пользователем чисел. Я не догоняю как это запрогать на языке Си.
0
|
|
|
|
|
| 03.08.2016, 18:01 | |
|
0
|
|
|
738 / 543 / 416
Регистрация: 17.09.2015
Сообщений: 1,601
|
|
| 03.08.2016, 18:14 | |
|
CoderHuligan, подозреваю, на четвертой узнаем что и ТЗ не то
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
|||
| 03.08.2016, 18:38 | |||
0
|
|||
|
|
||||||
| 03.08.2016, 21:55 | ||||||
|
Вот запилил в рамках своего понимания вопроса насколько близко мог к оригинальному условию:
0
|
||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||||||||||||
| 04.08.2016, 00:17 | ||||||||||||
![]() Кликните здесь для просмотра всего текста
Добавлено через 12 минут Под студию адаптировал: Кликните здесь для просмотра всего текста
1
|
||||||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||||||
| 04.08.2016, 01:35 | ||||||
|
+Небольшое обновление
Кликните здесь для просмотра всего текста
1
|
||||||
|
0 / 0 / 1
Регистрация: 05.03.2016
Сообщений: 106
|
||||||
| 04.08.2016, 03:23 [ТС] | ||||||
|
Ну, это не совсем то. Я же выложил свой код.
0
|
||||||
|
|
||
| 04.08.2016, 08:08 | ||
|
0
|
||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,822
|
||
| 04.08.2016, 08:37 | ||
|
Помимо указанных тобой, есть еще. Например ввод строк - некоректный, нужно использовать текущее окончание последовательности для записи, а ты всегда начинаешь писать в начало массива. Тоже самое касается ввода чисел. Текущее окончание у тебя вообще никак не сохраняется, соответственно дополнить массив новыми значениями невозможно. Функцию output я тебе уже выкладывал. В общем, начнешь это нормально исправлять - получится примерно тоже самое, что тебе мы выложили выше. Ты б хоть посмотрел.
0
|
||
|
0 / 0 / 1
Регистрация: 05.03.2016
Сообщений: 106
|
|
| 04.08.2016, 17:24 [ТС] | |
|
Я посмотрел. Спасибо. Подумаю.
0
|
|
| 04.08.2016, 17:24 | |
|
Помогаю со студенческими работами здесь
56
Как создать в файле массив указателей фиксированной размерности на строки текста? Стек на статическом массиве Мусор в строковом статическом массиве C++ Односвязнай список на статическом массиве
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|