Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2008, 17:39   #1
Лисичкина
Пользователь
 
Регистрация: 26.10.2008
Сообщений: 14
Печаль Помогите переделать программу в Delphi7…

Помогите пожалуйста переделать программу в 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.

В программу по распределению памяти перемещаемыми разделами в сторону старших адресов со сжатием при каждом завершении задачи….
Я в этом полный ноль…(((
Лисичкина вне форума Ответить с цитированием
Старый 31.10.2008, 19:08   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Я в этом полный ноль…
Так специально для "нулей" целый раздел выделен - "Фриланс"
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите переделать и проверьте 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