Будь умным!


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

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

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

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Лабораторная работа №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. Коммуникация ~ акт общения связь между двумя или более индивидами основанные на взаимопонимании соо.
2. Лекция 8 Интерактивные средства массовой информации и интерактивные социологические исследования В
3. Тема урока Написание слов названий предметов мужского и женского рода с основой на шипящий звук
4. Министерство сельского хозяйства и продовольствия РФ Минсельхозпрод России через свои департаменты по у
5. Эффект дохода и эффект замещения в интерпретации Е
6. Шпора
7. Эволюция и динамика геосистем
8. История района Ясенево
9. вудской конференции Объединенных Наций по валютнофинансовым вопросам 1944 г
10. Учебное пособие- Бухгалтерский учет
11. варианты как занять ребёнка на летние каникулы
12. обсуждениях Дата обновления- 260114 bhorrence1997scension bhorrence2012Completely Vulgr Compiltion bhoth The Tide Demos 2012 [Compiltion]
13. професійної програми підготовки спеціаліста зі спеціальності 7
14. СРЕДНИЙ МЕДПЕРСОНАЛ 1 1 ГРАЖДАНСКУЮ ОБОРОНУ НА ОБЪЕКТЕ ЗДРАВООХРАНЕНИЯ ВОЗГЛАВЛЯЕТ Заместитель глав
15. Управление статусно-ролевыми конфликтами руководителем организации.html
16. осадочных толщ а затем внедрение гранитных массивов метаморфизм складчатость поднятие этих участков го
17. Отчет по лабораторнопрактической работе 1 Исследование поверхности материалов в контактном и полуконт
18. Тема- Фітомеліоративна діяльність рослинного покриву
19. 1поглощениеявление уменьшения энергии световой волны при ее расприи в веществе вследствие преобразования.
20. О федеральном бюджете на 2011 год и на плановый период 2012 и 2013 годов