Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Л7_инф_2015 / Пример_работы_со_строками

.doc
Скачиваний:
9
Добавлен:
27.03.2016
Размер:
80.38 Кб
Скачать

Дополнительный материал к лекции №5.

Задача 1. Удалить из строки все лишние пробелы между словами, кроме одного.

Рис. 1 Алгоритм удаления лишних пробелов

program projstring;

{$APPTYPE CONSOLE}

uses

SysUtils;

var s:string[20];

k,i:integer;

ch:char;

begin

repeat

Writeln('Enter String');

readln(s);

s:=trim(s);

k:=length(s);

i:=1;

while i<=k do

begin

if s[i]=' ' then

while s[i+1]=' ' do

begin

delete(s,i+1,1);

k:=k-1;

end;

i:=i+1;

end;

writeln('new string =',s);

writeln('Continue?');

readln(ch);

until ch='n';

end.

Результат работы программы со строкой:

Рис. 2

Проанализируйте результаты и объясните результат обработки первой строки.

Пример решения задачи со строками в визуальной среде.

Задача 2. Получить инверсную строку.

Рис. 3 Алгоритм инверсии строки

unit Unit1_revers_string;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

s=string[60];

var

Form1: TForm1;

s1:s;

implementation

{$R *.dfm}

Procedure Revers(var ss:s;n:integer);

var t:char;

begin

if n>length(ss) div 2 then

a

b

c

d

e

f

g

h

i

j

begin

j

b

c

d

e

f

g

h

i

a

t:=ss[n];

ss[n]:=ss[length(ss)-n+1] ;

ss[length(ss)-n+1]:=t;

Revers(ss,n-1);

end;

end;// Метод инвертирования строки

procedure TForm1.Button1Click(Sender: TObject);

begin

s1:=edit1.text;

end; // Ввод строки из окна

procedure TForm1.Button2Click(Sender: TObject);

var t:char;

r:integer;

begin

r:=length(s1);

revers(s1,r);

Edit2.Text :=s1;

end; // Событие, обеспечивающее вызов метода преобразования строки

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

end.

Рис. 4 Результат инвертирования строки

5

Соседние файлы в папке Л7_инф_2015