ТЕМА РАБОТЫ
по дисциплине «Основы программирования»
Выполнил: ст-т гр. 19КП1
Солдатов К. А.
Проверил: доцент каф. ИВС
Хохлов А. Е.
1 Формулировка задачи
Подсчитать в строке наибольшее число идущих подряд пробелов.
2 Техническое задание
2.1 Требования к программе
Программа должна определять наибольшее число идущих подряд пробелов в строке.
2.2 Порядок контроля и приёмки
Для контроля правильности работы программы необходимо запустить программу, ввести значение строки и нажать кнопку выполнения и будет выведен результат работы программы. Если результат совпадет с результатами визуальной проверки, то это будет означать, что программа работает правильно.
3 Описание программы
3.1 Общие сведения
Программа разработана в среде Lazarus, её текст приведен в приложении А.
3.2 Функциональное назначение
Программа предназначена для определения наибольшего количество идущих подряд пробелов в строке.
3.3 Описание логической структуры
Схема главной программы представлена на рисунке 1.
Решение задачи начинается с ввода строки s, а переменным max и k присваивается значение 0 (блок 2). После этого выполняется цикл А со счетчиком I,1<=i<длина s (блок 3). В теле цикла А (блоки 4-8) в блоке 4 проверяется условие s[i]=’ ‘. Если условие истинно, то переменная k увеличивается на единицу (блок 5), после чего проверяется условие k>max (блок 6). Если условие истинно, то переменной max присваивается значение k (блок 7). Если условие ложно, то выполняется следующий за блоком условия блок. Если условие ложно, то переменной k присваивается значение 0 (блок 8). После этого цикл А завершается (блок 9). Далее происходит вывод max (блок 10).
Рисунок 1 – Схема главной программы
Текст программы приведен в приложении А.
На форме расположены следующие объекты:
- метки Label1-Label2 с вкладки Standart. В свойстве Caption этих объектов помещены пояснения для пользователя программы:
Label1.Caption – «Введите строку»,
Label2.Caption – «Результат».
- поля редактирования Edit1 (для ввода строки), Edit2 (для вывода результата) с вкладки Standart;
- кнопка Button1 с вкладки Standart для создания обработчика события, который осуществляет решение задачи. В свойстве Caption этого объекта помещено пояснение для пользователя программы: Button1.Caption - «Выполнить».
Обработчик TForm1.Button1Click обрабатывает щелчок по кнопке «Выполнить».
В разделе описания переменных этого обработчика описаны:
- переменные действительного типа integer:
K – текущее количество пробелов
Max – максимальное количество пробелов,
I – счетчик цикла.
Исполняемая часть обработчика начинается ввода значения строки s с помощью свойства объекта edit1.text и с помощью оператора присваивания, Далее с помощью оператора цикла со счетчиком и функции определения длины строки length() выполняется цикл for i:=1 to length(s) do. В теле цикла со счетчиком с помощью условного оператора проверяется условие if s[i]=' ' then. Если условие истинно, то переменная k увеличивается на единицу с помощью оператора присваивания, а также проверяется условие if k>max then. Если условие истинно, то переменной max присваивается значение k. Если условие ложно, выполняется следующий за оператором условия оператор. Если условие ложно, то переменной k присваивается значение 0 с помощью оператора присваивания. После этого цикл со счетчиком завершается и происходит вывод max с помощью оператора присваивания и свойства объекта edit2.text, при этом используется функция перевода из целочисленного типа в строковый – inttostr.
4 Программа и методика испытаний
Для проверки правильности работы программы подготовлен тестовый набор данных, представленный в таблице 1.
Таблица 1
Введите строку | Результат |
Текст слово. |
Для проверки правильности работы программы необходимо запустить ее на выполнение, ввести тестовые значения текста из таблицы 1 и нажать левой кнопкой мыши на кнопку «Выполнить». На форме появляется результат работы программы.
При работе программы с тестовыми данными получены результаты, приведенные в приложении Б на рисунке Б.1. Результат, приведенный в таблице 1 совпадают с результатами на рисунке Б.1. Таким образом, можно сделать вывод, что программа работает правильно
5 Описание применения
После запуска программы на выполнение на экране появляется форма (см. Приложение Б). Пользователь должен ввести значение строки и нажать левой кнопкой мыши на кнопку «Выполнить». На форме появляется результат работы программы.
Вывод
В ходе выполнения лабораторной работы было сформулировано и утверждено техническое задание на разработку программы, определяющей максимальное количество идущих подряд пробелов в строке, разработан алгоритм решения задачи, составлена и отлажена программа, оформлена документация на программу. Проведенные испытания показали, что программа работает правильно.
ТЕКСТ ПРОГРАММЫ
Приложение А
(обязательное)
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
k,max,i:integer;
begin
s:=edit1.text;
max:=0;
k:=0;
for i:=1 to length(s) do
if s[i]=' ' then
begin
k:=k+1;
if k>max then max:=k;
end
else k:=0;
edit2.text:=inttostr(max);
end;
end.
РЕЗУЛЬТАТЫИСПЫТАНИЙ
Приложение Б
(обязательное)
Рисунок Б.1