Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
36
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Удаление одинаковых символов

Задача:

Оставить в строке только один экземпляр каждого встречающегося символа.

Описание переменных:

s1 – исходная строка;

s2 – конечная строка;

s3 – переменная для очередного символа.

Алгоритм решения задачи:

  1. Копировать в s3 очередной символ из s1.

  2. Если s3 не содержится в s2, то добавить его туда.

Программа на языке Паскаль:

var

s1,s2,s3: string;

i: byte;

begin

write('String: ');

readln(s1);

s2 := '';

for i:=1 to length(s1) do begin

s3 := copy(s1,i,1);

if pos(s3,s2) = 0 then

s2 := s2 + s3

end;

writeln('String: ',s2);

readln

end.

Удаление лишних пробелов

Задача:

Удалить в строке все лишние пробелы.

Лишними считаются пробелы, следующие непосредственно за пробелами. Т.е. между словами всегда должен находиться один пробел.

Алгоритм решения задачи:

Посимвольно перебирать строку, пока не будет достигнут конец строки. Если очередной символ является пробелом и после него также находится пробел, то скопировать строку до текущего символа и добавить к ней остаток строки, пропустив один символ.

Программа на языке Паскаль:

Var s: string;

i: byte;

begin write('String: ');

readln(s);

i := 1;

repeat

if copy(s,i,2)=' ' then

s := copy(s,1,i) + copy(s,i+2,length(s))

else

i := i + 1

until (i > length(s));

writeln('String: ', s);

readln

end.

Вывод строки по диагонали

Задача:

Вывести на экране строку, введенную пользователем, по диагонали.

Программа на языке Паскаль:

uses crt;

var

s: string;

i: byte;

begin

write('String: ');

readln(s);

clrscr;

for i:=1 to length(s) do begin

gotoxy(0+2*i,0+i);

writeln(s[i])

end;

readln

end.

Частота встречаемости символа в строке

Задача:

Определить, как часто встречается определенный символ в строке.

Описание переменных:

s – строка;

c – символ;

n – количество найденных символов в строке;

len – длина строки;

freq – частота встречаемости, определяемая по формуле (n / len) * 100.

Алгоритм решения задачи:

  1. Получить строку и символ.

  2. Определить длину строки.

  3. Перебрать каждый символ в строке:

  1. если очередной символ совпадает с заданным символом, то увеличить счетчик символов (n) на единицу.

  1. Вычислить значение частоты встречаемости и вывести ее на экран.

Программа на языке Паскаль:

var

s: string;

c: char;

n,len,i: byte;

freq: real;

begin

write('String: ');

readln(s);

write('Char: ');

readln(c);

n := 0;

len := length(s);

for i:=1 to len do

if s[i] = c then

n := n + 1;

freq := (n / len) * 100;

writeln('Frequency: ',freq:5:2,'%');

readln

end.

Палиндром

Задача:

Определить, является ли строка палиндромом.

Палиндром – это число, слово или фраза, одинаково читающиеся в обоих направления.

Описание переменных:

s – строка;

f – флаг.

Алгоритм решения задачи:

  1. Брать очередной символ с начала строки и сравнивать его с противоположным.

  2. Если символы не равны, то выдать сообщение "не палиндром", изменить значение флага и остановить сравнение.

  3. Если значение флага не было изменено, то выдать сообщение "палиндром".

Программа на языке Паскаль:

var

s: string;

i,f: byte;

begin

write('String: ');

readln(s);

f := 0;

for i := 1 to length(s) div 2 do

if s[i] <> s[length(s)-i+1] then begin

writeln('No palindrome');

f := 1;

break

end;

if f = 0 then

write('Palindrome');

readln

end.