Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal_учебник_3.doc
Скачиваний:
33
Добавлен:
11.04.2015
Размер:
937.47 Кб
Скачать

Каждая переменная типа string вводится отдельной процедурой readln

Будем считать, если специально не оговорено, что все слова в строке разделены одним пробелом и никаких знаков препинания нет.

Пример 1

В строке "Язык программирования Фортран" слово "Фортран" заменить словом "PASCAL".

Решение

Var

L:string; {Буква Ф- 23-й символ в строке L}

Begin {  }

L:='Язык программирования Фортран';

Delete(L,23,10); {Удаляем 10 символов, но будет удалено столько, сколько есть фактически}

L:=L+'PASCAL';

Writeln(L)

End.

Задания

№1. Подсчитать количество символов в строке до точки.

№2. Для строки "Иванов Иван Иванович"определить, с какой позиции строки начинается имя"Иван".

№3. Подсчитать k- количество цифр в десятичной записи целого неотрицательного числаn.

№4. В строке Lодна запятая и три пробела подряд (встречаются один раз). Запятую заменить на восклицательный знак, а три пробела - на один пробел.

№5. Сколько раз заданный символ встречается в строке S?

№6. С использованием цикла с параметром определить количество слов в заданной строке.

№7. Удалить все пробелы из строки ST1.

№8. В строке LBвсе большие буквыQзаменить на маленькиеq. Решить задачу с использованием оператора цикла с предусловием.

№9. Выполнить задание №191 с использованием оператора цикла с параметром.

№10. Выполнить задание №189 с использованием оператора цикла c предусловием. Строка заканчивается точкой.

№11. Определить количество цифр в целом числе и найти их сумму.

№12. Подсчитать количество символов от 'A'до'I'и количество символов'Я' в заданной строкеL.

№13. Существует ли в строке Lслова, начинающиеся с буквы'А'и заканчивающиеся буквой'Я'? Найденные слова вывести на экран.

№14. Из строки Lудалить все слова, оканчивающиеся на-кая,-кое.

№15. В строке STзаменить все точки на три точки (многоточие).

14. Работа с файлами

Существует три способа задания файлового типа:

<имя>=FILE OF <тип>;

<имя>=TEXT;

<имя>=FILE;

где <имя> - имя файлового типа;

FILE OF - зарезервированные слова (файл из) (типизированные);

TEXT - имя стандартного типа текстовых файлов (текстовые файлы);

FILE - любой тип языка PASCAL, кроме файлов (нетипизированные).

Связь файловой переменной с именем файла осуществляется с помощью процедуры

ASSIGN(<ф.п.>,<имя>)

где

<ф.п.> - файловая переменная;

<имя> - текстовое выражение, содержащее имя файла или имя логического устройства.

Имена логических устройств:

CON - определяет консоль - клавиатуру или экран дисплея;

PRN - определяет принтер;

NUL - определяет «пустое» устройство.

Если имя файла задается в виде пустой строки (например, ASSIGN(f,'')), то ввод-вывод предполагается с логического устройства CON.

ИНИЦИАЦИЯ файла - указание направления передачи данных:

RESET (<ф.п.>); - файл для чтения;

REWRITE(<ф.п.>); - файл для записи (старый файл

уничтожается).

APPEND (<ф.п.>); - инициирует запись в ранее существовавший текстовый файл для его расширения.

CLOSE (<ф.п.>); - закрывает файл (связь файловой переменной с именем файла сохраняется).

RENAME(<ф.п.>,<новое имя>); - переименование файла (перед применением необходимо закрыть файл).

FLUCH (<ф.п.>); - очищает буфер файла.

Функция EOF(<ф.п.>):BOOLEAN тестирует конец файла (TRUE - указатель стоит в конце файла).

Функция IORESULT:WORD возвращает условный признак последней операции ввода-вывода (ноль - операция завершена успешно).

ТЕКСТОВЫЕ ФАЙЛЫ

Функция EOLN(<ф.п.>):BOOLEAN - TRUE, если во входном текстовом файле достигнут маркер конца строки.

ТИПИЗИРОВАННЫЕ ФАЙЛЫ

SEEK(<ф.п.>,<N компонента>:LONGINT) - указывает номер (N) компонента в файле.

Функция FILESIZE(<ф.п.>):LONGINT - количество компонентов файла.

Функция FILEPOS(<ф.п.>) :LONGINT - порядковый номер компонента в файле, который будет обрабатываться следующей операцией ввода-вывода.

НЕТИПИЗИРОВАННЫЕ ФАЙЛЫ

ИНИЦИАЦИЯ файла:RESET (<ф.п.>[,<длина записи>]);

REWRITE(<ф.п.>[,<длина записи>]);

где <длина записи> - длина записи в байтах (при 512 байтах - максимальная скорость, по-умолчанию <длина записи> равна 128 байтам).

BLOCKREAD (<ф.п.>,<буф>,<N>[,<NN>]); BLOCKWRITE(<ф.п.>,<буф>,<N>[,<NN>])

где <буф> - имя переменной (буфера), которая будет участвовать в обмене данными с диском;

<N> - количество записей, которые должны быть прочитаны или считаны за одно обращение к диску;

<NN> - необязательный параметр, содержащий при выходе из процедуры количество фактических обработанных записей.

Процедуру SEEK и функции FILESIZE, FILEPOS, описанные ранее, можно использовать и для нетипизированных файлов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]