Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bLesk
 Аватар для bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
#1

число как номер записи в файле - C++

07.01.2011, 14:53. Просмотров 416. Ответов 4
Метки нет (Все метки)

Всем привет, сижу делаю лабы по программированию, местами есть что-то непонятное/неясное, но тут столкнулся с заданием которое вообще полный ступор вызывает, не могу понять вообще что делать, какими методами / приемами. В общем не прошу полностью сделать задание, объясните хотябы в каком направлении делать, поясните в общем пожалуйста

1. Cохранить в файле Num.dat несколько целых чисел больших нуля таким образом, чтобы числа записались в сортированном виде. Для этого считать само число номером записи в файле. Удалить элементы равные 0. Использовать вспомогательный файл.
больший ступор вызывает вот эта часть:
Для этого считать само число номером записи в файле
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 14:53     число как номер записи в файле
Посмотрите здесь:

C++ Программа находит макс. номер в файле...
C++ Удаление записи в бинарном файле
C++ Можно ли в файле в последовательность чисел вставить как-нибудь еще одно число?
Целое положительное число m записывается в 16-ой системе счисления и разряды в этой записи переставляются в обратном порядке. Получившиеся число прини C++
C++ Записи в файле прочесть в два списка
Перетасовать записи в файле C++
Телефонный справочник - в чём хранить записи? В БД или в файле? C++
C++ Задача по очередям. В текстовом файле содержатся записи о сотрудниках фирмы
C++ Разделить каждую цифру десятичной записи этого числа на его порядковый номер. Полученное число напечатать
Как получить номер(или какой нить индифиактор) текущей строки в открытом файле и перейти затем на эту строчку? C++
C++ Проверка на существование конкретной записи в файле
C++ Дублируются записи в перезаписанном файле

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.01.2011, 17:31     число как номер записи в файле #2
Цитата Сообщение от bLesk Посмотреть сообщение
Cохранить в файле Num.dat несколько целых чисел больших нуля таким образом, чтобы числа записались в сортированном виде. Для этого считать само число номером записи в файле.
1. Первая запись в файл - записываем в файл число 1.
2. Вторая запись в файл - записываем в файл число 2.
3. Третья запись в файл - записываем в файл число 3.
и т.д.
самое удивительное что условие
чтобы числа записались в сортированном виде
тоже выполняется.
bLesk
 Аватар для bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
07.01.2011, 19:50  [ТС]     число как номер записи в файле #3
спасибо, но смотрите, если в файле будут два числа "2" и "4", как число 4 - может быть четвертым, если их чисел всего два?

и что за бред :
Цитата Сообщение от bLesk Посмотреть сообщение
Cохранить в файле Num.dat несколько целых чисел больших нуля


Цитата Сообщение от bLesk Посмотреть сообщение
Удалить элементы равные 0
Байт
Эксперт C
 Аватар для Байт
15090 / 9492 / 1395
Регистрация: 24.12.2010
Сообщений: 17,578
07.01.2011, 19:51     число как номер записи в файле #4
Да, заданьице весьма туманное. Интересно, кто такие придумывает, и что имеет в виду?
Можно предположить вот что.
В промежуточный файл пишем или число, или 0, если такого числа в наборе нет.
А потом переписываем этот файл, пропуская нули.
Так, если набор чисел: 10, 8. 12, 4, 1, то записи промежуточного файла будут
1 0 0 4 0 0 0 8 0 10 0 12
Вот такой в меру идиотский алгоритм сортировки.
А что? Может быть в каких-то случаях и он имеет право на жизнь? Например, если памяти немеряно, а числа невелики и все разные. Тогда, пожалуй, вместо файла можно использовать битовый массив.
Вычислительная сложность = M/8+2*n (M-максимальное число, n-кол-во чисел)
bLesk
 Аватар для bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
07.01.2011, 20:52  [ТС]     число как номер записи в файле #5
Цитата Сообщение от Байт Посмотреть сообщение
Да, заданьице весьма туманное. Интересно, кто такие придумывает, и что имеет в виду?
Можно предположить вот что.
В промежуточный файл пишем или число, или 0, если такого числа в наборе нет.
А потом переписываем этот файл, пропуская нули.
Так, если набор чисел: 10, 8. 12, 4, 1, то записи промежуточного файла будут
1 0 0 4 0 0 0 8 0 10 0 12
Вот такой в меру идиотский алгоритм сортировки.
А что? Может быть в каких-то случаях и он имеет право на жизнь? Например, если памяти немеряно, а числа невелики и все разные. Тогда, пожалуй, вместо файла можно использовать битовый массив.
Вычислительная сложность = M/8+2*n (M-максимальное число, n-кол-во чисел)
большое спасибо, теперь хоть понятнее стало! =)

Добавлено через 34 минуты
ребят, пишу эту лабу и почему то никоим образом не записывает в файл, гляньте пожалуйста что не так то, голова уже дико болит ;\

C++
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
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include <cstring.h>
#include <cstdlib.h>
#include <fstream>
#include <string>
#include <sstream>
 
int f[20],f1[20];
 
void main()
{
         int q,max=0;
         ifstream in;
         in.open("C:/f.txt");
         string s;
         int k=0;
         while (getline(in, s))
               {
                stringstream str(s);
                str >> f[k];
                k++;
                }
          cout<<"\n File 1 : ";
            for (int i=0; i < k; i++)
                  cout<<" "<<f[i];
          for (int i=0; i < k; i++)
                  if (f[i]>max) max=f[i];
          for (int i=0; i < max; i++)
            {
                q=f[i];
                f1[q]=f[i];
            }
            ofstream out;
            out.open("C:/f1.txt", ios::out);
            for (int i=0; i < max; i++)
                out<<" "<<f1[i];
            cout<<"\n File 2 : ";
            for (int i=0; i < max+1; i++)
                  cout<<" "<<f1[i];
            getch();
}
Yandex
Объявления
07.01.2011, 20:52     число как номер записи в файле
Ответ Создать тему
Опции темы

Текущее время: 14:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru