Олег Деревенец - Песни о Паскале

Тут можно читать онлайн Олег Деревенец - Песни о Паскале - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-db. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Песни о Паскале
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4.5/5. Голосов: 21
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Олег Деревенец - Песни о Паскале краткое содержание

Песни о Паскале - описание и краткое содержание, автор Олег Деревенец, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Аннотация: Изложены основы программирования на языке Паскаль. По ходу обучения решаются десятки задач (использован проектный подход). От читателя не требуется начальных познаний в программировании, но круг затронутых тем ориентирует его в профессиональную область. Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Будет полезна студентам-первокурсникам и преподавателям информатики.

Песни о Паскале - читать онлайн бесплатно полную версию (весь текст целиком)

Песни о Паскале - читать книгу онлайн бесплатно, автор Олег Деревенец
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

S:= 'BORLAND PASCAL';

p:= Pos('LA', S); { 4 }

p:= Pos('PAS', S); { 9 }

p:= Pos('pas', S); { 0 – подстрока не найдена }

p:= Pos('A', S); { 5 – первая из трех букв "A" }

Искомым фрагментом может быть и отдельный символ. Поиск ведется с учетом регистра; это значит, что заглавная и строчная буквы «P» считаются разными буквами.

Копирование части строки (Copy)

Функция Copy возвращает часть заданной строки.

function Copy(S: string; Index, Count: Integer): string;

Входных параметров три:

• S – строка, из которой копируются символы;

• Index – индекс первого копируемого символа;

• Count – количество копируемых символов.

А вот примеры её применения.

S:= ’Free Pascal forever!’;

T:= Copy(S, 6, 6); { ’Pascal’ }

T:= Copy(S, 6, 255); { ’Pascal forever!’ }

Если копируемых символов затребовано больше, чем содержится в исходной строке, то скопируются все символы до конца строки (как в последнем примере).

Вставка в строку (Insert)

Объединять строки сложением просто. А если надо вставить строку в середину другой? Тогда обратитесь к процедуре Insert.

procedure Insert(S1: string; var S2: string; Index: Integer);

Входные параметры:

• S1 – вставляемая строка;

• S2 – ссылка на принимающую строку;

• Index – позиция вставки.

Вот один пример.

S:='Спартакчемпион!';

{ В позицию 8 вставляются три символа: тире и два пробела }

Insert(' – ', S, 8); { Спартак – чемпион! }

Если позиция вставки превышает длину строки S2, то строка S1 добавится в конец S2. Если длина итоговой строки S2 превысит допустимый размер, лишние символы будут отброшены.

Удаление символов из строки (Delete)

Говорят: ломать – не строить. Попытайтесь, однако, удалить часть символов из строки. Слабо? А процедура Delete справляется с этим играючи.

procedure Delete(var S: string; Index, Count : Integer);

Параметры таковы:

• S – ссылка на строку;

• Index – индекс первого удаляемого символа;

• Count – количество удаляемых символов.

Вот пример её применения.

S:= ’Free Pascal forever!’;

Delete(S, 6, 7); { ’Free forever!’ }

Сравнение строк

Мы уже сравнивали строки на равенство (вспомните проверку пароля). Но строки сравнивают и на больше–меньше — лексикографически. При этом сравниваются слева направо коды символов двух строк в смысле их алфавитного порядка. Если длины строк разные и короткая совпадает с началом длинной, то большей считается длинная строка. Вот примеры:

Writeln (’Borland’ > ’Pascal’); { false }

Writeln (’ABC’ > ’AB’); { true }

Writeln (’ABC’ > ’abc’); { false }

Writeln (’45’ > ’1000’); { true, поскольку ’4’ > ’1’ }

В первом примере код буквы «B» меньше кода буквы «P», поэтому левая строка меньше правой. Во втором случае первые символы совпадают, но левая строка длиннее, а значит больше. В третьем примере левая строка меньше, — тоже в соответствии с таблицей кодировки. Обратите внимание на неожиданный результат сравнения строк, составленных из цифр, — это вам не числа!

Сравнивая строки, можно отсортировать их в лексикографическом порядке (как если бы они располагались в словаре). К сожалению, такое сравнение работает только для латинских букв, для русских оно не всегда верно, приходится изобретать свою функцию сравнения (в DELPHI этой проблемы нет).

Перевод символов в верхний регистр (UpСase)

Функция UpСase меняет код латинской буквы, переводя её из нижнего в верхний регистр. Иными словами, она превращает строчную (маленькую) латинскую букву в заглавную (большую). Объявление функции таково.

function UpCase(Ch: Char): Char;

Входной параметр – символ, а возвращается почти тот же символ, только «подросший», вот примеры.

c:= UpCase(’r’); { ’R’ }

c:= ’n’;

c:= UpCase( c ); { ’N’ }

Подсунув этой функции большую латинскую букву, цифру или знак препинания, вы получите назад свой символ неизменным. То же будет и с русскими буквами – они не обрабатываются функцией UpСase.

c:= UpCase(’R’); { ’R’ }

c:= UpCase(’8’); { ’8’ }

c:= UpCase(’ы’); { ’ы’ }

Функцией UpСase обычно приводят введенные строки к определенному виду. Ведь пользователь может ввести данные как заглавными, так и строчными буквами, а это иногда мешает правильной обработке строки.

Ознакомившись со строковой теорией, применим её, что называется, «в бою».

Подсчет слов в строке

Вот вам строка, посчитайте в ней количество слов «Pascal». Чуть подумав, вы остановитесь на функции Pos, – ведь она возвращает позицию искомого слова. Но функция обнаруживает лишь первое вхождение фрагмента, а как быть с остальными? Я предлагаю постепенно разрушать исходную строку. То есть, найдя искомый фрагмент, будем удалять его из строки и снова повторять поиск. На этом и построена программа «P_44_2».

{ P_44_2 - Подсчет слов «PASCAL» в строке }

var S : string; { исходная строка }

p : integer; { позиция в строке }

c : integer; { счетчик слов }

begin

S:='Лучший язык программирования – это PASCAL!'+

'Изучите PASCAL! PASCAL не подведет!';

c:=0;

repeat

p:= Pos('PASCAL', S); { ищем слово «PASCAL» }

if p>0 then begin { если нашли }

Inc(c); { то наращиваем счетчик }

{ и удаляем это слово из строки }

Delete(S, p, Length('PASCAL'));

end

until p=0; { выход, если слов «PASCAL» больше нет }

Writeln('Найдено слов PASCAL: ',c); Readln;

end.

Контекстная замена

Любой текстовый редактор умеет заменять одну подстроку на другую, – это называется контекстной заменой. Устроим такую замену в строковой переменной. Итак, дана строка, содержащая несколько слов «Pascal». Заменим все вхождения слова «Pascal» словом «Паскаль» (чем не англо-русский переводчик?).

Разобравшись с предыдущей задачей, вы легко одолеете и эту. Для проверки вашего решения сравните его с моим («P_44_3»).

{ P_44_3 - Замена слов «Pascal» на «Паскаль» }

var S : string; { исходная строка }

p : integer; { позиция в строке }

begin

S:='Лучший язык программирования – Pascal! '+

'Изучите Pascal! Pascal не подведет!';

Writeln(S); { исходная строка }

repeat

p:= Pos('Pascal', S); { ищем слово 'Pascal' }

if p>0 then begin { если нашли }

{ удаляем это слово из строки }

Delete(S, p, Length('Pascal'));

{ и вставляем в этом месте слово 'Паскаль'}

Insert('Паскаль', S, p);

end

until p=0; { выход, если слов 'Pascal' больше нет }

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Олег Деревенец читать все книги автора по порядку

Олег Деревенец - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Песни о Паскале отзывы


Отзывы читателей о книге Песни о Паскале, автор: Олег Деревенец. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x