небольшой опрос

Аватара пользователя
irik

небольшой опрос

Сообщение irik »

скажите,когда вы начали программировать- какая была первая программа(простая или сложная) ,

может заодно подскажите,с какой программы проще начинать писать,

откуда у вас берутся идеи,

и еще ,может глупый вопрос,а для написания пр-мы,жава скрипт?
Аватара пользователя
irik

Re: небольшой опрос

Сообщение irik »

begin

Writeln('HELLO WORLD!');

end.



#include

void main(){

cout
Аватара пользователя
irik

Re: небольшой опрос

Сообщение irik »

у меня еще спектрумовские на винте есть :-)

но я не решился их сюда постить, они раз в 10 больше того, что я уже запостил :-)
Аватара пользователя
fLANkeR

Re: небольшой опрос

Сообщение fLANkeR »

это вообще трудно- самому придумывать программы?
Аватара пользователя
irik

Re: небольшой опрос

Сообщение irik »

Цитата:



это вообще трудно- самому придумывать программы?



Все зависит от фантазии.
Аватара пользователя
BrutalBit

Re: небольшой опрос

Сообщение BrutalBit »

Вобщето все проги пишутся для конкретной цели..... чего их придумивать???
Аватара пользователя
DYURIK

Re: небольшой опрос

Сообщение DYURIK »

Я начал писать еще на spectrum... первые программы были на бейсике, потом на ассемблере... писал восновном игры, или менял уже готовые (благо на спектруме это было сделать легко), вот так ..

Regards, suxxl
Аватара пользователя
vadimiron

Re: небольшой опрос

Сообщение vadimiron »

А я начал всё через "попу" Изображение

Начал программировать на PHP, так как мне нравилось интернет программирование и всё с этим связанное, а сейчас пора уже учится нормальному программированию и учу С++



А первая программа была следущая:



$i=1;

while ($i
Аватара пользователя
JCooper

Re: небольшой опрос

Сообщение JCooper »

Помню когда мне было еще лет 12 был у меня ibm 286. Вот это были времена. Писал проги на старом добром TP 6.0 (7.0). Запомнилась лишь игра типа РПГ только полностью текстовая. А так в сновном писал всякую ерунду, даже прогами назвать нельзя, учился одним словом. Первый код написанный мною был выдран из книги, некое подобие хеллоу ворлд.
Аватара пользователя
JCooper

Re: небольшой опрос

Сообщение JCooper »

Предложение, если у кого то есть старые исходники - кинуть сюда, вместе посмеемся :-) сейчас я маленький кусочек найду :-)

вот основная программа


Цитата:



Uses Crt,key,GraphLib;

Var x,s,y: LongInt;

   Time : LongInt;

   Timer : LongInt absolute $40:$6c;



 Procedure movelka;

 Begin

 s:=1;

 x:=150;

 y:=100;

  Repeat

   Time:=Timer;

     Repeat Until Timer-Time>1;

   ClrVid2(0);

   PrintD('“ç¨ *áª*«ì - ®â®¬áâ¨èì! Изображение',1,1,3);

   ShowPicTransD(x,y,s);

   ShowDouble;

    If pressed [scLeft] then

     Begin

      dec(x,4);

      inc(s);

      if s>2 then s:=1;

     End else

    If pressed [scRight] then

     Begin

      inc(x,4);

      inc(s);

      if s>2 then s:=1;

     End else s:=1;

  Until pressed [scEsc];

 End;



BEGIN

GrInit;

Install_Handler;

ClrVid2(0);

ReadPicture('1.img');

ReadPicture('2.img');

TrCol:=$FF;

movelka;

GrDone;

Restore_Handler;

END.



и сама библиотека графическая:


Цитата:



Unit GraphLib;



{$L rus}

{$L mouse}

Interface



Uses Dos;



Type TPalette = Array[0..255] of record R,G,B : Byte; End; { *«¨âà* }

Const

     VGA256 = $13;

     TextMode = 3;

     PalMask = $36C;

     PalRegR = $3C7;

     PalRegW = $3C8;

     PalData = $3C9;



     fcFriend = 15;

     fcEnemy = 40;

     colGreen = 28;

     colYellow = 8;

     colRed = 40;

     fr=0;

     en=64;

     FadeSpeed : LongInt = 20; { ‘ª®à®áâì £*è¥*¨ï/¯à®ï¢«¥*¨ï íªà*** }



Type TVidBuf = Array[1..65100] of Byte;

    TSpr = Array[0..15,0..15] of byte;

    TFont = Array[128..239,1..8] of byte;

    TMouseBuf = Array[1..16,1..16] of byte;



Var SegDB : Word;

   GetBack : Byte;

   Fnt : ^TFont;

   Int1CSave : Pointer;

   MouseVis : Boolean;

   MouseX,MouseY : Integer;

   MouseBuf : ^TMouseBuf;

   MouseFile : File of TSpr;

   MouseSpr : ^TSpr;

   DoubleBuf : ^TVidBuf;

   FrameColor : Byte;

   Pic : Array[1..100] of record

                            W,H : Word;

                            Spr : Pointer;

                          End;

   LastP : Integer;

   TrCol : Byte;

   Pal : TPalette;



Procedure SetPalette(Pal : TPalette);

Procedure FadePal(Pal : TPalette);

Procedure LightPal(Pal : TPalette);

Procedure ReadPicture(FileName : String);

Procedure FreePicture(PicN : Byte);

Procedure ShowPicture(X,Y,PicN : Integer);

Procedure ShowPictureD(X,Y,PicN : Integer);

Procedure ShowPicTrans(X,Y,PicN : Integer);

Procedure ShowPicTransD(X,Y,PicN : Integer);

Procedure VRT;

Procedure ReadMouseState(Var XMo,YMo : Integer;Var Lb,Mb,Rb : Boolean);

Procedure DrawLeft(A : Word;P : Pointer);

Procedure DrawRight(A : Word;P : Pointer);

Procedure ShowFrame(X1,Y1,W,H : Word);

Procedure Pixel(x,y : Word; Color : Byte);

Procedure PixelD(x,y : Word; Color : Byte);

Procedure SetMode(Mode : Byte);

Procedure SetPalReg(index,Red,Green,Blue : Byte);

Procedure ClrVid(color : Byte);

Procedure ClrVid2(color : Byte);

Procedure Print(S : String;x,y : Word; color : Byte);

Procedure PrintD(S : String;x,y : Word; color : Byte);

Procedure ShowImage(x,y : Word;w,h : Word;Spr : Pointer);

Procedure ShowTrans(x,y : Word;w,h : Word;Spr : Pointer);

Procedure ShowImageD(x,y : LongInt;w,h : Word;Spr : Pointer);

Procedure ShowTransD(x,y : Word;w,h : Word;Spr : Pointer);

Procedure ShowSprD(x,y : Word;w,h : Word;Spr : Pointer;col : Byte);

Procedure ShowEnergy(x,y : LongInt;len,col : Byte);

{Procedure DrawSprite16(Spr : TSpr;x,y : Word);}

Procedure DrawSpriteD(Spr : TSpr;x,y : Word);

Procedure DrawSpriteT(Spr : TSpr;x,y : Word);

Procedure ReadUnderMouse;

Procedure ShowUnderMouse;

Procedure ShowMous;

Procedure ShowMous2;

Procedure ShowDouble;

Procedure ShowMouse;

Procedure HideMouse;

Procedure GrInit;

Procedure GrDone;



Implementation



Procedure RusFont; far; external;

Procedure MouseSp; far; external;



Procedure FadePal(Pal : TPalette);

Var A,B : LongInt;

P : TPalette;

T : LongInt;

Begin

 For B:=FadeSpeed downto 0 do

 Begin

   For A:=0 to 255 do

   Begin

     P[A].R:=Trunc(Pal[A].R*B/FadeSpeed);

     P[A].G:=Trunc(Pal[A].G*B/FadeSpeed);

     P[A].B:=Trunc(Pal[A].B*B/FadeSpeed);

   End;

   SetPalette(P);

   T:=MemL[$40:$6c];

   Repeat Until MemL[$40:$6c]-T>=1;

 End;

End;



Procedure LightPal(Pal : TPalette);

Var A,B : LongInt;

P : TPalette;

T : LongInt;

Begin

 For B:=0 to FadeSpeed do

 Begin

   For A:=0 to 255 do

   Begin

     P[A].R:=Trunc(Pal[A].R*B/FadeSpeed);

     P[A].G:=Trunc(Pal[A].G*B/FadeSpeed);

     P[A].B:=Trunc(Pal[A].B*B/FadeSpeed);

   End;

   SetPalette(P);

   T:=MemL[$40:$6c];

   Repeat Until MemL[$40:$6c]-T>=1;

 End;

End;







Procedure ReadPicture(FileName : String);

Var F : File;

W,H : Word;

Begin

 Assign(F,FileName);

 ReSet(F,1);

 BlockRead(F,W,2);

 BlockRead(F,H,2);

 Inc(LastP);

 GetMem(Pic[LastP].Spr,W*H);

 Pic[LastP].W:=W;

 Pic[LastP].H:=H;

 BlockRead(F,Pic[LastP].Spr^,W*H);

 BlockRead(F,Pal,SizeOf(Pal));

 Close(F);

 For W:=0 to 255 do SetPalReg(W,Pal[W].R,Pal[W].G,Pal[W].B);

End;



Procedure FreePicture(PicN : Byte);

Begin

 FreeMem(Pic[PicN].Spr,Pic[PicN].W*Pic[PicN].H);

End;



Procedure ShowPicture(X,Y,PicN : Integer);

Begin

 ShowImage(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);

End;



Procedure ShowPicTrans(X,Y,PicN : Integer);

Begin

 ShowTrans(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);

End;



Procedure ShowPicTransD(X,Y,PicN : Integer);

Begin

 ShowTransD(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);

End;



Procedure ShowPictureD(X,Y,PicN : Integer);

Begin

 ShowImageD(X,Y,Pic[PicN].W,Pic[PicN].H,Pic[PicN].Spr);

End;



Procedure ReSetMouse;

Var R : Registers;

Begin

 R.ax:=0;

 Intr($33,R);

End;



Procedure ReadMouseState(Var XMo,YMo : Integer;Var Lb,Mb,Rb : Boolean);

Var R : Registers;

Begin

 R.ax:=3;

 Intr($33,R);

 XMo:=R.cx;

 YMo:=R.dx;

 Lb:=R.bx and 1=1;

 Rb:=R.bx and 2=2;

 Mb:=R.bx and 4=4;

End;



Procedure SetMode(Mode : Byte); assembler;

Asm

 Mov AH,0

 Mov AL,Mode

 Int 10h

End;



Procedure Pixel(x,y : Word; Color : Byte); assembler;

Asm

 Mov ax,SegA000

 Mov es,ax

 Mov di,y

 Shl di,6

 Mov bx,di

 Shl di,2

 Add di,bx

 Add di,x

 Mov al,Byte Ptr color

 Mov es : [di],al

End;



Procedure PixelD(x,y : Word;Color : Byte); assembler;

Asm

 Mov ax,SegDB

 Mov es,ax

 Mov di,y

 Shl di,6

 Mov bx,di

 Shl di,2

 Add di,bx

 Add di,x

 Mov al,Byte Ptr color

 Mov es : [di],al

End;



Procedure SetPalReg(index,Red,Green,Blue : Byte);

Begin

 Port[PalMask]:=$FF;

 Port[PalRegW]:=index;

 Port[PalData]:=Red;

 Port[PalData]:=Green;

 Port[PalData]:=Blue;

End;



Procedure SetPalette(Pal : TPalette);

Var I : Byte;

Begin

 For I:=0 to 255 do SetPalReg(I,Pal.R,Pal.G,Pal.B);

End;



Procedure ShMo;

Begin

 DrawSpriteD(MouseSpr^,MouseX,MouseY);

End;



Procedure RdMo; assembler;

Asm

 Push ds

 Les di,MouseBuf

 Mov si,MouseY

 Shl si,6

 Mov bx,si

 Shl si,2

 Add si,bx

 Add si,MouseX

 Push si

 Mov ax,SegDB

 Mov ds,ax

 Pop si

 Mov cx,16

 Cld

@m1 :

 Push cx

 Mov cx,8

 Rep MovsW

 Pop cx

 Add si,304

 Loop @m1

 Pop ds

End;



Procedure ShowDouble; assembler;

Asm

 Mov dl,MouseVis

 Push dx

 Mov MouseVis,0

 Cmp dl,1

 Jne @dal1

 Call RdMo

 Call ShMo

@dal1 :

 Push ds

 Mov ax,SegA000

 Mov es,ax

 Mov di,0

 Mov cx,32000

 Mov ax,SegDB

 Mov ds,ax

 Mov si,0

 Cld

 Rep MovsW

 Pop ds

 Pop dx

 Mov MouseVis,dl

End;



Procedure ShowFrame(X1,Y1,W,H : Word); assembler;

Asm

 mov ax,SegDB

 mov es,ax

 Mov di,y1

 Shl di,6

 Mov bx,di

 Shl di,2

 Add di,bx

 Add di,x1

 mov cx,W

 mov al,FrameColor

 rep stosb

 add di,320

 sub di,w

 mov cx,h

 sub cx,2

@Met1:

 mov es:[di],al

 add di,w

 dec di

 mov es:[di],al

 inc di

 add di,320

 sub di,w

 loop @Met1

 mov cx,w

 rep stosb

End;



Procedure ClrVid(color : Byte); assembler;

Asm

 Mov ax,SegA000

 Mov es,ax

 Mov di,0

 Mov cx,32000

 Mov ah,color

 Mov al,ah

 Cld

 Rep StosW

 Mov GetBack,al

End;



Procedure ClrVid2(color : Byte); assembler;

Asm

 Mov ax,SegDB

 Mov es,ax

 Mov di,0

 Mov cx,32000

 Mov ah,color

 Mov al,ah

 Cld

 Rep StosW

 Mov GetBack,al

End;



Procedure Print(S : String;x,y : Word; color : Byte);

Var i,x1,y1,Off : Word;



 Procedure Prt(Ch : Char;x,y,off : Word; color : Byte);

 Var WrkSeg,WrkOff,x2,y2,TOff : Word;

 BitMask,O : Byte;

 Begin

   If Ord(Ch)=0) and (X
Ответить

Вернуться в «Программирование и базы данных»