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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.67
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
#1

Сортировка слов по алфавиту методом выбора. - C++

27.11.2009, 18:30. Просмотров 5897. Ответов 25
Метки нет (Все метки)

Как это дело реализовать?
Задать числовое значение каждой букве в алфавите или же использовать аски ?
Посоветуйте)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
16.12.2009, 01:14     Сортировка слов по алфавиту методом выбора. #21
Цитата Сообщение от atomlex Посмотреть сообщение
void main(char sourse, int n, char *mas, int size, int i)
Минут 5 искал, где этот mas объявлен! Да и остальное мрачно...

Цитата Сообщение от atomlex Посмотреть сообщение
// Получение дескриптора файла int handle=_fileno(src);
а чё с ним делать-то? Да и вообще в С++ нужно ifstream/ofstream использовать...
Цитата Сообщение от atomlex Посмотреть сообщение
void Sort(char *a[], long size)
Sort принимает массив указателей на char, то есть char** по сути
Цитата Сообщение от atomlex Посмотреть сообщение
Sort(*mas,n);
а Вы ей символ скормить пытаетесь...
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
16.12.2009, 22:06  [ТС]     Сортировка слов по алфавиту методом выбора. #22
Охххх.Вот у меня как раз-таки трудности с функцией main() возникают.А именно с вызовом функции sort и чтением массива строк из файла, и вывод сортировки на экран..
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
17.12.2009, 00:22     Сортировка слов по алфавиту методом выбора. #23
Цитата Сообщение от atomlex Посмотреть сообщение
Вот у меня как раз-таки трудности с функцией main()
Параметры функции main() - это то, что в коммандной строке после имени программы передаётся при её (программы) запуске.
Чтобы принять аргументы командной строки, используются два специальных встроенных аргумента: argc и argv. Параметр argc содержит количество аргументов в командной строке и является целым числом, причем он всегда не меньше 1, потому что первым аргументом считается имя программы. А параметр argv является указателем на массив указателей на строки. В этом массиве каждый элемент указывает на какой-либо аргумент командной строки. Все аргументы командной строки являются строковыми, поэтому преобразование каких бы то ни было чисел в нужный двоичный формат должно быть предусмотрено в программе при ее разработке.

Вот простой пример использования аргумента командной строки. На экран выводятся слово Привет и ваше имя, которое надо указать в виде аргумента командной строки.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  if(argc!=2) {
    printf("Вы забыли ввести свое имя.\n");
    exit(1);
  }
  printf("Привет %s", argv[1]);
 
  return 0;
}
(с) "Полный справочник по C" Герберт Шилдт.
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
17.12.2009, 20:15  [ТС]     Сортировка слов по алфавиту методом выбора. #24
Решил не мучится и сразу писать cортировку в коде основной программы.Вообще программа - это оконное приложение, которое должно читать текст из файла, сортировать слова текста по алфавиту методом выбора, записывать результат в новый файл.

Реализовано пока что только чтение слов из файла из вывод их в бокс.
Получается второй кнопкой нужно считать эти слова из бокса и отсортировать.
Пишется на Microsoft Visual C++ 6.0.

Первая кнопка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void CKursrabDlg::OnButton1() 
 
//Чтение файла и вывод на первый бокс
{
    char str[100];
    char Filter []="TextFile(*.txt),(*.doc) | *.txt; *.doc all(*.*) | *.*||";
    CFileDialog fd(TRUE, ".txt", "ReadMe", OFN_HIDEREADONLY, Filter);
//  fd. DoModal();
    if(fd.DoModal()==IDOK)  
    {
    CFile f;
    f.Open(fd.GetPathName(), CFile:: modeRead);
    f.SeekToBegin();
 
    //m_str - первый бокс, куда выводится данные из читаемого файла
int z = f.Read(str, sizeof(str));
str [z] = '\0';
    m_str.Format(str); 
    UpdateData(0);
    f.Close();          
 
    }
}
Добавлено через 4 часа 2 минуты
Собственно возникли затруднения с функциями main() и Sort(), их нужно прописать в код основной программы, а я не представляю как.Основная программа строится на классе CFileDialog.
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
20.12.2009, 00:35  [ТС]     Сортировка слов по алфавиту методом выбора. #25
Изменю вопрос.Как реализовать сортировку выбоором слов по алфавиту при помощи ООП?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2009, 21:55     Сортировка слов по алфавиту методом выбора.
Еще ссылки по теме:
C++ Сортировка слов из массива по алфавиту
Сортировка слов в предложении по алфавиту C++
Сортировка слов из массива по алфавиту C++
C++ Сортировка слов в строке по алфавиту
Сортировка слов в char по алфавиту C++

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

Или воспользуйтесь поиском по форуму:
atomlex
1 / 1 / 0
Регистрация: 27.11.2009
Сообщений: 30
28.12.2009, 21:55  [ТС]     Сортировка слов по алфавиту методом выбора. #26
Проблему с определением функция я решил.
Но все не могу придумать как ызвать функцию Sort() и чтобы она сортировала массив строк, который читается из файла по нажатию первой кнопки Button1.
Есть какие-нибудь предложения?
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
void CKursa4Dlg::OnButton1() 
//Чтение файла и вывод на первый бокс
{
    char str[100];
    char Filter []="TextFile(*.txt),(*.doc) | *.txt; *.doc all(*.*) | *.*||";
    CFileDialog fd(TRUE, ".txt", "ReadMe", OFN_HIDEREADONLY, Filter);
//  fd. DoModal();
    if(fd.DoModal()==IDOK)  
    {
    CFile f;
    f.Open(fd.GetPathName(), CFile:: modeRead);
    f.SeekToBegin();
 
    //m_str - первый бокс, куда выводится данные из читаемого файла
int z = f.Read(str, sizeof(str));
str [z] = '\0';
    m_str.Format(str); 
    UpdateData(0);
    f.Close();          
 
 
 
 
    }
}
 
void CKursa4Dlg::OnButton2() 
{
 
    // Кнопка сортировка текста по алфавиту выбором
 
}
void CKursa4Dlg::Sort(char *a[], int size )
{
 
int i,j,min;
 
char *k;
k = new char[1024];
 
 
for (i=0;i<size-1;i++)
{
    min=i;
       for(j=i+1; j<size; j++)
           if(strcmp(a[j], a[min])>0)
               min=j;
}
        k = a[min];
        a[min]=a[i];
        a[i]=k;
 
}
 
void CKursa4Dlg::main(int argc, char* argv[])
{
 
 int sizem;
char* m;
 
Sort(char *m[], int sizem);
 
}
Yandex
Объявления
28.12.2009, 21:55     Сортировка слов по алфавиту методом выбора.
Ответ Создать тему
Опции темы

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