|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
26.02.2014, 02:11 | #1 |
Новичок
Джуниор
Регистрация: 26.02.2014
Сообщений: 2
|
Нужна помощь с сортировкой
Помогите пожалуйста. Никак не могу добиться того чтобы буква Ё была на своем месте.
unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm3 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation {$R *.dfm} Const Prob : set of char = [' '..' ']; Kir: set of char = ['А'..'Я']; BukvLatM: set of char = ['a'..'z']; e = 'Ё'; Function Prov(const s: string): byte; Var Nom: byte; i,Len: word; Begin Nom:=0; len:= Length(S); If Len=0 then Nom:=1 Else Begin i:=1; while (i<=Len) and (Nom=0) do begin if Not ((S[i] in Prob) or (S[i] in Kir) or (S[i]='Ё') or (S[i] in BukvLatM)) then Nom:=2; Inc(i); end; End; Prov:=Nom; End; Procedure Sort(var s:string); Var i, z, len: Word; flag: Boolean; ch: char; Begin Z:=1; len:=length(s); Repeat flag:=true; for i:=1 to len-z do if (s[i] in Kir) and ((s[i+1] in Prob) or (s[i+1] in BukvLatM)) or (s[i] in BukvLatM) and (s[i+1] in Prob) or (s[i] in BukvLatM) and (s[i+1] in BukvLatM) and (s[i]>s[i+1]) or (s[i] in Kir) and (s[i+1] in Kir) and (s[i]>s[i+1]) or (s[i]='Ё') then begin ch:=s[i]; s[i]:=s[i+1]; s[i+1]:=ch; flag:= false; end; inc(z); Until flag or (z=len); End; procedure TForm3.Button1Click(Sender: TObject); var s: string; Nom: byte; begin s:=Edit1.Text; Nom:= Prov(s); Case Nom of 1: Label2.Caption := 'Пустая строка'; 2: Label2.Caption := 'Некорректные символы'; else begin Sort(s); Label2.Caption:='"'+s+'"'; end; {else} End; {case} end; procedure TForm3.Button2Click(Sender: TObject); begin close end; end. |
26.02.2014, 02:44 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Зачем так сложно?
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
26.02.2014, 02:52 | #3 |
Новичок
Джуниор
Регистрация: 26.02.2014
Сообщений: 2
|
Спасибо! Все действительно работает.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь с сортировкой односвязных списков на Pascal | Lesowik | Помощь студентам | 2 | 22.05.2011 06:14 |
Требуется помощь с сортировкой по полю! | Phaeton | Общие вопросы C/C++ | 0 | 05.01.2010 23:10 |
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) | Farridjan | Помощь студентам | 1 | 03.07.2009 12:24 |
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) | 5Paladin5 | Помощь студентам | 3 | 02.07.2009 09:12 |