Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Лабораторная работа: Программирование и основы алгоритмизации 2

Название: Программирование и основы алгоритмизации 2
Раздел: Рефераты по информатике
Тип: лабораторная работа Добавлен 04:30:48 13 ноября 2010 Похожие работы
Просмотров: 46 Комментариев: 22 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно     Скачать

Министерство образования Российской Федерации

ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра Автоматики и управления

Пояснительная записка к курсовому проекту

По дисциплине:

Программирование и основы алгоритмизации

Вариант № 1

Проверил:

доцент кафедры

Вставская Е.В.

“____”_____________2007г

Выполнил:

студент группы ПС-164

Лысенко Д.Г.

“____”_____________2007г

Челябинск

2007 г.


Содержание:

1. Постановка задачи. 3

2. Метод решения. 3

3. Текст программы.. 4

4. Схема алгоритма. 12

5. Вывод результата работы.. 14

6. Проверка правильности программы............................................ 14


Постановка задачи

Даны целые числа a , b и n . Вычислить.

1. Метод решения

Подключаем файл windowA.inc, в котором будут содержаться базовые структуры и константы Win32. Затем в процедуре start первоначально вызываем функции Win32 API, после чего происходит регистрация окна (определения класса окна и регистрация его в системе). Затем создаем и отображаем, собственно, само окно. Потом запускается цикл обработки сообщения, которые будут посылаться ОС программе и обрабатываться в отдельной процедуре WindowProc и затем собственно выход из программы.

В процедуре обработке сообщений, если нажата клавиша «Вычислить», то считывается значение из поля редактирования, преобразовывается в числовой формат, производятся нужные вычисления и выводится на экран


Текст программы

STYLBTNequ 40000000h + 10000000h

;WSCHILD+WS_VISIBLE

STYLEDT equ 40000000h + 10000000h + 800000h + 10000h

;Пример каркасного приложения для Win32

.486

locals

.model flat,STDCALL

include windowA.inc

includelib imp32i.lib

extrn GetModuleHandleA:PROC ;дескриптор класса окна

extrn LoadIconA:PROC ;дескриптор пиктограммы

extrn LoadCursorA:PROC ;дескриптор курсора

extrn GetStockObject:PROC ;дескриптор кисти

extrn RegisterClassExA:PROC ;регистрация класса окна

extrn CreateWindowExA:PROC ;создание экземпляра окна

extrn ShowWindow:PROC ;отображение окна

extrn UpdateWindow:PROC ;перерисовка окна

extrn GetMessageA:PROC ;получение сообщения

extrn TranslateMessage:PROC ;обнаружение сообщения

extrnDispatchMessageA:PROC ;передача сообщения

;оконной функции

extrnExitProcess:PROC ;завершение процедуры

extrnBeginPaint:PROC ;начало перерисовки

extrnEndPaint:PROC ;конец перерисовки

extrnTextOutA:PROC ;вывод текста

extrn PostQuitMessage:PROC

extrn DefWindowProcA:PROC ;обработчик по умолчанию

extrn MessageBoxA:PROC

extrn SendMessageA:PROC

extrn GetDC:PROC

extrn ReleaseDC:PROC

;оконной функции

public WindowProc

.data

hwnd dd 0 ; дескриптор экземпляра окна

hInst dd 0 ; дескриптор класса окна

hdc dd 0

;

hedt1 dd 0 ;дескриптор поля редактирования

hbtndd 0 ;дескриптор кнопки

hh1 dd 0

hh2 dd 0

hh3 dd 0

hh4 dd 0

hbtn1 dd 0

hbtn2 dd 0

CPBUT db '&Посчитать',0

CPBUT2 db 'В&ыход',0

CLSBTN db 'BUTTON',0

CPEDT db '',0

CLSEDT db 'EDIT',0

TEXT db ' '

TEXTA db ' '

TEXTB db 'результат: '

TEXTLEN = $-TEXT

ten dw 10

temp dw 0

a dd ?

bdd ?

ndd ?

wclWNDCLASSEX <?> ;структура для регистрации класса

; окна

messageMSG <?> ;структура для регистрации сообщений

szClassNamedb 'Приложение Win32',0

szTitleNamedb 'Курсач Лысенко Д. ПС-164',0

MesWindow db 'Введите a,b и n,'

MesWindowLen = $-MesWindow

ps PAINTSTRUCT <?>

.code

start proc near

;Получение дескриптора класса окна

push 0;

call GetModuleHandleA

mov hInst,eax

WinMain:

;для начала инициализируем поля структуры WndClassEx

mov wcl.cbSize,type WNDCLASSEX

mov wcl.style, CS_HREDRAW+CS_VREDRAW ;полная перерисовка

mov wcl.lpfnWndProc,offset WindowProc

mov wcl.cbClsExtra,0

mov wcl.cbWndExtra,0

mov eax,hInst

mov wcl.hInstance,eax

push IDI_APPLICATION ;стандартное приложение 32512

push 0

call LoadIconA

mov wcl.hIcon,eax

pushIDC_ARROW ;стандартный курсор стрелка 32512

push 0

call LoadCursorA

mov wcl.hCursor,eax

;определим цвет фона окна

pushLTGRAY_BRUSH ;1

call GetStockObject

mov eax,5

mov wcl.hbrBackground,eax

mov dword ptr wcl.lpszMenuName,0 ;без главного меню

mov dword ptr wcl.lpszClassName,offset szClassName

;имя класса окна

mov wcl.hIconSm,0

;регистрируем класс окна

pushoffsetwcl

call RegisterClassExA

;создаем окно:

push 0 ;lpParam

push hInst ;hInstance

push 0 ;menu

push 0 ;parent hwnd

push 200 ;высота окна

push 300 ;ширина окна

push 300 ;координата y л.в. угла окна

push 300 ;координата x л.в. угла

pushWS_OVERLAPPEDWINDOW ;стиль окна

pushoffsetszTitleName ;Строка заголовка окна

pushoffsetszClassName ;имя класса окна

push 0 ;дополнительные стили

callCreateWindowExA

movhwnd,eax ;hwnd - дескриптор окна

;показать окно:

push SW_SHOWNORMAL ;1

push hwnd

call ShowWindow

;перерисовываем содержимое окна

push hwnd

call UpdateWindow

;запускаем цикл сообщений:

cycl_msg:

push 0

push 0

push NULL

push offset message

call GetMessageA

cmp ax,0

jeend_cycl_msg

;трансляция ввода с клавиатуры

push offset message

call TranslateMessage

;передача сообщения оконной функции

push offset message

call DispatchMessageA

jmp cycl_msg

end_cycl_msg:

;выход из приложения

push NULL

call ExitProcess

start endp

;Оконная функция WindowProc для обработки сообщений

WindowProc proc

arg @@hwnd:DWORD, @@mes:DWORD, @@wparam:DWORD, @@lparam:DWORD

usesebx,edi, esi ; регистры должны сохраняться

local @@hdc:DWORD

cmp @@mes,WM_DESTROY

jewmdestroy

cmp @@mes,WM_CREATE

jewmcreate

cmp @@mes,WM_PAINT

je wmpaint

cmp @@mes, WM_COMMAND

je wmcommand

jmp default

wmcreate: ;создание окна

mov eax,0

;;;;поле1

push 0

push hInst

push 0

push @@hwnd

push 20

push 35

push 50

push 10

push STYLEDT

push offset CPEDT

push offset CLSEDT

push 0

call CreateWindowExA

mov hh1,eax

mov eax,0

;;; поле2

push 0

push hInst

push 0

push @@hwnd

push 20

push 35

push 50

push 50

push STYLEDT

push offset CPEDT

push offset CLSEDT

push 0

call CreateWindowExA

mov hh2,eax

mov eax,0

;;;;;;3

push 0

push hInst

push 0

push @@hwnd

push 20

push 35

push 50

push 90

push STYLEDT

push offset CPEDT

push offset CLSEDT

push 0

call CreateWindowExA

mov hh3,eax

mov eax,0

;;;;;

push 0

push hInst

push 0

push @@hwnd

push 20

push 80

push 80

push 10

push STYLBTN ;STYLBTN

push offset CPBUT

push offset CLSBTN

push 0

call CreateWindowExA

mov hbtn,eax

mov eax,0

push 0

push hInst

push 0

push @@hwnd

push 20

push 80

push 80

push 100

push STYLBTN ;STYLBTN

push offset CPBUT2

push offset CLSBTN

push 0

call CreateWindowExA

mov hbtn2,eax

moveax,0

;возвращаемое значение 0

jmpexit_wndproc

wmcommand:

mov eax, hbtn

cmp @@lparam,eax

je calc

mov eax, hbtn2

cmp @@lparam,eax

je res

wmnodestroy:

mov eax,0

jmp exit_wndproc

res:

jmp wmdestroy

wmpaint:

push offset ps

push @@hwnd

call BeginPaint

mov @@hdc,eax

push MesWindowLen

push offset MesWindow

push 20

push 10

push @@hdc

callTextOutA

;освободить контекст

push offset ps

push @@hdc

call EndPaint

moveax,0 ;возвращаемое значение 0

jmpexit_wndproc

wmdestroy: ;послать сообщение WM_QUIT

push 0

callPostQuitMessage

moveax,0 ;возвращаемое значение 0

jmpexit_wndproc

default:

;обработка по умолчанию

push @@lparam

push @@wparam

push @@mes

push @@hwnd

call DefWindowProcA

jmp exit_wndproc

calc:

;считываем поле 1

push offset TEXTA

push 150

push WM_GETTEXT

push hh1

call SendMessageA

push offset TEXTA

call StringToDig

mov a,eax

;поле 2

push offset TEXTA

push 150

push WM_GETTEXT

push hh2

call SendMessageA

push offset TEXTA

call StringToDig

mov b,eax

;поле 3

push offset TEXTA

push 150

push WM_GETTEXT

push hh3

call SendMessageA

push offset TEXTA

call StringToDig

mov n,eax

mov ecx,n

mov eax,1d

repeat:

imul a

loop repeat

imul b

aam

or ax,3030h

mov [TEXTB+12],ah

mov [TEXTB+13],al

push @@hwnd

call GetDC

mov @@hdc,eax

push 18

push offset TEXTB

push 120

push 10

push @@hdc

call TextOutA

exit_wndproc:

ret

WindowProc endp

StringToDig proc near

ARG @@TEXT:DWORD

mov esi,@@TEXT

mov eax,0

mov edx,0

mov dl,[esi]

cmp dl,'-'

jne N

mov temp,1

inc esi

mov dl,[esi]

N: cmp dl,'0'

jl MRET

cmp dl,'9'

jg MRET

and dl,0Fh ; ASCII->BCD

add eax,edx

mul ten

inc esi

mov dl,[esi]

cmp dl,'0'

jl MDIV

cmp dl,'9'

jg MDIV

; mul ten

and dl,0Fh

add eax,edx

jmp MRET

MDIV: div ten

MRET:

cmp temp,1

jne n1

imul eax,-1

mov temp,0

n1: ret

StringToDig endp

end start


2. Схема алгоритма


Вывод результата работы

3. Проверка правильности программы

1)

2)

3)

4)

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

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита16:06:59 04 ноября 2021
.
.16:06:57 04 ноября 2021
.
.16:06:56 04 ноября 2021
.
.16:06:54 04 ноября 2021
.
.16:06:53 04 ноября 2021

Смотреть все комментарии (22)
Работы, похожие на Лабораторная работа: Программирование и основы алгоритмизации 2

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(294402)
Комментарии (4230)
Copyright © 2005 - 2024 BestReferat.ru / реклама на сайте