Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/47: Рейтинг темы: голосов - 47, средняя оценка - 4.98
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
1

Сортировка файла без использования массивов

06.05.2009, 00:54. Показов 8481. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите, плиз, задачка простенькая. (не знаю, как отсортировать без массива)

дан файл целых чисел, отсортировать его, не используя массивы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2009, 00:54
Ответы с готовыми решениями:

Сортировка, без использования массивов
Скажите, пожалуйста, можно-ли, имея в "распоряжении" только операторы выбора и циклы(никаких...

Удалить числа из файла, без использования дополнительных массивов и файлов
Всем привет, насколько я понимаю, само удаление из файла и не удаление вовсе, открываем файл и...

Создать массив структур без использования массивов и нотации массивов
Доброго времени суток! Есть задание, в котором нужно создать массив структур, имея следующую...

Вычислить без использования массивов
(1/a)+(1/a^2)+(1/a^4)...(1/a^2n-1)

14
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 06:19 2
C++
1
2
3
4
5
6
7
8
9
         {
            fileOut.seekg(posp);
            fileOut << str2;
            posg = fileOut.tellg();
            fileOut << str1;
            fileOut.seekg(posg);
            posp = posg;
            continue;
         }
Учти, что исходный файл должен содержать только цифры разделенные пробелом, никаких букв, никаких знаков препинания.

Добавлено через 16 минут 9 секунд
Блин, отправил, а что отправил даже не глянул
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//---------------------------------------------------------------------------
#include <iostream.h>
#include <fstream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
   ifstream fileIn;
   fstream fileOut;
   unsigned int count = 0, posg = 0, posp = 0;
   int str1, str2;
   fileIn.open("input.txt");
   fileOut.open("output.txt");
   if (!fileIn.is_open() || !fileOut.is_open())
   {
      cout << "File error" << endl;
      exit(1);
   }
   while (!fileIn.eof())
   {
      fileIn >> str1;
      fileOut << str1 << " ";
      count++;
   }
   fileIn.close();
   fileOut.clear();
   fileOut.seekg(0);
   for (int i = 0; i < count - 1; i++)
   {
      for (int j = 0; j < count - i -1; j++)
      {
         fileOut >> str1;
         posg = fileOut.tellg() + 1;
         fileOut >> str2;
         if (str1 > str2)
         {
            fileOut.seekg(posp);
            fileOut << str2 << " ";
            posg = fileOut.tellg();
            fileOut << str1 << " ";
            fileOut.seekg(posg);
            posp = posg;
            continue;
         }
         else
         {
            fileOut.seekg(posg);
            posp = posg;
            continue;
         }
      }
      fileOut.clear();
      posg = posp = 0;
      fileOut.seekg(posg);
   }
   fileOut.close();
   system("pause");
   return 0;
}
//---------------------------------------------------------------------------
1
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
06.05.2009, 08:11  [ТС] 3
не компилится(
а что именно делает директива pragma?
0
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 08:18 4
Каким компилятором пользуешься? Этот пример я на Borland C++ Builder 6 делал.
0
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
06.05.2009, 08:24  [ТС] 5
Dev-C++

Добавлено через 4 минуты 47 секунд
расскажи, плиз, что делают директивы pragma hdrstop и pragma argsused
0
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 08:54 6
Если не ошибаюсь, сделай такой заголовок
C++
1
2
3
#include <iostream>
#include <fstream>
using namespace std;
Цитата Сообщение от Nyuta Посмотреть сообщение
расскажи, плиз, что делают директивы pragma hdrstop и pragma argsused
#pragma command вроде бы устанавливает различные опции для компилятора, что делают hdrstop argsused как то не интересовался, их builder сам добавляет в каждый новый проект, в принципе можешь их удалить.
1
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
06.05.2009, 08:56  [ТС] 7
спасибо большое. скачаю Borland C++
0
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 11:23 8
Возможно кроме входного файла input.txt, заполненого числами через пробел, придется создать самой файл output.txt, только пустой.
Вложения
Тип файла: rar filesort.rar (96.6 Кб, 100 просмотров)
0
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
06.05.2009, 11:54  [ТС] 9
все заработало после повторной установки борланда. а как вывести содержимое этих текстовых файлов на экран, чтобы сравнить результаты, не открывая текстовые файлы вручную?
0
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 12:05 10
Что-то в этом роде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fileIn.clear();
fileIn.seekg(0);
fileOut.clear();
fileOut.seekg(0);
cout << "Nachal'nyi fail" << endl;
while (!fileIn.eof())
{
   fileIn >> str1;
   cout << str1 << " ";
}
cout << endl << endl;
cout << "Otsortirovannyi fail" << endl;
while (!fileOut.eof())
{
   fileOut >> str1;
   cout << str1 << " ";
}
cout << endl << endl;
только fileIn.close() в 28 строке перениси в конец файла к fileOut.close()
0
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
06.05.2009, 12:21  [ТС] 11
а, начиная с какой строчки, это надо вставить?
0
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 12:42 12
После цикла for между 58 и 59 строками.
0
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
06.05.2009, 12:50  [ТС] 13
[IMG]http://i8.***********.nyud.net/i3/81/3c/53545a2de5ddf0906ce404da831a.jpeg[/IMG]
в конце 2го файла на экране появляется мусор (в самом .txt его нет)
0
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
06.05.2009, 14:01 14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while (!fileIn.eof())
   {
      fileIn >> str1;
      if (!fileIn.fail())
         cout << str1 << " ";
   }
   cout << endl << endl;
   cout << "Otsortirovannyi fail" << endl;
   while (!fileOut.eof())
   {
      fileOut >> str1;
      if (!fileOut.fail())
         cout << str1 << " ";
   }
   cout << endl << endl;
1
0 / 0 / 0
Регистрация: 26.11.2008
Сообщений: 33
12.05.2009, 20:11  [ТС] 15
все просто супер) спасибо тебе огромное
0
12.05.2009, 20:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2009, 20:11
Помогаю со студенческими работами здесь

Решить без использования массивов
Даны шары 5-ти цветов: (Желтый, Синий, Зеленый, Красный, Черный). В таком порядке, в котором...

Работа с файлами без использования массивов
Есть задание: Для двух файлов А и В, которые включают по 17 элементов: A = {ai}, B = {bi}, i от...

Последовательность целых чисел без использования массивов
Подскажите как можно найти реализовать последовательность целых чисел без использования массивов?

Задача на вычисление суммы без использования массивов
Надо вычислить сумму, для заданного числа n: Не знаю как делать. Можно ли сделать эту задачу...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru