Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Виведення рядка з словами у зворотному порядку у файл

Приклад 17.1

Визначення меншого рядка

Меншим буде той рядок, в якому перший символ, що не збігається має менший порядковий номер у таблиці АSCII.

Якщо рядки мають різну довжину, але в спільній частині збігаються, то меншим вважається коротший рядок.

Порівняння літерних символів

Порівняння може дати на перший погляд несподівані результати, якщо у двох рядках перемішані маленькі і великі літери. Маленькі літери мають більші порядкові номери у таблиці АSCII, ніж великі.

Наступні операції порівняння повертають результат TRUE.

‘Tommy’>’Harry’

‘France’= ‘France’

‘king ‘ <’kingdom’

‘Miscount’<’Misquote’

‘рascal’ > ‘Pascal’,

‘Pascal’ >’PASCAL’

Порівняння цифрових символів

В зв’язку з тим, що порівняння відбувається у “ словарному стилі “, не слід чекати що порівняння рядків буде відповідати поняттям порівняння чисел. Наприклад, не дивлячись на те, що 300 більше за 32, рядок ’300 ’ менший за рядок ’32’, в зв’язку з тим, що ’2’ більше за ’0’.

Задано текст, що складається із слів, які відокремлені одне від одного пробілами. Створити рядок, у якому ці слова будуть розташовані у зворотному порядку.

Об’ява змінних і введення рядка

Program reverse;

Var word,ost,nst:string; f1:text;

sym:integer;

begin assign(f1,'reversrr.pas'); rewrite(f1);read(ost);

nst:=' '; ost:=concat(ost,' ');

writeln(f1,'ost',ost);

Перестановка слів

while ost<>' ' do begin

sym:=pos(' ',ost); writeln(f1,'sym=',sym);

word:=copy(ost,1,sym); writeln(f1,'word=',word); nst:=concat(word,nst); writeln(f1,'nst=',nst);

delete(ost,1,sym); writeln(f1,'ost=',ost); end;

writeln(f1); writeln(f1,'Print new string');

writeln(f1,'***********************');

writeln (f1,nst);

writeln(f1,'***********************');

close(f1);

end.

Отримані результати мають вигляд:

ostqqq eee ttttt yyyyy aaaaa dddd sym=6

sym=4 word=aaaaa

word=qqq nst=aaaaa yyyyy ttttt eee qqq

nst=qqq ost=dddd

ost=eee ttttt yyyyy aaaaa dddd sym=5

sym=4 word=dddd

word=eee nst=dddd aaaaa yyyyy ttttt eee qqq

nst=eee qqq ost=

ost=ttttt yyyyy aaaaa dddd Print new string

sym=6 ******************************

word=ttttt dddd aaaaa yyyyy ttttt eee qqq

nst=ttttt eee qqq **********************************

ost=yyyyy aaaaa dddd

sym=6

word=yyyyy

nst=yyyyy ttttt eee qqq

ost=aaaaa dddd

Розділ об’яв

program alfavit;

uses crt;

const lsize=10;

var dlina:1..lsize;

lines:array[1..lsize] of string;

sym,vlist:integer; f,f1:text;

Розділ інструкцій

begin {введення даних з файлу і виведення цих даних у файл результатів}

assign(f,'alfavit.dat'); reset(f);

assign(f1,'alfavitr.pas'); rewrite(f1);

writeln(f1,'danі');

for vlist:=1 to lsize do begin

readln(F,lines[vlist]);

writeln(f1,'lines=',lines[vlist]); end;

 

writeln(f1,'rezult');

for vlist:=1 to lsize do begin

dlina:=1;

for sym:=2 to lsize do

if (lines[sym]<lines[dlina]) and (lines[sym]<>' ')

then dlina:=sym; writeln(f1,'lines=',lines[dlina]);

lines[dlina]:=' '; end;

close(f1); end.

Дані та отримані результати

danі

zzzz mmmmmm ssssss aaa bbbb ccc ddddd eeeee ffffff gggg

result

aaa bbbb ccc ddddd eeeee ffffff gggg mmmmmm ssssss zzzz

Лекція 18

Рядки (String) продовження.

<== предыдущая лекция | следующая лекция ==>
Файл даних | Приклад 18.3
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 486; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.