- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Каждая переменная типа 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, описанные ранее, можно использовать и для нетипизированных файлов.