1. Гук М. Аппаратные средства IBM PC Санкт-Питербург, 1997.
2. Жигарев А. Н. Основы компьютерной грамоты. Ленинград Машиностроение, 1987.
3. С. Мюллер. Модернизация и ремонт ПК. 2003.
4. Гук. М. Процессоры Intel от 8086 до Pentium. Санкт-Питербург Питер Паблишинг, 1997.
5. Фигурнов В.Э. IBM PC для пользователя. Москва Инфа-М, 1997.
6. Немнюгін С.А. Turbo Pascal Практикум. Санкт-Петербург Питер 2002.
7. Сердюченко В.Я. Розробка алгоритмів та програмування мовою Turbo Pascal, Харків 1995.
Юров В. И. Справочная система по язику ассемблера IBM PC. Санкт- Петербург Питер 1998.
Текст програми на мові Pascal
program kyrsach_by_oe;
{$l abc}{abc.obj}
uses crt;
type
vedomost=record
naimenovanie:string[12];
massa:Real;
teploemkost:Real;
poverxnost:Real;
T,e:Real;
num:byte;
end;
const
norm=$17;
sel=GREEN;
n=6;
var
menu:array[1..n] of string[40];
punkt:integer;
ch:char;
x,y:integer;
a:vedomost;
Fname:string;
PM:byte;
krec:byte;
f:file of vedomost;
S4,summa4_T:real;
t:real;
mass:array[1..20] of vedomost;
procedure abv; external;
procedure vvod (var a:vedomost);
begin
clrscr;
writeln('Vvedite naimenovanie IP: ');
readln(A.Naimenovanie);
writeln('Vvedite massy: ');
readln(A.Massa);
writeln('Vvedite ydelnyy teploemkost: ');
readln(a.teploemkost);
writeln('Vvedite poverxnost ');
readln(a.poverxnost);
writeln('Vvedite …: ');
readln(a.e);
writeln ('Press Enter...');
readln;
end;
procedure read_f;
var
i:byte; {nomer ykazatelya}
begin
writeln('Vvedite ima fajla');
readln(fname);
krec:=0; {kolitchestvo elementov mass poka 0}
assign(f,fname);
reset(f);
for i:=0 to filesize(f)-1 do
begin
krec:=krec+1; {yvelichim stchotchik na 1}
read(f,mass[krec]); {zapishem inf o stydente f element massiva}
end;
close(f);
end;
procedure CreateFile;
var
F:file of vedomost;
A:vedomost;
begin
clrscr;
write ('Vvedite ima fajla:'); Readln(Fname);
Assign (F,Fname);
Rewrite(f);
vvod(a);
write(f,a);
close(f);
writeln('Fajl ',Fname,' yspewno sozdan !!!');
writeln('Press Enter...');
Readln;
end;
procedure myframe;
var l,t:integer;
i:integer;
c1,c11,c2,c3,c4,c5,c6,c7,c8,c9,c10:char;
begin
clrscr;
c1:=chr(201);
c2:=chr(205);
c3:=chr(187);
c4:=chr(186);
c5:=chr(200);
c6:=chr(188);
c7:=chr(203);
c8:=chr(202);
c9:=chr(204);
c10:=chr(185);
c11:=chr(206);
gotoxy(l,t);
write (c1);
for i:=2 to 15 do write(c2);
write(c7);
for i:=17 to 29 do write(c2);
write(c7);
for i:=31 to 46 do write(c2);
write(c7);
for i:=48 to 60 do write(c2);
write(c7);
for i:=62 to 72 do write(c2);
writeln(c3);
writeln(c4,' NAIMENOVANIE ',C4,' MASSA ',C4,' YDELNAJA ',C4,' ',C4,' ',C4);
writeln(c4,' IP ',C4,' KG ',C4,' TEPLOEMKOST" ',C4,' POVERXNOST ',C4,' T ',C4);
writeln(c4,' ',c4,' ',c4,' MATERIALA ',c4,' ',c4,' ',c4);
write(c9);
for i:=2 to 15 do write (c2);
write(c11);
for i:=17 to 29 do write(c2);
write(c11);
for i:=31 to 46 do write(c2);
write(c11);
for i:=48 to 60 do write(c2);
write(c11);
for i:=62 to 72 do write(c2);
writeln(c10);
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
writeln(c4,' ',c4,' ',c4,' ',c4,' ',c4,' ',c4 );
gotoxy(1,18);
writeln(c4,' Summary ',C4,' ',C4,' ',C4,' ',C4,' ',C4);
write(c5);
for i:=2 to 15 do write(c2);
write(c8);
for i:=17 to 29 do write(c2);
write(c8);
for i:=31 to 46 do write(c2);
write(c8);
for i:=48 to 60 do write(c2);
write(c8);
for i:=62 to 72 do write(c2);
writeln(c6);
end;
procedure Add;
var a:vedomost;
f:file of vedomost;
Fname:string;
begin
clrscr;
write ('Vvedite ima fajla:');
readln(Fname);
vvod (a);
Assign (F,Fname);
reset(f);
Seek (F,FileSize (f));
write (F,A);
close(f);
end;
procedure view;
var f:file of vedomost;
A:vedomost;
I,z:byte;
res:integer;
S1,S2,S3,S4:real;
begin
clrscr;
write ('Vvedite ima fajla: '); readln (Fname);
assign (f,fname);
reset (f);
myframe;
S1:=0;
S2:=0;
S3:=0;
S4:=0;
for i:=0 to filesize (F)-1 do
begin
Seek(f,I);
read(f,A);
with A do
begin
T:=(a.massa*a.teploemkost)/(a.poverxnost*a.e);
S1:=S1+a.massa;
S2:=S2+a.teploemkost;
S3:=S3+a.poverxnost;
S4:=S4+T;
Summa4_T:=T;
abv;
gotoxy(2,i+6);write(naimenovanie);
gotoxy(18,i+6);write(massa:3:1);
gotoxy(32,i+6);write(teploemkost:8:1);
gotoxy(49,i+6);write(poverxnost:5:1);
gotoxy(63,i+6);
write (T:2:3);
gotoxy(20,18);write(S1:3:2);gotoxy(33,18);write(S2:3:2);
gotoxy(49,18);write(S3:3:2);gotoxy(64,18);write(S4:3:3);
end;
end;
gotoxy(5,24);
writeln ('ZMI Enter FOR EXIT FROM PROGRAM...');
readln;
close (f);
end;
procedure Del;
var i,n:byte;
f,f1:file of vedomost;
a:vedomost;
begin
clrscr;
write ('Vvedite ima fajla: '); readln (Fname);
write ('Vvedite nomer zapisi: '); readln (N);
assign (f,Fname);
reset (f);
assign(f1,'ff');
rewrite(f1);
FOR i:=0 TO Filesize(f)-1 do
begin
read (f,A);
if (I+1<>N) then
write (f1,A);
end;
close(F);
close(F1);
Erase(f);
rename(f1,fname);
writeln ('nazmi Enter...');
readln;
end;
PROCEDURE EDIT;
VAR a: vedomost;
f:file of vedomost;
n:byte;
begin
clrscr;
begin
writeln ('Vvedite ima fajla: '); readln (fname);
assign (f,Fname);
writeln ('VVedite nomer zapisi: ');
readln(n);
reset (f);
vvod (A);
Seek (f,n-1);
write (f,A);
close (F);
end;
end;
procedure menutoscr;
var i:integer;
a:vedomost;
begin
clrscr;
for i:=1 to n do
begin
gotoxy(x,y+i-1);
write(menu[i]);
end;
gotoxy(5,24);
write('ESC-¤"п ўл室 Ё§ Їа®Ја¬¬л');
textattr:=sel;
gotoxy(x,y+punkt-1);
write(menu[punkt]);
textattr:=norm;
end;
begin
clrscr;
menu[1]:='Dobavit zapis v fail';
menu[2]:='Redaktirovat zapis v faile';
menu[3]:='prosmotr zapisej v fajle';
menu[4]:='Udalit zapis iz faila';
menu[5]:='Sozdat file';
menu[6]:='exit';
punkt:=1;
x:=5;
y:=5; textattr:=norm;
menutoscr;
repeat
ch:=readkey;
if ch=chr(0) then
begin
ch:=readkey;
case ch of
chr(80):{strelka vniz}
if punkt<n then
begin
gotoxy(x,y+punkt-1);
write (menu[punkt]);
punkt:=punkt+1;
textattr:=sel;
gotoxy (x,y+punkt-1);
write (menu[punkt]);
textattr:=norm;
end;
chr(72):
if punkt>1 then
begin
gotoxy(x,y+punkt-1);
write(menu[punkt]);
punkt:=punkt-1;
textattr:=sel;
gotoxy(x,y+punkt-1);
write(menu[punkt]);
textattr:=norm;
end;
end;
end
else
begin
if ch=chr(13) then begin
case punkt of
1:add;
2:edit;
3:view;
4:del;
5:createfile;
6:ch:=chr(27);{vixod}
end;
menutoscr;
end;
end;
until ch=chr(27);
end.
ДОДАТОК Б
Текст програми на мові Assembler
Title prog
.Model large
.Data
extrn Summa4_T:word
extrn S4:word
extrn t:word
.Code
public abv
abv proc far
mov bx,Summa4_T
mov cx,s4
add cx,bx
mov S4,cx
abv endP
ret
mov ah,4Ch
int 21h
end
ДОДАТОК В
_Microsoft (R) Macro Assembler Version 5.10 1/13/6
abv Page 1-1
1title abv
2.Model large
3.Data
4extrn e:byte
5extrn massa:byte
6extrn teploemkost:byte
7extrn t:word
8extrn poverxnost:byte
9.Data
10.Code
11Public abv
12 0000abv proc far
13 0000 A0 0000 Emov al,massa
14 0003 8A 16 0000 Emov dl,teploemkost
15 0007 F6 E2mul dl;Умножение.результат в -> AL
16 0009 8A C8mov cl,al;сохраняем чисельник в CL
17 000B A0 0000 Emov al,poverxnost
18 000E 8A 16 0000 Emov dl,e
19 0012 F6 E2mul dl;инструкция умножения
20 0014 8A D8mov bl,al;сохраняем знаменник в BL
21 0016 8A C1mov al,cl
22 0018 98cbw
23 0019 8A D3mov dl,bl
24 001B F6 F2div dl
25 001D A3 0000 Emov t,ax
26 0020abv endP
27 0020 C3ret
28 0021 B4 4Cmov ah,4Ch
29 0023 CD 21int 21h
30end
_Microsoft (R) Macro Assembler Version 5.10 1/13/6
abv Symbols-1
Segments and Groups:
N a m e Length AlignCombine Class
ABC_TEXT . . . . . . . . . . . . 0025WORDPUBLIC'CODE'
DGROUP . . . . . . . . . . . . . GROUP
_DATA . . . . . . . . . . . . 0000WORDPUBLIC'DATA'
Symbols:
N a m e Type Value Attr
ABV . . . . . . . . . . . . . . F PROC0000ABC_TEXTGlobalLength = 0020
E . . . . . . . . . . . . . . . V BYTE0000_DATAExternal
MASSA . . . . . . . . . . . . . V BYTE0000_DATAExternal
POVERXNOST . . . . . . . . . . . V BYTE0000_DATAExternal
T . . . . . . . . . . . . . . . V WORD0000_DATAExternal
TEPLOEMKOST . . . . . . . . . . V BYTE0000_DATAExternal
@CODE . . . . . . . . . . . . . TEXT abc_TEXT
@CODESIZE . . . . . . . . . . . TEXT 1
@CPU . . . . . . . . . . . . . . TEXT 0101h
@DATASIZE . . . . . . . . . . . TEXT 1
@FILENAME . . . . . . . . . . . TEXT abc
@VERSION . . . . . . . . . . . . TEXT 510
30 Source Lines 30 Total Lines 22 Symbols
46730 + 447218 Bytes symbol space free
0 Warning Errors
0 Severe Errors
Результат роботи програми
На рис.1 зображено головне меню програми Programm.pas
Рис 1 Головне меню програми
На рис.2 зображено занесення нового запису до файлу
Рис.2 Занесення нового запису до файлу
На рисунку 3 зображено стан програми після редагування запису
Рис.3 Редагування файлу
На рис.4 стан програми після вибору пункту Перегляд
Рис.4 Перегляд
На рис.5 Видалення запису з файлу
Рис 5 Видалення запису