Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 18.11.2010, 23:06   #1 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Вывести строку в алфавитном порядке. Delphi

Дана строка(вводится в edit), состоящая из русских слов, разделенных пробелами (одним или несколькими). Вывести строку, содержащую эти же слова (разделенные одним пробелом), но расположенные в алфавитном порядке
Sayks вне форума   Ответить с цитированием

Старый 18.11.2010, 23:06
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Наверняка тут вы найдете что то полезное, по этому дам вам ссылки на похожи темы

Убираем лишнюю, вторую, строку при выборе операционной системы
Как убрать вторую строку при выборе операционной системы?
Напечатать в алфавитном порядке все глухие согласные буквы
Вывести результат в Edit

Старый 20.11.2010, 12:28   #2 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

У меня получается вот такой код но: 1)он работает и с англ буквами хотя надо только с русскими 2)при выводе в memo остаётся то же число пробелов 3) при выводе в edit2 выводится только последняя буква(слово).помогите пожалуйста найти ошибки,а то я над этой задачей неделю бьюсь....
Код:
type Myset=set of char;
var
  Form1: TForm1;

implementation

{$R *.dfm}
function srav(str1,str2:string) :bool;
var
  n,i:word;
begin
  result:=false;
  if length(str1)<length(str2) then
    n:=length(str1)
  else
    n:=length(str2);
  for i:=1 to n do
    if ord(str1[i])<ord(str2[i]) then
    begin
      result:=true;
      break;
    end
    else
    if ord(str1[i])>ord(str2[i]) then break;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  s,st,c: string;
  n,j,i:integer;
  Ruchar:Myset;
  arr:array of string;
begin
  Ruchar:=['a'..'ÿ','A'..'ß','¸','¨',' '];
  s:=Edit1.Text;
  i:=1;
  While (i<=length(s)) and (s[i] in Ruchar) do
  if s[i] in Ruchar then
  begin
    if s[i]<>' ' then st:=st+s[i]
    else
    begin
      if st<>'' then Memo1.Lines.Add(st);
      Memo1.Lines.Add('');
      st:='';
    end;
    i:=i+1;
  end else showmessage('not russian');
    if st<>'' then Memo1.Lines.Add(st);
    n:=memo1.Lines.Count;
  setlength(arr,n);
  for i:=0 to n-1 do
    arr[i]:=memo1.Lines.Strings[i];
    memo1.Clear;

  for i:=n-2 downto 0 do
    for j:=0 to i do
      if not srav(arr[j],arr[j+1]) then
      begin
        c:= arr[j];
        arr[j]:= arr[j+1];
        arr[j+1]:= c;
      end;
  for i:=0 to n-1 do
  Memo1.Lines.Add(arr[i]);
  for i := 0 to length(arr) - 1 do
  Edit2.Text:=arr[i];
Sayks вне форума   Ответить с цитированием
Старый 20.11.2010, 18:58   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Это что, сейчас у студентов так в порядке вещей - кусок листинга выдернуть и на форум запостить? Какую помощь вы ожидаете, если в вашем коде ни начала, ни конца нет? Прикрепите ваш проект к следующему сообщению - будем разбираться, что к чему.

З.Ы. Первая команда в функции - возвратить значение "ложь", забавно, однако
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 20.11.2010, 19:38   #4 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

вот полный проект этой задачи...если поможете разобраться где налажал буду очень признателен
Вложения
Тип файла: zip Моя задача.zip (215.9 Кб, 70 просмотров)
Sayks вне форума   Ответить с цитированием
Старый 20.11.2010, 20:53   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Если никто не сделает раньше - в воскресенье ждите исправленный вариант. Раньше не смогу - у меня уже глубокая ночь.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 20.11.2010, 20:56   #6 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Хорошо,спасибо что откликнулись....
Sayks вне форума   Ответить с цитированием
Старый 22.11.2010, 11:19   #7 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

помогите ,пожалуйста, срочно нужна эта задача завтра нужно сдать...
Sayks вне форума   Ответить с цитированием
Старый 22.11.2010, 21:14   #8 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

блин,что никто не может помочь?
Sayks вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 03:31.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.