21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
|
1 | |
Задача про бинарный файл..21.10.2011, 22:02. Просмотров 3146. Ответов 14
Метки нет Все метки)
(
Добрый вечер)
Вот возникла очередная проблемка с задачей по СИ++. Задача звучит таким образом: Создать бинарный файл f и записать в него действительные числа. Организовать просмотр бинарного файла и его обработку: найти сумму чисел, расположенных перед первым минимальным. Начало задачи я смогу, как мне кажется выполнить самостоятельно, но я все никак не пойму, как именно искать сумму чисел, расположенных перед первым минимальным. ??? Объясните пожалуйста. Можно на русском))) НО лучше бы на СИ++
0
|
|
21.10.2011, 22:02 | |
Задача про провода: бинарный поиск Сконвертировать текстовый файл в бинарный, переписать только положительные числа в другой бинарный файл Записать в бинарный файл массив объектов Student (бинарный файловый ввод/вывод)
|
|
363 / 364 / 167
Регистрация: 11.06.2010
Сообщений: 703
|
|
21.10.2011, 22:06 | 2 |
0
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
|||||||||||
21.10.2011, 22:16 [ТС] | 3 | ||||||||||
Так вроде) Добавлено через 5 минут Вот например, схожая задача :
Пытаюсь делать по аналогии, все упирается в нахождении суммы чисел, расположенных перед первым минимальным.
0
|
Форумчанин
![]() ![]() 8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
|
|
21.10.2011, 22:16 | 4 |
Создаешь цикл, который считывает и сравнивает числа и в итоге получаешь число допустим min_index, в котором хранится номер минимального числа (если при сравнении не рассматривать >= и <=), то это будет номер первого минимального числа. Далее создаешь еще один цикл, который изменяет свой параметр от 0 до min_index. Внутри цикла суммируется число. В итоге это число и будет искомым.
1
|
446 / 209 / 21
Регистрация: 07.10.2011
Сообщений: 462
|
|
21.10.2011, 22:18 | 5 |
Попробуй сделать так: сначала открываешь файл, просматриваешь его до конца и находишь в нем минимум, запоминаешь его или его позицию. Закрываешь файл. Открываешь заново и просматриваешь сначала, добавляя каждое прочитанное число к сумме, пока не дойдешь до минимума. Выводишь сумму на экран.
0
|
Форумчанин
![]() ![]() 8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
|
|
21.10.2011, 22:20 | 6 |
Можно изначально считать числа в массив, а потом работать с ним. Тогда не прийдется считывать числа с файла еще раз во втором цикле, но потребуется выделение памяти под этот массив. Делай как хочешь.
0
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
|
21.10.2011, 22:26 [ТС] | 7 |
MrGluck, не...массивы мы еще не изучали. Но с ним можно было бы упростить решение.
Добавлено через 1 минуту MrGluck, А вот предложение с двумя циклами ооочень интересное))) Но как мне кажется трудно осуществимое. Добавлено через 58 секунд aeshes, честно говоря, я вас не совсем понял...какими это действиями я должен открывать бинарник??
0
|
446 / 209 / 21
Регистрация: 07.10.2011
Сообщений: 462
|
||||||
21.10.2011, 22:26 | 8 | |||||
Вася1q, у тебя всегда будет 2 цикла - один для поиска минимума, другой - для суммирования нужного количества чисел
с ключом "rb" - открытие для чтения
0
|
Форумчанин
![]() ![]() 8160 / 5008 / 1436
Регистрация: 29.11.2010
Сообщений: 13,458
|
||||||
21.10.2011, 22:28 | 9 | |||||
Странно, файлы проходите, а массивы не прошли. Ну да пройдите сами, это не сложная тема.
ну например так:
0
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
|
21.10.2011, 22:32 [ТС] | 10 |
aeshes, Так..так уже немного начинаю понимать))) как составить цикл суммирования нужного кол-ва чисел я думаю вечерком и сам разобраться смогу, но как найти минимум??
aeshes, помогите пожалуйста составить это цикл. Добавлено через 1 минуту MrGluck, я и так собираюсь начать учить массивы, но срок на эту лабу поджимает...и пока хотя бы без массива сдать желательно.
0
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
|
21.10.2011, 22:38 [ТС] | 12 |
MrGluck, эх....я же вам объясняю с массивами никак(( мне его просто не зачтут..
0
|
446 / 209 / 21
Регистрация: 07.10.2011
Сообщений: 462
|
|
21.10.2011, 22:39 | 13 |
Вася1q, напишу словами
Заводим переменную min того типа, которого у тебя числа в файле, и int index - номер минимума, int i - счетчик min=первое_число_прочитанное_из файла index=1; i=1; пока (не достигнут конец файла) { читаем следующее число; i=i+1; если (min>прочитанного) {min=прочитанное; index=i;} } Примерно так P.S. MrGluck на примере массива тебе показал суть поиска
1
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
|
21.10.2011, 22:42 [ТС] | 14 |
aeshes, спасибо) Теперь попробую всю эту информацию применить в создании программки. Еще раз спасибо всем кто откликнулся!
0
|
21 / 21 / 3
Регистрация: 13.09.2011
Сообщений: 313
|
||||||
13.11.2011, 20:23 [ТС] | 15 | |||||
Форумчане, выручайте! Попытался сейчас совместить все элементы программы воедино, но видимо что-то не правильно(( помогите исправить.
Добавлено через 6 минут
....... =( Добавлено через 6 часов 34 минуты Ну помогите плиз!!
0
|
13.11.2011, 20:23 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Данные записать в файл F1.txt, затем прочитать оттуда, обрабатывались и записывались в бинарный файл F2.bin с проверкой
Создать бинарный файл и текстовый файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |