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

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

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

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

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

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

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

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

Разделить каждую цифру десятичной записи этого числа на его порядковый номер. Полученное число напечатать - C++
#include <iostream> #include <conio.h> #include <math.h> #include <windows.h> using namespace std; double k, newd, numDig,...

Как получить номер(или какой нить индифиактор) текущей строки в открытом файле и перейти затем на эту строчку? - C++
открываю файл так: ifstream input("morf.txt"); перехожу на следующие строчки так: input.getline(buffer, 1024);

Можно ли в файле в последовательность чисел вставить как-нибудь еще одно число? - C++
вопрос: можно ли в файле в последовательность чисел вставить как-нибудь еще одно число стандартными средствами (не создавая доп. объектов)?...

Найти число в двоичной записи которого максимальное число единиц - C++
Среди простых чисел ,не превосходящих N ,найти такое ,в двоичной записи которого максимальное число единиц. Уважаемые форумчане помогите...

Программа находит макс. номер в файле... - C++
Написал программу с классами fstream, которая в определенном файле находит мин. номер и макс. номер. (в файле - только целочисленные...

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

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


Цитата Сообщение от bLesk Посмотреть сообщение
Удалить элементы равные 0
0
Байт
Эксперт C
16355 / 10631 / 1592
Регистрация: 24.12.2010
Сообщений: 20,279
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
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();
}
0
07.01.2011, 20:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 20:52
Привет! Вот еще темы с ответами:

Целое положительное число m записывается в 16-ой системе счисления и разряды в этой записи переставляются в обратном порядке. Получившиеся число прини - C++
ребят помогите!!!!Препод задал 20 задач по программированию,и во не могу сделать эту:&quot;Целое положительное число m записывается в 16-ой...

Дано действительно число а.Найти среди чисел 1, 1*1/2, 1*/1/2+1/3, ... первое число, большее а, и его номер в последовательности чисел. - C++
Прошу помочь решить задачки!:(очень нужно (Билет №2) Дано действительно число а.Найти среди чисел 1, 1*1/2, 1*/1/2+1/3, ... первое...

Перетасовать записи в файле - C++
Надо случайным образом перемешать записи в файле, записей много около 10 000 000, скорость роботи программы не имеет значения. Идеально...

Удаление записи в бинарном файле - C++
Доброго времени суток, уважаемые. По заданию надо удалить запись из бинарного файла, скажите, есть ли какая-либо функция для этого? ...


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

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

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