Учебные материалы по математике | Составление алгоритмов с использованием символьных и строковых величин | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

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


СОСТАВЛЕНИЕ АЛГОРИТМОВ С ИСПОЛЬЗОВАНИЕМ СИМВОЛЬНЫХ И СТРОКОВЫХ ВЕЛИЧИН

Напомним несколько базовых алгоритмов со строками

1. Определение количества вхождений символа t в строку s.

k:=0;

For i:=1 to length(s) do

If s[i]=t then inc(k);

 

k:=0;

For i:=1 to length(s) do

If copy(s, i,1)=t then inc(k);

 

k:=0;

n:=length(p);

For i:=1 to length(s) n+1 do

If copy(s, i,n)=p then inc(k);

 

2. Для определения количества вхождений в строку s подстроки р длиной не менее 2 лучше использовать второй способ.

3.Замена всех символов t в строкеs на символ х.

For i:=1 to length(s) do

If s[i]=t then s[i]:=х;

 

i:=1;

whilei<= length(s) do

begin

If copy(s, i,1)=t then

begin

delete(s, i,1);

insert(x, s,i);

end;

inc(i);

end;

 

whilepos(t, s)<>0 do

begin

i:=pos(t, s);

delete(s, i,1);

insert(x, s,i);

end;

 

n:=length(t);

i:=1;

whilei<= length(s) n+1 do

If copy(s, i,n)=t then

begin

delete(s, i,n);

insert(x, s,i);

inc(i);

end;

 

n:=length(t);

whilepos(t, s)<>0 do

begin

i:=pos(t, s);

delete(s, i,n);

insert(x, s,i);

end;

 

4. Для замены всех вхождений слова t на слово х в строке sлучше использовать второй или третий способ.

5. Накопление строки в обратном порядке. Палиндром 1.

ss:=’’;

For i:=1 to length(s)do

ss:=s[i]+ss;

ifss=s

thenwriteln(‘палиндром’)

elsewriteln(‘непалиндром’);

 

При выполнении такого алгоритма палиндромами окажутся строки типа ‘казак’, ‘шалаш’, но фраза ‘А роза упала на лапу Азора.’ — нет.

 

6. Замена прописных букв строчными.

S1:=’АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ’;

S2:=’абвгдеёжзийклмнопрстуфхцчшщьыъэюя’;

For i:=1 to length(S) do

For j:=1 to length(S1) do

if S[i]=S1[j] then S[i]:=S2[j];

 

write(lowercase(s));

Проблема: Эта функция не работает во FreePascal с русскими буквами.

 

 

7.Удаление знаков препинания (всех возможных и невозможныхJ).

znaki:=’!"№;%?*()@#$%^:&<>`~=+/.,»’;

For i:=1 to length(s)do

begin

flag:=1;

For j:=1 to length(znaki) do

If s[i]=znaki[j] then flag:=0;

if flag=1

thenss:=ss+s1[i];

end;

 

 

Упражнения

1)  Программист Иннокентий с детства очень невнимателен. И когда он набирает на компьютере арифметические выражения, то часто пропускает то открывающиеся, то закрывающиеся скобки, вследствие чего Иннокентия часто ругает начальник отдела Савелий Тереньевич и уменьшает ему зарплату. Помогите горе-программисту и напишите программу, которая проверяет, нужное ли количество скобок поставил Иннокентий в арифметическом выражении (количество открывающихся и закрывающихся скобок должны совпадать).

Входные данные

Выходные данные

1

(1+3)*5–3/(5-12)

YES

2

(1+3))*5

NO

2)  Дана последовательность символов (длиной не более 70 символов). Замените в ней все точки запятыми, все маленькие буквы «о» на большие, все тире двумя точками.

3)  Удалите все «лишние» пробелы из введенной строки. Учтите, что данную задачу зачастую приходится решить в ТРWord: горе-юзеры часто между словами ставят два, три или сколько угодно пробелов. Помогите фирме Microsoft написать программу для решения этой проблемы.

4)  Определите, является введённый с клавиатуры символ: русской или латинской буквой, или цифрой, или не относится ни к буквам, ни к цифрам.

5)  Подсчитайте сумму цифр во введённой строке символов.

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020