Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

2. Организуйте контроль ввода в элемент «редактор», так что если вводимая строка не соответствует требованиям, то в окне сообщений выводится сообщение об ошибке, очищается строка «однострочный редактор».

3. Документируйте сеанс работы с приложением: запоминайте введенные исходные данные и полученный результат в элементе управления «многострочный редактор».

Рекомендации к выполнению

1. Для организации управляющей структуры программ используйте операторы While, Repeat.

2. Для преобразования введенных значений из строкового формата в числовой, а результатов – из числового формата в строковый формат используйте библиотечные подпрограммы StrToInt, StrToFloat, IntToStr, FloatToStr модуля Sysutils.

3. Организуйте контроль ввода данных в элемент «редактор». Для этого используйте блок try…finally и процедуру ShowMessage модуля Dialogs.

4. Чтобы компонент был доступен только для чтения, необходимо в его свойство ReadOnly занести значение True.

5. Чтобы на компонент нельзя было установить фокус ввода с помощью клавиши Tab, необходимо занести в его свойство TabStop значение False.

6. Документирование сеанса осуществляйте с помощью компонента «многострочный редактор», как показано в примере.

7. Разработанные приложения сохраняйте в отдельной папке.

Варианты заданий

1. Выведите заданный разряд целого числа. Разряды нумеруйте справа налево, начиная с единицы. Для решения используйте операции mod, div. Решите задачу дважды: первый раз – используя оператор while, второй раз – оператор repeat.

НЕ нашли? Не то? Что вы ищете?

2. Выведите заданный разряд дробной части действительного числа. Разряды нумеруйте от десятичной точки направо, начиная с единицы. Для решения используйте функции Int, Frac. Решите задачу дважды: первый раз – используя оператор while, второй раз – оператор repeat.

3. Вычислите и выведите сообщение о четности введенного целого числа. Операции mod, div и функцию Odd не использовать. Решите задачу дважды: первый раз с помощью оператора while, второй раз – оператора repeat.

4. Вычислите и выведите сообщение о кратности пары введенных целых чисел. Операции mod, div и функцию Odd не использовать. Решите задачу дважды: первый раз с помощью оператор while, второй раз – оператора repeat.

5. Вычислите и выведите число Фибоначчи по его номеру, который вводится пользователем. Ряд чисел 1, 1, 2, 3, 4, 8, 13, … называются числами Фибоначчи. Каждое число называется «фибом». Таким образом, первый «фиб» или «фиб(1)» – это 1, «фиб(2)» – это 1, «фиб(3)» – это 2 и т. д. Ряд строится на основе того, что каждый последующий «фиб» является суммой двух предыдущих, т. е. фиб(8) = 21.

6. Напишите программу, которая вычисляет наибольший общий делитель (НОД) двух натуральных чисел.

Пример 1

Пусть требуется заполнить таблицу из двух колонок: в первую заносится графический символ, во вторую – код символа. Для решения этой задачи можно построить приложение, состоящее из одной формы следующего вида (рис. 5):

Рис. 5

Для хранения таблицы использован компонент «многострочный редактор», расположенный в правой части формы. Ввод символа и отображение его кода осуществляется в компоненты «однострочный редактор». Для переноса введенного символа и его кода из компонентов «однострочный редактор» в строку компонента «многострочный редактор» используется компонент «командная кнопка» с подписью «Запомнить». Для удаления последней строки из компонента «многострочный редактор» используется компонент «командная кнопка» с подписью «Удалить».

Первую строку компонента «многострочный редактор», содержащую текст «Символ Код», можно сформировать на этапе визуального проектирования формы. Для этого необходимо:

• выделить на форме компонент Memo1;

• в инспекторе объектов выделить свойство Lines и кликнуть указателем мыши на кнопке с тремя точками;

• в появившемся окне редактора ввести необходимый текст.

Чтобы можно было просматривать строки текста компонента «многострочный редактор», которые не помещаются на экране, необходимо в свойстве ScrollBars установить значение ssVertical.

Разработанной форме соответствует модуль, текст которого приведен ниже.

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

type

  TForm1 = class(TForm)

  Edit1: TEdit;

  Edit2: TEdit;

  Label1: TLabel;

  Label2: TLabel;

  Button1: TButton;

  Memo1: TMemo;

  Button2: TButton;

  procedure Edit1KeyPress(Sender: TObject; var Key: Char);

  procedure Button1Click(Sender: TObject);

  procedure Button2Click(Sender: TObject);

  private

  {Private declarations}

  public

  {Public declarations}

  end;

var

  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

  Edit2.Text:= IntToStr(Ord(Key)); //код введенного символа заносится в редактор

  Edit1.Clear;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

  Memo1.Lines. Add(Edit1.Text+' '+Edit2.Text); //добавляется строка в компонент Memo1

  Edit1.SetFocus;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

  if Memo1.Lines. Count>1 then //удаляем из Memo1 последнюю строку, если строк больше одной

  Memo1.Lines. Delete(Memo1.Lines. Count-1);

Edit1.SetFocus;

end;

end.

Пример 2

Пусть требуется подсчитывать количество значащих десятичных разрядов в целом неотрицательном числе и заполнять таблицу из двух колонок: в первую заносится введенное целое, во вторую – количество разрядов. Для решения этой задачи можно построить приложение, состоящее из одной формы следующего вида (рис. 6):

Рис. 6

Для хранения таблицы использован компонент «многострочный редактор», расположенный в правой части формы. Ввод целого и отображение количества разрядов в нем осуществляется в компоненты «однострочный редактор». Для переноса введенного целого и количества разрядов в нем из компонентов «однострочный редактор» в строку компонента «многострочный редактор» используется компонент «командная кнопка» с подписью «Запомнить». Для удаления последней строки из компонента «многострочный редактор» используется компонент «командная кнопка» с подписью «Удалить».

Первую строку компонента «многострочный редактор», содержащую текст «Символ Код», можно сформировать на этапе визуального проектирования формы. Для этого необходимо:

• выделить на форме компонент Memo1;

• в инспекторе объектов выделить свойство Lines и кликнуть указателем мыши на кнопке с тремя точками;

• в появившемся окне редактора ввести необходимый текст.

Чтобы можно было просматривать строки текста компонента «многострочный редактор», которые не помещаются на экране, необходимо в свойстве ScrollBars установить значение ssVertical.

Разработанной форме соответствует модуль, текст которого приведен ниже.

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  StdCtrls;

type

  TForm1 = class(TForm)

  Edit1: TEdit;

  Edit2: TEdit;

  Label1: TLabel;

  Label2: TLabel;

  Button1: TButton; // кнопка добавить

  Memo1: TMemo;

  Button2: TButton; // кнопка удалить

  Button3: TButton;// кнопка вычислить

  procedure Button1Click(Sender: TObject);

  procedure Button2Click(Sender: TObject);

  procedure Button3Click(Sender: TObject);

  procedure Edit1Exit(Sender: TObject);

  private

  {Private declarations}

  public

  {Public declarations}

  end;

var

  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin

  //добавляется строка к списку строк компонента Memo1

Memo1.Lines. Add(Edit1.Text+'  '+Edit2.Text);

  Edit1.SetFocus;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

  if Memo1.Lines. Count>1 then begin

  //удаляем из Memo1 последнюю строку, если строк больше одной

Memo1.Lines. Delete(Memo1.Lines. Count-1);

  end;

  Edit1.SetFocus;

end;

procedure TForm1.Button3Click(Sender: TObject);

var k, n: Integer;

begin

  n:= StrToInt(Edit1.Text);

  k:= 0;

  while n>0 do begin//вычисляем число разрядов

  n:= n div 10;

  inc(k);

  end;

  Edit2.Text:= IntToStr(k);

end;

procedure TForm1.Edit1Exit(Sender: TObject);

var a:Cardinal;

begin

  try

  a:= StrToInt(Edit1.Text);

  except

  on EConvertError do begin

  showMessage('Ошибка ввода');

  Edit1.SetFocus

  end;

  end;

end;

end.

Содержание отчета

1.Задание.        

2.Текст программы на Object Pascal.

3.Тестовые наборы данных для тестирования приложения.

Контрольные вопросы

1. Назовите синтаксические правила написания оператора While.

2. Укажите порядок, в котором выполняется оператор While.

3. Как поместить в do= часть несколько операторов?

4. Что можно размещать между зарезервированными словами While и do?

5. Нарисуйте управляющую структуру, соответствующую оператору While, и укажите порядок выполнения узлов.

6. Назовите синтаксические правила написания оператора Repeat.

7. Укажите порядок, в котором выполняется оператор Repeat.

8. Что можно размещать между зарезервированными словами Repeat и until?

9. Нарисуйте управляющую структуру, соответствующую оператору Repeat, и укажите порядок выполнения узлов.

10. Охарактеризуйте множество значений типа Boolean, покажите, как записываются значения этого типа в тексте программы.

11. Перечислите операции, определенные на значениях типа Boolean, и поясните правила их выполнения.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24