Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.04.2011, 15:50
Broken Angel Broken Angel вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 3
Репутация: 10
Восклицание Работа со строками

Ребята, прошу помочь!
Написала прогу, а она у меня всегда выводит не то, что нужно. Не подскажете, что не так? Код и условие задачи в файле.
(Особо строго не судите, я новичок-самоучка, только осваиваюсь)
Вложения
Тип файла: txt код.txt (412 байт, 11 просмотров)
Ответить с цитированием
  #2  
Старый 10.04.2011, 16:29
Аватар для march
march march вне форума
Начинающий
 
Регистрация: 04.05.2009
Сообщения: 110
Репутация: 18
По умолчанию

Код:
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  
Старый 10.04.2011, 17:01
Broken Angel Broken Angel вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 3
Репутация: 10
Восклицание

Да, надо для всех слов. Поэтому я, по существу, и обратилась.

Последний раз редактировалось Broken Angel, 10.04.2011 в 17:31.
Ответить с цитированием
  #4  
Старый 10.04.2011, 18:35
Аватар для march
march march вне форума
Начинающий
 
Регистрация: 04.05.2009
Сообщения: 110
Репутация: 18
По умолчанию

Код:
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  
Старый 10.04.2011, 18:39
Broken Angel Broken Angel вне форума
Прохожий
 
Регистрация: 10.04.2011
Сообщения: 3
Репутация: 10
Радость

Огромнейше благодарю.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025