Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник-задач-на-Языке-Turbo-Pascal.doc
Скачиваний:
40
Добавлен:
11.02.2015
Размер:
445.95 Кб
Скачать

Символы (строки)

Функции и команды обработки строк

Процедуры

Delete(Var S:String; N, MJnteger)Удаляет М символов из строкиS,начиная с позицииN.

Insert(SubS: String; Var S:String; N:Integer) Вставляет подстрокуSubSв строкуS,начиная с позицииN.

Str(X:Integer; Var S:String) Возвращает представление числаХв его символьной формеS.

Val(S:String; Var X, Code: Integer) Возвращает представление символов строкиSв ее числовой формеК-ПараметрCodeсодержит признак ошибки преобразования (еслиCode= 0 ошибки нет).

Функции Chr(X:Byte):Char Возвращает символ с заданным порядковым номером X.

Concat(Sl[, S2, .... SN]):String Выполняет сцепку (конкатенацию) последовательности строк.

Copy(S:String;N, M:Integer):String Возвращает подстроку из строкиS,начиная с позицииNи длинойМсимволов.

Length(S:String):Byte Возвращает количество символов в строкеS.

Ord(X:Char):LongInt Возвращает порядковый номер символаХв таблице кодов символов.

Pos(SubS, S: String):ByteВозвращает номер позиции, начиная с которой в строкеSраспола­гается подстрока SubS (если значение функции равно нулю, тоSне содержит SubS).

Программа, которая ведёт с вами в диалог.

Program primer 1;

Uses crt;

var a, b : string [50];

Begin

Clrscr;

writeln ('Добрый день!');

writeln ('Назовите, пожалуйста, свое имя');

readln (a) ;

writeln ('Рад познакомиться, ' , а);

writeln ('Как поживаете? ' ) ;

readln (b) ;

writeln ('Какое совпадение! И я ' , b);

readln;

End.

Сравнение строк

Метод сортировки трёх строк по алфавиту.

Program primer 2;

Uses crt;

var a, b, c, d : string [20] ;

Begin

Clrscr;

writeln ('Введите 1-е слово');

readln (a) ;

writeln ('Введите 2-е слово');

readln (b) ;

writeln ('Введите 3-е слово');

readln (с) ;

d : = ‘ ‘;

If a > b then

begin

d:= a ;

a:= b;

b:= d;

end;

If b > с then

begin

if с < a then

begin

d = a;

a = c;

с = d;

end;

d:= b;

b:= c;

c:= d;

end;

writeln (a);

writeln (b);

writeln (c);

readln;

End.

Объединение строк

Составление предложения.

Programprimer 3;

UsesCrt;

var

a, b, c, d : string[30];

Begin

Clrscr; В результате получим:

a:='To be'; To be or not To be That is the question

b: = 'or not';

c:='That is the question';

d:=a+b+a;

writeln (d);

writeln (c);

readln;

End.

Сцепление строк.

Programprimer 4 ;

Uses Crt;

var

a,b,c,d, 1,m,n,p:string[10]; В результате работы этой программы на

экране появятся следующие слова

Begin

Clrscr; парад паром сом сад

а:='пар';

b:='ад';

с:='ом';

d:='c';

l:=a+b; m:=a+c; n:=d+c; p:=d+b;

writeln (1, ' ' , m, ' ', n, ' ', p);

readln;

End.

Копирование подстроки

Составление простых слов из более сложного.

Program primer 5 ;

Uses Crt;

var

a, b, c, d , e : string [15] ;

Begin

Clrscr;

a:='стихотворение' ; В результате работы этой программы получим:

b:=copy(a, 1, 4) ; стих, тихо, творение, вор

c:=copy(a, 2, 4) ;

d:=copy(a, 6, 8) ;

e:=copy(a, 7,3);

writeln (b, ' , ' , с, ' , ' , d, ' , ' , е);

readln;

End.

Вставка, замена и удаление подстроки

Преобразование слова левов словокомпот.

Programprimer 6;

UsesCrt;

var

a, b,c,d : string [15];

Begin

Clrscr;

a:='лекарство';

delete(a, 3, 5);

writeln(a); {лево}

delete(а, 3, 1);

b:='т';

insert(b, a, 3);

writeln(a); {лето}

с:='кот';

d:='мпo';

insert(d, с, 3);

writeln(c); {компот}

readln;

End.

Поиск подстроки

Поиск слов в предложении.

Program primer 7;

Uses Crt;

var

a, b, с : string [100];

m, n : integer;

Begin

Clrscr;

a ='Жил-был в норе под землей хоббит';

b :='был';

с :='хоббит';

m :=pos (b, a);

n:=pos(с, а);

writeln (b, ' - ', m); {был - 5}

writeln (с, ' - ', n); {хоббит – 27}

readln;

End.

Определение длины строки

Programprimer 8;

UsesCrt;

vara, b : string[25];

Begin

Clrscr; В результате получим:8 19.

a:='computer';

b:='calculating machine';

writeln(length(a), ' ', length(b));

readln;

End.

Преобразование строк

Программа, определяющая и сравнивающая в введённом с клавиатуры числе количество чётных и нечётных цифр.

Programprimer 9;

UsesCrt;

var a: string[5] ;

b: string[1];

i, k, s, sn , x : integer;

Begin

Clrscr;

s: =0; sn: =0 ;

write('Задайте число'); readln(a);

for i:=l to length(a) do

begin

b:=copy(a,i,l) ;

val(b,x,k) ;

if x mod 2=0 then s:=s+l else sn:=sn+l;

end;

if s>sn then writeln ('Четных цифр больше');

if s<sn then writeln ('Нечетных цифр больше');

if s=sn then writeln ('Одинаково');

readln;

End.

Программа, заменяющая в предложении одно слово на другое.

ProgramReplace;

Uses Crt;

varText, Slovol, Slovo2 : String;

i, DlinaSlova, P : Integer;

Begin

CIrScr;

write(‘Введите строку :');

readln(Text);

write('Kaкoe слово заменить ? '); readln(Slovol);

write('Ha какое слово заменить ?'); readln(Slovo2);

writeln;

writeln('0 т в е т : ');

writeln('Исходный текст: ', Text);

DlinaSlova := Length( Slovol);

P := Pos(Slovol,Text); {номер позиции, с которой в строке Text в первый раз встречается подстрока Slovol}

while P>0 do{цикл продолжается до тех пор, пока подстрока Slovol встречается в строке Text}

begin

Delete(Text, P,DlinaSlova);{удаление подстроки Slovol, начинающейся с позиции P, из строки Text}

Insert(Slovo2,Text,P);{вставка подстроки Slovo2 в строку Text с позиции P}

P:=PostSlovol,Text);{номер позиции, с которой подстрока Slovol встречается в строке Text в очередной раз}

end;

writeln('Hoвый текст: ', Text);

readln;

End.

Программа подсчета различных букв в слове.

Programschot;

UsesCrt;

var s: string;

r: real;

i, j, n: integer;

Вegin

CIrScr;

r:=0;

readln(s);

for i:=1 to length(s) do

begin

n:=0;

for j:=1 to length(s) do

if s[i]=s[j] then inc(n);

r:=r+1/n;

end;

writeln('количество различных букв = ', r:1:0);

readln;

Еnd.

Программа определяющая, является ли слово "перевертышем" .

{Например, "шалаш", "казак" - перевёртыш}.

Programkazak;

Uses Crt;

var s1, s2: string;

i: integer;

Вegin

CIrScr;

readln(s1); s2:='';

for i:=length(s1) downto 1 do

s2:=s2+s1[i];

if s1=s2 then writeln(s1, ' - перевертыш')

else writeln(s1, ' - не перевертыш');

readln;

Еnd.

Обработка текста: Выделение слов из текста

--------------------------------------------------------------------------

На входе - текст, на выходе - список слов

--------------------------------------------------------------------------

Programslovo1;

Uses Crt;

const Alpha : set of char=['A'..'Z', 'А'..'П', 'Р'..'Я', 'a'..'z', 'а'..'п', 'р'..'я'];

var s, t: string;

i: integer;

Вegin

CIrScr;

writeln('Введите текст'); readln(s);

writeln('Список слов в тексте:');

i:=1;

Repeat

while NOT(s[i] in Alpha) and (i<=length(s)) do inc(i);

t:=' ';

while (s[i] in Alpha) and (i<=length(s)) do

begin

t:=t+s[i];

inc(i);

end;

if length(t)<>0 then writeln(t);

Until (i>length(s));

readln;

Еnd.

Обработка текста: Подсчет количества слов в тексте

--------------------------------------------------------------------------

На входе - текст, на выходе - количество слов в тексте

--------------------------------------------------------------------------

Programslovo2;

Uses Crt;

const Alpha : set of char=['A'..'Z', 'А'..'П', 'Р'..'Я', 'a'..'z', 'а'..'п', 'р'..'я'];

var s: string;

i: integer;

wc: integer;

Вegin

CIrScr;

writeln('Введите текст'); readln(s);

i:=1; wc:=0;

Repeat

while NOT(s[i] in Alpha) and (i<=length(s)) do inc(i);

if (i<=length(s)) then inc(wc);

while (s[i] in Alpha) and (i<=length(s)) do inc(i);

Until (i>length(s));

writeln('Количество слов в этом тексте = ', wc);

readln;

end.

Обработка текста: Выделение чисел из текста

--------------------------------------------------------------------------

На входе - текст, на выходе - список чисел

--------------------------------------------------------------------------

Programnumber;

Uses Crt;

const Digits : set of char=['0'..'9'];

var s, d: string;

i: integer;

Вegin

CIrScr;

writeln('Введите текст, в котором есть и цифры:');

readln(s);

writeln('Список чисел в тексте:');

i:=1;

Repeat

while NOT(s[i] in Digits) and (i<=length(s)) do inc(i);

d:=' ';

while (s[i] in Digits) and (i<=length(s)) do

begin

d:=d+s[i];

inc(i);

end;

if length(d)<>0 then writeln(d);

Until (i>length(s));

readln;

Еnd.

Обработка текста: Перевод в маленькие буквы (нижний регистр)

-------------------------------------------------------------------------

На входе - текст, на выходе - текст из маленьких букв

--------------------------------------------------------------------------

Programtext1;

Uses Crt;

var s: string;

function SmallAlpha(ps: string): string;

var i: integer;

begin

for i:=1 to length(ps) do

begin

case ps[i] of

'A'..'Z','А'..'П': inc(ps[i],32);

'Р'..'Я' : inc(ps[i],80);

end;

end;

SmallAlpha:=ps;

end;

Вegin

CIrScr;

writeln('Введите любой текст'); readln(s);

writeln('Этот же текст маленькими буквами:');

writeln(SmallAlpha(s));

readln;

Еnd.

Обработка текста: Перевод в заглавные буквы (верхний регистр)

--------------------------------------------------------------------------

На входе - текст, на выходе - текст из больших букв

--------------------------------------------------------------------------

Programtext2;

Uses Crt;

var s: string;

function BigAlpha(ps: string): string;

var i: integer;

begin

for i:=1 to length(ps) do

begin

case ps[i] of

'a'..'z','а'..'п': dec(ps[i], 32);

'р'..'я' : dec(ps[i], 80);

end;

end;

BigAlpha:= ps;

end;

Вegin

ClrScr;

writeln('Введите любой текст');

readln(s);

writeln('Этот же текст большими буквами:');

writeln(BigAlpha(s));

readln;

Еnd.

Список использованных источников

Лахтин А.С., Искакова Л.Ю. Языки и технология программирования. Начальный курс.

Учебное пособие. Екатеринбург. 1998.

Немнюгин С., Перколаб Л. Изучаем TurboPascal. – СПб.: Питер, 2002.

Шауцукова Л. З. Информатика: Учеб. Пособие для 10-11 кл. общеобразоват. Учреждений. М.: Просвещение, 2002.

55