|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.04.2012, 18:59 | #1 |
Пользователь
Регистрация: 09.04.2012
Сообщений: 62
|
Блок-схема к программе на паскале со вставками ассемблера.
Написать блок схему к программе написанную на ПАСКАЛЕ со вставками ассемблера.
Вот текст программы Program password; {пароль Malina} uses crt; const cil=6; m2=3; var d1,d2,d3,d4,x1,x2,y1,y2,m1,j,z:byte ; i,g,w: integer; S:array[1..cil+1] of byte; Ch, sym:char; label 10,11,12,13,14,15,16,20; procedure cursor(s1,s2:byte); begin asm mov ah,02; mov bh,00; mov dh,s1; mov dl,s2; int 10h end; end; procedure line(f1,f2:byte); begin asm mov ah,09; mov al,0CDh mov bh,00 mov bl,72; mov cx,01 int 10h end; end; procedure line1(k1,k2:byte); begin asm mov ah,09; mov al,0BAh mov bh,00 mov bl,72; mov cx,01 int 10h end; end; procedure ugol(u1,u2,u3,u4:byte); begin asm mov ah,09; mov al,0C9h mov bh,00 mov bl,72; mov cx,01 int 10h mov ah,02; mov bh,00; mov dh,u1; mov dl,u4; int 10h mov ah,09; mov al,0BBh mov bh,00 mov bl,72; mov cx,01 int 10h mov ah,02; mov bh,00; mov dh,u3; mov dl,u4; int 10h mov ah,09; mov al,0BCh mov bh,00 mov bl,72; mov cx,01 int 10h mov ah,02; mov bh,00; mov dh,u3; mov dl,u2; int 10h mov ah,09; mov al,0C8h; mov bh,00; mov bl,72; mov cx,01; int 10h end; end; procedure parol(s1:byte); begin asm mov ah,09 mov al,s1 mov bh,00 mov bl,0c2h mov cx,01 int 10h end; end; procedure razmekr(d:byte); begin {Устанавливаем размер экрана} asm mov ah,00 mov al,d int 10h end; end; procedure cursroz(O1,O2:byte); begin asm mov ah,01 mov ch,O1 mov cl,O2 int 10h end; end; begin w:=1; z:=1; j:=01; razmekr(j); 11:clearscreen(00,00,25,80,07); writeln('Выберите размер экрана с помощью клавиши "Tab" и жмите "Enter" '); sym:=readkey; 12:if ord(sym)=9 then begin case j of 01: j:=03; 03: j:=01; end; razmekr(j); sym:=' '; case z of 1:goto 11; 2:goto 10; 3:goto 13; 4:goto 15; 5:goto 16; end; end; clearscreen(00,00,25,80,07); writeln('Введите координаты окна'); cursroz(09,18); readln(d1,d2,d3,d4); m1:=m2; 10:z:=2; if j=01 then if (d1>22) or (d1<2) or (d2>25) or (d2<1) or (d3>23) or (d3<3) or (d4>39) or (d4<13) then begin x1:=12; x2:=14; y1:=13; y2:=26; end else begin x1:=d1; x2:=d2; y1:=d3; y2:=d4; end else if (d1>22) or (d1<2) or (d2>25) or (d2<1) or (d3>23) or (d3<3) or (d4>39) or (d4<13) then begin x1:=12; x2:=24; y1:=13; y2:=36; end else begin x1:=d1; x2:=d2; y1:=d3; y2:=d4; end; clearscreen(00,00,25,80,35); clearscreen(x1,x2,y1,y2,57); i:=0; while i<=(y2-x2) do begin cursor(x1-1,x2+i); line(x1-1,x2+i); cursor(y1+1,y2-i); line(y1+1,y2-i); i:=i+1; end; i:=0; while i<=(y1-x1+1) do begin cursor(x1+i-1,x2-1); line1(x1+i-1,x2-1); cursor(x1+i-1,y2+1); line1(X1+i-1,y2+1); i:=i+1; end; cursor(x1-1,x2-1); ugol(x1-1,x2-1,y1+1,y2+1); cursor(00,j*10+5); textcolor(21); writeln('У вас ',m1,' попыток'); cursor(x1,x2); textcolor(3); write('Введите пароль'); cursor(x1+1,x2); s[1]:=77; s[2]:=97; s[3]:=108; s[4]:=105; s[5]:=110; s[6]:=97; g:=0; cursroz(00,13); cursor(x1+1,x2); sym:=readkey; if ord(sym)=9 then goto 12 else begin i:=1; ch:=sym; goto 14; end; while ch<>chr(13) do begin ch:=readkey; 14: cursor(x1+w,x2+i-1); parol(42); if s[i]=ord(ch) then g:=g+1 else s[i]:=s[i]+256; if (i=y2-x2+1) then if (y1-x1-w=0) then i:=i ELSE begin w:=w+1; i:=1; end else i:=i+1; end; 20:clearscreen(00,00,25,80,13); if g=cil then 13:begin z:=3; if j=01 then g:=14 else g:=34; cursor(12,g); textcolor(5); parol(ord('В'));cursor(12,g+1);paro l(ord('с'));cursor(12,g+2);parol(or d('е')); cursor(12,g+3);parol(ord(' '));cursor(12,g+4);parol(ord('в')); cursor(12,g+5); parol(ord('е'));cursor(12,g+6);paro l(ord('р'));cursor(12,g+7);parol(or d('н')); cursor(12,g+8);parol(ord('о'));curs or(12,g+9);parol(ord('!')); sym:=readkey; if ord(sym)=9 then goto 12; end else begin cursor(12,30); if m1>1 then begin z:=4; m1:=m1-1; 15: textcolor(2); if j=01 then cursor(12,10) else cursor(12,30); writeln('Введен неверный пароль ! Повторите попытку '); cursor(120,140); w:=1; sym:=readkey; if ord(sym)=9 then goto 12 else goto 10; end; z:=5; 16: textcolor(9); if j=01 then cursor(12,10) else cursor(12,30); writeln('Ваши попытки исчерпаны'); cursor(120,140); sym:=readkey; if ord(sym)=9 then goto 12; end; textcolor(6); clearscreen(00,00,25,80,13); cursor(00,00); end. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Блок схема к программе | Flash05 | Visual C++ | 4 | 23.11.2010 17:40 |
блок схема к программе | emin313gs | Помощь студентам | 0 | 11.10.2010 17:35 |
блок схема к программе | emin313gs | Помощь студентам | 2 | 11.10.2010 14:25 |
Блок-схема к программе | OtimJ | Помощь студентам | 2 | 15.01.2009 19:29 |