42 / 42 / 8
Регистрация: 24.11.2009
Сообщений: 165
1

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

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

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

1. Cохранить в файле Num.dat несколько целых чисел больших нуля таким образом, чтобы числа записались в сортированном виде. Для этого считать само число номером записи в файле. Удалить элементы равные 0. Использовать вспомогательный файл.
больший ступор вызывает вот эта часть:
Для этого считать само число номером записи в файле
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2011, 14:53
Ответы с готовыми решениями:

Дано число. Разделить каждую цифру десятичной записи этого числа на его порядковый номер. Полученное число нап
2.Дано число. Разделить каждую цифру десятичной записи этого числа на его порядковый номер....

Разделить каждую цифру десятичной записи этого числа на его порядковый номер. Полученное число напечатать
#include <iostream> #include <conio.h> #include <math.h> #include <windows.h> using...

For(auto i:n) как узнать номер элемента в такой записи?
vector<string>a{"a","s","f"}; for(auto i:a) { printf("%s ",i.c_str()); ...

Определить, встречается ли число в исходном файле и номер строки
Дан текстовый файл, содержащий целые числа, расположенные по одному в строке. С клавиатуры вводится...

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

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


Цитата Сообщение от bLesk Посмотреть сообщение
Удалить элементы равные 0
0
Диссидент
Эксперт C
27349 / 17067 / 3772
Регистрация: 24.12.2010
Сообщений: 38,458
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-кол-во чисел)
2
42 / 42 / 8
Регистрация: 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();
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2011, 20:52
Помогаю со студенческими работами здесь

В запись входят следующие поля:номер записи, город, число жителей.Считать и вывести на экран запись №4.
создать файл из пяти записей. В запись входят следующие поля:номер записи, город, число...

Как полю присвоить номер записи?
А кто знает - как полю присвоить номер записи??? Всем ответившим заранее спасибо.

как получить номер записи в отчет?
Доброго времени суток :) Столкнулся с проблемой, прошу у Вас помощи: Как вывести в отчет или на...

В текстовом файле.Определить номер строки и номер позиции в этой строке, с которой начинается слово “plus”
Определить номер строки и номер позиции в этой строке, с которой начинается слово “plus”. Вывести...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru