Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Cортировка слов текста по алфавиту методом выбора 
:(
    Опции темы
atomlex
Дата 30.11.2009, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.Подскажите как будет выглядеть программа если задание будет:"Выполнить сортировку слов текста по алфавиту методом  выбора".Текст читается из файла.
Заранее благодарен.


 ! 
bsa
Для своих вопросов нужно создавать отдельные темы


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


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 
PM   Вверх
Carlos0N
Дата 30.11.2009, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



http://algolist.manual.ru/sort/select_sort.php

изучайте на здоровье =)
PM MAIL ICQ   Вверх
atomlex
Дата 30.11.2009, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Прошу прощения, что не там создал тему.
Как выглядит сортировка выбором я знаю, единственно не могу сообразить как сделать ее по русскому алфавиту...
Т.е. есть текст.Его нужно отсортировать по алфавиту.
Знающие люди, помогите советом)
PM MAIL   Вверх
Carlos0N
Дата 30.11.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ээм.. ты покажи как ты делал что у тебя не сортируются рус. буквы.
помойму в виндовс к примеру русский алфавит по порядку закодирован
PM MAIL ICQ   Вверх
atomlex
Дата 30.11.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В смысле как сортироват числа я знаю, не представляю как это сделать со словами)
И каким образом использовать аски-код в этом деле?

Это сообщение отредактировал(а) atomlex - 30.11.2009, 21:25
PM MAIL   Вверх
atomlex
Дата 3.12.2009, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

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


void Sort (int N, int i=0)
sort< char >( A[], B[], min);

      int strcmp(const char *A, const char *B);
      {

if (i<N)    
{

int min = A[i], index=i;

  for (int j=i+1; j<N; j++)
      
      if (A[j]<min) min=A[j],index=j;
                  A[index]=A[i];
                  A[i]=min;

                  Sort(A, N, i+1);   }

}





Почитал про функцию strcmp, теперь пытаюсь нормально ее реализовать.Получается бред.Хелп ми.
PM MAIL   Вверх
djamshud
Дата 3.12.2009, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

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



Функцию strcmp реализовывать не нужно, а она уже реализована в либси.

Код

#include<stdio.h>
#include<string.h>

int main(int argc,char **argv) {
    if (argc<3) {
        printf("Using: %s word1 word2\n",argv[0]);
        return 1;
    }
    int res=strcmp(argv[1],argv[2]);
    printf("%s %s %s\n",argv[1],res<0?"less than":res==0?"equal":"greater than",argv[2]);
    return 0;
}



Это сообщение отредактировал(а) djamshud - 3.12.2009, 01:56


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
atomlex
Дата 3.12.2009, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Получается к этому коду нужно приписать сорировку выбором и задача будет решена?
PM MAIL   Вверх
djamshud
Дата 3.12.2009, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

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



К этому коду ничего не нужно приписывать. А в коде сортировки выбором нужно использовать strcmp для сравнения пары строк.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
atomlex
Дата 3.12.2009, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не понял немного.Как это выглядеть будет?
PM MAIL   Вверх
atomlex
Дата 6.12.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня не получается привязать эту функцию к самой сортировке выбором.
PM MAIL   Вверх
atomlex
Дата 7.12.2009, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



При линковке выходят следующие ошибки:
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/alfavit.exe : fatal error LNK1120: 1 unresolved externals

Как их лечить?



Код


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

void selection(int* a, int m)

{ 
char b1[] = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
char b2[256];

int i,j,k,min;

   for(i=0;i<m-1;i++)
   {min=i;
   printf("vvedite");
   gets(b2);


for (j=i+1; j<m; j++)
    if(strcmp(b1, b2)>0) min=j;
        k=a[min];
        a[min]=a[i];
        a[i]=k;
   }
}





Это сообщение отредактировал(а) atomlex - 7.12.2009, 23:48
PM MAIL   Вверх
t_gran
Дата 8.12.2009, 04:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 13.11.2007
Где: г.Усть-Илимск

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



Цитата

Как их лечить?

Вам же компилятор написал:
Цитата

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main


Вы функцию main где-то забыли. smile


--------------------
Я знаю, что ничего не знаю© Сократ
user posted image
PM MAIL WWW   Вверх
atomlex
Дата 8.12.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, с теми ошибками разобрался.Компилируется.Но при вводе строки вылетает с ошибкой - "инструкция по адресу "00х000" обратилась к памяти по адресу"000х00.Память не может быть Read."

Код

#include <iostream.h>
#include<stdio.h>
#include <string.h>
 
 
 
void main(int* a, char m) 
{ 
 
 
char alf[] = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
char str[256];
 
char i,j,k,min;
 
   for(i=0;i<m-1;i++)
   {
           
           min=i;
   printf("vvedite:   ");
   gets(str);
 
 
for (j=i+1; j<m; j++)
    if(strcmp(alf, str)>0)
                puts("sortirovka   ");
                min=j;
                k=a[min];
                a[min]=a[i];
                a[i]=k;
   }
 
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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