Програма переводу з однієї системи числення у іншу
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ня курсором‚ вибір опції меню здійснюється при натисканні клавіші Enter.
Процедура Sub_to_ten. При виборі опції “Перевід в 10” реалізує спадне меню‚ яке пропонує користувачеві наступні опції “З двійкової”‚ “З вісімкової”‚ “З шістнадцяткової”. Переміщення по пунктах меню здійснюється з допомогою клавіш керування курсором‚ вибір опції меню здійснюється при натисканні клавіші Enter.
При роботі з програмою встановлюються такі вимоги до системи:
- x86 персональний компютер (386 мінімум; 486, Pentium, або Pentium Pro)
- Microsoft DOS 3.30 або вище
- Microsoft Windows 3.1, Microsoft Windows for Workgroups, Microsoft Windows 95, Microsoft Windows NT 3.51 чи 4.0
- 512 Kb RAM
- розмір програми 18112 байтів
Для запуску програми необхідно запустити на виконання файл Kurs2.exe і далі використовувати головне меню програми.
Висновки
Завершивши роботу над курсовим проектом можна зробити висновок про те, що мені вдалося досягти своєї мети і розробити програму переводу з однієї системи числення у іншу. За допомогою засобів алгоритмічної мови Turbo Pascal було створено програму Kurs2‚ яка дозволяє здійснювати перевід чисел з двійкової‚ вісімкової та шістнадцяткової систем числення у десяткову систему числення та навпаки. Використання методики процедурного програмування дало змогу досить просто справитись з поставленою задачею.
В програмі реалізовано дворівневе меню‚ що дає змогу користувачеві просто користуватись нею. Програма протестована і скопільована у вигляді незалежного exe-файла‚ що значно спрощує її запуск і понижує вимоги до обладнання.
Список використаної літератури
- Н.А. Криницкий‚ Г.А. Миронов‚ Г.Д. Фролов. Программирование и алгоритмические языки. М., Наука. 1978. 512 с.
- В.Я. Сердюченко. Розробка алгоритмів та прграмування мовою Turbo Pascal. - Х.: Паритет, 1995. - 349 с.
- Д. Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1985. - 332 с.
Додаток А. Текст програми
program Kurs2;
uses Crt,dos,calc;
label m1,m2,m3,m4;
const poz=2;
poz1=3;
type fak=(ten_to_,_to_ten,fild1,help,exit);
fak1=(ten_to_two,ten_to_eight,ten_to_sixteen);
fak2=(two_to_ten,eight_to_ten,sixteen_to_ten);
const rab:array[fak] of string [16] =
( ПЕРЕВЎД З 10 , ПЕРЕВЎД В 10 , , ДОПОМОГА , ВИХЎД );
rab1:array[fak1] of string [17] =
( В ДВЎЙКОВУ , В ВЎСЎМКОВУ , В ШЎСНАДЦЯТКОВУ );
rab2:array[fak2] of string [18] =
( З ДВЎЙКОВО , З ВЎСЎМКОВО , З ШЎСНАДЦЯТКОВО );
var dov:fak;
dov1:fak1;
dov2:fak2;
sim:char;
x1,x2,y1,y2:integer;
procedure ramka1;
var i:integer;
begin
TextColor(0);
gotoxy(x1,y1);write(-);
for i:=1 to x2-x1-1 do write(-);write();
for i:=1 to y2-y1-1 do begin
gotoxy(x2,y1+i);write();
gotoxy(x1,y1+i);write();end;
gotoxy(x1,y2); write(L);
for i:=1 to x2-x1-1 do write(-);write(-);
end;
procedure Golovnemenu;
var s:fak;nom:integer;
begin
textbackground(white);textcolor(0); x1:=1;y1:=0;
for s:=ten_to_ to exit do
if s=dov then begin
textbackground(green);
gotoxy(x1,y1+1); write(rab[s]);
textcolor(2); textbackground(white);
textcolor(0); x1:=x1+16;
end
else begin
gotoxy(x1,y1+1); write(rab[s]);
x1:=x1+16;
end;
gotoxy(1,24);write( *** Calculator Version 1.0 Copyright (c) 1997 by L.Tarasenko *** );
end;
procedure sub_ten_to_;
var s:fak1;
n:integer;
begin
x1:=1;y1:=2;x2:=19;y2:=6;ramka1;
for s:=ten_to_two to ten_to_sixteen do
if s=dov1 then begin
n:=poz1+ord(s);
textbackground(green);
gotoxy(x1+1,n); write(rab1[s]);
textcolor(2); textbackground(white);
textcolor(0);
end
else begin
textbackground(white);textcolor(0);
n:=poz1+ord(s);
gotoxy(x1+1,n); write(rab1[s]);
end;
end;
procedure sub_to_ten;
var s:fak2;
n:integer;
begin
textbackground(white);textcolor(0);
x1:=16;y1:=2;x2:=35;y2:=6; ramka1;
for s:=two_to_ten to sixteen_to_ten do
if s=dov2 then begin
n:=poz1+ord(s);
textbackground(green); textcolor(0);
gotoxy(x1+1,n);
write(rab2[s]);
textcolor(2);
textbackground(white);
end
else begin
textbackground(white);
textcolor(0);
n:=poz1+ord(s);
gotoxy(x1+1,n);
write(rab2[s]);
end;
end;
begin
window(1,1,80,25);textbackground(0);
m2:screen;
dov:=ten_to_;
repeat{1}
golovnemenu;
repeat{2}
sim:=readkey;
if(sim=#0) and keypressed then sim:=readkey;
case sim of
#77:begin
if dov <> exit then dov:=succ(dov)
else dov:=ten_to_;
if dov=fild1 then dov:=help;
end;
#75:begin
if dov<> ten_to_ then dov:=pred(dov)
else dov:=exit;
if dov=fild1 then dov:=_to_ten;
end;
#27:begin;clrscr;halt;end;
end;
golovnemenu;
until sim=#13;
case dov of
ten_to_:begin
repeat{1}
sub_ten_to_;
repeat{2}
sim:=readkey;
if(sim=#0) and keypressed then sim:=readkey;
case sim of
#80:if dov1 <> ten_to_sixteen then dov1:=succ(dov1)
else dov1:=ten_to_two;
#72:if dov1<> ten_to_two then dov1:=pred(dov1)
else dov1:=ten_to_sixteen;
#27:begin screen;goto m1;end;
#75:begin
if dov<> ten_to_ then dov:=pred(dov)
else dov:=exit;screen;goto m1;
end;
#77:begin
if dov <> exit then dov:=succ(dov)
else dov:=ten_to_;screen;goto m1;
end;
end;
sub_ten_to_;
until sim=#13;
case dov1 of
ten_to_two:begin ten_to(2);screen;
golovnemenu;goto m4;end;
ten_to_eight:begin ten_to(8);screen;
golovnemenu;goto m4;end;
ten_to_sixteen:begin ten_to(16);screen;
golovnemenu;goto m4;end;
end;
m4:until false;
end;
_to_ten:begin
repeat{1}
sub_to_ten;
repeat{2}
sim:=readkey;
if(sim=#0) and keypressed then sim:=readkey;
case sim of
#80:if dov2 <> sixteen_to_ten then dov2:=succ(dov2)
else dov2:=two_to_ten;
#72:if dov2<> two_to_ten then dov2:=pred(dov2)
else dov2:=sixteen_to_ten;
#27:begin screen;goto m1;end;
#75:begin
if dov<> ten_to_ then dov:=pred(dov)
else dov:=exit;screen;goto m1;
end;
#77:begin
if do