- •Введение
- •1. Вычисление функций
- •Пояснения к программе
- •Пояснения к программе
- •2. Одномерные массивы
- •3. Матрицы
- •Пояснения к программе
- •4. Обработка текстов
- •Пояснения к программе
- •Пояснения к программе
- •5. Процедуры и функции
- •Пояснения к программе
- •Пояснения к программе
- •Пояснения к программе
- •6. Перечисляемый и диапазонный типы
- •Пояснения к программе
- •7. Записи
- •8. Множества
- •9. Файлы
- •10. Списки
- •Пояснения к программе
- •Пояснения к программе
- •Литература
- •Приложение 1 Комбинации клавиш управления в среде Turbo Pascal
- •Приложение 2 Сообщения об ошибках периода компиляции
- •1. Вычисление функций 5
Пояснения к программе
Используется связанный список с пустым заглавным звеном. Для исключения и вставки звеньев предназначены процедуры ISKL и Vstavka. Используются указатели:
Str – на начало строки; UK – на звено, вслед за которым вставляется число повторений символа; UT – на текущее анализируемое звено; UGR – на начало обрабатываемой группы.
Type
Ukaz = ^Zveno;
Zveno = Record
Element : Char;
Next : Ukaz
end;
Var
Str, UK, UT, UGR, P : Ukaz;
K : 1 .. 9; {счетчик одинаковых символов}
Simvol : Char;
{исключение звена, R – ссылка на звено, предшествующее удаляемому}
procedure ISKL( R : Ukaz );
Var
P : Ukaz;
begin
P := R^.Next; {указатель – на исключаемое звено}
R^.Next := R^.Next^.Next; {в предыдущем звене указатель – на следующее за исключаемым звено}
Dispose( P ) {уничтожили исключаемое звено}
end; { ISKL }
{вставка звена с символом Bukva за звеном, на которое указывает Poz }
procedure Vstavka( Poz : Ukaz; Bukva : Char);
Var
P : Ukaz;
begin
New( P ); {создали новое звено}
P^.Element := Bukva; {в него поместили символ}
P^.Next := Poz^.Next; {поместили указатель из звена, за которым произв-ся вставка}
Poz^.Next := P{в предыдущее звено указатель на новое}
end; { Vstavka }
Begin
{создали заглавное пустое звено}
New( Str ); Str^.Next := Nil;
UT := Str;
WriteLn ('Введите текст, оканчивающийся точкой');
Repeat {ввод строки и создание связанного списка}
Read( Simvol );
Vstavka( UT, Simvol );
UT := UT^.Next {передвинули текущий указатель}
Until Simvol = '.';
WriteLn;
UK := Str;
UGR := UK^.Next; {- на первое непустое звено}
while UGR^.Element <> '.' do
begin {начало обработки группы}
UT := UGR^.Next; {- на звено за началом группы}
K := 1;
while UGR^.Element = UT^.Element do
begin
UT := UT^.Next; {передвинули текущий указатель}
ISKL( UGR ); {удалили повторяющийся символ}
K := K + 1
end;
Simvol := CHR( ORD('0')+ K);{заменили цифру символом}
Vstavka( UK, Simvol ); {вставка цифры перед буквой}
UK := UGR; {- на звено, оставшееся от группы}
UGR := UGR^.Next {- на звено за обработанной группой}
end;
{обработка строки закончена}
WriteLn ('Преобразованный текст:');
UT := Str;
Repeat
UT := UT^.Next;
Simvol := UT^.Element;
Write( Simvol )
Until Simvol = '.'
End.
Литература
Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. — М.: Наука, 1988.
Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. — М.: Наука, 1988.
Алкок Д. Язык Паскаль в иллюстрациях. — М.: Мир,1991. — 192с.
Вальвачев А.В., Крисевич В.С. Программирование на языке Паскаль для персональных ЭВМ ЕС: Справочн. пособие. — Минск: Вышейшая школа, 1989.
Дагене В.А., Григас Г.К., Аугутис К.Ф. 100 задач по программированию. — М.: Просвещение, 1993. — 225с.
Джонстон Г. Учитесь программировать. — М.: Финансы и статистика, 1989. — 368с.
Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0. — М.: "ДИАЛОГ-МИФИ", 1993. — 288 с.
Йенсен К.,Вирт Н. Паскаль. Руководство для пользователя. — М.: Финансы и статистика, 1989. — 255с.
Перминов О.Н. Программирования на языке Паскаль. — М.: Радио и связь, 1988. — 224с.
Перминов О.Н. Язык программирования Паскаль: Справ. пособие. — М.: Радио и связь, 1989. — 128с.
Пестриков В.М., Маслобоев А.Н. Turbo Pascal 7.0. Изучаем на примерах. — СПб.: Наука и техника, 2003. — 368 с.
Пильщиков В.Н. Сборник упражнений по языку Паскаль. — М.: Наука, 1989. — 160с.
Прайс Д. Программирование на языке Паскаль. — М.: Мир, 1987.
Программирования на языке Паскаль: задачник / под ред. Усковой О.Ф. — СПб.: Питер, 2003. — 336 с.
Немнюгин С.А. Turbo Pascal. Учебник. — СПб.: Питер, 2003. — 496 с.
Немнюгин С.А. Turbo Pascal. Практикум. 2-е изд. — СПб.: Питер, 2003.
Самохвалов В.А., Парасич В.А. Программирование ЭВМ и численные методы: Сб. задач. — Челябинск: ЧГТУ, 1992. — 83с.
ФароновВ.В. Программирование на персональных ЭВМ в среде Турбо-Паскаль. — М.: Изд-во МГТУ, 1990. — 580с.