Дослідження та порівняльний аналіз алгоритмів генерації псевдовипадкових чисел

Розробка програмного продукту візуального відображення алгоритмів генерації псевдовипадкових чисел та засобів їх тестування у середовищі Delphі; статистичний аналіз. Реалізація лінійного конгруентного методу в стандартних бібліотеках різних компіляторів.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 26.10.2012
Размер файла 2,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

СПИСОК ЛІТЕРАТУРИ

1. Айерлэнд К., Роузен М. Классическое введение в современную теорию чисел // М.: Мир, 1987. - 416 с.

2. Большев Л.Н., Смирнов Н.В. Таблицы математической статистики. - М.: Наука, 1983. - 416 с.

3. Булинский, А.В., Ширяев, А.Н. "Теория случайных процессов", М.: Физматлит, 2003.

4. Гмурман, В.Е. "Руководство к решению задач по теории вероятностей и математической статистике": Учеб. пособие -- 11-е изд., перераб. - М.: Высшее образование, 2006.-404 с.

5. Гнеденко, Б.В. "Курс теории вероятностей", -- М.: Наука, 1988.

6. Горбань И.И. "Справочник по теории случайных функций и математической статистике", Киев: Институт кибернетики им. В.М. Глушкова НАН Украины, 1998.

7. Горбань, И.И. "Теория гиперслучайных явлений", Киев: ИПММС НАН Украины, 2007.

8. Дональд Кнут. Глава 3. Случайные числа // Искусство программирования, том 2. Получисленные методы. -- 3-е изд. -- М.: «Вильямс», 2007. -- С. 832.

9. Колемаев, В.А. и др. "Теория вероятностей и математическая статистика", -- М.: Высшая школа, 1991.

10. Крамер Г. Математические методы статистики. - М.: Мир, 1975. - 648 с.

11. Кремер Н.Ш. Теория вероятностей и математическая статистика. - М.: Юнити, 2000. - 543 с.

12. Лемешко Б.Ю. Статистический анализ одномерных наблюдений случайных величин: Программная система. - Новосибирск: Изд-во НГТУ, 1995. - 125 с.

13. Лемешко Б.Ю., Постовалов С.Н. Система статистического анализа наблюдений и исследования статистических закономерностей // Материалы международной НТК "Информатика и проблемы телекоммуникаций". - Новосибирск, 2001. - С. 80-81.

14. Мирвалиев М., Никулин М.С. Критерии согласия типа хи-квадрат // Заводская лаборатория. 1992. - Т. 58. - № 3. - С.52-58.

15. Никулин М.С. О критерии хи-квадрат для непрерывных распределений // Теория вероятностей и её применение. 1973. - Т.XVIII. - № 3. - С.675-676.

16. Рао. С.Р. Линейные статистические методы и их применения. - М.: Наука, 1968. - 548 с.

17. Сархан А.Е., Гринберг Б.Г. Введение в теорию порядковых статистик. - М.: Статистика, 1970. - 414 с.

18. Свирид, Г.П., Макаренко, Я.С., Шевченко, Л.И. "Решение задач математической статистики на ПЭВМ", Мн., Выш. шк., 1996.

19. Строгалев В.П., Толкачева И.О. Имитационное моделирование. -- МГТУ им. Баумана, 2008. -- С. 697-737.

20. Хемди А. Таха Глава 18. Имитационное моделирование // Введение в исследование операций = Operations Research: An Introduction. -- 7-е изд. -- М.: «Вильямс», 2007. -- С. 697-737.

21. Coddington P. Analysis of Random Number Generators Using Monte-Carlo Simulation, Int. J. Mod. Phys. 1994. C. 5. 547 р.

22. Entacher K., Uhl A., Wegenkittl S. Parallel Random Number Generation: Long- range Correlations Among Multiple Processors // In P. Zinterhof, M. Vajterљic, and A. Uhl, editors, Parallel Computation, volume 1557 of Lecture Notes in Computer Science, Springer, New York, 1999. P. 107-116.

23. M. Matsumoto and T. Nishimura, Mersenne twister: A 623-dimensionally equidistributed uniform pseudorandom number generator, ACM Trans. on Modeling and Computer Simulations, 1998.

24. Richard P. Brent, Uniform Random Number Generators for Supercomputers, Computer Sciences Laboratory; Australian National University Appeared in Proceedings Fifth Australian Supercomputer Conference (Melbourne, December 1992), 95-104. c 1992, 5ASC Organising Committee.

25. Wolfram S. Random sequence generation by cellular automatat // Adv. Appl. Math. 7, 123 (1986).

26. Свободная Интернет-энциклопедия

27. Исходные коды реализации различных алгоритмов

28. Исходные коды и книги по алгоритмам.

29. Библиотека численного анализа НИВЦ МГУ

30. Интернет-университет информационных технологий

31. Сайт института Математического моделирования РАН

32. Сайт разработчика серии статистических тестов случайных чисел Diehard

33. Сайт разработчиков генератора «Вихрь Мерсенна»

ДОДАТОК А

Вихідний текст файлів системи unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, StdCtrls, ExtCtrls, TeeProcs, Chart, ComCtrls,

Spin, Buttons,MT19937;

type

TForm1 = class(TForm)

Panel1: TPanel;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Chart1: TChart;

Series1: TPointSeries;

TabSheet2: TTabSheet;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

SpinEdit1: TSpinEdit;

RadioGroup1: TRadioGroup;

BitBtn1: TBitBtn;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Edit3: TEdit;

Label5: TLabel;

Edit4: TEdit;

CheckBox1: TCheckBox;

GroupBox3: TGroupBox;

Label6: TLabel;

Label8: TLabel;

E: TEdit;

ComboBox1: TComboBox;

GroupBox4: TGroupBox;

Label7: TLabel;

Label9: TLabel;

Edit5: TEdit;

Edit6: TEdit;

Panel2: TPanel;

Panel3: TPanel;

Shape1: TShape;

Shape4: TShape;

Shape7: TShape;

Shape10: TShape;

Shape13: TShape;

Panel4: TPanel;

Shapef_1: TShape;

Shape19: TShape;

Shape22: TShape;

Shape25: TShape;

Shape28: TShape;

Panel5: TPanel;

Shapem_1: TShape;

Shape34: TShape;

Shape37: TShape;

Shape40: TShape;

Shape43: TShape;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

GroupBox5: TGroupBox;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

GroupBox6: TGroupBox;

Shape46: TShape;

Label19: TLabel;

Label20: TLabel;

Shape47: TShape;

Label21: TLabel;

Label22: TLabel;

Shape48: TShape;

Label23: TLabel;

Label24: TLabel;

BitBtn2: TBitBtn;

Label25: TLabel;

Label26: TLabel;

Labelf_1: TLabel;

Labelf_2: TLabel;

Labelm_1: TLabel;

Labelm_2: TLabel;

Label27: TLabel;

procedure FormCreate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit4KeyPress(Sender: TObject; var Key: Char);

procedure PageControl1Change(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

y:longint;

a:array[1..10] of integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

randomize

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

x:array[1..100000] of double;

a,b,k,i,q,p,xb,j,t,e1,razr:integer;

y:double;

z:array[1..4] of double;

s:string;

a_l,m,c,x0,xk:integer;

f:boolean;

begin

if RadioGroup1.ItemIndex=-1 then exit;

TabSheet1.Caption:=RadioGroup1.Items[RadioGroup1.itemindex];

Series1.Clear;

case RadioGroup1.ItemIndex of

0: begin

j:=0; f:=false;

y:=random(9999-1000)+1000;

for i:=1 to SpinEdit1.Value do

begin

y:=sqr(y/10000);

s:=floattostrf(y,fffixed,10,8);

s:=copy(s,5,4);

y:=strtofloat(s);

if (y=z[1]) and (f=false) then begin t:=i; f:=true; end;

j:=j+1; z[j]:=y; if j=4 then j:=0;

Series1.AddXY(i,round(y),'',clRed);

end;

if t>0 then

Label27.Caption:='Период - '+inttostr(t-1)

else Label27.Caption:='Период >100 ';

end;

1: begin

if CheckBox1.Checked then

begin

for i:=1 to SpinEdit1.Value do

begin

xk:=random(10000);

Series1.AddXY(i,xk,'',clRed);

end;

Label27.Caption:='Период - '+Edit1.Text;

end

else

begin

if (Edit1.Text='') or (Edit2.Text='') or(Edit3.Text='') or (Edit4.Text='')

then exit;

m:=strtoint(Edit1.Text);

a_l:= strtoint(Edit2.Text);

c:=strtoint(Edit3.Text);

x0:=strtoint(Edit4.Text);

for i:=2 to SpinEdit1.Value do

begin

xk:=(a_l*x0+c) mod m;

x0:=xk;

Series1.AddXY(i,xk,'',clRed);

end;

end;

end;

2: begin

case ComboBox1.ItemIndex of

0: begin a:=55; b:=24; Label27.Caption:='Период - 36028797018963968';

end;

1: begin a:=17; b:=5; Label27.Caption:='Период - 524288';end;

2: begin a:=97; b:=33; Label27.Caption:='Период -

158456325028528675187087900672' end;

end;

e1:=strtoint(e.Text); razr:=1;

for i:=1 to e1 do

razr:=razr*10;

for i:=1 to a do

x[i]:=random(99)/razr;

for i:=a+1 to SpinEdit1.Value+a do

begin

if x[i-a]>=x[i-b]

then x[i]:=x[i-a]-x[i-b] else

x[i]:=x[i-a]-x[i-b]+1;

Series1.AddXY(i,round(x[i]*100),'',clRed);

end;

end;

3: begin

if (Edit5.Text='') or (Edit6.Text='') then exit;

p:=strtoint(Edit5.Text);

q:=strtoint(Edit6.Text);

xb:=random(100);

for i:=1 to SpinEdit1.Value do

begin

xb:= sqr(xb) mod p*q;

Series1.AddXY(i,xb,'',clRed);

end;

end;

4: begin for i:=1 to SpinEdit1.Value do

Series1.AddXY(i,genrand_MT19937,'',clRed);

label27.Caption:= 'Период - 2^19937-1'

end;

end;

end;

procedure TForm1.RadioGroup1Click(Sender: TObject);

begin

label27.Caption:='';

case RadioGroup1.ItemIndex of

0:begin GroupBox1.Visible:=false; GroupBox3.Visible:=false;

GroupBox4.Visible:=false; end;

1:begin GroupBox1.Visible:=true; GroupBox3.Visible:=false;

GroupBox4.Visible:=false;end;

2:begin GroupBox3.Visible:=true;GroupBox1.Visible:=false;

GroupBox4.Visible:=false;end;

3: begin GroupBox3.Visible:=false;GroupBox1.Visible:=false;

GroupBox4.Visible:=true;end;

4: begin GroupBox3.Visible:=false;GroupBox1.Visible:=false;

GroupBox4.Visible:=false;end;

end;

end;

procedure TForm1.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked then

begin

Edit1.Text:='4294967296';

Edit2.Text:='134775813';

Edit3.Text:='1';

Edit4.Enabled:=false;

Edit1.ReadOnly:=true;

Edit2.ReadOnly:=true;

Edit3.ReadOnly:=true;

end

else

begin

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Enabled:=true;

Edit1.ReadOnly:=false;

Edit2.ReadOnly:=false;

Edit3.ReadOnly:=false;

end;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#13,#8]) then key:=#0;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#13,#8]) then key:=#0;

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#13,#8]) then key:=#0;

end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);

begin

if not (key in ['0'..'9',#13,#8]) then key:=#0;

end;

procedure TForm1.PageControl1Change(Sender: TObject);

begin

if PageControl1.ActivePageIndex=1 then

begin

Panel1.Visible:=false;

Panel2.Visible:=true;

end

else begin

Panel1.Visible:=true;

Panel2.Visible:=false; end;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

const xp:array[1..7]of real =(29.71,34.76,42.94,49.33,56.33,67.50,76.15);

p:array[1..7] of integer =(1,5,25,50,75,95,99);

var ps:real;

v,x_mean:double;

i,st_sv,n,p_n,a,b:integer;

x:array[1..51] of longint;

x1:array[1..1000] of real;

begin

n:=51; //кількість випробувань

st_sv:=n-1; //ступень свободи

ps:=1/n; //вірогідність

v:=0;

p_n:=0;

//лінійний конгурентний метод зі стандартними параметрами

for i:=1 to n do

begin

x:=random(99); //генерація випадкового числа

v:=v+sqr(x-n*ps)/n*ps; //

end;

for i:=1 to 7 do

if xp[i]>v then

begin

p_n:=p[i];

break;

end;

if ((p_n=1) or (p_n=99))

then begin shape1.Shape:=stCircle;

Shape1.Brush.Color:=clRed;

end

else

if ((p_n=5) or (p_n=95))

then begin shape1.Shape:=stCircle;

Shape1.Brush.Color:=clFuchsia;

end

else

if ((p_n=10) or (p_n=90))

then begin shape1.Shape:=stCircle;

Shape1.Brush.Color:=clYellow;

end

else

begin shape1.Shape:=stRectangle;

Shape1.Brush.Color:=clWhite;

end;

Label25.Visible:=true;

Label26.Visible:=true;

label26.Caption:='V='+floattostrf(v,fffixed,5,3);

label25.Caption:='p='+inttostr(p_n)+'%';

//метод Ф

a:=97; b:=33; v:=0; p_n:=0;

for i:=1 to a do

x1[i]:=random(99)/100;

for i:=a+1 to n+a do

begin

if x1[i-a]>=x1[i-b]

then x1[i]:=x1[i-a]-x1[i-b] else

x1[i]:=x1[i-a]-x1[i-b]+1;

v:=v+sqr(x1[i]*100-n*ps)/n*ps;

end;

for i:=1 to 7 do

if xp[i]>v then

begin

p_n:=p[i];

break;

end;

if (p_n=1) or (p_n=99)

then begin shapef_1.Shape:=stCircle;

Shapef_1.Brush.Color:=clRed;

end

else

if (p_n=5) or (p_n=95)

then begin shapef_1.Shape:=stCircle;

Shapef_1.Brush.Color:=clFuchsia;

end

else

if (p_n=10) or (p_n=90)

then begin shapef_1.Shape:=stCircle;

Shapef_1.Brush.Color:=clYellow;

end

else

begin shapef_1.Shape:=stRectangle;

Shapef_1.Brush.Color:=clWhite;

end;

Labelf_1.Visible:=true;

Labelf_2.Visible:=true;

labelf_2.Caption:='V='+floattostrf(v,fffixed,5,3);

labelf_1.Caption:='p='+inttostr(p_n)+'%';

v:=0; p_n:=0;

//m

for i:=1 to n do

begin

v:=v+sqr(genrand_MT19937/20000000-n*ps)/n*ps;

end;

for i:=1 to 7 do

if xp[i]>v then

begin

p_n:=p[i];

break;

end;

if (p_n=1) or (p_n=99)

then begin shapem_1.Shape:=stCircle;

Shapem_1.Brush.Color:=clRed;

end

else

if (p_n=5) or (p_n=95)

then begin shapem_1.Shape:=stCircle;

Shapem_1.Brush.Color:=clFuchsia;

end

else

if (p_n=10) or (p_n=90)

then begin shapem_1.Shape:=stCircle;

Shapem_1.Brush.Color:=clYellow;

end

else

begin shapem_1.Shape:=stRectangle;

Shapem_1.Brush.Color:=clWhite;

end;

Labelm_1.Visible:=true;

Labelm_2.Visible:=true;

labelm_2.Caption:='V='+floattostrf(v,fffixed,5,3);

labelm_1.Caption:='p='+inttostr(p_n)+'%';

end;

end.

unit MT19937;

{$R-} {range checking off}

{$Q-} {overflow checking off}

interface

{ Period parameter }

Const

MT19937N=624;

Type

tMT19937StateArray = array [0..MT19937N-1] of longint;

procedure sgenrand_MT19937(seed: longint);

procedure lsgenrand_MT19937(const seed_array: tMT19937StateArray);

procedure randomize_MT19937;

function randInt_MT19937(Range: longint):longint;

function genrand_MT19937: longint;

function randFloat_MT19937: Double;

implementation

{ Period parameters }

const

MT19937M=397;

MT19937MATRIX_A =$9908b0df;

MT19937UPPER_MASK=$80000000;

MT19937LOWER_MASK=$7fffffff;

TEMPERING_MASK_B=$9d2c5680;

TEMPERING_MASK_C=$efc60000;

VAR

mt : tMT19937StateArray;

mti: integer=MT19937N+1;

procedure sgenrand_MT19937(seed: longint);

var

i: integer;

begin

for i := 0 to MT19937N-1 do begin

mt[i] := seed and $ffff0000;

seed := 69069 * seed + 1;

mt[i] := mt[i] or ((seed and $ffff0000) shr 16);

seed := 69069 * seed + 1;

end;

mti := MT19937N;

end;

{

Initialization by "sgenrand_MT19937()" is an example. Theoretically,

there are 2^19937-1 possible states as an intial state.

This function (lsgenrand_MT19937) allows to choose any of 2^19937-1

ones.

Essential bits in "seed_array[]" is following 19937 bits:

(seed_array[0]&MT19937UPPER_MASK), seed_array[1], ...,

seed_array[MT19937-1].

(seed_array[0]&MT19937LOWER_MASK) is discarded.

Theoretically,

(seed_array[0]&MT19937UPPER_MASK), seed_array[1], ...,

seed_array[MT19937N-1]

can take any values except all zeros.

}

procedure lsgenrand_MT19937(const seed_array: tMT19937StateArray);

VAR

i: integer;

begin

for i := 0 to MT19937N-1 do mt[i] := seed_array[i];

mti := MT19937N;

end;

function genrand_MT19937: longint;

const

mag01 : array [0..1] of longint =(0, MT19937MATRIX_A);

var

y: longint;

kk: integer;

begin

if mti >= MT19937N

then begin

if mti = (MT19937N+1) then

sgenrand_MT19937(4357);

for kk:=0 to MT19937N-MT19937M-1 do begin

y := (mt[kk] and MT19937UPPER_MASK) or (mt[kk+1] and

MT19937LOWER_MASK);

mt[kk] := mt[kk+MT19937M] xor (y shr 1) xor mag01[y and $00000001];

end;

for kk:= MT19937N-MT19937M to MT19937N-2 do begin

y := (mt[kk] and MT19937UPPER_MASK) or (mt[kk+1] and

MT19937LOWER_MASK);

mt[kk] := mt[kk+(MT19937M-MT19937N)] xor (y shr 1) xor mag01[y and

$00000001];

end;

y := (mt[MT19937N-1] and MT19937UPPER_MASK) or (mt[0] and

MT19937LOWER_MASK);

mt[MT19937N-1] := mt[MT19937M-1] xor (y shr 1) xor mag01[y and

$00000001];

mti := 0;

end;

y := mt[mti]; inc(mti);

y := y xor (y shr 11);

y := y xor (y shl 7) and TEMPERING_MASK_B;

y := y xor (y shl 15) and TEMPERING_MASK_C;

y := y xor (y shr 18);

Result := y;

end;

{ Delphi interface }

procedure Randomize_MT19937;

Var OldRandSeed: longint;

begin

OldRandSeed := System.randseed;

System.randomize;

sgenrand_MT19937(System.randSeed);

System.randseed := OldRandSeed;

end;

asm

PUSH EAX

CALL genrand_MT19937

POP EDX

MUL EDX

MOV EAX,EDX

end;

function RandFloat_MT19937: Double;

const Minus32: double = -32.0;

asm

CALL genrand_MT19937

PUSH 0

PUSH EAX

FLD Minus32

FILD qword ptr [ESP]

ADD ESP,8

FSCALE

FSTP ST(1)

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Характеристика програмного забезпечення, його мета та призначення, функціональні особливості. Вимоги до розробки та її джерела. Огляд алгоритмів генерації псевдовипадкових послідовностей. Дослідження методів тестування та оцінки стійкості паролів.

    дипломная работа [2,0 M], добавлен 22.10.2012

  • Історія створення мови С#. Аналіз алгоритмів кодування даних. Розробка системи в середовищі Visual Studio 2008 Express. Схема шифрування алгоритму DES. Дослідження алгоритму RC2. Приклади хешів RIPEMD-160. Програмна реалізація основних процедур системи.

    дипломная работа [1,7 M], добавлен 25.10.2012

  • Визначення криптографічних методів захисту інформації як способів шифрування та кодування даних, які потребують ключа і оберненого перетворення. Характеристика принципу гаммування. Криптоаналіз лінійних конгруентних генераторів псевдовипадкових чисел.

    курсовая работа [242,4 K], добавлен 01.02.2012

  • Методика управління каталогами та атрибутами файлів. Аналіз вихідних даних, вибір підходу та технології реалізації програмного продукту. Розробка узагальненого та деталізованих алгоритмів роботи програми, інтеграція компонентів та комплексне тестування.

    курсовая работа [2,8 M], добавлен 23.01.2012

  • Опис методів і алгоритмів вирішення задачі в середовищі розробки Myeclipse. Основні функції програмного продукту, його структура. Розробка алгоритму та програми, інструкція користувачу. Результати тестування, лістинг основних блоків. Вікно головного меню.

    курсовая работа [1,8 M], добавлен 24.02.2014

  • Дослідження та аналіз об’єкту програмування. Основні архітектурні риси JavaScript. Переваги CSS розмітки. Структура HTML-документа. Вимоги до апаратного та програмного забезпечення. Опис програми та її алгоритмів. Оцінка вартості програмного продукту.

    дипломная работа [1,0 M], добавлен 01.09.2016

  • Огляд засобів створення програмного забезпечення сучасних мікроконтролерів. Аналіз методів та налаштувань контролерів. Засоби генерації коду налаштувань. Детальний опис розробки програми генератора налаштувань ядра Cortex M4 та методики її тестування.

    курсовая работа [1,3 M], добавлен 20.05.2015

  • Основні теоретичні відомості алгоритмів стиснення зображень: класи зображень та їх представлення в пам'яті, алгоритми та принципи групового кодування. Огляд та аналіз сучасних програмних засобів конвертування. Тестування, опис роботи програмного засобу.

    курсовая работа [2,9 M], добавлен 15.03.2014

  • Проблеми процесу тестування програмного забезпечення. Розробка алгоритму автоматичної генерації тестів і тестового набору для ручного виконання. Побудова тестів для системи "Банкомат" і для баг-трекінгової системи, представленої графом із циклами.

    дипломная работа [1,2 M], добавлен 26.02.2014

  • Написання програми для мобільного приладу, яка буде переводити числа з однієї системи числення в іншу. Розробка графічного інтерфейсу, яким зручно буде користуватись. Опис процедур, обробників та мови програмування. Дослідження логічних частин програми.

    курсовая работа [1,2 M], добавлен 27.08.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.