Реферат по предмету "Информатика, программирование"


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

Министерствообразования Российской Федерации
ЮЖНО-УРАЛЬСКИЙГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
КафедраАвтоматики и управления
Пояснительнаязаписка к курсовому проекту
Подисциплине:
Программированиеи основы алгоритмизации
Вариант № 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 и затем собственно выход изпрограммы.
В процедуре обработкесообщений, если нажата клавиша «Вычислить», то считывается значение из поляредактирования, преобразовывается в числовой формат, производятся нужныевычисления и выводится на экран

Текст программы
STYLBTN equ    40000000h + 10000000h
;WSCHILD+WS_VISIBLE
STYLEDT  equ    40000000h+ 10000000h + 800000h + 10000h
; Пример каркасногоприложения для Win32
.486
locals
.modelflat,STDCALL  
includewindowA.inc   
includelibimp32i.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                ; обнаружениесообщения
extrn DispatchMessageA:PROC              ; передача сообщения
                                                                          ; оконнойфункции
extrn ExitProcess:PROC                          ; завершение процедуры
extrn BeginPaint:PROC                           ; начало перерисовки
extrn EndPaint:PROC                    ; конец перерисовки
extrn TextOutA: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      ; дескриптор поля редактирования
hbtn  dd     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     ?       
b       dd     ?
n       dd     ?
wcl    WNDCLASSEX    ; структура длярегистрации класса
                                                       ;окна
message      MSG   ; структура для регистрации сообщений
szClassName       db     'Приложение Win32',0
szTitleName         db     'Курсач Лысенко Д. ПС-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,typeWNDCLASSEX    
         mov  wcl.style,CS_HREDRAW+CS_VREDRAW; полная перерисовка
         mov  wcl.lpfnWndProc,offsetWindowProc
         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      
         push           IDC_ARROW    ; стандартныйкурсор стрелка 32512
         push           0
         call             LoadCursorA
         mov  wcl.hCursor,eax 
; определим цвет фона окна
         push           LTGRAY_BRUSH                ;1
         call             GetStockObject
         moveax,5
         mov  wcl.hbrBackground,eax
        
mov  dword ptrwcl.lpszMenuName,0    ; без главного меню
         mov  dwordptr wcl.lpszClassName,offset szClassName    
; имя классаокна
         mov  wcl.hIconSm,0
; регистрируем класс окна
         push           offset wcl
         call             RegisterClassExA
        
; создаем окно:
         push           0       ;lpParam
         push           hInst ;hInstance
         push           0       ;menu
         push           0       ;parenthwnd
         push           200  ; высота окна
         push           300  ; ширина окна
         push           300  ; координата y л.в. угла окна
         push           300  ; координата x л.в. угла
         push           WS_OVERLAPPEDWINDOW      ; стильокна
         push           offset szTitleName       ; Строка заголовка окна
         push           offset szClassName      ; имя класса окна
         push           0                                   ; дополнительныестили
         call             CreateWindowExA
         mov            hwnd,eax                      ;hwnd — дескриптор окна
; показатьокно:
         push           SW_SHOWNORMAL  ;1
         push           hwnd
         call             ShowWindow
; перерисовываемсодержимое окна
         push           hwnd
         call             UpdateWindow
; запускаемцикл сообщений:
cycl_msg:
         push           0
         push           0
         push           NULL
         push           offsetmessage
         call             GetMessageA
         cmp            ax,0
         je                end_cycl_msg
; трансляция ввода склавиатуры
 push          offset message
         call             TranslateMessage
; передачасообщения оконной функции
         push           offsetmessage
         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
uses ebx,edi, esi  ; регистры должны сохраняться
local  @@hdc:DWORD
         cmp   @@mes,WM_DESTROY
         je       wmdestroy
         cmp   @@mes,WM_CREATE
         je       wmcreate
         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  offsetCPEDT
         push  offsetCLSEDT
         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  offsetCPEDT
         push  offsetCLSEDT
         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  offsetCPEDT
         push  offsetCLSEDT
         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  offsetCPBUT
         push  offsetCLSBTN
         push  0
         call    CreateWindowExA
         mov  hbtn,eax
         mov  eax,0
         push  0
         push  hInst
         push  0
         push  @@hwnd
         push  20
         push  80
         push  80
         push100
         push  STYLBTN           ;STYLBTN
         push  offsetCPBUT2
         push  offsetCLSBTN
         push  0
         call    CreateWindowExA
         mov  hbtn2,eax
         mov  eax,0
                           ; возвращаемоезначение 0
         jmp   exit_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           offsetMesWindow
         push           20
         push           10
         push           @@hdc
         call             TextOutA
; освободить контекст
 push          offset ps
 push          @@hdc
 call            EndPaint
 mov eax,0; возвращаемое значение 0
 jmp  exit_wndproc
wmdestroy:; послать сообщение WM_QUIT
         push           0
         call             PostQuitMessage
         mov  eax,0; возвращаемое значение 0
         jmp   exit_wndproc
default:
; обработка по умолчанию
         push           @@lparam
         push           @@wparam
         push           @@mes
         push           @@hwnd
         call             DefWindowProcA
         jmp             exit_wndproc
calc:
; считываемполе 1
         push  offsetTEXTA
         push  150
         push  WM_GETTEXT
         push  hh1
         call    SendMessageA
         push  offsetTEXTA
         call    StringToDig
         mov  a,eax
        
        ; поле2
         push  offsetTEXTA
         push  150
         push  WM_GETTEXT
         push  hh2
         call    SendMessageA
         push  offsetTEXTA
         call    StringToDig
         mov  b,eax
; поле 3
        push   offsetTEXTA
         push  150
         push  WM_GETTEXT
         push  hh3
         call    SendMessageA
         push  offsetTEXTA
         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           offsetTEXTB
         push           120
         push           10
         push           @@hdc
         call             TextOutA
exit_wndproc:
        
         ret
WindowProc        endp
StringToDigproc near
ARG@@TEXT:DWORD
         mov  esi,@@TEXT
         mov  eax,0
         mov  edx,0
         mov  dl,[esi]
         cmp  dl,'-'
         jne N
         movtemp,1        
         incesi
         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
StringToDigendp
end    start
2.        Схемаалгоритма
/>
/>

/>/>Вывод результатаработы
/>/>
/>/>3.        Проверкаправильности программы
1) />
2) />
3) />
4) />
Данные, полученные врезультате вычислений, совпадают с теми, что были получены в результатевыполнения программы.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат А. Назва й адреса
Реферат «Катюша», «И кто его знает», «В прифронтовом лесу», «Огонёк», «Ой, туманы мои », «Враги сожгли родную хату», «Снова замерло всё до рассвета»
Реферат А. Г. Малаханова система управления качеством подготовки
Реферат Флексография
Реферат Компонентность общей анестезии
Реферат Теория химического строения органических соединений. Электронная природа химических связей. Предпосылки теории строения. Теория химического строения. Изомерия
Реферат О творческом «непослушании»
Реферат Учёт и хранение документов в архивах
Реферат Условный театр
Реферат Алгоритм муравья
Реферат The Book Of Joshua Essay Research Paper
Реферат Критические состояния в практике врача
Реферат Усадебная культура Симбирска
Реферат "На день восшествия на всероссийский престол ее величества государыни императрицы Елисаветы Петровны 1747 года"
Реферат Особенности регионального развития и размещения строительного комплекса Российской Федерации