- •Занятие № 1. Алгоритм. Язык и среда программирования.
- •Занятие № 2. Язык программирования Pascal.
- •Занятие № 3. Переменные. Простейшие линейные алгоритмы.
- •Занятие № 4. Стандартные операции ввода/вывода.
- •Занятие № 5. Ветвление с простым условием.
- •Занятие № 6. Составные условия.
- •Занятие № 7. Множественное ветвление. Безусловный переход.
- •Занятие № 8. Самостоятельная работа. Занятие № 9. Цикл со встроенным счётчиком (с параметром).
- •Занятие № 10. Стандартные функции. Преобразование типов. Операции над строковым типом данных.
- •Занятие № 11. Циклы с условием
- •Занятие № 12. Самостоятельная работа. Занятие № 13. Введение в машинную графику в Pascal.
- •Занятие № 14. Вывод текста в графическом режиме.
- •Занятие № 15. Простейшая анимация.
- •Занятие № 16. Построение графиков функций.
- •Занятие № 17. Самостоятельная работа. Занятие № 18. Вспомогательный алгоритм. Процедуры и функции пользователя.
- •Занятие № 19. Структурные типы данных. Понятие линейного массива.
- •1. Заполнение вводом с клавиатуры:
- •4. Описание предустановленных массивов.
- •5. Заполнение данными из внешнего файла.
- •Занятие № 20. Простейшие задачи на операции с линейным массивом.
- •1. Подсчёт количества элементов удовлетворяющих некоторому условию.
- •3. Раскрашивание массива.
- •4. Поиск минимального и максимального элементов.
- •5. Копирование и перестановка элементов. Занятие № 21. Сортировка линейного массива.
- •1. Сортировка прямого обмена.
- •2. Обменная сортировка (метод «Пузырька»).
- •Занятие № 22. Понятие двумерного массива.
- •Занятие № 23. Решение задач на тему «Двумерные массивы».
- •Занятие № 24. Самостоятельная работа. Занятие № 25. Множества.
- •В этом случае описано множество a, которое может включать в себя элементы – целые числа в интервале от 1 до 12. Существует возможность описания константных множеств:
- •Задача: составить программу, определяющую количество дней в указанном месяце, указанного года.
- •Занятие № 26. Записи.
- •Занятие № 27. Файлы данных. Текстовые файлы.
- •Занятие № 28. Решение задач (текстовый файл). Занятие № 29. Файлы данных. Типизированные файлы.
- •Занятие № 30. Самостоятельная работа.
- •Занятие № 31. Библиотеки пользователя.
- •Занятие № 32. Некоторые процедуры и функции модуля dos.
- •Занятие № 33. Рекуррентные последовательности и формулы. Рекурсивные алгоритмы.
- •Занятие № 35. Элементы объектно-ориентированного программирования.
Занятие № 10. Стандартные функции. Преобразование типов. Операции над строковым типом данных.
Приведём ряд стандартных функций Pascal, которые нам могут пригодиться:
Функция |
Тип аргумента |
Тип результата |
Описание |
pi |
- |
R |
Число |
abs(x) |
I, R |
I, R |
Модуль |
int(x) |
I, R |
R |
Целая часть аргумента |
frac(x) |
I, R |
R |
Дробная часть аргумента |
round(x) |
I, R |
I |
Округление до ближайшего целого |
trunc(x) |
R |
I |
Цела часть аргумента |
random |
- |
R |
Псевдослучайное число в интервале (0, 1) |
random(x) |
I |
I |
Псевдослучайное число в интервале (0, x) |
sqr(x) |
I, R |
I, R |
Квадрат x |
sqrt(x) |
I, R |
R |
Корень квадратный из x |
exp(x) |
I, R |
R |
Экспонента (ex) |
ln(x) |
I, R |
R |
Натуральный логарифм |
sin(x) |
I, R |
R |
Синус x (x в радианах) |
cos(x) |
I, R |
R |
Косинус x (x в радианах) |
arctan(x) |
I, R |
R |
Арктангенс x (результат в радианах) |
Возведение в степень в Pascal производится следующим образом:
xk exp(k*ln(x))
Функции по работе с целочисленным и перечислимым типами:
Функция |
Тип аргумента |
Тип результата |
Описание |
ord(x) |
порядковый |
I |
Порядковый номер значения x в его типе |
pred(x) |
порядковый |
то же, что x |
Предыдущее x значение в его типе |
succ(x) |
порядковый |
то же, что x |
Последующее x значение в его типе |
chr(x) |
I |
char |
Символ с порядковым номером x из таблицы ASCII |
odd(x) |
I |
boolean |
x – чётное – false x – нечётное – true |
Процедуры по работе с целочисленным типом
Процедура |
Описание |
inc(x) |
Увеличивает значение x на 1 |
inc(x,k) |
Увеличивает значение x на k |
dec(x) |
Уменьшает значение x на 1 |
dec(x,k) |
Уменьшает значение x на k |
Функции и процедуры по работе со строковым типом:
Название |
Вид |
Описание |
copy(s,poz,n) |
функция |
Выделяет из строки s подстроку длинной n символов начиная с символа номер poz |
concat(s1,s2,…) |
функция |
Осуществляет объединение (конкатенацию) строк s1, s2 и т.д. |
length(s) |
функция |
Возвращает число (byte), являющееся длиной строки s |
pos(s1,s2) |
функция |
Результат – целое число, являющееся номером позиции первого символа подстроки s1 в строке s2 |
delete(s,poz,n) |
процедура |
Удаление n символов из строки s начиная с символа номер poz |
insert(s1,s2,poz) |
процедура |
Вставка строки s1 в строку s2 начиная с символа номер poz |
Процедуры преобразования типов:
Процедура |
Описание |
str(a,s) |
Преобразует число, находящееся в переменной a (любого числового типа) в строку (переменная s строкового типа) |
val(s,a,code) |
Преобразует число, находящееся в переменной строкового типа s в число, которое помещается в переменную числового типа a. При этом в переменную code (типа integer) передается код ошибки преобразования: 0 –преобразование типа произошло успешно, иное число – местоположение ошибки (символ отличается от цифрового, точки и минуса) в строке. |
Пример 1. Получить из строки «Симпозиум» строку «Диапозитив».
Program Transformation;
uses crt;
var s,t:string;
BEGIN
ClrScr;
s:=’Симпозиум’;
delete(s,1,3);
delete(s,5,2);
t:=”Диа”+s+”тив”;
writeln(t);
readkey;
END.
Пример 2. Составить программу, определяющую является ли слово, введенное с клавиатуры, палиндромом. Палиндром – это слово, которое читается одинаково и слева направо и справа налево (например, наган и дед).
uses crt;
var s,sr:string;
i:byte;
BEGIN
ClrScr;
write('Введите слово: '); readln(s);
sr:='';
for i:=length(s) downto 1 do sr:=sr+copy(s,i,1);
if sr=s then writeln('Палиндром.')
else writeln('Не палиндром');
readkey;
END.
Контрольные вопросы:
Перечислите стандартные функции Pascal. Каково их назначение?
Перечислите процедуры и функции по работе со строковым типом данных. Каково их назначение?
Для чего используются функции преобразования типов?
Задания:
1. Определить какое количество гласных букв встречается во введенном с клавиатуры слове.
2. Составить программу, определяющую является ли введённая с клавиатуры фраза, фразой-палиндромом (читается одинаково с обеих сторон, например, «А РОЗА УПАЛА НА ЛАПУ АЗОРА»).
Примечание: для этого требуется сначала удалить из фразы все пробелы, а затем перевернув её сравнить с оригиналом.
3. Определить является ли введенный с клавиатуры номер автобусного билета (шестизначный) счастливым (сумма трех первых цифр совпадает с суммой трех последних цифр).
4. Составьте программу определения кода нажатой клавиши.
5. Выясните, какая из букв первая или последняя, введенного с клавиатуры слова, встречается чаще. Выведите информацию о количестве данных букв в слове.
6. Составить программу, запрашивающую с клавиатуры фамилию, имя и отчество, а выводящую на экран фамилию и инициалы.
