- •Е. Г. Квашнин
- •Оглавление
- •Операторы ввода, вывода и присваивания информации
- •Оператор присваивания
- •Условный оператор
- •Оператор выбора
- •Процедуры
- •Функции
- •Константы цвета
- •Процедуры
- •Функции
- •Символы (строки)
- •Процедуры
- •Функции Chr(X:Byte):Char Возвращает символ с заданным порядковым номером X.
- •Сравнение строк
- •Объединение строк
Символы (строки)
Функции и команды обработки строк
Процедуры
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.