
- •Самарский государственный университет путей сообщения
- •Информатика Основы программирования в среде Turbo Pascal
- •О сновы программирования в среде turbo pascal введение
- •Лабораторная работа №1. Знакомство с интегрированной средой Turbo Pascal
- •Задание 1. Знакомство с интерфейсом среды Turbo Pascal
- •Задание 2. Работа с буфером обмена
- •Задание 3. Компиляция и запуск программы
- •Лабораторная работа №2. Программирование линейных алгоритмов
- •Задание 1. Вычисление площади треугольника
- •Задание 2. Вычисление сопротивления цепи
- •Задание 3. Вычисление значения функции
- •Задание 4. Самостоятельное решение задач
- •Тестовое задание. Вариант задает преподаватель!
- •Лабораторная работа №3. Разветвляющиеся алгоритмы
- •Р ис. 1. Блок-схема условного оператора
- •Задание 1. Использование условного оператора
- •Р ис. 2. Блок-схема программы
- •Задание 2. Вложенные условные операторы
- •Задание 3. Нахождение максимума двух чисел
- •Задание 4. Самостоятельное решение задач
- •Тестовое задание. Вариант вашего задания совпадает с номером вашего компьютера!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №4. Программирование циклов с условием
- •Задание 1. Оператор цикла с предусловием
- •Задание 2. Программа "Угадай число".
- •Задание 3. Алгоритм Евклида.
- •Задание 4. Оператор цикла с постусловием
- •Задание 5. Решение задач по теме
- •Лабораторная работа №5. Программирование циклов с параметром
- •Задание 1. Нахождение суммы
- •Задание 2. Таблица перевода миль в километры
- •Задание 3. Табулирование функции
- •Задание 4. Решение задач по теме Номера задач задает преподаватель!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №6. Решение задач целочисленной арифметики
- •Номера задач задает преподаватель!
- •Лабораторная работа №6. Одномерные массивы
- •Задание 1. Ввод и вывод элементов массива
- •Задание 2. Использование массивов при вычислении значений функции
- •Задание 3. Однотипная обработка элементов массива
- •Задание 4. Нахождение минимального (максимального) элемента массива
- •Задание 5. Нахождение суммы элементов массива
- •Задание 6. Нахождение количества элементов массива
- •Задание 7. Решение задач по теме Номера задач задает преподаватель!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №7. Строковые переменные
- •Задание 1. Проверка на совпадение первой и последней букв строки
- •Задание 2. Подсчет количества букв
- •Задание 3. Слова - перевёртыши
- •Задание 4. Замена букв в слове
- •Задание 5. Удаление символов в слове
- •Задание 6. Решение задач по теме Номера задач задает преподаватель!
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Лабораторная работа №8. Файлы
- •Задание 1. Запись вводимых данных во внешний файл
- •Задание 2. Чтение данных из файла
- •Задание 3. Нахождение суммы компонент числового файла
- •Задание 4. Вывод списка учащихся из файла
- •Контрольное задание Вариант вашего задания задает преподаватель!
- •Библиографический список
Лабораторная работа №7. Строковые переменные
Цель работы: Научиться составлять алгоритмы и программы для обработки строковых величин. Научиться использовать встроенные функции для обработки строк.
Строковый тип последовательность символов произвольной длины (до 255). Например, 'a', 'ABC', 'Паскаль', '12345'. Фактически строковые переменные аналогичны одномерным массивам с элементами типа char. Их отличием является то, что число символов (длина строковой переменной) может динамически меняться в интервале от единицы до заданного верхнего значения.
В разделе описания переменных и констант строковые величины описываются с помощью служебного слова string, за которым в квадратных скобках может быть указано максимальное количество символов, помещаемых в данную переменную. Если размер не указан, то он считается равным 255:
Var <имя строковой переменной>: String [n];
Например:
Var z: String [10]; {В переменной z может содержаться до 10 символов}
t: String; {В переменной t может содержаться до 255 символов}
Любой символ в строке можно обрабатывать независимо, обращаясь к нему по его номеру. Например:
z:='Паскаль'; {Переменной z присваивается значение-строка}
Writeln(z[4]); {В результате будет напечатан 4-ый символ "к"}
При работе со строками используются следующие процедуры и функции:
Length(S) возвращает длину строки S, имеет тип Integer.
Copy(S, I, N) возвращает подстроку из N символов строки S, начиная с позиции I.
Concat(S1, S2,…, SN) возвращает строку, полученную слиянием строк S1, S2,…,SN, имеет тип String.
Delete(S, I, N) удаляет N символов из строки S, начиная с позиции I.
Insert(S1, S, I) вставляет подстроку S1 в строку S, начиная с позиции I.
Pos(S1,S) возвращает номер позиции первого вхождения подстроки S1 в строку S, имеет тип Integer.
Str(X, S) преобразует число X целого или вещественного типа в строку S.
Val(S, X, K) преобразует строку S в целое или вещественное число Х. Параметр К равен нулю, если преобразование прошло успешно, в противном случае он содержит номер ошибочной позиции в строке.
Важно!
Практически все задачи, связанные с действиями над строковыми величинами, можно решить при помощи следующего приема: сначала определяется длина исходной строки при помощи функции Length(S), затем создается новая пустая строка, в которую последовательно добавляются буквы из заданной строки, удовлетворяющие условию задачи. Перебор букв заданной строки осуществляется в цикле от первой буквы строки до последней, номер которой определяется при помощи функции Length(S).
Рассмотрим примеры типичных задач, связанных с обработкой строковых величин.
Задание 1. Проверка на совпадение первой и последней букв строки
Составить программу, проверяющую совпадают ли первая и последняя буквы слова Х, введенного с клавиатуры.
Решение задачи строится на нахождении первой и последней букв слова при помощи операции копирования одного символа и дальнейшего сравнения букв между собой.
Запустите Turbo Pascal. В окне редактирования наберите текст программы:
Program slovo_1;
var X: String[15];
d: Integer;
begin
Writeln ('Введите слово');
Read (X);
d:=Length(x); {Находим длину слова Х}
If Copy(X,1,1)=Copy(X,d,1)
Then Writeln('Первая и последняя буквы совпадают')
Else Writeln ('Первая и последняя буквы не совпадают');
end.