![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.10.2008
Сообщений: 14
|
![]()
Помогите пожалуйста переделать программу в Delphi7…
Программу по Реализации модели дефрагментации свободных участков памяти, при выделении памяти динамическими разделами unit Defr; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Grids, StdCtrls; type TForm1 = class(TForm) Image1: TImage; StringGrid1: TStringGrid; Button1: TButton; Button2: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; StringGrid2: TStringGrid; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s:byte; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); {Общее оформление интерфейса} var i:byte; begin s:=50; Image1.Canvas.Pen.Color:=clBlue; Image1.Canvas.Brush.Color:=clBlue; Image1.Canvas.Rectangle (0,0,856,33); for i:=0 to 49 do StringGrid1.Cols[i].Text:=inttostr(i); end; procedure TForm1.Button1Click(Sender: TObject); {Загрузка задачи в память} var l:byte; begin {Защита от неверных значений} try l:=strtoint(Edit1.Text); except showmessage('Недопустимое значение'); exit; end; if l>50 then begin showmessage('Недопустимое значение'); exit; end; if l<=s then {Нет места в памяти} begin {Имитация загрузки задачи в память} Image1.Canvas.Pen.Color:=clOlive; Image1.Canvas.Brush.Color:=clOlive; Image1.Canvas.Rectangle ((50-s)*17,0,(50-s+l)*17,33); Label1.Caption:='Задача загружена'; StringGrid2.Cols[50-s].Text:=inttostr(l); s:=s-l; end else Label1.Caption:='Нет свободного места в памяти'; end; procedure TForm1.Button2Click(Sender: TObject); {Выгрузка задачи из памяти} var i,l:byte; begin {Защита от неверных значений} try i:=strtoint(Edit2.Text); l:=strtoint(StringGrid2.Cells[i,0]); except showmessage('Введите адрес начала задачи'); exit; end; if i>49 then begin showmessage('Введите адрес начала задачи'); exit; end; {Имитация выгрузки задачи из памяти} Image1.Canvas.Pen.Color:=clBlue; Image1.Canvas.Brush.Color:=clBlue; Image1.Canvas.Rectangle (i*17,0,(i+l)*17,64); Label1.Caption:='Задача выгружена'; if i+l=50-s then s:=s+l{Выгружаемая задача самая последняя} else begin {Сдвиг памяти} Image1.Canvas.Pen.Color:=clBlue; Image1.Canvas.Brush.Color:=clBlue; Image1.Canvas.Rectangle ((i+l)*17,0,(50-s)*17,64); Image1.Canvas.Pen.Color:=clOlive; Image1.Canvas.Brush.Color:=clOlive; Image1.Canvas.Rectangle (i*17,0,(50-s-l)*17,33); s:=s+l;i:=i+l; repeat {Имитация изменения начальных адресов задач} StringGrid2.Cols[i-l].Text:=StringGrid2.Cells[i,0]; StringGrid2.Cols[i].Text:=''; i:=i+strtoint(StringGrid2.Cells[i-l,0]); until StringGrid2.Cells[i,0]=''; end; StringGrid2.Cols[i].Text:=''; end; end. В программу по распределению памяти перемещаемыми разделами в сторону старших адресов со сжатием при каждом завершении задачи…. Я в этом полный ноль…((( |
![]() |
![]() |
![]() |
#2 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите переделать и проверьте | Mokriy | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 22.05.2008 17:26 |
переделать программу с паскаля на асемблер | neee | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 13.12.2007 16:04 |
Помогите переделать | Stanislav | Общие вопросы Delphi | 2 | 24.10.2007 16:14 |
ПОМОГИТЕ ПЕРЕДЕЛАТЬ ПРОГРАММУ ИЗ PASCAL В DELPHI | Solny6ko YasnoE | Помощь студентам | 11 | 11.08.2007 15:24 |
Помогите переделать БД | Antowka | БД в Delphi | 17 | 15.06.2007 21:35 |