Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка строк по возрастанию их длины, сортировка строк в файле п 
:(
    Опции темы
Kais
Дата 9.12.2012, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.12.2012

Репутация: нет
Всего: нет



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


Если можно, то чтобы начало было примерно такое

#include <iostream.h>
#include <conio.h>
#include <fstream>
#include<string.h>
#include <stdio.h>


int main()
{ const int max=256, max1=256;
char filename [max],str[max];

cout << "vvedi imya faila : ";
cin >> filename;
ifstream fin (filename);
if (!fin) { cout << " oshibka ";
getch ();
return 1;
}
cout << " file soderzit: "<<endl;
fin.getline (str,max,'\0');
cout << str << endl;
fin.close ();


...

getch();
return 0;
}

т.е. тут открывает текстовый файл и выводит на экран содержимое.

есть идея сделать методом пузырька, но я не знаю как ее осуществить, чтобы сортировалась именно длина строк.
Среди вас точно знаю, что есть умные люди) если не сложно, напишите пожалуйста код

PM MAIL   Вверх
artsb
Дата 10.12.2012, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Kais @  9.12.2012,  22:26 Найти цитируемый пост)
Если можно, то чтобы начало было примерно такое

Нет, нельзя.

Вам тут что, кружок добровольных писак? Это форум. Здесь помогают, а не делают за вас.


Цитата(Kais @  9.12.2012,  22:26 Найти цитируемый пост)
есть идея сделать методом пузырька, но я не знаю как ее осуществить, чтобы сортировалась именно длина строк.

Реализовать идею поможет Google.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Kais
Дата 10.12.2012, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.12.2012

Репутация: нет
Всего: нет



Цитата
 Нет, нельзя.


нельзя так нельзя. я не настаиваю.
данную идею гугл реализовать не помог.

раз помогают, так помогите. а если не знаете, так зачем писать пустые слова?

Это сообщение отредактировал(а) Kais - 10.12.2012, 08:51
PM MAIL   Вверх
artsb
Дата 10.12.2012, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(Kais @  10.12.2012,  08:50 Найти цитируемый пост)
данную идею гугл реализовать не помог.

Как это так? Вы не смогли найти алгоритм?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Kais
Дата 10.12.2012, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.12.2012

Репутация: нет
Всего: нет



Благодарю, но алгоритм и методом пузырька и методом выбора я знаю. Я не знаю как реализовать данную идею в конкретно этой задаче.
PM MAIL   Вверх
artsb
Дата 10.12.2012, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



1. Считываете строки из файла в массив или в TStringList.
2. Сортируете методом пузырька по длинам строк: если будут массивы char'ов, то для определения длины строки используйте strlen(); если будут массивы AnsiString'ов или будет использоваться TStringList, то тогда используем AnsiString::Length().
3. Сохраняем полученный массив в файл.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Kais
Дата 16.12.2012, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 9.12.2012

Репутация: нет
Всего: нет



Благодарю за советы, но у меня все равно не получается. я не понимаю как это записывать
PM MAIL   Вверх
artsb
Дата 16.12.2012, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Пример:
Код

    bool blnContinue;
    TStringList *lst;

    try
    {
        lst = new TStringList();
    }
    catch(...)
    {
        lst = NULL;
    }

    if(!lst)
    {
        return;
    }

    lst->LoadFromFile("filename_src.txt");

    blnContinue = true;
    while(blnContinue)
    {
        blnContinue = false;

        for(int i = 1; i < lst->Count; i++)
        {
            if(lst->Strings[i].Length() < lst->Strings[i - 1].Length())
            {
                lst->Insert(i + 1, lst->Strings[i - 1]);
                lst->Delete(i - 1);

                blnContinue = true;
            }
        }
    }

    lst->SaveToFile("filename_dest.txt");

    delete lst;


Это сообщение отредактировал(а) artsb - 16.12.2012, 21:20


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.