Моделирование вычислительной машины

Разработка программы для изображения в графическом режиме на экране ПЭВМ структуры МВМ и демонстрация ее функционирования при выполнении программы вычисления. Программное обеспечение для функционирования программы. Описание логической структуры.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 24.06.2012
Размер файла 34,6 K

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

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

Размещено на http://www.allbest.ru/

Моделирование вычислительной машины

1. Индивидуальное задание

Написать программу для изображения в графическом режиме на экране ПЭВМ структуры МВМ и демонстрации ее функционирования при выполнении программы вычисления F =(X+1) - (Y+1) - 3. Дополнительно в переменной ZERO подсчитать количество значений переменных, равных нулю.

Программа должна отображать на экране монитора название работы, автора, структуру МВМ, язык управления и демонстрировать работу МВМ в автоматическом и управляемом режимах с изменяемой скоростью.

Программа должна иметь справку о своем назначении и использовании, вызываемую по ключу «/?» и по пустой командной строке.

Имя каталога с графическими драйверами и шрифтами должно передаваться в командной строке.

Программа должна проверять наличие необходимых файлов, а при их отсутствии запрашивать расположение.

2. Описание процесса разработки решения задачи, структур данных и их форматов

Для моделирования выполнения машинной программы необходима сама машинная программа, которая должна быть размещена в модели памяти в формате машинных команд. Поскольку память ЦВМ есть после-довательность пронумерованных ячеек, поэтому в качестве модели па-мяти будем использовать одномерный массив слов разрядностью 16 бит.

Для получения кода машинной программы необходимо вручную от-транслировать ассемблерную программу:

1. Написать вручную программу вычисления F = (X+1) - (Y+1) - 3 на языке ассемблера;

2. Распределить память - определить адреса размещения переменных X, Y, F, Zero, констант, размещения кодов машинной программы;

3. Закодировать ассемблерную программу на машинном языке.

Текст программы вычисления функции F = (X+1) - (Y+1) - 3:

на языке ассемблера:

Func:

Loa X; Akk:=X

Add one; Akk:=X+1

Sto F; F:=Akk=X+1

Loa Y; Akk:=Y

Add one; Akk:=Y+1

Sto Y1; Y1:=Akk=Y+1

JzIncZeroY1; if Y+1=0 then Inc(Zero)

Loa F; F:=Akk;

Sub Y1; Akk:=F-Y1

Sto F; F:=Akk

Loa_three:

Loa F; Akk:=А

Sub Three; Akk:=F-3

Sto F; F:=Akk

EndFunc;

IncZeroY1

Loa Zero; Akk:=Zero

Add one; Akk:=Zero+1

Sto Zero; Zero:=Akk=Zero+1

Jmp Loa_three;

Всем переменным нужно установить начальное значение. Также нужно хранить в памяти адреса меток Func, Loa_three для косвенного безусловного перехода и установки адреса пуска программы по псевдокоманде. End.

three 3; Константы

one 1

X 14; Входные еременные

Y 10,

F 1; Выходные переменные

zero 0

Y1 11; рабочая переменная для хранения (Y+1)

FuncAddr; Адрес пуска программы

Loa_three_addr; Адрес метки Loa_three

Для определения значения адресных констант FuncAddr и Loa_three_addr нужно распределить память, т.е. Определить адреса памяти для размещения данных и кодов. Принято, чтобы данные размещались в начале программы. Также следует учесть, что прикладная программа не может располагаться с нулевого адреса - это область адресов операционной системы.

Принять начальный адрес программы равным $2000 в 16-ричной системе счисления. Получены следующие распределение памяти.

adres. Asm kod

$2000 three 3

$2001 one 1

$2002 X 14

$2003 Y 10

$2004 F 1

$2005 zero 0

$2006 Y1 11

$2007 FuncAddr

$2008 Loa_three_addr

Func

$2009 Loa X

$200A Add one

$200B sto F

$200C Loa Y

$200D Add one

$200E Sto Y1

$200F JzIncZero Y1

$2010 Loa F

$2011 Sub Y1

$2012 sto F}

LOA_three

$2013 Loa F

$2014 Sub three

$2015 Sto F

$2016 End. Func

Inczero Y1

$2017 Loa zero

$2018 Add one

$2019 Sto zero

$201A Jmp Loa_three

Метки Func и Loa_Three получены значение $2009 и $2013 cоответственно, т.е. адресная константа FuncAddr должна иметь значение $2009, а константа Loa_three_addr - $2013.

Для получения кодов машинной программы нужно закодировать имена операций, а затем сами команды, добавив адресную часть.

Пусть КОП команды Add будет 1, Sub - 2, Load - 3, Sto - 4, Jz - 5, Jmp - 6. End - 7.

{adres. Asm kod}

{$2000 three} 3,

{$2001 one} 1,

{$2002 X} 14,

{$2003 Y} 10,

{$2004 F} 1,

{$2005 zero} 0,

{$2006 Y1} 11,

{$2007 FuncAddr} $2009,

{$2008 Loa_three_addr} $2013,

{Func}

{$2009 Loa X} $0302,

{$200A Add one} $0101,

{$200B sto F} $0404,

{$200C Loa Y} $0303,

{$200D Add one} $0101,

{$200E Sto Y1} $0406,

{$200F JzIncZero Y1} $0517,

{$2010 Loa F} $0304,

{$2011 Sub Y1} $0206,

{$2012 sto F} $0404,

{LOA_three}

{$2013 Loa F} $0304,

{$2014 Sub three} $0200,

{$2015 Sto F} $0404,

{$2016 End. Func} $0707,

{Inczero Y1}

{$2017 Loa zero} $0305,

{$2018 Add one} $0101,

{$2019 Sto zero} $0405,

{$201A Jmp Loa_three} $0608);

3. Описание разработки и обоснование структур данных и их форматов

Цифровая вычислительная машина (ЦВМ) в простейшем случае состоит из центрального процессора (ЦП), содержащего устройство управления (УУ) и арифметико-логическое устройство (АЛУ), и устройства оперативной памяти (ОЗУ) (рис. 1).

Размещено на http://www.allbest.ru/

Память содержит Регистр Адреса РгА, Регистр Данных РгД и мас-сив ячеек ОЗУ. Все ячейки имеют последовательность номера от 0 до 2N-1, где N - число разрядов РгА.

Для указания доступной в данный момент ячейки используется ее адрес, который лежит в регистре адреса РгА. Регистр данных РгД содержит данные размером в машинное слово, предназначенные для записи в ячейку или чтения из ячейки по адресу на РгА за одно обращение к памяти: запись (W) или чтение (R).

Память предназначена для хранения данных. Если данные есть программа, то эти данные записываются в памяти в соседних ячейках по возрастающим адресам.

Процессор содержит Счетчик Команд СчК, Регистр Команд РгК, аккумулятор (или сумматор) АКК, регистр флагов РгФ. Назначение регистров:

СчК: хранение адреса следующей выполняемой команды;

РгК: хранение кода текущей выполняемой команды. Команда содержит Код операции (КОП) и Адресную часть (АДР). КОП определяет что делать, а АДР - над чем делать, где лежит операнд или просто: адрес операнда;

АКК: хранение результата операции;

РгФ: хранение признаков (флагов) результата операции.

Процессор предназначен для последовательного чтения команд из памяти и их выполнения.

Для отображения информации на экране можно попробовать:

1) Выводить битовую картинку из файла. Но поскольку необходимо использовать модуль Graph, то этот вариант отпадает;

2) Выводить изображение по точкам. Слишком долго, так что тоже исключаем этот вариант;

3) Выводить изображение по линиям. Намного быстрее предыдущего варианта, но также не эффективно;

4) Выводить рамки (ячейки памяти и т.п.) процедурой Rectangle. Для вывода стрелок можно использовать символы «<», «>». Этот вариант более приемлем, т.к. выводить стрелки символами куда быстрее и проще, чем изображать стрелки из двух линий.

Для вывода текста используем процедуру OutTextXY.

Для вывода линий в модуле Graph предназначена процедура Line с параметрами координат начала и конца линии.

Т.к. элементов на экране большое количество, то описание надписей выводимых из кода программы целесообразно хранить в виде массива. Каждая надпись имеет еще и координату на экране. Отсюда следует структура для описания надписи - запись с полями: строка и две координаты левого верхнего угла:

type

TMsgTV = record

X, Y: integer;

Msg: string[60];

end;

Сами надписи вместе с их координатами храним в массиве запи-сей с начальным значением:

const

ArrMsg: array [0..CountMsg-1] of TMsgTV = (

(X:120; y:30; Msg:'MODELIROVANIE MACHINE FON-NEIMONA'),

(X:400; y:60; Msg:'Zadanie: (X+1) - (Y+1)-3'),

(X:90; y:120; Msg:'Processop'),

(X:380; y:120; Msg:'PamiaTb'),

(X:10; y:140; Msg:'ALU'),

(X:65; y:150; Msg:'RrF'),

(X:155; y:150; Msg:'SchK'),

(X:65; y:240; Msg:'AKK'),

(X:155; y:224; Msg:'RrK'),

(X:320; y:150; Msg:'RrA'),

(X:320; y:240; Msg:'RrD'),

(X:220; y:140; Msg:'YY'),

(X:250; y:130; Msg:'R/W'),

(X:245; y:175; Msg:'Adpec'),

(X:250; y:260; Msg:'DaH-'),

(X:250; y:280; Msg:'HbIe'),

(X:305; y:285; Msg:'15'),

(X:370; y:285; Msg:'0'),

(X:435; y:180; Msg:'>'),

(X:435; y:270; Msg:'>'),

(X:300; y:270; Msg:'>'),

(X:375; y:270; Msg:'<'),

(X:300; y:180; Msg:'>'),

(X:200; y:217; Msg:'>'),

(X:140; y:217; Msg:'>'),

(X:20; y:237; Msg:'<'),

(X:215; y:205; Msg:'+'),

(X:55; y:350; Msg:'Shag'),

(X:150; y:350; Msg:'Speed'),

(X:260; y:350; Msg:'Time'),

(X:455; y:150; Msg:'OSU'),

(X:520; y:170; Msg:'X'),

(X:520; y:200; Msg:'Y'),

(X:520; y:230; Msg:'F'),

(X:520; y:260; Msg:'Zero'),

(X:10; y:440; Msg:'-CnpaBka-'),

(X:10; y:450; Msg:' Tab - BbIbop | «+» - Inc; | Ctrl+T - Takt Ctrl+A - Avto'),

(X:10; y:460; Msg:' Esc - SostVvod | «-» - Dec; | Ctrl+K - Cmnd Ctrl+D - Demo'));

Описание линии включает координату (точку привязки), длину и направление. Таким образом, тип линии - тоже запись, а все линии - массив записей.

type

TLineTV = record

X, Y: integer;

Len: integer;

Dir: (Down, Right);

end;

const

ArrLine: array [0..CountLine-1] of TLineTV = (

(X:224; y:183; len:80; dir:right),

(X:241; y:145; len:45; dir:right),

(X:210; y:183; len:14; dir:right),

(X:192; y:190; len:60; dir:down),

(X:192; y:220; len:32; dir:right),

(X:224; y:183; len:37; dir:down),

(X:175; y:190; len:30; dir:down),

(X:125; y:220; len:50; dir:right),

(X:125; y:220; len:80; dir:down),

(X:175; y:280; len:20; dir:down),

(X:57; y:240; len:10; dir:down),

(X:12; y:240; len:45; dir:right),

(X:12; y:240; len:60; dir:down),

(X:12; y:300; len:212; dir:right),

(X:224; y:273; len:27; dir:down),

(X:224; y:273; len:80; dir:right),

(X:374; y:273; len:66; dir:right),

(X:374; y:183; len:66; dir:right)

Описание рамки включает точку привязки, длину, высоту и значение регистра, т.е. тип рамки - запись, а описание всех рамок - массив записей.

type

TRegTV = record

X, Y: integer;

W, H: integer;

Value: ^word;

end;

const

ArrReg: array [0..CountReg-1] of TRegTV = (

(x:40; Y:360; W:70; H:30; Value:@Shag),

(x:140; Y:360; W:70; H:30; Value:@Speed),

(x:140; Y:160; W:70; H:30; Value:@PC),

(x:440; Y:160; W:70; H:30; Value:@mem[$2002]),

(x:440; Y:190; W:70; H:30; Value:@mem[$2003]),

(x:440; Y:220; W:70; H:30; Value:@mem[$2004]),

(x:440; Y:250; W:70; H:30; Value:@mem[$2005]),

(x:304; Y:160; W:70; H:30; Value:@Adres),

(x:304; Y:250; W:70; H:30; Value:@Data),

(x:286; Y:132; W:270; H:186),

(x:140; Y:250; W:70; H:30; Value:@Command),

(x:22; Y:160; W:70; H:30; Value:@ZF),

(x:22; Y:250; W:70; H:30; Value:@Akk),

(x:2; Y:132; W:239; H:186));

CurrentReg:word=1;

MaxCurrReg:word=5;

Выполнение машинных команд

Последовательность действий процессора по выполнению команды называются микропрограммой. Микропрограмма выполняется примерно так же, как и программа (основной цикл работы процессора):

1) прочитать команду по адресу на счётчике команд;

2) увеличить счётчик команд;

3) выполнить команду;

4) перейти на п. 1.

По аналогии с основным циклом работы процессора цикл выполнения микрооперации содержит следующие действия:

1) в соответствии с номером такта и кодом операции выполнить требуемую микрооперацию;

2) увеличить номер такта на 1;

3) перейти на п. 1.

Вариант 1.

Поскольку использовали цикл работы процессора, необходимо поступить по аналогии с выполнением команды безусловного перехода Jmp, в которой устанавливается адрес метки перехода; СчК:=@Метка. Следовательно, последней микрооперацией каждой команды должна быть микрооперация «NumTakt:=1». Затем в п. 2 номер такта увеличивается на 1 и станет равным 1, т.е. в следующем такте любая команда будет выполнять микрооперацию №1.

Для реализации этого варианта придётся в конце каждой команды добавить ещё одну микрооперацию «NumTakt:=0». Это первый недостаток варианта 1. Второй недостаток: этот такт является служебным, т.е. он нужен для организации последовательности выполнения тактов, и не должен отображаться на экране. Третий недостаток: в математике принято константы выносить за знак суммы, а в программировании принято действия над неизменяемыми в цикле переменными выносить из цикла с применением новой переменной, те. е одно и то же выражение не нужно вычислять в каждом цикле. Поэтому и эту микрооперацию, которая является общей для всех команд, следует вынести за цикл выполнения микропрограммы.

Вариант 2.

Чтобы увеличить номер такта на 1, но в последний раз номер устанавливался в начальное положение можно использовать деление по модулю:

NumTakt:=(NumTakt +1) mod MaxTakt.

Это выражение устанавливает начальное значение такта в 0, поэтому нумерация тактов будет с 0. Количество тактов различно для каждых команд, поэтому MaxTakt есть массив, хранящий количество тактов каждой команды.

Построение элемента изображения (текста, линии, рамки) в относительных координатах дает возможность просто перемещать элемент по экрану, изменяя только координаты точки привязки (X, Y).

Выполнение машинных команд:

MaxTakt зависит от каждой команды, т.е. MaxTakt есть массив, хранящий количество тактов каждой команды. Индексом массива должен быть машинный код операции:

MaxTakt:array [0..7] of word=(5, 11, 11, 11, 10, 8, 10, 11);

{NOp, Add, SUb, Loa, Sto, Js, Jmp, End.}

Подпрограммы выполнения конкретной операции - это практически оператор выбора.

procedure ExecEND;

begin

case NumTakt of

7: Adres:=Aisp;

8: Data:=Mem[Adres];

9: PC:=Data;

10: EndProg:=True;

end;

end;

procedure ExecAdd;

begin

case Numtakt of

7: Adres:=Aisp;

8: Data:=Mem[Adres];

9: Akk:=Akk+Data;

10:begin

If AKK=0 Then ZF:=1 Else ZF:=0;

end;

end;

end;

procedure ExecSub;

begin

case NumTakt of

7: Adres:=Aisp;

8: Data:=Mem[Adres];

9: Akk:=Akk-Data;

10: begin

If AKK=0 Then ZF:=1 Else ZF:=0;

end;

end;

end;

procedure ExecLoa;

begin

case Numtakt of

7: Adres:=Aisp;

8: Data:=Mem[Adres];

9: Akk:=Data;

10: If AKK=0 Then ZF:=1 Else ZF:=0;

end;

end;

procedure ExecSto;

begin

case Numtakt of

7: Adres:=Aisp;

8: Data:=Akk;

9: Mem[Adres]:=Data;

end;

end;

procedure ExecJz;

begin

If ZF=1 Then PC:=Aisp;

end;

procedure ExecJmp;

begin

case Numtakt of

7: Adres:=Aisp;

8: Data:=Mem[Adres];

9: PC:=Data;

end;

end;

procedure ExecOperation;

begin

case COP of

1: ExecAdd;

2: ExecSub;

3: ExecLoa;

4: ExecSto;

5: ExecJz;

6: ExecJmp;

7: ExecEnd;

end;

end;

procedure ExecTakt;

begin

case NumTakt of

0: Adres:=PC;

1: Data:=MEM[Adres];

2: Command:=Data;

3: Inc(PC);

4: COp:=Command shr 8;

5: ADR:=Command and $00FF;

6: Aisp:=PC and $FF00 or ADR;

7. 10: ExecOperation;

end;

NumTakt:=(NumTakt+1) mod MaxTakt[cop];

EndCmnd:=NumTakt=0;

end;

procedure ExecuteProgram;

begin

if Sost<>Vvod then begin

ExecTakt;

OutValues;

case Sost of

Takt: Sost:=Vvod;

Cmnd: if EndCmnd then Sost:=Vvod;

Avto: if EndProg then Sost:=Vvod;

Demo: begin

if Speed<>0 then

Delay (10000 div Speed);

if EndProg then Sost:=Vvod;

end;

end;

end;

end;

end.

4. Описание программы

Общие сведенья.

Программа «Модель Вычислительной Машины Фон-Неймана» является основой в приобретении навыков графических возможностей языка программирования Turbo Pascal и изучения алгоритма работы цифровой вычислительной машины со структурой, предложенной Фон-Нейманом.

Программное обеспечение, необходимое для функционирования программы:

Microsoft Windows 98 или выше;

Языки программирования, на которых написана программа

Turbo Pascal 7.0

Функциональное назначение

Программа предназначена для демонстрации работы модели вычислительной машины и ее функционирования в графическом режиме Turbo Pascal.

Пользователь имеет возможность:

1) вводить исходные значения переменных;

2) выбирать различные режимы работы программы (авто, демо, такт, команда);

3) получить результаты выполненной программы;

Описание логической структуры

В состав программы входят следующие модули:

§ MBMMY - главный модуль;

§ MBMData - модуль данных;

§ MBMInOut - модуль ввода-вывода;

§ MBMCpu - модуль выполнения машинных команд;

§ GraphLib - модуль графических подпрограмм.

Главный модуль - получает управляющие директивы пользователя и вызывает подпрограммы выполнения требуемых операций:

Модуль данных - хранит общие данные проекта и общие типы данных.

Модуль ввода-вывода - содержит подпрограммы для реализации интерфейса с пользователем.

1. procedure OutValues; Вывод данных на экран в ячейки, в определенной системе счисления

2. procedure RectangDoubl; Прорисовка двойной рамки, для определения используемой ячейка

3. procedure InitMBM; Инициализация графики и вывод структуры VDV

4. Function getuserCMND:char; Прочитать расширенный код клавиши и преобразовать его в код директивы пользователя

Модуль процессора (машинных команд) - содержит подпрограммы моделирования работы процессора ЦВМ.

1. procedure ExecEND; Выполнить псевдо команду.END

2. procedure ExecAdd; Выполнить сложение

3. procedure ExecSub; Выполнить вычитание

4. procedure ExecLoa; Выполнить загрузку в аккамулятор

5. procedure ExecSto; Выполнить сохранение

6. procedure ExecJz; Выполгить переход по нулю

7. procedure ExecOperation; Выполнить одну команду

8. procedure ExecTakt; Выполнить один такт

9. procedure ExecuteProgram; Выполнить машинную программу по тактам

Модуль с графическими подпрограммами - расширяет возможности стандартного модуля Graph.

1. procedure ClearBar (Left, Top, Right, Bottom: integer); Очистить прямоугольник

2. procedure OutHexXY (X, Y:integer; Lens:byte; Val:word); Вывести целое 16-ричное значение системы счисления

3. procedure OutIntegerXY (X, Y, Lens: integer; IntVal: word); Вывести целое с числом символов Lens

4. procedure OutHexDXY (X, Y:integer; Lens:byte; Val:word); Вывести целое в 16-ричной системе счисления с разделением на младший и старший разряды

Используемые технические средства

Минимальные системные требования:

§ Microsoft Windows 98;

§ Персональный компьютер с 80386DX процессор;

§ 4 Мб памяти ОЗУ;

§ Свободное место на жёстком диске 10Мб

§ Разрешение VGA.

Вызов и загрузка.

Загрузка программы осуществляется запуском файла BMBM.bat.

Входные данные

Входные данные находятся в модуле MBMData. Представляют собой 16-ричные положительные числа в диапазоне от 0 до FFFF. Изменять входные значения можно после запуска программы, путем переключения между ячейками памяти (клавиша «Tab»), и изменением желаемого элемента (клавиши «+», «-»).

Выходные данные.

Выходные данные выводятся на экран в графическом режиме, в частности результат вычисления F.

Достоинства

1. Возможность прогона программы МВМ в различных режимах с разной скоростью, любое допустимое изменение входных, в том числе и во время выполнения программы МВМ с последующим продолжением ее работы.

2. Наглядность и простота модели.

3. Небольшие требования к аппаратному обеспечению.

Недостаток

1. Изменить программу, выполняемую МВМ, равно как и содержимое остальных ячеек ее памяти можно только перекомпилировав исполняемый файл МВМ

Выводы

В ходе выполнения работы были изучены принципы функционирования цифровой вычислительной машины. Также было изучено модульное программирование на языке Турбо Паскаль. Освоен модуль Graph, что в дальнейшем пригодится для проектирования своих графических проектов.

Список литературы

вычислительный программа машина

1. Моделирование машины Фон-Неймана. Методические указания к лабораторной работе /Сост. А.Л. Симаков; Чуваш. ун-т. Чебоксары, 2001. - 24 с.

2. Разработка модели ЦВМ: лабораторный практикум /Сост. А.Л. Симаков. Чебоксары: Изд-во Чуваш. ун-та, 2010. - 52 с.

3. Работа в интегрированной среде программирования Turbo Pascal: Методические указания к лабораторным работам /Сост. А.Л. Симаков. Чебоксары: Изд-во Чуваш. ун-та, 1993. - 60 с.

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


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

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

    курсовая работа [170,3 K], добавлен 07.06.2019

  • Функциональный состав микро-ЭВМ, разработка системы команд. Описание взаимодействия всех блоков электронно-вычислительной машины при выполнении команд программы. Арифметико-логическое устройство, кэш-память процессора, функциональное моделирование.

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

  • Программное обеспечение для диспетчерских станций карьеров по добыче полезных ископаемых. Описание технологий и языков программирования, используемых при разработке программы. Технические и программные средства. Описание логической структуры программы.

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

  • Составление программы вычисления матрицы и программы вычисления интеграла с погрешностью, не превышающей заданную величину. Схема алгоритма и её описание. Инструкция по использованию разработанной программы и проверка правильности е функционирования.

    курсовая работа [54,8 K], добавлен 27.10.2010

  • Методологическая основа моделирования – диалектико-математический метод познания и научного исследования. Назначение и условия применения программы. Описание задачи и логической структуры программы. Используемые технические средства, вызов и загрузка.

    курсовая работа [311,8 K], добавлен 06.01.2009

  • Требования к программе или программному продукту. Условия эксплуатации и требования к параметрам технических средств. Программное обеспечение, рекомендуемое для функционирования программы. Руководство системного программиста и настройка программы.

    отчет по практике [1,1 M], добавлен 22.07.2012

  • Формальная схема и закон функционирования моделируемой вычислительной системы для обработки программ. Составление алгоритма моделирующей программы на языке GPSS и листинга программы для стохастической модели. Верификация программы и анализ результатов.

    курсовая работа [347,3 K], добавлен 21.01.2013

  • Программное обеспечение - важный компонент функционирования компьютерной деятельности. Изучение принципа работы резидентных программ. Разработка программы по удалению слов из текстового файла без учета регистра. Требования к программе, разработка проекта.

    курсовая работа [404,5 K], добавлен 03.02.2011

  • Разработка многопоточного приложения, выполняющего обмен данными между двумя процессами и анализ содержимого служебной области системного диска. Описание логической структуры программы, создание программы-инсталлятора, методика и результаты испытаний.

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

  • Функции компилятора как системной обрабатывающей программы. Этапы компиляции: анализ и синтез. Разработка лексического анализатора. Алгоритм и программа лексического анализа. Реализация двухфазного компилятора. Описание логической структуры программы.

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

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