|
|
Регистрация | << Правила форума >> | 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. |