- •Методические указания по выполнению лабораторно-практических работ
- •1 Решим простейший пример: найти сумму трех чисел.
- •Программирование циклических алгоритмов. Циклы «до» и «пока»
- •Лабораторная работа №10
- •Оператор параметрического цикла for
- •Работа с массивами
- •Оператор варианта
- •Работа со строками в объектно-ориентированном программировании. Оператор цикла с параметрами
- •Лабораторная работа №7
- •Процедуры и функции
- •Практические задания
- •Лабораторная работа №8
- •1. Программа, которая определяет, есть ли одинаковые числа в трехзначном числе.
- •2. В одномерном массиве вывести на экран четные числа и нечетные числа.
- •3. Из введенной последовательности символов, признаком конца которой является '0', сформировать множество заглавных и строчных латинских букв.
- •Множественный тип
- •Практические задания
- •Лабораторная работа №9
- •Label Edit Button Memo
- •Лабораторная работа №10
- •Лабораторная работа №11
- •Implementation
- •Лабораторная работа №12
- •Лабораторная работа №13
- •Лабораторная работа №14
- •Implementation
- •Практическая работа Случайный выбор из списка
- •Практическая работа «Тест»
- •Типы бд в Delphi
- •1. Создание каталога
- •2. Создание псевдонима
- •3. Создание таблицы
- •4. Разработка приложения, работающего с бд
- •Создание каталога и псевдонима
- •Создание таблицы
- •Создание формы
- •Вставка изображений в бд
- •Заключение
Работа со строками в объектно-ориентированном программировании. Оператор цикла с параметрами
Для языков программирования характерны не только возможности работы с числовой информацией, но и со строковой. Напомним, что для работы с числами мы использовали два основных типа данных: Integer (целый) иReal (вещественный).
Например, var a: integer; b: real;
Для работы со строками необходимо использовать тип данных string (var s: string). Отличительной чертой этого типа данных является то, что мы можем обратиться как к строке целиком, так и посимвольно, то есть к каждой букве в отдельности. Для этого нам необходимо использовать оператор цикла.
Цикл- многократное повторение последовательности действий по некоторому условию. Известны три типа циклических алгоритмических структур, но при работе со строками будем использовать одну из них – цикл с параметром. Он имеет две формы записи:
For <параметр>:=<нач. значение> to <кон. значение> do <тело цикла>;
For <параметр>:=<кон. значение> downto <нач. значение> do <тело цикла>;
Цикл повторяется пока значение параметра лежит в интервале между начальным и конечным значениями параметра. Причем эти выражения (начального и конечного значение) вычисляются только один раз в начале выполнения цикла. Параметр обязательно должен быть целого типа.
В первом варианте при каждом повторении цикла значения параметра изменяется на следующее значение в данном типе (для целого типа - увеличивается на 1). Понятие шаг. Во втором варианте при каждом повторении цикла значение параметра изменяется на предыдущее значение параметра (для целого типа - уменьшается на единицу).
При работе со строкой запишем оператор цикла следующим образом: for i:=1 to length(s) do (обращение к символам от первого до последнего в строкеs). Кроме того, используются следующие процедуры и функции:
Функция length(s) определяет длину строки. Результат - целое число 0..255
Пример: дана строка, подсчитать количество цифр в строке.
var s: string; k: integer;
k:=length(s);
Процедура Delete (s,pos,n)- удаление части строки. Удаляет из строкиsn-символов начиная с символа №pos.
Пример: s:='рогатка'; Delete(s,5,3) => рога
Процедура Insert (s1,s2,pos). Вставка части строки.
S1-что,S2-куда,Pos-с какой позиции
Пример: S1:='свет'; Insert(s1,'o',2) => 'совет'
Функция Copy (s,pos,n)- возвращает часть строкиsдлинойn, начиная с позицииpos.
Пример: S:='пароход'; t:=copy(s,1,3) => 'пар'
Сцепление строк - функция Concat (s1,s2,s3,…,sn)
Пример: Concat ('к','о','т')=> 'кот'
Функция Pos (s1,s2)- поиск одной строки в другой. Возвращает номер символа, начиная с которого строкаs1 является частьюs2.
Пример: pos ('cd','abcdf')=> 3
Рассмотрим алгоритм решения задачи, в которой нужно подсчитать количество вхождений символа «а» в строку. Используем компоненты классовTEdit иTMemoдля ввода строки и вывода результата.
Var s: string;
i, k: integer;
Procedure TForm1.Button1Click(Sender: TObject);
Begin
s:=edit1.text; //ввод строки
For i:=1 to length(s) do //идем по строке
If s[i]=’a’ then k:=k+1; {если i-ый символ а, тогда увеличивай счетчик k}
Memo1.text:=IntToStr(k) //вывод результата
End;
Пусть форма будет выглядеть следующим образом:
Задания для самостоятельной работы:
Дана строка s: Найти количество вхождений буквa,c,dв строку.
Найти количество цифр в строке.
Сцепить несколько строк в одну.
Из данной строки выбрать цифры и сформировать из них новую строку.
Найти количество слов, начинающихся на букву с.
Подсчитать количество слов в строке.
Определить начинается и заканчивается ли слово одной буквой.
Удалить каждую четную букву в строке.
Проверить одинаковое ли число открытых и закрытых скобок в строке.
По введенным: фамилии, имени, отчеству выводить информацию о том, является ли пользователь автором программы, его теской или являются ли теской отец автора и пользователя программы.