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

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

Восстановить пароль Регистрация
 
bLesk
 Аватар для bLesk
40 / 40 / 1
Регистрация: 24.11.2009
Сообщений: 165
07.01.2011, 14:53     число как номер записи в файле #1
Всем привет, сижу делаю лабы по программированию, местами есть что-то непонятное/неясное, но тут столкнулся с заданием которое вообще полный ступор вызывает, не могу понять вообще что делать, какими методами / приемами. В общем не прошу полностью сделать задание, объясните хотябы в каком направлении делать, поясните в общем пожалуйста

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

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

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


Цитата Сообщение от bLesk Посмотреть сообщение
Удалить элементы равные 0
Байт
 Аватар для Байт
13964 / 8795 / 1223
Регистрация: 24.12.2010
Сообщений: 15,930
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
40 / 40 / 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     число как номер записи в файле
Ответ Создать тему
Опции темы

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