В предыдущей части статьи были рассмотрены особенности разработки программ и приложений в интегрированной среде разработки (IDE) NetBeans на языке программирования Java [1, 2, 3].
Далее будут рассмотрены особенности разработки приложений в IDE Embarcadero Delphi и Android Studio, предназначенные для решения задач, описанных в первой части статьи.
При реализации оконного приложения в IDE Embarcadero Delphi также предпочтительно использовать стандартные компоненты для ввода и вывода данных, такие как: «Label», «Edit» и (или) «Memo», а также кнопки «Button», предназначенные для осуществления необходимых расчетов. Вместо пары компонентов «Label», «Edit» можно использовать комбинированный вариант «LabeledEdit», размещенный на вкладке «Additional».
Компоненты можно группировать, исходя из их принадлежности к какому-либо заданию, используя для этого компонент «GroupBox».
Таким образом, для реализации приложения были использованы, по числу заданий, 4 компонента «GroupBox», одинаковых размеров, в свойстве «Caption» которых были прописаны номера заданий, а также 4 командные кнопки для выполнения требуемых расчетов.
Компонент «GroupBox1» содержит следующие компоненты:
- LabeledEdit1» — текстовое поле, используемое для ввода исходного числа;
- LabeledEdit2» — текстовое поле, предназначенное для вывода на экран самой большой цифры числа;
- Label1» — надпись, в которую будет выводиться ответ на вопрос, верно ли, что в числе все цифры одинаковые?
Компоненты «GroupBox2» и «GroupBox3», помимо командных кнопок, содержат в себе компоненты «Memo1» и «Memo2» соответственно, которые используются для вывода результатов, со значением свойства «ScrollBars», равном «ssVertical» для отображения вертикальных полос прокрутки.
Компонент «GroupBox4» содержит следующие компоненты:
- LabeledEdit3» — текстовое поле, используемое для ввода значения x;
- LabeledEdit4» — текстовое поле, предназначенное для вывода на экран сгенерированного случайным образом значения y;
- LabeledEdit5» — текстовое поле, предназначенное для вывода на экран рассчитанного значения функции F(x, y).
На рис. 1 показано окно разработанного приложения в момент работы с ним.

Процедура обработки события «OnClick» кнопки «Button1» имеет вид:
var b: boolean; n,c,max: integer;beginif StrToInt(LabeledEdit1.Text) > 999 thenbeginb := true;n := StrToInt(LabeledEdit1.Text);c := n mod 10;max := c;while n >= 10 dobeginn := n div 10;if (c n mod 10) and bthen b := false;if maxthen max := n mod 10;end;LabeledEdit2.Text := IntToStr(max);Label1.Caption := 'Все ли цифры ' + 'одинаковые? ';if bthen Label1.Caption := Label1.Caption + 'Ответ: да.'else Label1.Caption := Label1.Caption + 'Ответ: нет.';end;end;
Процедура обработки события «OnClick» кнопки «Button2» имеет вид:
var i,n,p: integer;beginMemo1.Clear;for i := 101 to 990 dobeginn := i;p := 1;while n >= 1 dobeginif n mod 10 0 thenif (n mod 10) mod 3 = 0then p := p * (n mod 10);n := n div 10;end;if p = 27then Memo1.Lines.Add(IntToStr(i));end;if Memo1.Lines.Count = 0then Memo1.Lines.Add('Таких чисел нет!');end;
Процедура обработки события «OnClick» кнопки «Button3» имеет вид:
var b: boolean;i,c,n: integer;beginMemo2.Clear;c := 0;for i := 10 to 100 dobeginb := true;n := i;while n >= 10 dobeginif n mod 10then b := false;n := n div 10;end;if b thenbegininc(c);Memo2.Lines.Add(IntToStr(i));end;end;Memo2.Lines.Add('Количество: ' + IntToStr(c) + '.');end;
Процедура обработки события «OnClick» кнопки «Button4» имеет вид:
var x,y,f: double;beginrandomize;x := StrToFloatDef(LabeledEdit3.Text,0);y := random(5) + 5;LabeledEdit4.Text := FloatToStr(y);if xthen f := sin(y) + power(x,5)else if x >= 0then f := cos(x) — y * yelse f := (power(x,3) + 7 * y * y — 3) / Pi;LabeledEdit5.Text := FloatToStr(f);end;
При разработке мобильного приложения, реализующее решение задач в Android Studio также следует использовать стандартные компоненты для ввода/вывода данных, такие как: Button, TextView и EditText.
Компоненты следует группировать, исходя из их принадлежности к тому или иному заданию, используя для этого компоненты ConstraintLayout, каждый из которых расположен в отдельном окне, или Activity.
Выбор необходимого задания осуществляется с помощью 4 командных кнопок Button, размещенных на главном окне приложения.
На рис. 2, 3, 4 и 5 показаны оконные формы мобильного приложения, в окне №3 которого (рис. 4) при нажатии на командную кнопку выполняется решение заданий №2 и №3 одновременно.




Методы для обработки событий onClick, по сути, повторяют методы из программы, разработанной в среде NetBeans. Так, метод обработки события onClick кнопки button5, где реализовано решение задания №1, имеет вид:
TextView tV2, tV3;tV2 = (TextView) findViewById(R.id.textView2);tV3 = (TextView) findViewById(R.id.textView3);EditText eT1;eT1 = (EditText) findViewById(R.id.editText1);int n, max = 0;n = Integer.parseInt(eT1.getText().toString());int k = n % 10;boolean b = true;while (n >= 1){if (n % 10 > max){max = n % 10;}if (k != n % 10){b = false;}n /= 10;}String answer;answer ="Самая большая цифра числа равна:";answer += max + ".";tV2.setText(answer);if (b){answer = "В числе все цифры одинаковые!";} else{answer = "Число содержит разные цифры!";}tV3.setText(answer);
Как видно, основное отличие заключается в реализации операций ввода и вывода данных.
На рис. 6 показано приложение в момент работы с ним.

Таким образом, как видно из обзора, все рассмотренные IDE имеют схожие черты, начиная от окна редактора и заканчивая наборами визуальных компонентов. Выбор той или иной среды разработки целиком и полностью зависит от назначения программного обеспечения, сферы его использования, а также операционной среды.