Низов тип данни в Pascal, Content Platform
Низов тип данни в Pascal
Низ (низов тип данни)е поредица от знаци с дължина N,където 1 s1, тогава допълнителните знаци ще бъдат отхвърлени
2. Операции за сравнение (релации) =, <>, >, =.
Правила за сравнение на низове:
1) Низовете се сравняват символ по символ в съответствие с техните кодове отляво надясно до първия несъвпадащ знак. Един низ се счита за по-голям, ако първият несъвпадащ знак в него има по-висок номер в кодовата таблица.
Например, 'MS-DOS' ='0') и (S1[i] st[j]) или (st[j]<>' ') тогава
for i:=1 to j do write(st[i]); writeln;
2) Работа с низ като един обект от масив (в този случай текущата дължина на низ се променя динамично):
Започнете writeln('input st');
докато pos(' ',st)>0 do delete(st, pos(' ',st),1);
Как мога да конвертирам тази програма, така че да няма интервали в началото и в края на низа?
Започнете writeln('input st');
докато pos(' ',st)>0 do delete(st, pos(' ',st),1);
if st[1]=' ' then delete(st,1,1);
if st[length(st)]=' ' then delete(st, length(st),1);
В PascalABC тази задача е опростена:
Започнете writeln('input st');
докато pos(' ',st)>0 do delete(st, pos(' ',st),1);
Забележка:Ако това решение на проблема се представи като процедура, тогава всеки низ може да бъде редуциран доправилната форма, т.е. до низ, в който всички думи са разделени с един интервал и няма излишни интервали в началото и края на низа. Това ще позволи решението на повечето проблеми на линии да доведе до един алгоритъм:
Започнете writeln('input s');
Докато pos(' ',s)>0 do
Задача 2.Намерете дума с максимална дължина в низ.
Докатоpos(' ',s)>0 do
Започнете writeln('input s');
Забележка:В проблема е използван правилният низ. В противен случай е необходимо да го доведете до тази форма, като премахнете излишните интервали (вижте решението по-горе) и го форматирате като процедура. По-добре е да включите тази процедура във вашия модул.
Списък със задачи за тип низ.
1. Даден е низ от знаци. Пребройте броя на думите в един ред. Напишете го като процедура или функция.
2. Даден е низ от знаци. Намерете думата с максимална дължина. Напишете го като процедура или функция.
3. Даден е низ от знаци. Намерете дума с минимална дължина. Напишете го като процедура или функция.
4. Даден е низ от знаци. Премахнете всички думи, започващи с "pro" от низа. Напишете го като процедура или функция.
5. Даден е низ от знаци. Премахнете всички цифрови знаци от низ. Напишете го като процедура или функция.
6. Даден е низ от знаци. Премахнете от него текста, ограден в <>. Да приемем, че такава комбинация се среща само веднъж в низ.
7. Даден е низ от знаци. Определете дали в него има думи, които започват и завършват с една и съща буква. Напишете го като процедура или функция.
8. Даден е низ от знаци. Определете дали съдържа палиндромни думи. Напишете го като процедура или функция.
9. Даден е низ от знаци. Заменете знаците "I", "2", "3" с думите "едно", "две", "три". Напишете го като процедура или функция.
10. Напишете процедура, която вмъква посочения знак след указаната позиция.
11. Напишете функция, която определя появата на даден елемент в низ.
12. Определете колко пъти GOTO се среща в низ. Напишете го като процедура или функция.
13. Символният низ се състои от латински букви. Подреди ги по азбучен ред. Плащане вкато процедура или функция.
14. Намерете всички палиндромни думи в низ. Напишете го като процедура или функция.
15. Определете дали в низаима еднакви думи. За издаване под формата напроцедури или функции.
16. Премахнете всички четни думи от низа. Настройте го като процедура.
17. Даден е низ от знаци. Премахване на всички нецифрови знаци от низ. Напишете го като процедура или функция.
18. Даден е низ от знаци. Определете колко различни знака има в низ.