
- •Учебно-методическое пособие
- •Маршрутная карта изучения дисциплины по Модулю 1
- •1. Логические и арифметические основы эвм
- •1.1. Десятичная система счисления
- •1.2. Двоичная система счисления
- •1.3. Восьмеричная и шестнадцатеричная системы счисления
- •1.4. Перевод чисел из любой системы счисления в десятичную
- •1.5. Перевод чисел из десятичной системы счисления в любую другую
- •Вопросы для самоконтроля
- •Методические указания для выполнения практического задания №1. «Системы счисления»
- •Приложение 1. Таблица вариантов заданий
- •2. Алгебра логики
- •2.1. Логические операции
- •Импликация
- •Антиконъюнкция
- •Антидизъюнкция
- •Логические схемы
- •Пример решение логических задач средствами алгебры логики
- •Методические указания для выполнения практического задания №2. «Алгебра логики». Построение таблиц истинности.
- •Пример построения логических схем
- •Методические указания для выполнения практического задания №3. «Алгебра логики». Построение логических схем
- •Приложение 2. Таблица вариантов заданий
- •4. Индивидуальное задание. Модуль 1. «Построение логических схем по заданным булевым выражениям»
- •Приложение 3. Таблица вариантов индивидуального задания
- •Приложение 4. Титульный лист идз
- •Маршрутная карта изучения дисциплины по Модулю 2
- •5. Введение в алгоритмизацию
- •6. Знакомство со средой Турбо Паскаль
- •6.1. Общие сведения
- •6.2. Запуск Турбо-Паскаля на выполнение
- •6.3. Назначение функциональных клавиш системы Турбо-Паскаль
- •6.4. Работа с текстовым редактором Турбо-Паскаля
- •Клавиши перемещения курсора
- •Работа с блоками текста
- •7. Основы алгоритмизации
- •7.1. Алгоритм
- •7.2. Алгоритмические структуры
- •Самоконтроль
- •8. Программирование на языке Pascal
- •8.3. Типы данных
- •Целые типы
- •Логический тип
- •8.5. Структура программы на языке Паскаль
- •8.6. Описательная часть программы
- •8.10. Комментарии в программе
- •Пример программы линейной структуры
- •Вопросы для самоконтроля
- •8.11. Методические указания для выполнения практического задания №4. «Следования»
- •Приложение 5. Таблица вариантов заданий
- •9. Ветвления
- •9.1. Операторы условия и перехода
- •Логический оператор
- •Операции отношения
- •Логические операции
- •9.2. Оператор выбора
- •Пример программы разветвленной структуры
- •Вопросы для самоконтроля
- •9.3. Методические указания для выполнения практического задания №5. «Ветвления»
- •Приложение 6. Таблица вариантов заданий
- •10. Циклические вычислительные процессы
- •10.1. Оператор цикла с параметром
- •10.2. Оператор цикла с постусловием
- •10.3. Оператор цикла с предусловием
- •10.4. Вложенные циклы
- •10.5. Оператор прерывания цикла
- •Пример программы циклической структуры
- •Вопросы для самоконтроля
- •10.6. Методические указания для выполнения практического задания №6. «Циклы»
- •Приложение 7. Таблица вариантов заданий
- •11. Операции с индексированными переменными
- •11.1. Массивы одномерные
- •11.2. Описание массивов
- •Ввод элементов массива
- •Вывод элементов массива
- •11.3. Обработка одномерных массивов
- •Пример программы обработки одномерного массива
- •Вопросы для самоконтроля
- •11.4. Методические указания для выполнения практического задания №7. «Операции с индексированными переменными»
- •Приложение 8. Таблица вариантов заданий
- •12. Двумерные массивы
- •12.1. Матрицы
- •12.2. Описание двумерного массива
- •Ввод элементов двумерного массива
- •Вывод элементов двумерного массива
- •12.3. Обработка двумерных массивов
- •Пример программы обработки двумерного массива
- •Вопросы для самоконтроля
- •12.4. Методические указания для выполнения практического задания №8. «Матрицы»
- •Приложение 9. Таблица вариантов заданий
- •13. Подпрограммы
- •13.1. Функции и процедуры
- •Структура программы, содержащей процедуру (функцию)
- •13.2. Процедуры
- •13.3. Вложенные процедуры Директива forward
- •13.4. Функции
- •Пример программы с использованием подпрограмм
- •Вопросы для самоконтроля
- •Методические указания для выполнения практического задания №9. «Подпрограммы»
- •Приложение 10. Таблица вариантов заданий
- •14. Обработка строк текста
- •14.1. Символьные переменные
- •Фрагмент таблицы ascii-кодов букв латинского алфавита
- •Фрагмент таблицы ascii-кодов букв русского алфавита
- •14.2. Функции обработки символьных переменных
- •14.3. Строковые переменные
- •14.4. Функции обработки строковых переменных
- •14.5. Процедуры обработки строковых переменных
- •14.6. Примеры обработки строковых переменных
- •Вопросы для самоконтроля
- •15. Структурированные типы данных
- •Пример программы использования массива записей
- •Вопросы для самоконтроля
- •Методические указания к выполнению индивидуального задания по Модулю 2. «Массивы записей»
- •Приложение 11. Таблица вариантов индивидуального задания
14. Обработка строк текста
14.1. Символьные переменные
Значением переменных символьного типа является один символ. Каждому символу соответствует код символа – целое число в диапазоне то 0 до 255. Существует международная таблица ASCII-кодов.
Для описания символьных переменных используют слово char и они занимают 1 байт памяти.
var
c:char;
Над символьными переменными допустимы только две операции: присвоение и сравнение.
При сравнении символов сравниваются их коды.
Символьные константы задаются в апострофах:
c:=‘A’;
Фрагмент таблицы ascii-кодов букв латинского алфавита
A |
65 |
a |
97 |
Коды малых букв от заглавных отличаются на 32. |
B |
66 |
b |
98 |
|
… |
… |
… |
… |
|
Z |
90 |
z |
122 |
Фрагмент таблицы ascii-кодов букв русского алфавита
A B … П |
128 129 … 143 |
а б … п |
160 161 … 175 |
Коды малых букв от заглавных отличаются на 32. |
P … Я |
144 … 159 |
р … я |
224 … 239 |
Коды малых букв от заглавных отличаются на 80. |
Е |
240 |
е |
241 |
|
14.2. Функции обработки символьных переменных
chr(x:byte):char - возвращает символ, соответствующему коду x.
Например:
writeln(chr(65));
Результат на экране:
заглавная буква A латинского алфавита.
ord(c:char):byte
возвращает число, соответствующее коду символа c.
Например:
writeln(ord(‘A’));
Результат на экране:
число 65 – код заглавной буквы A латинского алфавита.
upcase (c:char):char –
преобразует малые буквы латинского алфавита в заглавные.
Например:
writeln( upcase(‘a’) );
Результат на экране:
заглавная буква A латинского алфавита.
Если аргументом этой функции окажется не малая буква латинского алфавита, то эта функция никаких действий не выполнит.
pred(c:char):char –
возвращает предшествующий символ.
Например:
writeln( pred('B') );
Результат на экране:
заглавная буква A латинского алфавита, код которой на 1 меньше кода буквы B.
succ(c:char):char –
возвращает последующий символ.
Например:
writeln( succ(‘A’) );
Результат на экране:
заглавная буква B латинского алфавита, код которой на 1 больше кода буквы A.
Задача.
Вывести на экран таблицу ASCII-кодов.
program ASCII;
var
i: byte;
begin
for i:=1 to 255 do
writeln (chr(i),'=',i);
end.
Тип char в программах на Паскале часто используют для хранения вводимых с клавиатуры ответов на запросы меню.
Для этого используют функцию readkey. Работу этой функции обеспечивает модуль Crt.
Приведем пример использования:
Program char;
uses
crt;
begin
repeat
…
ch:= readkey
until (ch='n') or (ch='N');
end.
Цикл действий продолжается до тех пор, пока не будет введено с клавиатуры 'n' или 'N'.
14.3. Строковые переменные
Строковые переменные используются для хранения любой цепочки символов и занимают 255 байт памяти. Для описания строковых переменных используют служебное слово string.
а) var
s:string;
b) var
t:string[20];
По умолчанию под строковую переменную s будет отведено 255 байт памяти (вариант а), а под строковую переменную t будет отведено 20 байт (вариант b).
Строковые константы задаются в апострофах:
S:=’Москва’;
Ввод строковых переменных осуществляется с помощью оператора – readln, а вывод – writeln.
var
S:string;
begin
readln(s);
…
Ввод цепочки символов завершается нажатием Enter. Если количество введенных символов превышает 255, то «хвост» отбрасывается, и в переменную попадают только первые 255 символов.
Над строковыми переменными допустимы три операции: присвоение, сравнение и «слияние».
Существует два способа обработки строковых переменных:
обработка всей строки как единого целого;
строковые переменные можно рассматривать как одномерный массив символов (элементов типа char) и применять к ним функции символьных переменных.
Операция слияния:
d:= 'Москва – столица';
a:= 'России';
d + a 'Москва – столица России'