Разработка и отладка подпрограмм на языке Ассемблера

Структурное программирование, схема алгоритма. Программа на языке Си для int, float. Подпрограмма ввода и вывода целых чисел на Ассемблере IBM. Тестирование и отладка, инструкция пользователя. Язык программирования Си (для int и float), этапы трансляции.

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

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

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

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

Введение

Язык ассеммблера (англ. assemblylanguage) -- машинно-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины, который может обеспечить дополнительные возможности вроде макрокоманд[1]; автокод, расширенный конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды, средства обеспечения модульности программ[2].

Автокод -- язык программирования, предложения которого по своей структуре в основном подобны командам и обрабатываемым данным конкретного машинного языка[2].

Язык ассемблера -- система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления)[3].

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

Команды языка ассемблера один к одному соответствуют командам процессора. Фактически, они и представляют собой более удобную для человека символьную форму записи -- мнемокоды -- команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько вариантов команд процессора[4].

Кроме того, язык ассемблера позволяет использовать символические метки вместо адресов ячеек памяти, которые при ассемблировании заменяются на вычисляемые ассемблером или компоновщиком абсолютные или относительные адреса, а также так называемые директивы (команды ассемблера, не переводимые в машинные команды процессора, а выполняемые самим ассемблером).

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

Каждая модель (или семейство) процессоров имеет свой набор -- систему -- команд и соответствующий ему язык ассемблера. Наиболее популярные синтаксисы языков ассемблера -- Intel-синтаксис и AT&T-синтаксис.

Существуют компьютеры, реализующие в качестве машинного язык программирования высокого уровня (Форт, Лисп, Эль-76). Фактически, в таких компьютерах они выполняют роль языков ассемблера.

1. Системный анализ

Целью курсового проекта является закрепление полученных знаний и профессиональных навыков разработки и отладки подпрограмм на языке Ассемблера. Курсовой проект выполняется в соответствии с этапами разработки программного обеспечения: анализ и постановка задачи для решения на ЭВМ, проектирование, кодирование, отладка и тестирование разработанной программы. Проектирование ведется в соответствии с методологией структурного программирования.

Требуется рассчитать выражение (1):

(1)

Необходимо разработать программы для её вычисления на языках Си, Ассемблер УМ и Ассемблер IBMPC. С клавиатуры вводятся 2 переменные и значения массива, после выполняется расчет 2 констант 2c и (a*a+1) данной функции и расчет z. Далее выполняется вывод результата на экран монитора. Программа состоит из 4-х функций: функция ввода переменных, две функция расчета констант, функция вывода результата.

2. Структурное программирование. Схема алгоритма. Программа на языке Си для int, float

Программа на языке программирования Си для int

#include"stdafx.h"

#include<iostream>

#include<conio.h>

usingnamespacestd;

constint N = 4;

voidraschet(int a, int c, int d[])

{int g, k, l, z;

int Y = 0;

g = 2 * c;

k = a*a + 1;

cout<<"g = "<<"2 * "<< c <<" = "<< g <<endl;

cout<<"k = "<< a*a <<" + 1"<<" = "<< k <<endl;

for (inti = 1; i<= N; i++)

{l = d[i] / 4;

cout<<i<<") "<<"l["<< d[i] <<"] = "<< d[i] <<" / 4 = "<< l <<endl;

z = (g - l) / k;

cout<<" z["<< d[i] <<"] = "<< z <<endl;

Y = Y + z;

cout<<endl;}

cout<<"Y = "<< Y <<endl;}

int main()

{setlocale(LC_ALL, "Russian");

int a, c, d[N];

cout<<"Введите a = ";

cin>> a;

cout<<"Введитес = ";

cin>> c;

cout<<"Введите элементы массива"<<endl;

for (inti = 1; i<= N; i++)

{cout<<"d["<<i<<"] = ";

cin>> d[i];}

raschet(a, c, d);

_getch();

return 0;}

Программа на языке программирования Си для float

#include"stdafx.h"

#include<iostream>

#include<conio.h>

usingnamespacestd;

constint N = 4;

voidraschet(floata, floatc, floatd[])

{float g, k, l, z;

float Y = 0;

g = 2 * c;

k = a*a + 1;

cout<<"g = "<<"2 * "<<c<<" = "<< g <<endl;

cout<<"k = "<<a*a<<" + 1"<<" = "<< k <<endl;

for (inti = 1; i<= N; i++)

{l = d[i] / 4;

cout<<i<<") "<<"l["<<d[i] <<"] = "<<d[i] <<" / 4 = "<< l <<endl;

z = (g - l) / k;

cout<<" z["<<d[i] <<"] = "<< z <<endl;

Y = Y + z;

cout<<endl;}

cout<<"Y = "<< Y <<endl;}

int main()

{setlocale(LC_ALL, "Russian");

float a, c, d[N];

cout<<"Введите a = ";

cin>> a;

cout<<"Введитес = ";

cin>> c;

cout<<"Введите элементы массива"<<endl;

for (inti = 1; i<= N; i++)

{cout<<"d["<<i<<"] = ";

cin>> d[i];}

raschet(a, c, d);

_getch();

return 0;}

Блок схема

Рис. 1

3. Программирование

3.1 Программа на Ассемблере УМ

Ex77 start 0

lda c

mul c2

sta p

ldx c0

lda c0

usl comp c12

jgt art

jeq art

jsubinc

rmox,a;i:=i+1

add c3

rmoa,x

jusl

art lda y

hlt

c word 20

e word 2

c0 word 0

c1 word 1

c3 word 3

c4 word 4

c12 word 12

c2 word 2

y word 0

d word 20

word 12

word 4

word -16

oresb 3

kresb 3

presb 3

inclda e

mul e

add c1

sta k

ldad,x

div c4

sta o

lda p

sub o

div k

add y

sta y

rsub

end Ex77

Блок схема

inc

Рис. 2

3.2 Подпрограмма ввода и вывода целых чисел на Ассемблере IBM

Подпрограмма ввода

Блок схема

Рис. 3

Подпрограмма на языке программирования Ассемблер IBMPC

InputIntproc

mov ah, 0ah

xor di, di

mov dx, offset buff; адресбуфера

int 21h; принимаем строку

movdl, 0ah

movah, 02

int 21h

; выводим перевод строки и обрабатываем

; содержимое буфера

movsi, offset buff+2; берем адрес начала строки

cmpbyteptr [si], "-"; если первый символ минус

jnz ii1

movdi, 1; устанавливаем флаг

incsi; и пропускаем его

ii1: xorax, ax

movbx, 10; основание сc

ii2: movcl, [si]; берем символ из буфера

cmpcl, 0dh; проверяем не последний ли он

jzendin

; если символ не последний, то проверяем его

; на правильность

cmpcl, '0'; если введен неверный символ <0

jler

cmpcl, '9'; если введен неверный символ >9

jaer

subcl, '0'; делаем из символа число

mulbx; умножаем на 10

addax, cx; прибавляем к остальным

incsi; указатель на следующий символ

jmp ii2; повторяем

er: movdx, offseterror; если была ошибка, то выводим сообщение об

; этом и выходим

mov ah,09

int 21h

int 20h; все символы из буфера обработаны число

; находится в ax

endin: cmp di,1; если установлен флаг, то

jnz ii3

negax; делаем число отрицательным

ii3: ret

errordb "incorrect number$"

buffdb 6,7 Dup(?)

InputIntendp

3.2 Подпрограмма на языке программирования Ассемблер IBMPC

Процедура вывода

OutIntprocnear;=====Процедура вывода

testax, ax; проверяем число на знак.

jns oi1

movcx, ax;eсли оно отрицательное, выведем минус и

; оставим его модуль

movah, 02h

mov dl, '-'

int 21h

movax, cx

negax

oi1: xorcx, cx; количество цифр будем держать в CX

movbx, 10; основание сс. 10 для десятеричной и т.п.

oi2: xordx, dx

divbx; делим число на основание сс, в остатке

; получается последняя цифра

pushdx; сразу выводить её нельзя, поэтому сохраним

; её в стэке

inccx

; а с частным повторяем то же самое, отделяя

; от него очередную

testax, ax; цифру справа, пока не останется ноль, что

;значит, что дальше

jnz oi2; слева только нули

;========Вывод=========

mov ah, 02h

oi3: pop dx

adddl, '0'; извлекаем очередную цифру, переводим её в

; символ и выводим

int 21h

loop oi3; повторим ровно столько раз, сколько цифр

; насчитали

ret

OutIntendp

Рис. 4

3.3 Программа на языке программирования Ассемблер IBMPC

.modelsmall

.stack 200h

.data

adb ?

cdb ?

ddb 4 dup (?,?,?,?)

edw ?

fdw ?

ydw ?

tdw 8

D16 db '0123456789ABCDEF'

BUF db 4 DUP (20h),13,10,'$'

str1 db 'Resultat',13,10,'$'

.code

OutIntproc

testax, ax; Проверяем число на знак.

jns oi1

; Если оно отрицательное, выведем

;минус и оставим его модуль.

mov cx, ax

mov ah, 02h

mov dl, '-'

int 21h

movax, cx

negax

; Количество цифр будем держать в CX

oi1:

xorcx, cx

movbx, 10; основание сс. 10 для десятеричной и т.п.

oi2:

xordx,dx

divbx

; Делим число на основание сс.

;В остатке получается последняя цифра.

; Сразу выводить её нельзя,

;поэтому сохраним её в стэке.

pushdx

inccx

; А с частным повторяем то же самое,

;отделяя от него очередную

; цифру справа, пока не останется ноль,

; что значит, что дальше слева только нули.

testax, ax

jnz oi2

; Теперь приступим к выводу.

movah, 02h

oi3:

popdx

; Извлекаем очередную цифру,

;переводим её в символ и выводим.

adddl, '0'

int 21h

; Повторим ровно столько раз,

;сколько цифр насчитали.

loop oi3

ret

OutIntendp

InputIntproc

mov ah,0ah

xordi,di

movdx,offset buff; аддресбуфера

int 21h; принимаем строку

mov dl,0ah

mov ah,02

int 21h; выводим перевода строки

; обрабатываем содержимое буфера

movsi,offset buff+2; берем аддрес начала строки

cmpbyteptr [si],"-"; если первый символ минус

jnz ii1

mov di,1; устанавливаем флаг

incsi; и пропускаем его

ii1:

xorax,ax

mov bx,10; основание сc

ii2:

movcl,[si]; берем символ из буфера

cmp cl,0dh; проверяем не последний ли он

jzendin

; если символ не последний, то

;проверяем его на правильность

cmp cl,'0'; если введен неверный символ <0

jler

cmp cl,'9'; если введен неверный символ >9

jaer

sub cl,'0'; делаем из символа число

mulbx; умножаем на 10

addax,cx; прибавляем к остальным

incsi; указатель на следующий символ

jmp ii2; повторяем

er:; если была ошибка, то выводим

;сообщение об этом и выходим

movdx, offseterror

mov ah,09

int 21h

int 20h

; все символы из буфера

;обработаны число находится в ax

endin:

cmp di,1; если установлен флаг, то

jnz ii3

negax; делаем число отрицательным

ii3:

ret

errordb "incorrect number$"

buffdb 6,7 Dup(?)

InputIntendp

PP1 proc near;---------------------e

mov Al,2

movBL,c

imul BL

cbw

move,AX

cwd

mov AX,0

mov BX,0

ret 6;???

PP1 endp

PP2 procnear;f

mov AX,0

movAL,a

imul AL

cbw

mov DX, 1

add AX, DX

cbw

mov f, AX

cwd

mov AX,0

mov DX,0

ret 6;???

PP2 endp

Begin:

mov ax, @Data

mov ds, ax

callInputInt; вводчислаа

mova,AL

callInputInt; вводчислас

movc,AL

mov SI,0

push SI

l1: call InputInt

pop SI

mov d[SI], AL

add SI,2

cmpSI,t

push SI

jne l1

call PP1;вызовп\п 1

call PP2;вызовп\п 2

mov SI,0

mov CX,4

xor AX,AX

movy,AX

for: mov DX,0

mov AH,0

mov CL,0

movAL,d[SI]

mov BL, AL

cbw

cmp AX,0

jg m2

mov CL,1

mov AL, BL

neg AL

cbw

m2: mov DL,4

idiv DL

cbw

cmp CL,0

je m3

neg AL

cbw

m3: mov BX, e

sub BX,AX

cbw

mov AX,BX

cwd

mov AX, BX

cwd

movBX,f

idiv BX ;AL=AL/f

cbw

mov BX,AX

cwd

mov AX, BX

cwd

movDX,y

add AX, DX

cbw

mov y, AX

add SI,2

cmpSI,t

jne for

mov CX,0

mov AX, y

mov DX, AX;DX:=AX

callOutInt

mov AX,4c00h

int 21h

END begin

Программа на языке программирования Ассемблер IBMPC

Рис. 5

Рис. 6

4. Тестирование и отладка

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

Си Int

(десятичная СС)

Си float

(десятичная СС)

Ассемблер УМ

(шестнадцатеричная СС)

Ассемблер IBMPC

(десятичная СС)

a = 2

c = 20

d[0] = 20

d[1] =12

d[2] = 4

d[3] = -16

29

31

1D

29

a =3

c =30

d[0] =51

d[1] =41

d[2] =24

d[3] =-21

20

21.625

14

20

a = 2

c = 20

d[0] = 20

d[1] = 14

d[2] = 4

d[3] = 16

28

29.3

1C

28

Переведем результат работы Ассемблера УМ в десятичную СС:

1D = 29

14 = 20

1C = 28.

Явно видим, что результат работы программ на Си (для int), Ассемблер УМ и Ассемблер IBMPC совпадают на 100%. Результат работы программ на Си (для float) немного отличается ввиду точности вычислений и отличается от округленного значения максимум на 2 единицы.

5. Инструкция пользователя

Язык программирования Си (для int)

окно с запросом: «Введите а:». Необходимо ввести нужное значение переменной «а», она может быть любым целым положительным или отрицательным числом. Нажимаем Enter.

Далее в этом диалоговом окне появляется запрос: «Введите с:». Необходимо ввести нужное значение переменной «с», она может быть любым целым положительным или отрицательным числом. Нажимаем Enter.

Следующим появится новый запрос: «Введите 4 значений для массива:». Вводим 4 любых значений, которые могут быть любыми целыми положительными или отрицательными значениями. После каждого введенного числа нажимаем Enter.

В конечном итоге в этом диалоговом окне у нас появится запись «y=…». Вместо многоточия будет стоять число-ответ, которое получилось в результате подстановки в выражение (1) введенные Вами значений «а», «с» и значений массива «d[0]», «d[1]», «d[2]», «d[3]». Ответ будет целым положительным или отрицательным числом.

Язык программирования Си (для float)

При запуске программы на языке программирования Си, появится диалоговое окно с запросом: «Введите а:». Необходимо ввести нужное значение переменной «а», она может быть любым целым или десятичным положительным или отрицательным числом. Нажимаем Enter.

Далее в этом диалоговом окне появляется запрос: «Введите с:». Необходимо ввести нужное значение переменной «с», она может быть любым целым положительным или отрицательным числом. Нажимаем Enter.

Следующим появится новый запрос: «Введите 4 значений для массива:». Вводим 4 любых значений, которые могут быть любыми целыми или десятичным положительными или отрицательными значениями. После каждого введенного числа нажимаем Enter.

В конечном итоге в этом диалоговом окне у нас появится запись «y=…». Вместо многоточия будет стоять число-ответ, которое получилось в результате подстановки в выражение (1) введенные Вами значений «а», «с» и значений массива «d[0]», «d[1]», «d[2]», «d[3]». Ответ будет целым или десятичным положительным или отрицательным числом.

Язык программирования Ассемблер УМ

Записываем код программы при помощи стандартного приложения «Блокнот» в формате *.txt. При описании данных мы сразу должны задать значения для переменных «а», «с» и сразу задать значения массива, которые имеют размер в 1 слово.

Открываем этот файл в программеTCom.exe при помощи вкладки «Asm», далее в отрывшемся окне выбираем вкладку «File» затем «Open» и находим нужный файл с кодом в формате *.txt. Код программы загрузится на вкладку «Sourcemodule». Нажимаем на вкладку «GoAsm», если в коде нет ошибок, то приложение выведет синюю запись «Noerrorsdetected!» Далеезагружаеммодульпрограммывпрограмме.

TCom.exe при помощи вкладки «Load» в основном окне.

Запускаем программу при помощи клавиши «Start» в основном окне.

Результат подстановки значений «а», «с» и массива «d» в выражение (1) будет находиться в Аккумуляторе, который располагается во втором поле программе TCom.exe(смотреть рис. 1). Значением Аккумулятора будет число в шестнадцатеричной СС.

Язык программирования Ассемблер IBMPC

Запускаем эмулятор DOSBox 0.74. С его помощью переходим на необходимый диск (используем команду «mountc», смотреть рис. 2 (файл находится на диске С в папке с название «1», название файла «сс»)) и отрываем папку, в которой расположен файл с кодом программы в формате *.asm, компоновщик tasm.exeи редактор связей tlink.exe (ОБЯЗАЕЛЬНОЕ УСЛОВИЕ: все 3 файла должны быть в 1(!) папке).

Рис. 7

Далее в эмуляторе DOSBox 0.74 вводим «tasm.exe<название файла>..asm». Таким образом мы даем команду скомпилировать код и показать ошибки, если они есть. Если их нет, то эмулятор выведет отсутствие сообщений об ошибке и предупреждений. В результате удачной компиляции будет создан файл формата *.obj.

Продолжаем вводить в окно эмулятора DOSBox0.74 команды. Вводим «tlink.exe<название файла>.obj». Этой командой мы создаем приложение, которое далее будет считать наше выражение. Если все прошло удачно, то DOSBox 0.74 выдаст об этом сообщение. В результате будет создан файл формата *.exe.

Рис. 8

программирование ассемблер язык тестирование

Последний этап трансляции. Вводим «<название файла>.exe». В окне DOSBox 0.74 появится приглашение ко вводу, вводим значения переменныхи массива, которые могут быть целыми положительными или отрицательными числам, в следующей последовательности: а, c, d[0], d[1], d[2], d[3]. Между каждым введенным значением жмем Enter.

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

6. Параметры программы

Язык программирования Си (int)

Объем папки со всеми файлами, созданными при компиляции = 14 Мб

Объем документа с кодом = 962 байт

Средняя продолжительность компиляции = 2.5 сек

Время расчета ответа = крайне мало, менее 1 сек

Язык программирования Си ( float)

Объем папки со всеми файлами, созданными при компиляции = 14 Мб

Объем документа с кодом =1003 байта

Средняя продолжительность компиляции = 1.52 сек

Время расчета ответа = крайне мало, менее 1 сек

Язык программирования Ассемблер УМ

Объем документа с кодом =664 байт

Среднее время компиляции и расчета ответа = 15 сек.

Язык программирования Ассемблер IBMPC

Объем папки со всеми файлами, необходимыми и созданными при компиляции = 203 142 байт

Объем документа *.asm = 6 594 байт

Объем документа *.obj = 707 байт

Объем документа *.exe =924 байт

Средняя продолжительность компиляции = крайне мало, менее 1 сек

Время расчета ответа = крайне мало, менее 1 сек

Заключение

В ходе выполнения проекта, мы работали с тремя языками программирования: Си, языком Ассемблера для Учебной Машины и языком Ассемблера IBMPC на базе архитектуры Intel 8086.

В ходе проекта были изучены некоторые аспекты языка Ассемблера и ЭВМ в целом. Для того, чтобы решить поставленную задачу, были продуманы алгоритмы ее решения на языках программирования Си, Ассемблер УМ и Ассемблер IBMPC, составлены блок-схемы этих решений и написаны программы на каждом из языков программирования. В результаты были получены рабочие программы, которые способны решить поставленную задачу, и примеры их работы.

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

Список использованной литературы

1. Галисеев Г. В. Ассемблер для Win 32. Самоучитель. -- М.: Диалектика, 2007. -- 368 с. -- ISBN 978-5-8459-1197-1.

2. Зубков С. В. Ассемблер для DOS, Windows и UNIX. -- М. ДМК Пресс; СПб. Питер, 2006. -- 608 с. -- ISBN 5-94074-259-9.

3. Кип Ирвин. Язык ассемблера для процессоров Intel = AssemblyLanguageforIntel-BasedComputers. -- М.: Вильямс, 2005. -- 912 с. -- ISBN 0-13-091013-9.

4. Калашников О. А. Ассемблер? Это просто! Учимся программировать. -- СПб.: БХВ-Петербург, 2007. -- 384 с. -- ISBN 978-5-94157-709.

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


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

  • Разработка прикладного программного обеспечения для решения задачи для персонального компьютера. Структура подпрограммы, механизмы передачи параметров и возврат результатов из подпрограммы. Вызов подпрограммы на выполнение. Отладка программы на языке С.

    курсовая работа [818,1 K], добавлен 03.01.2014

  • Ознакомление с возможностями языка Си как средой программирования высокого уровня. Циклы программирования параметрического оператора for и функции форматированного ввода. Разработка программы средствами Си: блок-схема, текст и тестирование программы.

    контрольная работа [204,4 K], добавлен 26.01.2013

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

    курсовая работа [75,0 K], добавлен 21.03.2013

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

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

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

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

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

    лабораторная работа [137,9 K], добавлен 13.06.2014

  • Символы, целые, числа с плавающей точкой в языке Си. Машинное представление значений типа char, double, float, беззнаковых чисел. Представление целых чисел в позиционных системах счисления с произвольным основанием. Алгоритм перевода b-ичной записи.

    презентация [296,3 K], добавлен 05.01.2014

  • Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.

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

  • Разработка программы обработки числовых последовательностей с кодом на языке Pascal. Функции ввода пользователем с клавиатуры последовательности целых чисел. Алгоритмы разработанных процедур и функций. Инструкция пользователя, листинг программы.

    курсовая работа [677,7 K], добавлен 13.07.2010

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

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

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