![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Совсем простенькая задачка - напечатать слова последовательности, отличные от первого слова, если последняя буква слова входит в него еще раз. Как это можно было бы представить? Очень надо. Огромное спасибо заранее
![]() |
|
#2
|
|||
|
|||
|
1. Разбери последовательность в массив. Пусть массив будет 1..N
2. Далее циклом от 2 до N идешь и проверяешь 2 условия: что текущее слово не равно первому (элемент массива 1) и что содержит последнюю букву как минимум 2 раза. Для второго условия можно сделать так: (Pos(S[i][Length(S[i])],S[i]) > 0) And (Pos(S[i][Length(S[i])],S[i]) < Length(S[i])) |
|
#3
|
||||
|
||||
|
Спасибо огромное
![]() |
|
#4
|
||||
|
||||
|
Я знаю, что это покажется безнадежным, но все-таки - что тут не так? Спасибо за внимание)
Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Const
N=30;
var
i: integer;
S: string;
A: array [1..N] of Char;
begin
FillChar(A[1], SizeOf(A), 1);
S:=Edit1.Text;
move(S[2], A[1], Length(S)); // <стринг> в <массив>
begin
for i:=2 to N do while A[i] <> A[1]
pos(A[i][Length(A[i])],A[i]) > 0) and (pos(A[i][Length(A[i])],A[i]) < Length(A[i]));
label2.Caption:=A; // <массив> в <стринг>
end;
end;
end.Последний раз редактировалось Admin, 17.02.2009 в 12:17. |