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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2010, 19:28   #1
Денис999
Форумчанин
 
Регистрация: 24.05.2010
Сообщений: 124
По умолчанию Нужна блок схема

Помогите построить блок схему.


Код:
Unit P_Sharp;
Interface
Uses Graph;
Type
 Pcx_Header = Record
      manufacturer : byte; { €§¤*⥫м }
      version: byte;       { ‚ҐабЁп Paintbrash }
      encoding: byte;      { Є®¤Ёа®ў**ЁҐ }
      bits_per_pixel: byte;  { Є®«-ў® ЎЁв ** ЇЁЄбҐ« }
      MinX,MinY: integer;    { а*§¬Ґа Ё§®Ўа*¦Ґ*Ёп, «Ґўл© ўҐае*Ё© гЈ®« }
      MaxX,MaxY: integer;    { а*§¬Ґа Ё§®Ўа*¦Ґ*Ёп, Їа*ўл© *Ё¦*Ё© гЈ®« }
      horz_res: integer;     { Є®«-ў® ЇЁЄбҐ« Ї® Ј®аЁ§®*в*«Ё }
      vert_res: integer;     { Є®«-ў® ЇЁЄбҐ« Ї® ўҐавЁЄ*«Ё }
      ega_palette: array[0..47] of byte; { ЁЈ*®аЁагҐвбп }
      reserved: byte;                    { ЁЈ*®аЁагҐвбп }
      num_color_planes: byte;            { ЁЈ*®аЁагҐвбп }
      bytes_per_line: integer;           { ЁЈ*®аЁагҐвбп }
      palette_type: integer;             { ЁЈ*®аЁагҐвбп }
      padding: array[1..62] of byte;     { ЁЈ*®аЁагҐвбп }
 End;

  RGB_color_typ = record
                   red, green, blue: byte
                  end;

  FName = string[12];


Procedure ReadPCXfile( Name: FName; UX, UY : integer );

Implementation

Procedure Set_Palette_Register(index: integer; color: RGB_color_typ);
 Begin
  port[$3C6]:= $FF;
  port[$3C8]:= index;
  port[$3C9]:= color.red;
  port[$3C9]:= color.green;
  port[$3C9]:= color.blue;
 End;

Procedure ReadPCXfile( Name: FName; UX, UY : integer );
Var
    X, Y, i, k: Integer;
    Pcx_Head : Pcx_Header;
    Pcx_File : file;
    Data: byte;
    Palette: array[0..255] of RGB_color_typ;

Begin
{ ЋвЄалў*Ґ¬ д*©« д®а¬*в* PCX }
 Assign(Pcx_File, Name);
 Reset(Pcx_File, 1);

{ —вҐ*ЁҐ Ї*«Ёвал }
Seek(Pcx_File, FileSize(Pcx_File)-768);
for x:=0 to 255 do
 begin
 BlockRead(Pcx_File, Palette[x].red, 1);
  Palette[x].red:=Palette[x].red shr 2;
 BlockRead(Pcx_File, Palette[x].green, 1);
  Palette[x].green:=Palette[x].green shr 2;
 BlockRead(Pcx_File, Palette[x].blue, 1);
  Palette[x].blue:=Palette[x].blue shr 2;
 end;

{ “бв**®ўЄ* Ї*«Ёвал }
 for y:=0 to 255 do
    begin
     port[$3C6]:= $FF;
     port[$3C8]:= y;
     port[$3C9]:= Palette[y].red;
     port[$3C9]:= Palette[y].green;
     port[$3C9]:= Palette[y].blue;
    end;

{ —вҐ*ЁҐ §*Ј®«®ўЄ* PCX д*©«* }
  Seek(Pcx_File, 0);
  BlockRead(Pcx_File, Pcx_Head, 128);

{ —вҐ*ЁҐ §*Є®¤Ёа®ў***®Ј® Ё§®Ўа*¦Ґ*Ёп }
For Y:=UY to (UY+Pcx_Head.vert_res-1) do
 For X:=UX to (UX+Pcx_Head.horz_res-1) do
  begin
   BlockRead(Pcx_File, Data, 1);
   If Data>=192 then
    begin
     i:=Data-192; BlockRead(Pcx_File, Data, 1);
     For k:=1 to i do
      begin
        If X>(UX+Pcx_Head.horz_res) then begin X:=UX; Y:=Y+1; end;
        PutPixel(X,Y,Data);
        If k<i then Inc(X);
      end
    end
   else
    PutPixel(X,Y,Data);
  end;
{ Љ®*Ґж }
Close(Pcx_File);
End;
End.
Денис999 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна Блок-схема... посмотрите Настёна_19 Помощь студентам 3 22.12.2010 02:24
3 задачи в 1 ( case of )... Нужна Блок-Схема! PaScalpel Помощь студентам 1 27.10.2010 20:44
нужна блок-схема к программе solisoul Помощь студентам 3 26.08.2010 08:44
Нужна блок-схема! Котенков Алексей Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2008 23:36