|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.11.2008, 15:37 | #1 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 24
|
Помогите найти ошибку (Delphi)
Помогите, пожалуйста найти ошибку.(Delphi)
Дана строка, состоящая из групп нулей и единиц, разделенных пробелами. Найти и вывести на экран самую короткую группу. Вот мой код. Программа запускается, но работает неправильно. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; procedure FormCreate(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function FindMinGroup(Str: string): string; var i, counter: integer; FirstMin: integer; //начало самой маленькой группы FirstMinTemp: integer; FirstDig: string; CounterMin: integer; //размер этой группы begin FirstDig := ''; Counter := 0; CounterMin := 20; for i := 1 to length(Str) do begin if FirstDig = '' then begin FirstDig := Str[i]; FirstMinTemp := i; end; if Str[i] = FirstDig then Inc(Counter) else begin if Counter < CounterMin then begin CounterMin := Counter; FirstMin := FirstMinTemp; end; FirstDig := ''; FirstMinTemp := 0; Counter := 0; end; end; for i := FirstMin to FirstMin + CounterMin do Result := Result + Str[i]; end; procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Clear; Edit2.Clear; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then Edit2.Text:=FindMinGroup(Edit1.Text ); end; end. |
23.11.2008, 19:29 | #2 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 24
|
народ хоть че-нить напишите
|
23.11.2008, 20:40 | #3 |
Форумчанин
Регистрация: 06.06.2007
Сообщений: 282
|
Мой вариант:
Код:
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
|
23.11.2008, 21:11 | #4 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 24
|
Большое спасибо. Твой код работает идеально. Жаль только не могу найти у себя ошибку .
|
23.11.2008, 21:55 | #5 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 24
|
Как оказалось не совсем идеально. Твой код работает абсолютно также, как и мой. Т.е. он работает правильно до тех пор пока самую короткую группу не ставить последней. Тогда он выводит не ее, а самую короткую до нее
|
23.11.2008, 22:04 | #6 | |
Форумчанин
Регистрация: 06.06.2007
Сообщений: 282
|
Цитата:
Код:
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
|
|
23.11.2008, 22:24 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
я, похоже, уже опоздал. но всё таки..
Армана, а попробуйте ещё Ваш код, только чуток подправленный... ;-)) Код:
|
23.11.2008, 23:01 | #8 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 24
|
Спасибо всем
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибку (Delphi) | Rigard | Помощь студентам | 4 | 23.07.2008 03:06 |
Помогите найти ошибку! | Студентка@ | Помощь студентам | 3 | 21.05.2008 14:21 |
Помогите найти ошибку | Дима82 | Помощь студентам | 4 | 19.05.2008 15:05 |
help!!! Помогите найти ошибку!!! | linker13 | Общие вопросы Delphi | 2 | 07.07.2007 23:15 |