![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Ребята, прошу помочь!
Написала прогу, а она у меня всегда выводит не то, что нужно. Не подскажете, что не так? Код и условие задачи в файле. (Особо строго не судите, я новичок-самоучка, только осваиваюсь) |
#2
|
||||
|
||||
![]() Код:
var str,s,i:string; k,n:integer; bool:boolean; begin str:=Edit1.Text;//строка i:=Edit3.Text;//символ bool:=false; for k:=1 to length(str) do begin if str[k]=' ' then begin s:=copy(str,1,k-1);//все таки начинать надо было с 1))) if length(s)=StrToInt(Edit2.Text) then begin for n:=1 to length(s) do begin if s[n]=i then begin bool:=true; break; //если нашли, то выходим из цикла end; end; end; end; end; if bool=true then showmessage('Даа') else showmessage('Нэт!'); end; От корректности формулировки поставленной задачи зависят: качество, скорость и желание её реализации!
|
#3
|
|||
|
|||
![]() Да, надо для всех слов. Поэтому я, по существу, и обратилась.
Последний раз редактировалось Broken Angel, 10.04.2011 в 17:31. |
#4
|
||||
|
||||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; procedure Button1Click(Sender: TObject); private function findsymbolinstring(ourstring:string;oursymbol:string):boolean; { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.findsymbolinstring(ourstring:string;oursymbol:string):boolean; var meter:integer;//счетчик для цикла в функции funcbool:boolean; begin funcbool:=false; for meter:=1 to length(ourstring) do begin if ourstring[meter]=oursymbol then begin funcbool:=true; break; end; end; result:=funcbool; end; procedure TForm1.Button1Click(Sender: TObject); var str,s,i:string; k:integer; bool:boolean; begin str:=Edit1.Text; i:=Edit3.Text; bool:=false; s:=''; begin for k:=1 to length(str) do begin if str[k]=' ' then begin if strtoint(edit2.text)=length(s) then begin bool:=findsymbolinstring(s,i); if bool=true then begin break; end; end; s:=''; //нашли пробел - обнуляем строковую переменную end; if k=length(str) then begin if strtoint(edit2.text)=length(s)+1 then begin bool:=findsymbolinstring(s+str[k],i); if bool=true then break; end; end; if k<>length(str) then if str[k]<>' ' then s:=s+str[k]; end; end; if bool=true then showmessage('Даа') else showmessage('Нэт!'); end; end. Цитата:
От корректности формулировки поставленной задачи зависят: качество, скорость и желание её реализации!
|
#5
|
|||
|
|||
![]() Огромнейше благодарю.
![]() |