|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.06.2008, 08:53 | #1 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 33
|
Задача по Делфи
Два memo поля: в одно вводится текст в другое пишется результат. Также есть button, которая запускает программу...
Требуется определить число слов в тексте, найти максимальную, минимальную и среднюю длину слова...
Мир не без добрых людей..
|
12.06.2008, 09:12 | #2 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 33
|
вот предварительный код программы нужно его исправить и дополнить....
------------------------------------------------------------------------------- unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; Label2: TLabel; Button4: TButton; Memo2: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; S:string; n,sl,max,min,i:integer; sr:real; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin S:='В лесу родилась ёлочка, в лесу она росла'; memo1.Text:=s; end; procedure TForm1.Button2Click(Sender: TObject); begin S:=''; Memo1.text:=s; memo2.text:=''; end; procedure TForm1.Button4Click(Sender: TObject); begin application.Terminate; end; procedure TForm1.Button3Click(Sender: TObject); begin i:=1; n:=length(s); S:=Memo1.Text; sl:=0; if not (s[i] in [' ',#8, #13, #10, ',','.','!','?']) then while i<n do begin if (s[i] in [' ',#8, #13, #10, ',','.','!','?']) and (not (s[i+1] in [' ',#8, #13, #10, ',','.','!','?'])) then begin sl:=sl+1; end; i:=i+1; end else while i<n do begin if (s[i] in [' ',#8, #13, #10, ',','.','!','?']) and (not (s[i+1] in [' ',#8, #13, #10, ',','.','!','?'])) then begin sl:=sl+1; end; i:=i+1; end; begin sr:=(max+min)/sl; memo2.text:='Число слов:'+floattostr(sl)+' Максимальное:'+floattostr(max)+' Минимальное:'+floattostr(min)+' Среднее:'+floattostr(sr); end; end; end. -----------------------------------------------------------------
Мир не без добрых людей..
|
12.06.2008, 09:29 | #3 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
ну и зачем этот кусок 2 раза повторяется :
while i<n do begin if (s[i] in [' ',#8, #13, #10, ',','.','!','?']) and (not (s[i+1] in [' ',#8, #13, #10, ',','.','!','?'])) then begin sl:=sl+1; end; i:=i+1; end ?!
Берегите друг друга!
|
12.06.2008, 09:49 | #4 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 33
|
Да это неправильно... этот цикл даже неправильно считает
Мир не без добрых людей..
|
12.06.2008, 11:19 | #5 |
Форумчанин
Регистрация: 07.08.2007
Сообщений: 154
|
$5 времени на выполнение 1 час
|
12.06.2008, 11:48 | #6 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 33
|
согласен, только, если будут недочеты, ты их исправишь?
Мир не без добрых людей..
|
12.06.2008, 11:52 | #7 |
Форумчанин
Регистрация: 07.08.2007
Сообщений: 154
|
Без вопросов... аська 218четыре13шесть9семь жду
|
12.06.2008, 12:42 | #8 |
Форумчанин
Регистрация: 07.08.2007
Сообщений: 154
|
Задача решена, exeшник для тестирования лежит тут http://slil.ru/25890212 Исходники - по оплате
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на Делфи | evrey | Общие вопросы Delphi | 3 | 09.06.2008 09:01 |
задача Делфи - поиск нужного и замена | Katovski | Помощь студентам | 8 | 30.05.2008 21:28 |
Простенькая задача Делфи | Katovski | Помощь студентам | 18 | 02.05.2008 20:39 |
Задача на Делфи по теории голосования | Alex2008 | Фриланс | 4 | 24.04.2008 20:17 |
CGI на Делфи | AntonK8 | PHP | 3 | 12.04.2008 10:44 |