- •Программирование Алгоритмов с использованием строк на языке lazarus
- •Строковые типы
- •Строковые выражения
- •Стандартные подпрограммы для строк
- •Размещение компонентов на Форме
- •Создание процедур обработки событий
- •Текст модуля unstr
- •Interface
- •Implementation
- •Initialization
- •Программирование алгоритмов с использованием строк на языке lazarus
Текст модуля unstr
unit unstr;
{$mode objfpc}{$H+}
Interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls,
Buttons;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ListBox1: TListBox;
procedure Edit1KeyPress(Sender: TObject; var Key: char);
procedure FormActivate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
Implementation
{ TForm1 }
// Обработка события активизации Формы
procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.SetFocus; // передача фокуса ввода Edit1
end;
// Обработка события ввода символов и нажатия клавиши Enter
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
if key=#13 then // если нажата клавиша Enter то
begin // строка из редактируемого текстового поля
ListBox1.Items.Add(Edit1.Text); // заносится в список выбора
Edit1.Text:=' '; // очистка текстового поля
end;
end;
// Обработка события нажатия клавиши "мыши" в списке выбора
procedure TForm1.ListBox1Click(Sender: TObject);
var
st: string;
n,i,nst,ind: integer;
begin
n:=0; // n содержит количество слов
ind:=0;
nst:=ListBox1.ItemIndex; // определение номера выбранной строки
st:=ListBox1.Items[nst]; // st присваивается выбранная строка
for i:=1 to Length(st) do // просмотр всех символов строки
case ind of
0: if st[i]<>' ' then // если встретился символ
begin
ind:=1;
n:=n+1; // количество слов увеличивается на единицу
end;
1: if st[i]=' ' then // если встретился пробел
ind:=0;
end;
Label3.Caption:=IntToStr(n); // вывод количества слов в Label3
end;
Initialization
{$I unstr.lrs}
end.
варианты заданий
В строке, состоящей из русских букв, подсчитать отдельно количество прописных и количество строчных гласных букв. Если таковых нет, выдать соответствующее сообщение.
Вставьте в строку после каждого символа пробел. Вывести на экран результат.
Выведите на экран позиции, на которых находится буква ‘и’. Посчитайте их количество.
Создайте из четных символов строки st1 строку str2 и из нечетных символов строку str3.
В строке, состоящей из русских букв, подсчитайте количество гласных и согласных букв.
Поменяйте местами первый и последний символы строки.
Удалите из строки пробелы, запятые и точки, другие символы продублируйте.
Выведите на экран все цифры, встречающиеся в строке.
Переверните строку так, чтобы первый символ стал последним и так далее. Новую строку выведите на экран.
Из введенной строки создайте три строки, состоящие из: прописных букв английского алфавита, строчных английских букв и других символов данной строки.
Дано слова из четного числа букв. Поменяйте местами первую букву со второй, третью – с четвертой и т.д.
Замените первые буквы в каждом слове строки на заглавные буквы.
Посчитайте сумму всех цифр, встречающихся в строке.
Выведите отдельно все слова строки на экран.
Дана строка, в которой имеются несколько букв а. Найдите порядковый номер первой и последней из них.
Дано слово. Поменяйте местами первую из букв а и последнюю из букв о. Учтите возможность того, что таких букв в слове может не быть.
Создайте новую строку из символов введенной строки, стоящих на каждой третьей позиции.
Дано слово. Удалите из него k-ю букву.
В строке, состоящей из латинских букв, подсчитайте количество гласных букв.
Задано существительное первого склонения, оканчивающееся на ‘а’. Напечатайте это слово во всех падежах.
Из строки удалите все символы, совпадающие с последним символом.
Выведите на экран самое короткое слово из введенной строки.
Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ.
Дано слово. Если его длина нечетная, то удалите среднюю букву, в противном случае – две средних буквы.
Выясните, какая из букв - первая или последняя - встречается в строке чаще.
Дана строка. Замените в ней все вхождения буквосочетания ах на ух.
Посчитайте число различных символов в слове.
Слово состоит из двух частей одинаковой длины и соединительной гласной. Найдите обе части этого слова.
Выведите на печать подстроку, заключенную между двумя запятыми.
Замените в строке все цифры на следующую по порядку цифру. Цифру 9 заменить на цифру 0.
СОДЕРЖАНИЕ И ОФОРМЛЕИНЕ ОТЧЕТА
ПО ЛАБОРАТОРНОЙ РАБОТЕ
Отчет оформляется в текстовом редакторе MS Word в формате А4 и должен содержать:
Титульный лист.
Цель работы.
Задание.
Листинг программы.
Окно формы с полученными результатами.
ВОПРОСЫ для самоконтроля
Что такое строка?
Назовите типы строк, которые есть в Object Pascal.
Как получить длину строки по нулевому байту?
Как обратиться к отдельным символам строки?
Какие выражения называются строковыми?
Какие операции допустимы над строковыми данными?
Каким образом производится сравнение строк?
Как определить текущую длину строки всех типов?
Перечислите основные стандартные процедуры и функции для работы со строками.
Для чего используются компоненты ListBox и ComboBox? В чем их отличие?
Каким свойством задается список элементов в ListBox и ComboBox?
Каким свойством задается индекс выбранной строки в ListBox и ComboBox?
ВРЕМЯ, ОТВЕДЕННОЕ НА выполнение
ЛАБОРАТОРНОЙ РАБОТЫ
Подготовка к работе – 0,5 акад. часа
Выполнение работы – 1,0 акад. час
Оформление работы – 0,5 акад. часа
Отчет по работе – 0,5 акад. часа
ЛИТЕРАТУРА
Дарахвелидзе П.Г., Марков Е.П. Delphi 2005 для Win32. – СПб.: БХВ-Петербург, 2005.
Глинский Я.Н., Анохин В.Е., Ряжская В.А. Turbo Pascal 7.0 и Delphi: учебное пособие. – 2-е изд., испр. и доп. – СПб.: ДиаСофтЮП, 2003.
Гофман В.Э., Хомоненко А.Д. Delphi. Быстрый старт. – СПб.: БХВ-Петербург, 2003.
Сухарев М.В. Основы Delphi. Профессиональный подход. – СПб.: Наука и техника, 2004.
Фаронов В.В. Система программирования Delphi. – СПб.: БХВ-Петербург, 2005.
Фленов М.Е. Delphi 2005. Секреты программирования. – СПб.: Питер, 2006.
Содержание
Цель работы 2
Основные понятия 2
Порядок выполнения работы 6
Пример выполнения работы 6
Варианты заданий 11
Содержание и оформление отчета 13
Вопросы для самоконтроля 14
Время, отведенное на выполнение работы 14
Литература 15
