СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Строки в Pascal

Категория: Информатика

Нажмите, чтобы узнать подробности

Для  обработки  текстов  в  Паскале широко   используется  тип  STRING (строка).  Он во многом  похож  на  одномерный  массив  символов ARRAY [0..N] OF CHAR,  однако,  в  отличие от  последнего,   количество  символов  в  строке  может  меняться  от 0  до 255.

Просмотр содержимого документа
«Строки в Pascal»


Строки в Pascal


Для обработки текстов в Паскале широко используется тип STRING (строка). Он во многом похож на одномерный массив символов ARRAY [0..N] OF CHAR, однако, в отличие от последнего, количество символов в строке может меняться от 0 до 255.

Самый первый байт в строке имеет индекс 0 и содержит текущую длину строки. Первый значащий символ строки занимает второй байт и имеет индекс 1.

Вce действия над строками и символами реализуются с помощью описываемых ниже стандартных процедур и функций.


СONCAT(S1 [,S2,...,SN])- функция типа STRING;возвращает строку, представляющую собой сцепление строк—параметров S1,S2, ... ,SN.


COPY(ST, INDEX, COUNT) - функция типа STRING; копирует из строки ST COUNT символов, начиная с символа с номером INDEX.


DELETE(ST, INDEX, COUNT) - процедура; удаляет COUNT символов из строки ST, начиняя с символа с номером INDEX.


INSERT(SUBST,ST,INDEX) -процедура; вставляет подстроку SUBST в строку ST, начиная с символа с номером INDEX.


LENGTH(ST) - функция типа INTEGER: возвращает длину строки ST.


POS (SUBST, ST) — функция типа INTEGER: отыскивает в строке ST первое вхождение подстроки SUBST и возвращает номер позиции, c которой она начинается; если подстрока не найдена, возвращается ноль.


STR(X [:WIDTH [:DECIMALS] ],ST) - процедура; преобразует число Х любого вещественного или целого типов в строку символов ST так, как это делает процедура WRITELN перед выводом; параметры WIDTH и DECIMALS, если они присутствуют, задают формат преобразования: WIDTH определяет общую ширину поля, выделенного под соответствующее символьное представление вещественного или целого числа X, a DECIMALS - количество символов в дробной части (этот параметр имеет смысл только в том случае, когда Х — вещественное число).


VAL(ST,X,CODE)- процедура; преобразует строку символов ST в целое или вещественное число X; параметр CODE содержит ноль если преобразование прошло успешно, и тогда в Х помещается peзyльтат преобразования, в противном случае он содержит номер позиции в строке ST, где обнаружен ошибочный символ, и в этом случае содержимое Х не меняется.


UPCASE(CH) - функция типа CHAR; возвращает для символьного выражения СН, которое должно представлять собой строчную латинскую букву, соответствующую заглавную букву; если значением CH является любой другой символ (в том числе строчная буква русского алфавита), функция возвращает его без преобразования.



ORD(s) – функция типа INTEGER;возвращающая ASCII код символа S.


CHR(n) - функция типа CHAR; возвращающая символ по его ASCII коду N.


1.Получить новый текст соединением имеющихся текстов.


var st1,st2,st3,st4,st:string;

n,k,i:integer;

Begin

st1:='Мы пришли';

st2:='в школу';

st3:='№ 1';

st4:=' ';

st:=concat(st1,st4,st2,' ',st3); {Объединение текстов}

writeln(st);

End.


2. Вводиться строка ST. Вычислить её длину.

var st:string;

n:integer;

Begin

writeln('Введите строку');

readln (st);

n:=length(st);

writeln('Длина строки =',n);

End.


3. Подсчитать количество букв «а» в тексте (русских и латинских).

program zadacha5_3;

var t:string;

b:string[1];

n,k,i:integer;

Begin

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

n:=length(t); {Вычисление длины текста}

k:=0;

for i:=1 to n do

begin

b:=copy(t,i,1); {Вырезка одного символа}

if (b='a')or(b='A')or(b='а')or(b='А')

then k:=k+1; {Сравнение символа с буквой а}

end;

writeln('k=',k);

End.


Данную задачу можно решить и с неявным использованием команды copy()


var t,b:string;

n,k,i:integer;


Begin

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

readln(t);

n:=length(t);

for i:=1 to n do

begin

b:=t[i];

if (b='a')or(b='A')or(b='а')or(b='А')

then k:=k+1;{Сравнение символа с буквой а}

end;


writeln('k=',k);

End.



4.В данном тексте заменить все слога “ма” на “па”.


var t:string;

n,k,i:integer;


Begin


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

readln(t);

n:=length(t);

for i:=1 to n-1 do

if copy(t,i,2)='ма' then

begin

delete(t,i,2);

insert('па',t,i);

end;


writeln('t=',t);

End.

5. Дано слово. Проверить является ли оно перевёртышем (палиндромом).

Например

мама  амам : не является

алла  алла : является

(для решения задачи сформируем перевёртыш, а потом сравним равно ли исходное слово перевёртышу)


var t,sl,per:string;

n,k,i:integer;


Begin

writeln('Введите слово'); readln(sl);

n:=length(sl);

i:=n;per:='';

while i0 do

begin

per:=per+copy(sl,i,1);

i:=i-1;

end;

if sl=per then t:='является'

else t:='не является';

writeln('слово ',sl,'-',t,' перевёртышем');

End.


6. Дано число (от 1 цифры до 255 цифр). Найти сумму цифр этого числа.


var t:string;

sim:string[1];

i,n:word;

code,s,cifra:integer;


Begin

writeln('Введите число’);

readln(t); {Вводим число как текст}

n:=length(t);

s:=0;


for i:=1 to n do

begin

sim:=copy(t,i,1); {Вырезка символа}

val(sim,cifra,code); {Паревод в числовой формат}

s:=s+cifra;

end;


writeln('Сумма цифр числа ',t,' = ',s);

End.

7. Выдать на экран кодировочную таблицу.


var

i:integer;

Begin

for i:=0 to 255 do

write(chr(i),' ');

End.



8. Выдать на экран символ по введённому ASCII коду.


var

sim:char ;

kod:byte;

Begin

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

readln(sim);

writeln('Код символа - ',sim,': ',ord(sim));

End.



9. Имеется двухмерный массив, все элементы которого являются словами. Вычислить сколько раз в массиве встречается слово ‘лес’.



const n=3;


a:array[1..n,1..n] of string=(('лес','луг','поле'),

('степь','тайга','лес'),

('лес','саванна','прерия'));

var

i,j,k:byte;


Begin

k:=0;


for i:=1 to n do

for j:=1 to n do

if a[i,j]='лес' then inc(k);

writeln('Кол-во слов ЛЕС = ',k);


End.



Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!