Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.10.2008, 21:21
Аватар для Master-Sergey
Master-Sergey Master-Sergey вне форума
Прохожий
 
Регистрация: 25.05.2008
Адрес: г.Луганск
Сообщения: 25
Репутация: 10
Восклицание Лабораторные работы, помогите, кто чем сможет!

Помогите пожалуйста!
1. Разработать консольное приложение, в котором поместить 3 процедуры, вложенные друг в друга. Каждую процедуру сопроводить двумя сообщениями в начале и в конце тела процедуры. Проследить обработку исключений, если защитить вызов процедуры во внешнем блоке. Тип ошибки выбрать произвольно, например – деление на ноль.

TList

Выполните задание, запишите все коды программ и полученные результаты в тетрадь (по каждому шагу).
1. Создайте консольное приложение (подключите соответствующий модуль uses classes).
2. С помощью конструктора класса создайте экземпляр класса mylist.
3. Выведите на экран значения свойств Capacity и Count.
4. Используя средства отладки узнайте значение mylist.list.
5. Используя метод Add добавьте к списку ссылку на значение целого типа (объявите указатель целого типа, создайте динамическую переменную и присвойте ей значение).
6. Добавьте таким же образом еще 10 случайных целых чисел.
7. Выведите на экран значения списка через item.
8. Выполните над списком следующие действия: удалите элемент под индексом 2, вставьте значение после элемента с индексом 3. После каждого действия выведите список на экран.
9. Отсортируйте список по возрастанию (методом пузырька).

TStringList

1. Создать приложение, содержащее форму, на ней три кнопки. Создать экземпляр класса TStringList в момент создания формы. Добавьте в список эти три кнопки. Измените надписи на кнопках, получая доступ к объекту через список, соответствующие свойству строки элемента списка.
2. Создайте форму. Создайте на ней три кнопки (они должны появиться через одну минуту, после того как появится окно запущенного приложения)! Выполните все действия первого задания для данного случая.
3. Выполните действия 2-го задания, используя массив компонент components класса TApplication (и свойство числа компонент componentcount).

Помогите, кто чем сможет!
Ответить с цитированием
  #2  
Старый 21.10.2008, 21:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1.

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure Proc2; forward;
procedure Proc3; forward;

procedure Proc1;
begin
  WriteLn('Proc1 begin');
  Proc2;
  WriteLn('Proc1 end');
end;

procedure Proc2;
begin
  WriteLn('Proc2 begin');
  Proc3;
  WriteLn('Proc2 end');
end;

procedure Proc3;
begin
  WriteLn('Proc3 begin');
  Raise Exception.Create('My exception');
  WriteLn('Proc3 end');
end;

begin
  WriteLn('Program begin');
  Try
    Proc1;
  Except
    On E : Exception Do
      WriteLn('Excetion: '+E.Message);
  End;
  WriteLn('Program end');
  ReadLn;
end.

TList:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

type
  PInt = ^Integer;

var
  MyList : TList;
  lptInt : PInt;
  I : Integer;

procedure PrintList(AList : TList);
var
  I : Integer;
begin
    WriteLn('My list:');
    For I := 0 To AList.Count-1 Do
      WriteLn(Format('MyList[%d] = %d',[I,(PInt(AList.Items[i]))^]));
end;

procedure SortList(AList : TList);
var
  I, J : Integer;
begin
  For I := 0 To AList.Count-2 Do
    For J := I+1 To AList.Count-1 Do
      If PInt(AList[i])^ > PInt(AList[J])^ Then AList.Exchange(I,J);
end;

begin
  Randomize;

  lptInt := Nil;
  MyList := TList.Create;
  Try
    WriteLn(Format('Capacity = %d; Count = %d',[MyList.Capacity,MyList.Count]));

    New(lptInt);
    lptInt^ := Random(100);
    MyList.Add(lptInt);

    For I := 1 To 10 Do
      Begin
        New(lptInt);
        lptInt^ := Random(100);
        MyList.Add(lptInt);
      End;

    PrintList(MyList);

    lptInt := MyList[2];
    MyList.Delete(2);
    Dispose(lptInt);
    PrintList(MyList);

    New(lptInt);
    lptInt^ := Random(100);
    MyList.Insert(4,lptInt);
    PrintList(MyList);

    SortList(MyList);
    PrintList(MyList);
  Finally
    MyList.Free;
  End;

  ReadLn;
end.
Ответить с цитированием
  #3  
Старый 21.10.2008, 21:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

TStringList:

1.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    FStrList : TStringList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  I : Integer;
begin
  FStrList := TStringList.Create;
  FStrList.AddObject('Button1',Button1);
  FStrList.AddObject('Button2',Button2);
  FStrList.AddObject('Button3',Button3);
  For I := 0 To FStrList.Count-1 Do
    (FStrList.Objects[i] As TButton).Caption := 'Knopka ' + IntToStr(I);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FStrList.Free;
end;

end.

2.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    FStrList : TStringList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  I : Integer;
begin
  FStrList := TStringList.Create;
  FStrList.AddObject('Button1',Button1);
  FStrList.AddObject('Button2',Button2);
  FStrList.AddObject('Button3',Button3);
  For I := 0 To FStrList.Count-1 Do
    (FStrList.Objects[i] As TButton).Caption := 'Knopka ' + IntToStr(I);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FStrList.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  I : Integer;
begin
  For I := 0 To FStrList.Count-1 Do
    (FStrList.Objects[i] As TButton).Visible := True;
  Timer1.Enabled := False;
end;

end.

3.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    FStrList : TStringList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  I : Integer;
begin
  FStrList := TStringList.Create;
  FStrList.AddObject('Button1',Button1);
  FStrList.AddObject('Button2',Button2);
  FStrList.AddObject('Button3',Button3);
  For I := 0 To ComponentCount-1 Do
    If Components[i] Is TButton Then
      (Components[i] As TButton).Caption := 'Knopka ' + IntToStr(I);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FStrList.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  I : Integer;
begin
  For I := 0 To ComponentCount-1 Do
    If Components[i] Is TButton Then
      (Components[i]  As TButton).Visible := True;
  Timer1.Enabled := False;
end;

end.
Ответить с цитированием
  #4  
Старый 21.10.2008, 21:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

ЗЫ.
Что за бред в заданиях про TStringList???
Поумнее не мог придумать?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025