Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 5 по Delphi

Работа добавлена на сайт samzan.net:


Лабораторная работа №5 по Delphi. Фёдоров Виктор. Вариант №17                                                                  2

Лабораторная работа №5

«УКАЗАТЕЛИ И ИХ ИСПОЛЬЗОВАНИЕ ПРИ РАБОТЕ С

ДИНАМИЧЕСКИМИ МАССИВАМИ»

Выполнил: студент 2 курса факультета Информатики Фёдоров Виктор

Вариант № 17

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

Описание объектов, используемых в проекте:

i, j, k:integer; //счётчики

A : array of Char; //массив, элементы которого надо отсортировать

M : set of '0'..'9'; //множество символов десятичных цифр

F : Boolean; // переменная для промежуточных вычислений

C : Char; //переменная для промежуточных вычислений

Листинг проекта:

unit Unit1;

interface

uses

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

 Dialogs, StdCtrls, Grids, Buttons;

type

 TForm1 = class(TForm)

   Edit1: TEdit;

   Label1: TLabel;

   Mas1: TStringGrid;

   Label2: TLabel;

   Button1: TButton;

   Mas2: TStringGrid;

   Label4: TLabel;

   SpeedButton1: TSpeedButton;

   SpeedButton2: TSpeedButton;

   procedure Button1Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

   procedure SpeedButton1Click(Sender: TObject);

   procedure SpeedButton2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

 i, j, k : Integer; //Счётчики.

 A : array of Char; //Массив, элементы которого надо отсортировать.

 M : set of '0'..'9'; //Множество символов десятичных цифр.

 F : Boolean; //Для промежуточных вычислений.

 C : Char; //Для промежуточных вычислений.

begin

 //Проверки.

 if Length(Edit1.Text) = 0 then begin

   ShowMessage('Вы ничего не набрали, пожалуйста, проверьте строку.');

   Exit;

 end;

 M := ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; //Инициализация множества.

 //Инициализация таблиц и массива.

 Mas1.ColCount := Length(Edit1.Text);

 Mas2.ColCount := Length(Edit1.Text);

 SetLength(A, Length(Edit1.Text));

 //Заполнение таблицы и массива.

 For i := 1 to Length(Edit1.Text) do begin

   Mas1.Cells[i - 1, 0] := Edit1.Text[i];

   A[i - 1] := Edit1.Text[i];

 end;

 //Сортировка элементов массива.

 //Перебор символов в массиве, начиная с самого первого символа.

 For i := Low(A) to High(A) do begin

   If not (A[i] in M) then begin //Если очередной символ оказался буквой (не цифрой).

     //Ищем первую цифру правее текущей буквы.

     F := False;

     For j := i + 1 to High(A) do begin

       If A[j] in M then begin

         F := True;

         Break;

       end;

     end;

     If F then begin //Если цифра найдена.

       C := A[j]; //Запоминаем найденную цифру.

       For k := j - 1 downto i do begin//Смещаем все элементы массива с индексами i..(j-1) на 1 позицию вправо.

         A[k + 1] := A[k];

       end;

       A[i] := C;//Записываем найденную цифру в позицию, где была буква.

     end else begin

       //Если цифра не найдена - значит прдолжать сортировку дальше

       //нет смысла - сортировка завершена.

       Break;

     end;

   end;

 end;

 //Переписываем элементы отсортированного массива в таблицу.

 For i := Low(A) to High(A) do begin

   Mas2.Cells[i, 0] := A[i];

 end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 ;;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

 Close;

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

begin

 Edit1.Clear;

end;

end.

Тесты:




1. Вариант ’99 Выполнила- ст
2. Задание Ответ 1 Решите уравнение
3. Послевоенное восстановление Германии
4. а Створіть підстановчі таблиці та кросворд до уроку англійської мови.
5. Гармонические колебания
6. Введение Геотермальная энергия вырабатывается за счет использования тепла скрытого под поверхностью зем
7. Защита информации в компьютерных системах
8. Спирс Бритни (Spears Britney)
9.  Во второй половине 18 века капиталистический способ производства продолжал утверждаться в странах Западно
10. варианты Наименование элемента Краткое описание элемента.html
11. 0113 Пути введения лекарственных веществ в организм их всасывание распределение превращение выведе
12. 65 ~ Экономика и управление на предприятии по отраслямДисциплина- Бухгалтерский учетВремя выполнения тест
13. реферат дисертації на здобуття наукового ступеня кандидата технічних наук 1
14. Курсовая работа- Определение связности графа на Лиспе.html
15. Мораль и поведение
16. Город Саратов МДОУ Детский сад комбинированного вида 136 Конспект откры
17. Безопасность и подлинность товаров1
18. Падение Венецианской республики
19. процесса создания оптимальных условий для наиболее полного удовлетворения информационных потребностей
20. На тему- Документальное оформление и учет выбытия объектов основных средств