|
amaliy mashg’ulot : Oyna bilan bog’liq hodisalar
|
bet | 87/135 | Sana | 22.05.2024 | Hajmi | 15,08 Mb. | | #250347 |
Bog'liq Fizik jarayonlarni kompyuterda modellashtirish8 amaliy mashg’ulot : Oyna bilan bog’liq hodisalar.
Amaliy mashg’ulotning texnik ta’minoti: video proyektor, kompyuter Pentium 4, Visal Studio Express muhiti.
Amaliy mashg’ulotning maqsadi: Microsoft Visual Studio Express muhitida oynalar bilan bog’liq hodisalar.
Amaliy mashg’ulotning nazariy bayoni: nazariy qismini konspekt qiling.
Takrorlash operatorlarining bajarilishida shunday holatlar yuzaga kelishi mumkinki, unda qaysidir qadamda, takrorlashni yakuniga yetkazmasdan takrorlashdan chiqish zarurati bo‘lishi mumkin. Boshqacha aytganda takrorlashni «uzish» kerak bo‘lishi mumkin. Bunda break operatoridan foydalaniladi. Break operatorini takrorlash operatori tanasining ixtiyoriy (zarur) joylariga qo‘yish orqali shu joylardan takrorlashdan chiqishni amalga oshirish mumkin.
int I;
int Summa=0;
for (int i=10; i<=12; i++)
{
Summa+=i;break;
}
cout<
Ekranda qanday natija chiqadi?
|
|
Amaliy topshiriqlar:
1.Mana bu dasturni o’rganing,har bir qatorida niam bajarilishini talqin qiling.:
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
);
2. Windows- dasturi uchun zarur sarlavha faylni yo’qamiz
#include
// oyna funktsiyasini e’lon qilish (oyna protsedurasinin)
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
HINSTANCE hInst; // ilova identifikatori
// belgilarning o’zgarmas satriga ko’rsatkich – oynan dasturi va klassining nomi
LPCSTR AppName = "MyProgramm";
// dasturga kirish nuqtasi - WinMain funktsiya
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd; // (handle)oynasining unikal identifikatori
MSG msg; // ma’lumotlar bilan ishlash uchun MSG turidagi strukturani e’lon qilish
hInst = hInstance; // ilova indifikatorinin saqlaymiz
// WNDCLASS strukturani to’ldirmaiz
WNDCLASS wc;
// Struktura uchun ajratilgan hotirani initsalizatsiya qilamiz
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(hInst, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName = AppName;
RegisterClass(&wc); // oyna sinfini yaratmiz va registratsiya qilamiz
// Dasturning oynasini tuzamiz
hWnd = CreateWindow(
AppName, // Oyna klassi nomi
AppName, // Oyna nomi
WS_OVERLAPPEDWINDOW, // Oyna stillari
CW_USEDEFAULT, 0, // oynaning gorizontal va vertical pozitsiyasi
300, 300, // oynaning kengligi va balandligi
NULL, //Ona oynasining hendli
NULL, // Hendl menyu
hInst, // Ilova identifikatori
NULL); // oynaning qushimcha berilganlari
ShowWindow(hWnd, SW_SHOW); // Отображаем окно
UpdateWindow(hWnd); // Перерисовываем окно
// Ma’lumotlarni ishlab chiqishni standart tsikli
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
// Oyna protsedurasi
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
|
| |