DIRECTX 10 ve SHADER PROGRAMLAMA

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "DIRECTX 10 ve SHADER PROGRAMLAMA"

Transkript

1 KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laboratuarı DIRECTX 10 ve SHADER PROGRAMLAMA 1. Giriş Bilgisayar donanımının en önemli parçalarından biri olan ekran kartı ile ilgili teknolojik gelişmeler beraberinde bu donanımı programlayacak yazılımlarda da büyük yenilikler getirmiştir. Bu yazılımlardan biri olan DirectX, günümüzde ekran kartlarının programlanmasında yaygın olarak kullanılan bir API dır. DirectX 10 'un DirectX 9 'dan en büyük farkı ekran kartını programlamada bütün kontrolün programcıya devredilmesidir. Bu yüzden en basit bir DirectX 10 uygulaması için bile ekran kartının vertex işlemcisini programlamak için vertex shader, pixel işlemcisini programlamak için de pixel shader adı verilen programların yazıldığı HLSL (High Level Shading Language) diline ihtiyaç vardır. Dolayısıyla bu deneyde HLSL vertex/pixel shader programlarının yüklenip koşulduğu DirectX 10 uygulamaları yapılacaktır. 2. Visual C için DirectX 10 Setlemeleri Bu bölümde Visual C için gerekli DirectX 10 setlemeleri yapılıp uygulama penceresini mavi renge boyayacak DirectX 10 programı yazılacaktır. DirectX uygulamaları geliştirmek için şu an en güncel SDK olan June 2010 DirectX SDK (http://msdn.microsoft.com/directx) kurulur. C:\Program Files\Microsoft DirectX SDK (June 2010) altındaki include ve lib\x86 klasörlerindeki dosyalar C:\Program Files\Microsoft Visual Studio 9.0\VC altındaki include ve lib klasörlerine kopyalanır. Visual C++ ta Win 32 Application türünden bir Empty Project açılır. Menüden Project-Properties penceresinde Linker-Input-Additional Dependencies kısmına d3d10.lib ve d3dx10d.lib yazılır. Projeye eklenen boş.cpp uzantılı dosyaya <d3d10.h>, <d3dx10.h> dosyaları include edilir ve ekranda boş bir pencere oluşturmak için gerekli kodlar yazılır. Bu C++ programına DirectX komutları yazılacağından deney boyunca DirectX Programı olarak bahsedilecektir. Aşağıdaki WinMain(...) fonksiyonundaki InitWindow(...) çağrısı ile pencere; InitDevice() çağrısı ile de DirectX 10 ile ilgili setlemeler yapılır. Mesaj döngüsündeki Render() çağrısı ile pencere DirectX komutlarıyla mavi renge boyanır: int WINAPI wwinmain( HINSTANCE hinstance, HINSTANCE hprevinstance, LPWSTR lpcmdline, int ncmdshow ) InitWindow( hinstance, ncmdshow ); InitDevice(); MSG msg = 0; while( WM_QUIT!= msg.message ) if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) TranslateMessage( &msg ); DispatchMessage( &msg ); else Render(); return ( int )msg.wparam;

2 Şekil.1: DirectX 10 için lib ve header setlemeleri DirectX te ekranda çizilmek istenen 3D şekil aslında ekran kartının belleğinde tutulur. Bu belleğe Video RAM (VRAM) denir. VRAM içeriğinin değiştirilmesi ve ekranda görüntülenmesi işlemleri birbirine karışmaması için double buffering yöntemi kullanılır. Bu yönteme göre front ve back olmak üzere iki adet buffer kullanılır. Front buffer ekranda o anda görüntülenecek veriyi tutarken back buffer da bir sonraki görüntüye ait veriyi tutar. Ona sıra geldiğinde back buffer bu sefer front buffer olup onda tutulan veri ekranda görüntülenirken front buffer da back buffer olarak bir sonra ekranda görüntülenecek veriyi hazırlar. Böylece görüntüler arası geçişlerde karışıklık (flicker) olmaz. Programda bu bufferlara ait bilgiler InitDevice() fonksiyonundaki DXGI_SWAP_CHAIN_DESC adlı structure ile setlenir: DXGI_SWAP_CHAIN_DESC sd; ZeroMemory( &sd, sizeof( sd ) ); sd.buffercount = 1; sd.bufferdesc.width = width; sd.bufferdesc.height = height; sd.bufferdesc.format = DXGI_FORMAT_R8G8B8A8_UNORM; sd.bufferdesc.refreshrate.numerator = 60; sd.bufferdesc.refreshrate.denominator = 1; sd.bufferusage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.outputwindow = g_hwnd; sd.sampledesc.count = 1; sd.sampledesc.quality = 0; sd.windowed = TRUE; for( UINT drivertypeindex = 0; drivertypeindex < numdrivertypes; drivertypeindex++ ) g_drivertype = drivertypes[drivertypeindex]; D3D10CreateDeviceAndSwapChain( NULL, g_drivertype, NULL, createdeviceflags, D3D10_SDK_VERSION, &sd, &g_pswapchain, &g_pd3ddevice ); Burada sd.bufferusage = DXGI_USAGE_RENDER_TARGET_OUTPUT; ile ekranda görüntülenecek verinin back buffera yazıldığı söylenir. Son olarak D3D10CreateDeviceAndSwapChain(...) ile Device ve SwapChain oluşturulur. DirectX komutlarının çağrılmasında Device değişkeni kullanılır. Buradaki Device değişkeninin ismi g_pd3ddevice dır. 2

3 Ekranda görüntülenmek istenen veriyi back buffera yazmak için aşağıdaki şekilde CreateRenderTargetView oluşturulmalıdır: ID3D10Texture2D* pbackbuffer; g_pswapchain->getbuffer( 0, uuidof( ID3D10Texture2D ),(LPVOID*)&pBackBuffer ); g_pd3ddevice->createrendertargetview( pbackbuffer, NULL, &g_prendertargetview ); pbackbuffer->release(); g_pd3ddevice->omsetrendertargets( 1, &g_prendertargetview, NULL ); Son olarak çizim yapılacak pencere ile ilgili setlemeler yapılır : D3D10_VIEWPORT vp; vp.width = width; vp.height = height; vp.mindepth = 0.0f; vp.maxdepth = 1.0f; vp.topleftx = 0; vp.toplefty = 0; g_pd3ddevice->rssetviewports( 1, &vp ); Setlemeler tamamlandığından Render() fonksiyonu ile çizim yapılabilir: void Render() float ClearColor[4] = 0.0f, 0.0f, 1.0f, 1.0f ; //red, green, blue, alpha g_pd3ddevice->clearrendertargetview( g_prendertargetview, ClearColor ); g_pswapchain->present( 0, 0 ); Burada ClearColor değişkeni mavi renk için gerekli (R,G,B,A) değerlerini tutar. Ekranın tamamını mavi renge boyamak için g_pd3ddevice->clearrendertargetview(...) komutu kullanılır. Back buffer içeriğini ekranda görebilmek için de g_pswapchain->present(...) komutu gerekir. Şekil.2: DirectX 10 Mavi Pencere Uygulaması 3

4 3. DirectX 10 ile Üçgen Çizimi Bu bölümde ekrana kırmızı renge sahip bir üçgen çizdirilecektir. Çizdirilmek istenen üçgenin köşe noktalarının (vertex ler) koordinatları D3DXVECTOR3 türünden tanımlanır. Yalnız çoğu zaman köşe noktaları için koordinatlardan başka renk, doku koordinatları, normal gibi başka özelliklere ihtiyaç duyulur. Üçgenin köşe noktalarının bunlardan hangilerini kullandığını belirtmek için aşağıdaki gibi bir structure tanımlaması yapılmalıdır: struct SimpleVertex D3DXVECTOR3 Pos; ; İlerleyen örneklerde SimpleVertex yapısına D3DXVECTOR4 Color, D3DXVECTOR3 Normal ile renk ve yüzey normali gibi farklı özellikler eklenecektir. Üçgenin köşe noktalarını tutmak üzere vertex buffer üretilmelidir. Bunun için D3D10_BUFFER_DESC ve D3D10_SUBRESOURCE_DATA setlemelerinin ardıdan CreateBuffer(...) ile vertex buffer oluşturulur: SimpleVertex vertices[] = D3DXVECTOR3( 0.0f, 1.0f, 1.0f ), D3DXVECTOR3( 1.0f, -1.0f, 1.0f ), D3DXVECTOR3( -1.0f, -1.0f, 1.0f ) ; D3D10_BUFFER_DESC bd; bd.usage = D3D10_USAGE_DEFAULT; bd.bytewidth = sizeof( SimpleVertex ) * 3; bd.bindflags = D3D10_BIND_VERTEX_BUFFER; bd.cpuaccessflags = 0; bd.miscflags = 0; D3D10_SUBRESOURCE_DATA InitData; InitData.pSysMem = vertices; g_pd3ddevice->createbuffer( &bd, &InitData, &g_pvertexbuffer ); Üçgen çizmede bu noktaya kadar yapılan setlemeler InitDevice() fonksiyonuna yazıldı. Şimdi çizim aşamasına gelindi. Çizim işlemini yapan Render() fonksiyonunun yeni hali aşağıdaki gibidir: void Render() float ClearColor[4] = 0.0f, 0.0f, 1.0f, 1.0f ; // red,green,blue,alpha g_pd3ddevice->clearrendertargetview( g_prendertargetview, ClearColor ); D3D10_TECHNIQUE_DESC techdesc; g_ptechnique->getdesc( &techdesc ); for( UINT p = 0; p < techdesc.passes; ++p ) g_ptechnique->getpassbyindex( p )->Apply( 0 ); g_pd3ddevice->draw( 3, 0 ); g_pswapchain->present( 0, 0 ); Üçgenin 3 köşe noktası g_pd3ddevice->draw(3,0) komutu ile çizdirilmektedir. Bu komutun dışındaki satırların anlaşılabilmesi için 1.Giriş bölümünde bahsedildiği gibi ekran kartının Vertex ve Pixel işlemcisini programlama imkanı sağlayan HLSL dilinden bahsedilmesinde fayda vardır: 4

5 1. Vertex İşlemci : Bu işlemci adından da anlaşılacağı gibi köşe noktalarını işler. Onların 3D dünya (world) koordinatlarından 2D ekran koordinatlarına dönüşümü, backface culling (arka yüz kaldırma), clipping (kırpma), Z-buffering (Z derinlik tamponu ile görünmeyen yüzeyleri kaldırma) ve doku koordinatı hesabı yapar. 2. Pixel İşlemci : Bu işlemci, vertex shaderdan aldığı ekran koordinatlarındaki 2D poligonların içini hesaplanan renge boyar. Bu işlemcileri programlamak için geliştirilmiş dillere Shading Dilleri denir. Bu dillerde vertex işlemciyi programlamak için yazılan kodlara Vertex Shader; pixel işlemciyi programlamak için yazılan kodlara da Pixel Shader denir. Vertex shader koordinat; pixel shader renk döndürür. DirectX 10 un shading dili HLSL (High Level Shading Language) dir ve HLSL programı olmaksızın DirectX 10 programı yazılamaz. Yukarıdaki g_pd3ddevice->draw(3,0) komutu koştuğunda gerçekte çizim işlemini yapan Triangle.fx adlı HLSL programı şöyledir: matrix World; matrix View; matrix Projection; struct VS_OUTPUT float4 Pos ; : SV_POSITION; VS_OUTPUT VS( float4 Pos : POSITION ) VS_OUTPUT output = (VS_OUTPUT)0; output.pos = mul( Pos, World ); output.pos = mul( output.pos, View ); output.pos = mul( output.pos, Projection ); return output; float4 PS() : SV_Target return float4(1,0,0,1); // red,green,blue,alpha technique10 Render pass P0 SetVertexShader( CompileShader( vs_4_0, VS() ) ); SetPixelShader( CompileShader( ps_4_0, PS() ) ); Yukarıdaki HLSL programının anlatımından önce HLSL programlarının DirectX programı içinden çağrılmasından bahsetmekte fayda vardır: D3DX10CreateEffectFromFile( "Triangle.fx", NULL, NULL, "fx_4_0", dwshaderflags, 0, g_pd3ddevice, NULL, NULL, &g_peffect, NULL, NULL ); HLSL programları D3DX10CreateEffectFromFile(...) komutu ile çağrılır. Burada Triangle.fx,HLSL programının ismidir. g_pd3ddevice bilindiği gibi DirectX device değişkenidir. g_peffect ise HLSL effect değişkenidir. DirectX programı içinde HLSL programı ile ilgili komutlar g_peffect değişkeni ile çağrılır. HLSL dilinde yapılmış programlar "effect" olarak adlandırılır ve ".fx" uzantılı kaydedilirler. 5

6 "fx_4_0" HLSL programının shading model 4.0, başka bir değişle DirectX 10 desteği ile derleneceğini söyler. DirectX 9 shading model 3.0'ı destekler. Örneğin nvidia firmasının ekran kartlarından GeForce 7 serisi 3.0, Geforce 8 ve 9 serisi 4.0 ı destekler. O yüzden DirectX 10 programlarını koşması için ekran kartının en azından (nvidia için) Geforce 8 veya yukarısı olması gerekir. İşletim sistemi de Vista veya Windows 7 olmalıdır. DirectX 11 yazılım olarak 1 yılı aşkın bir süredir vardır. Donanım olarak ise nvidia Geforce GTX 400, ATI Radeon 5450 ve yukarısı ekran kartları DirectX 11 i desteklemektedir. Yukarıdaki programın vertex shaderı VS(...), pixel shaderı PS(), main fonksiyonu da Render() dır. Bu fonksiyon, InitDevice() içinde g_ptechnique = g_peffect->gettechniquebyname("render") ile tanıtılmıştır. DirectX programının Render() fonksiyonundaki D3D10_TECHNIQUE_DESC techdesc ve g_ptechnique->getdesc(&techdesc) satırları ile HLSL programının Render() fonksiyonu çağrılmış ve bu fonksiyondaki vertex shader ve pixel shader çağrıları ile çizim işlemi HLSL programına yaptırılmıştır. Programın başındaki World, View, Projection matrisleri vertex shaderda dünya koordinatlarından ekran koordinatlarına dönüşümü gerçekleştirmek için kullanılır. World matrisi ile 3D nesneler için ölçekleme (büyültme, küçültme), dönme (rotasyon) ve öteleme (translation) dönüşümleri yapılır. World matrisi DirectX programında D3DXMatrixIdentity(&g_World) ile başlangıç değeri olarak birim (identity) matrise setlenmiştir. View matrisinde bakış noktasının konumu ve bakış doğrultusu ile ilgili bilgiler tutulur: D3DXVECTOR3 Eye( 0.0f, 3.0f, -8.0f ); // Bakış noktası D3DXVECTOR3 At ( 0.0f, 0.0f, 1.0f ); // Bakış doğrultusu D3DXVECTOR3 Up ( 0.0f, 1.0f, 0.0f ); D3DXMatrixLookAtLH( &g_view, &Eye, &At, &Up ); Projection matrisi perspektif dönüşümü yapmak üzere şu şekilde setlenir: D3DXMatrixPerspectiveFovLH(&g_Projection, D3DX_PI*0.25f, 1.33f, 0.1f, 100.0f ); Burada D3DX_PI*0.25f, 3D ortamın 45 derecelik bir açı ile gözlemlendiğini, 1.33f pencerenin yatay düşey oranını (aspect ratio = 800/600), 0.1f ve 100.0f de near ve far planeleri temsil eder. Yani Z derinlik değeri olarak en yakın Z=0.1f birim ile en uzak Z=100.0f değerine sahip koordinatların arasında kalan görüş piramidinin (Viewing Frustum) içindeki nesnelerin gözlemlendiğini söyler: Şekil.3: Görüş Piramidi (Viewing Frustum) Şekil.4: Sağ, sol el kuralına göre kartezyen koordinatlar 6

7 D3DXMatrixPerspectiveFovLH ifadesindeki Fov Field of view, LH da Left Handed demektir. Sol el kuralına göre 4 parmak +X eksenini gösterirken +Y eksenini gösterecek şekilde döndürüldüğünde baş parmağın işaret ettiği doğrultu +Z eksenini temsil etmektedir ve bakış noktasından ileriye doğrudur. DirectX sol el kuralına göre, OpenGL de sağ el kuralına kartezyen koordinatları belirler. Sol el kuralına göre üçgenlerin köşe noktaları saat yönünde (Clock Wise CW ) sıralanmalıdır. Bu durumda tam karşımızda Z düzlemine dik duran duran üçgenin normali bize doğrudur. Yani onu görürüz. Eğer köşe noktaları saat yönünün tersi (Counter Clock Wise CCW ) sırada dizilirse bu sefer normal bize bakmaz. Yani back face olur. O yüzden de üçgeni göremeyiz. Görünmeyen Yüzeylerin Kaldırılması deney föyünde back face culling (arka yüz kaldırma) hakkında detaylı bilgi vardır. Bu örnekte üçgenin bir görünüp bir kaybolması köşe noktalarının dizilişinin dönerken değişmesinden (CW<-->CCW) kaynaklanmaktadır. D3DXMatrixRotationY(&g_World,t) komutu ile üçgen Y ekseni etrafında t açısı kadar dönmektedir. Bilindiği gibi nesnelerin konumları ile ilgili ölçekleme, dönme ve öteleme gibi değişiklikler g_world matrisi ile yapılıyordu. Dikkat edilirse HLSL programındaki World, View, Projection matrisleri ile bu matrislere DirectX 10 programında atama yapılırken kullanılan g_world, g_view, g_projection değişkenleri birbirinden farklıdır. Bu değişkenlerin değerlerinin HLSL<-->DirectX programları arasında aktarımı ID3D10EffectMatrixVariable* türünden g_pworldvariable, g_pviewvariable, g_pprojectionvariable değişkenleri kullanılarak aşağıdaki gibi iki aşamada gerçekleştirilir: 1. AŞAMA : InitDevice() fonksiyonunda: g_pworldvariable g_pviewvariable g_pprojectionvariable = g_peffect->getvariablebyname( "World" )->AsMatrix(); = g_peffect->getvariablebyname( "View" )->AsMatrix(); = g_peffect->getvariablebyname( "Projection" )->AsMatrix(); 2. AŞAMA : Render() fonksiyonunda: g_pworldvariable->setmatrix( ( float* )&g_world ); g_pviewvariable->setmatrix( ( float* )&g_view ); g_pprojectionvariable->setmatrix( ( float* )&g_projection ); World, View, Projection matrisleri dünya koordinatlarından ekran koordinatlarına dönüşüm işlemini gerçekleştirdiğinden HLSL programının VS adlı vertex shaderı tarafından kullanılmışlardır. PS adlı pixel shader da return float4(1,0,0,1)ile üçgenin içini kırmızıya boyamaktadır. Şekil.5: DirectX 10 ile Üçgen Çizimi 7

8 4. DirectX 10 ile Küp Çizimi Bu uygulamanın üçgen çiziminden en önemli farklı vertex buffera ek olarak index buffer kullanılmasıdır. Bilindiği gibi vertex buffer köşe noktalarının koordinatlarını tutuyordu. Index buffer bu köşe noktalarını indisleyerek üçgenleri oluşturur: DWORD indices[] = 3,1,0, // 1. ÜÇGEN 2,1,3, 0,5,4, 1,5,0, 3,4,7, 0,4,3, 1,6,5, 2,6,1, 2,7,6, 3,7,2, 6,4,5, 7,4,6, // 12. ÜÇGEN ; bd.usage = D3D10_USAGE_DEFAULT; bd.bytewidth = sizeof( DWORD ) * 36; // 36 vertices needed for 12 triangles bd.bindflags = D3D10_BIND_INDEX_BUFFER; bd.cpuaccessflags = 0; bd.miscflags = 0; InitData.pSysMem = indices; g_pd3ddevice->createbuffer( &bd, &InitData, &g_pindexbuffer ); g_pd3ddevice->iasetindexbuffer( g_pindexbuffer, DXGI_FORMAT_R32_UINT, 0 ); indices[] dizisi ile üretilen index buffer, küpün vertex bufferda tutulan 8 köşe noktasını temsil eden [0..7] arası değişen indisleri üçer üçer alarak sol el kuralına uygun olarak saat yönünde üçgenleri oluşturur. 6 yüzeye sahip küpün her bir yüzeyi 2 üçgenden oluştuğundan indices[] dizisinde 6x2=12 üçgeni temsil etmek üzere toplam 12x3=36 tane indis vardır. Küpün sadece vertex buffer ile de çizilmesi mümkündür. Yalnız bu durumda 36 tane köşe noktası içeren bir vertex buffer tanımlanmalıdır. Bu ise bellek israfı demektir. Index buffer kullanıldığı için Render() fonksiyonundaki çizim komutu DrawIndexed( 36, 0, 0 ) şeklinde değiştirilmiştir. Şekil.6: DirectX 10 ile Küp Çizimi 8

9 5. Aydınlatma (Lighting) Şekil.7: Lambert'in Kosinüs Kanununa göre diffuse renk katsayısı Burada önceki örnekte çizilen küp 2 farklı ışık kaynağı tarafından Lambert'in Kosinüs Kanununa göre Diffuse renk hesabı yapılarak aydınlatılacaktır. Bu kanuna göre ışık kaynağı tarafından aydınlatılan yüzeyin [0..1] arası değişen diffuse katsayısı = dot(l,n) ile hesaplanır. Buradaki dot(l,n) ile L ve N vektörlerinin Skaler çarpımı yapılmaktadır. Bunlar normalize edilerek birim vektör olarak alındığında skaler çarpım aralarındaki açının kosinüsünü veririr. O yüzden bu kanuna Kosinüs kanunu denir. Bilindiği gibi renk hesabı pixel shader fonksiyonunda yapılıyordu. Dolayısıyla pixel shader kodu aşağıdaki gibi olacaktır: float4 PS( PS_INPUT input) : SV_Target float4 finalcolor = 0; float3 tolight = 0; float3 Position = mul( input.pos, WorldInverseTranspose).xyz; for(int i=0; i<2; i++) tolight = normalize( vlightpos[i] - Position ); finalcolor += saturate( dot( tolight, input.norm ) * vlightcolor[i] ); finalcolor.a = 1; return finalcolor; for(...) döngüsü içinde dot( tolight, input.norm ) ile ışık kaynağına doğru olan tolight vektörü ile küpün yüzey normali input.norm skaler çarpılarak diffuse katsayı hesaplanmakta ve bu değer ışık kaynağının rengi ile çarpılarak son renk değeri belirlenmektedir. İki tane ışık kaynağı olduğu için döngü iki kere dönmektedir. İfadedeki saturate(...) fonksiyonu skaler çarpımdan gelebilecek negatif değerleri sıfır yapmak için kullanılır. Yani negatif değerler için sıfır döndürür. Döngüden önceki satırdaki Position = mul(input.pos, WorldInverseTranspose).xyz ile vertex shader tarafından 2D ekran koordinatlarına dönüştürülmüş küpe ait koordinatlar tekrar 3D dünya koordinatlarına dönüştürülmüştür. Çünkü diffuse katsayı hesaplanırken ışık kaynağına doğru olan tolight vektörünü hesaplamak için yüzey üzerindeki noktanın 3D dünya koordinatı bilinmelidir. Yukarıdaki pixel shaderın diffuse renk hesabında kullandığı vlightpos[] ve vlightcolor[] değişkenlerinin değerleri aslında DirectX programından alınmaktadır: 9

10 D3DXVECTOR4 vlightpos[2] = D3DXVECTOR4( -3.0f, 0.0f, 0.0f, 1.0f ), D3DXVECTOR4( 0.0f, 0.0f, -3.0f, 1.0f ), ; D3DXVECTOR4 vlightcolors[2] = D3DXVECTOR4( 1.0f, 0.0f, 0.0f, 1.0f ), D3DXVECTOR4( 0.0f, 0.0f, 1.0f, 1.0f ), ; // Kırmızı ışık kaynağı // Mavi ışık kaynağı g_plightposvariable->setfloatvectorarray( ( float* )vlightpos, 0, 2 ); g_plightcolorvariable->setfloatvectorarray( ( float* )vlightcolors, 0, 2 ); Kırmızı ışık kaynağı D3DXMatrixRotationZ(...) komutu ile Z ekseni etrafında; mavi ışık kaynağı da D3DXMatrixRotationY(...) komutu ile Y ekseni etrafında dönmektedir. Işık kaynakları ayrıca D3DXMatrixTranslation(...) komutu ile ötelenmekte ve D3DXMatrixScaling(...) komutu ile de küçültülmektedir. Programın ekran görüntüsü Şekil.8'de verilmiştir: Şekil.8: Kırmızı ve mavi ışık ile küpün aydınlatılması Şekil.9: Kırmızı, mavi ve beyaz ışık ile küpün aydınlatılması 6. Deneye Hazırlık Dersin web sayfasındaki deneyle ilgili kaynak kodları üzerinde değişiklikler yaparak inceleyiniz. Küpü aydınlatan kırmızı ve mavi ışık kaynaklarına X ekseni etrafında dönen Şekil.9'daki gibi beyaz renge sahip üçüncü bir ışık kaynağı ekleyiniz. Programınız çalışmasa da deneye getiriniz. 7. Deneyin Yapılışı Üçgen çizimi örneğindeki kodu değiştirip Şekil.10'daki gibi beyaz renk kare çiziniz. Çizdiğiniz kare dönerken neden gözden kaybolmaktadır? Açıklayınız. 10

11 Şekil.10: Beyaz Kare Çizimi 8. Rapor Rapor, kaynak kodların olduğu klasördeki şablon dosya kullanılarak yazılacaktır. Buradaki: 1. Deneye Hazırlık bölümünde X ekseni etrafında dönen beyaz ışık kaynağının nasıl eklendiği, 2. Deneyin Yapılışı bölümünde de beyaz renk karenin nasıl çizildiği anlatılacaktır. 11

PÜRÜZLÜ YÜZEY ÜRETİMİ

PÜRÜZLÜ YÜZEY ÜRETİMİ KARADENİZ TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü Bilgisayar Grafikleri Laboratuarı PÜRÜZLÜ YÜZEY ÜRETİMİ 1. Giriş Cisimlerin yüzey görüntülerindeki parlaklık değişimi iki nedene dayanır. Birincisi

Detaylı

DirectX ile FPS Oyunu

DirectX ile FPS Oyunu KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI DirectX ile FPS Oyunu 1. Giriş Oyunlar, Bilgisayar Grafiklerinin en popüler uygulama alanlarından biridir

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Grafik Programlama Bilgisayar kullanılırken monitörlerde iki tür ekran moduyla karşılaşılır. Bu ekran modları Text modu ve Grafik modu dur. Text modunda ekran 25 satır ve 80 sütundan

Detaylı

Bilgisayar Grafikleri

Bilgisayar Grafikleri Bilgisayar Grafikleri Konular: Cismin Tanımlanması Bilindiği gibi iki boyutta noktalar x ve y olmak üzere iki boyutun koordinatları şeklinde ifade edilirler. Üç boyutta da üçüncü boyut olan z ekseni üçücü

Detaylı

DirectX ile Tank Oyunu

DirectX ile Tank Oyunu KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI DirectX ile Tank Oyunu 1. Giriş Oyunlar, Bilgisayar Grafiklerinin en popüler uygulama alanlarından biridir

Detaylı

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL. Deney 2

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL. Deney 2 Deney 2 OpenGL Uygulamaları 1. Giriş Günümüzde yazılım ve donanımın gelişmesi ile birlikte bilgisayar grafikleri alanında oldukça önemli gelişmeler kaydedilmektedir. Bu gelişmelere paralel olarak yazılım

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

Object-oriented Graphics Rendering Engine (OGRE)

Object-oriented Graphics Rendering Engine (OGRE) Object-oriented Graphics Rendering Engine (OGRE) Uluslararası Bilgisayar Enstitüsü Ege Üniversitesi Ahmet Bilgili & Serkan Ergun Ogre Kolay kullanılabilir nesne yönelimli Direct3D/OpenGL bağımsız tasarım.

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

MAYA ile 3D Modelleme

MAYA ile 3D Modelleme KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI MAYA ile 3D Modelleme 1. Giriş 3D oyunlar ve animasyonlar Bilgisayar Grafiklerinin günümüzde en yaygın uygulama

Detaylı

BÖLÜM 17 17. ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME

BÖLÜM 17 17. ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME BÖLÜM 17 17. ÜÇ BOYUTLU NESNELERİ KAPLAMA VE GÖLGELENDİRME 17.1. HİDE Üç boyutlu katı modelleme ve yüzey modellemede Wireframe yapılarının görünmemesi için çizgileri saklama görevi yapar. HİDE komutuna

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

www.elektrikogretmenleri.com

www.elektrikogretmenleri.com FIREWORKS (MENU OLUŞ TURMA) 1 Önce Başlat menüsü Programlar Adobe Web Premium CS3 Adobe Fireworks CS3 kısayol simgesi ile Fireworks programı açılır. 2 Fireworks programı açıldığında Karşımıza gelen Yeni

Detaylı

MatLab. Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar

MatLab. Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar MatLab Mustafa Coşar mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar Sunum Planı MatLab Hakkında Ekran Yapısı Programlama Yapısı Matlab da Programlamaya Giriş Sorular MatLab Hakkında MatLab;

Detaylı

Koordinat Dönüşümleri (V )

Koordinat Dönüşümleri (V ) KOORDİNAT DÖNÜŞÜMLERİ ve FARKLI KOORDİNAT SİSTEMLERİ İLE ÇALIŞMA FieldGenius ile birden fazla koordinat sistemi arasında geçiş yaparak çalışmak mümkündür. Yaygın olarak kullanılan masaüstü harita ve CAD

Detaylı

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ

Karabük Üniversitesi, Mühendislik Fakültesi...www.ibrahimcayiroglu.com WEB TEKNOLOJİLERİ WEB TEKNOLOJİLERİ VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

Detaylı

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı

Detaylı

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU

NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU NACA PROFİL AİLE GEOMETRİSİ HESAP PROGRAMI KULLANMA KILAVUZU NACA kesit programı çizim programı Visual Basic V5.0 dilinde yazılmıştır. Programın amacı, kullanıcının istediği NACA kesitinin çizimini çok

Detaylı

Fen ve Mühendislik Uygulamalarında MATLAB

Fen ve Mühendislik Uygulamalarında MATLAB Fen ve Mühendislik Uygulamalarında MATLAB Dosya Yönetimi Fonksiyon Yapısı Doç. Dr. İrfan KAYMAZ MATLAB Ders Notları DOSYA YÖNETİMİ Şu ana kadar bir programda hesaplanan veya elde edilen veriler RAM de

Detaylı

Nesneye Dayalı Programlama Laboratuvarı

Nesneye Dayalı Programlama Laboratuvarı 2013 2014 Nesneye Dayalı Programlama Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Salih GÖRGÜNOĞLU Laboratuvar Sorumluları: M. Zahid YILDIRIM İÇİNDEKİLER Deney 1: Visual Studio ve C++'a Giriş Uygulamaları...

Detaylı

API(Application Programming Interface) Fonksiyonları:

API(Application Programming Interface) Fonksiyonları: API(Application Programming Interface) Fonksiyonları: Bir işletim sisteminin çalışırken kendisinin kullandığı, programcının da dışarıdan çağırabileceği fonksiyonları vardır. Bunlara sistem fonksiyonları

Detaylı

2. HTML Temel Etiketleri

2. HTML Temel Etiketleri 2. HTML Temel Etiketleri Bu bölümü bitirdiğinizde, HTML ve etiket kavramlarının ne olduğunu, HTML komut yapısını, Örnek bir HTML dosyasının nasıl oluşturulduğunu, Temel HTML etiketlerinin neler olduğunu,

Detaylı

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE

Hafta 2 EkLab 1. C ye Giriş. Ozan ŞENYAYLA Çağrı YENİCE Hafta 2 EkLab 1 C ye Giriş Ozan ŞENYAYLA Çağrı YENİCE http://ozansenyayla.com/programlama.php KAYNAK: Görkem Paçacı / İlker Korkmaz / Kaya Oğuz - İEU BT Hafta 2 GİRİŞ EkLab 1 Programlama, genel olarak,

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu

Tanımlar, Geometrik ve Matemetiksel Temeller. Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ. JDF329 Fotogrametri I Ders Notu FOTOGRAMETRİ I Tanımlar, Geometrik ve Matemetiksel Temeller Yrd. Doç. Dr. Saygın ABDİKAN Yrd. Doç. Dr. Aycan M. MARANGOZ JDF329 Fotogrametri I Ders Notu 2015-2016 Öğretim Yılı Güz Dönemi İzdüşüm merkezi(o):

Detaylı

Algoritmalar ve Programlama. Algoritma

Algoritmalar ve Programlama. Algoritma Algoritmalar ve Programlama Algoritma Algoritma Bir sorunu / problemi çözmek veya belirli bir amaca ulaşmak için gerekli olan sıralı mantıksal adımların tümüne algoritma denir. Algoritma bir sorunun çözümü

Detaylı

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. PROGRAMLAMAYA GİRİŞ Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir. C de yazılan bir programın çalışması için çoğunlukla aşağıdaki

Detaylı

Eln 1001 Bilgisayar Programlama I

Eln 1001 Bilgisayar Programlama I Eln 1001 Bilgisayar Programlama I GiriŞ / ǹk¹Ş Fonksiyonlar¹ Ne ÖĆreneceĆiz? Temel Giriş/Çıkış Yapısı Giriş Fonksiyonları Karakterler için giriş fonksiyonları Scanf fonksiyonu Formatlı giriş Çıkış Fonksiyonları

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU 1 M-Dosya Yapısı Bir senaryo dosyası (script file) özel bir görevi yerine getirmek

Detaylı

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik

CAEeda ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU. EDA Tasarım Analiz Mühendislik CAEeda TM ÇÖZÜMÜ YAPILMIŞ NACA 0012 KANADI İÇİN 2B ÇİZİM EĞİTİM NOTU EDA Tasarım Analiz Mühendislik 1. Kapsam Çözümü yapılmış *.pos.edf dosyasında bulunan çözümağını al. Sonlu eleman modeli üzerinde bulunan

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

Bölüm 2 - C ile Programlamaya Giriş

Bölüm 2 - C ile Programlamaya Giriş 1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1 Giriş 2.2 Basit C Programları: Bir Metni Yazdırmak 2.3 Basit C Programları: İki Tam Sayıyı Toplamak 2.4 Hafıza Konuları 2.5 C de Aritmetik 2.6 Karar

Detaylı

Yüzey Doldurma Teknikleri

Yüzey Doldurma Teknikleri KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI Yüzey Doldurma Teknikleri 1. Giriş Bu deneyde dolu alan tarama dönüşümünün nasıl yapıldığı anlatılacaktır.

Detaylı

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır: C VERİ TÜRLERİ BASİT VERİ TÜRLERİ Değişkenler, program içinde üzerinde işlem yapılan, veri saklanan ve durumlarına göre programın akışı sağlanan nesnelerdir. C de bir değişken kullanılmadan önce tanımlanmalıdır.

Detaylı

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA DERSİ BİLGİSAYAR PROGRAMLAMA DERSİ Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü DERS NOTU 3 KONU: M-dosya yapısı ve Kontrol Yapıları M-Dosya Yapısı

Detaylı

BÖLÜM 13. Çelik Profil Aracı

BÖLÜM 13. Çelik Profil Aracı BÖLÜM 13 Çelik Profil Aracı Autodesk Inventor 11 Tanıtma ve Kullanma Kılavuzu SAYISAL GRAFİK Çelik Profiller ile Çalışmak Çelik profil aracı, çelik profillerden oluşan modellerin tasarımını ve düzenlenmesini

Detaylı

İÇİNDEKİLER İÇİNDEKİLER KODLAB

İÇİNDEKİLER İÇİNDEKİLER KODLAB İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ

Detaylı

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY

C# Form Uygulamaları. Nesne Tabanlı Programlama I (C#) Ders Notu. S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY Nesne Tabanlı Programlama I (C#) Ders Notu S.Ü.Akören A.R.E. Meslek Yüksekokulu C.ÖZCAN- F.SARAY C# Form Uygulamaları C# da yeni bir uygulama açmak için File>New>Project seçilir. Daha sonra açılan pencerede

Detaylı

Görüntü Bağdaştırıcıları

Görüntü Bağdaştırıcıları Görüntü Bağdaştırıcıları Görüntü Bağdaştırıcıları (Ekran Kartları) Ekrandaki Görüntü Nasıl Oluşur? Monitörünüze yeteri kadar yakından bakarsanız görüntünün çok küçük noktalardan oluştuğunu görürsünüz.

Detaylı

1- adresine girilir. Buradan Adobe Photoshope 5.0 programı bilgisayara indirilip, kurulur.

1-  adresine girilir. Buradan Adobe Photoshope 5.0 programı bilgisayara indirilip, kurulur. ANİMASYONLAR: Resim Oluşturma: 1- http://bilmuh.ege.edu.tr/~download adresine girilir. Buradan Adobe Photoshope 5.0 programı bilgisayara indirilip, kurulur. Masaüstüne indirilen photoshop programı çalıştırılır.

Detaylı

Archive Player Divar Series. Kullanım kılavuzu

Archive Player Divar Series. Kullanım kılavuzu Archive Player Divar Series tr Kullanım kılavuzu Archive Player İçindekiler tr 3 İçindekiler 1 Giriş 4 2 Çalışma 5 2.1 Programın başlatılması 5 2.2 Ana pencere tanıtımı 6 2.3 Açma düğmesi 6 2.4 Kamera

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri

Grafik Komutları. Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri Matlab Grafikler Grafik Türleri Grafik Komutları Grafik Türleri plot: çizgisel grafikler bar: sütun bar şeklindeki grafikler stem: sütun çizgisel grafikler pie: pasta grafikleri Yardımcı Komutlar hold

Detaylı

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak 10.Konu İç çarpım uzayları ve özellikleri 10.1. ve üzerinde uzunluk de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor teoreminden dir. 1.Ö.: [ ] ise ( ) ( ) ve ( ) noktaları gözönüne alalım.

Detaylı

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir.

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir. Handel Kavramı: Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir. Alanın yaratıldığı bölge Windows'un kendi

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar LABİRENT HAZIRLAYAN 122132151 Fahri DÖNMEZ DANIŞMAN

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

1 PROGRAMLAMAYA GİRİŞ

1 PROGRAMLAMAYA GİRİŞ İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)

Detaylı

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları Döngüler Döngü Komutları while Komutu Diğer Operatörler Bileşik Komut for Komutu do-while Komutu İçiçe Döngüler break ve continue Komutları while Komutu Döngü komutları komutların bir çok kez yeniden yürülmesini

Detaylı

BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI. Mehmet ÖZKAN

BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI. Mehmet ÖZKAN BİLGİSAYAR PROGRAMLAMA VE FİZİKTE PROGRAMLAMA DERSLERİ İÇİN MATLAB ÇALIŞMA NOTLARI Mehmet ÖZKAN input:bu komut kullanıcıdan veri girişi istiğinde kullanılır. Etkin ve etkileşimli bir program yazımında

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

BM 102 Bilgisayar Programlama II. Windows Form Application

BM 102 Bilgisayar Programlama II. Windows Form Application BM 102 Bilgisayar Programlama II Windows Form Application Uygulama 1 İki TextBox girilien sayıların toplamı. Uygulama 1 Windows Form Uygulaması projesi açma Forma iki TextBox ile bir Label ekleme Forma

Detaylı

7. BÖLÜM İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI .= 1 1 + + Genel: Vektörler bölümünde vektörel iç çarpım;

7. BÖLÜM İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI .= 1 1 + + Genel: Vektörler bölümünde vektörel iç çarpım; İÇ ÇARPIM UZAYLARI 7. BÖLÜM İÇ ÇARPIM UZAYLARI Genel: Vektörler bölümünde vektörel iç çarpım;.= 1 1 + + Açıklanmış ve bu konu uzunluk ve uzaklık kavramlarını açıklamak için kullanılmıştır. Bu bölümde öklit

Detaylı

BİLG214. 20.10.2009 Dr. Mustafa T. Babagil 1

BİLG214. 20.10.2009 Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ TBIL-303-01 Veri Yapıları ve Algoritmalar İki Yönlü Bağlantılı Liste Uygulaması HAZIRLAYAN

Detaylı

Java Programlamaya Giriş

Java Programlamaya Giriş Java Programlamaya Giriş Amaçlar: 1. Java kurulumu (Netbeans ve JDK) 2. Java Netbeans Kullanımı 3. Program yazma Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek

Detaylı

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1 PROGRAM - ALGORİTMA AKIŞ ŞEMASI Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi. Algoritma bir sorunun

Detaylı

İNTERNET TABANLI PROGRAMLAMA

İNTERNET TABANLI PROGRAMLAMA İNTERNET TABANLI PROGRAMLAMA VISUAL STUDIO DA YENİ BİR PROJE OLUŞTURMA Visual Studio (VS) programını çalıştırdığımızda karşımıza boş bir ekran gelir. Yeni bir proje oluştururken File>New>Project yolu kullanılarak

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Ders 4: Diziler (Arrays( Arrays) barisgokce.com Ders 4: Diziler (Arrays( Arrays) Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Diziler Aynı tipteki bir veri gurubunun bir değişken içinde saklanmasıdır. Veriler Hafızada

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

BİLİŞİM TEKNOLOJİLERİ BİL-109 ÖĞRETİM GÖREVLİSİ SEMİH ÇALIŞKAN

BİLİŞİM TEKNOLOJİLERİ BİL-109 ÖĞRETİM GÖREVLİSİ SEMİH ÇALIŞKAN BİLİŞİM TEKNOLOJİLERİ BİL-109 ÖĞRETİM GÖREVLİSİ SEMİH ÇALIŞKAN SOFTWARE (YAZILIM) O Sahip olunan bilgisayarların üzerine, onları verimli bir şekilde kullanmak için, çeşitli programlar yüklenir. Bu programların

Detaylı

Dinamik Geometri Yazılımlarından Cabri ile Yansıma ve Öteleme Hareketlerinin Öğretimi

Dinamik Geometri Yazılımlarından Cabri ile Yansıma ve Öteleme Hareketlerinin Öğretimi Dinamik Geometri Yazılımlarından Cabri ile Yansıma ve Öteleme Hareketlerinin Öğretimi Suphi Önder BÜTÜNER KTÜ, Fatih Eğitim Fakültesi Đlköğretim Bölümü Doktora Öğrencisi, Akçaabat Atatürk Đlköğretim Okulu

Detaylı

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ 1 Düşünelim? * Bilişim teknolojisi günlük hayatta hangi alanlarda kullanılabilir? * Günlük hayatta gözlemlediğiniz bilgisayar çeşitlerini söyleyiniz. 2 Bilgisayar

Detaylı

BİLGİSAYAR PROGRAMLAMA MATLAB

BİLGİSAYAR PROGRAMLAMA MATLAB BİLGİSAYAR PROGRAMLAMA MATLAB Arş. Gör. Ahmet ARDAHANLI Kafkas Üniversitesi Mühendislik Fakültesi Bu hafta? 1. Matlab ve Programlama Ortamı 2. Matlab Komut Penceresi 3. Matlab de değişken tanımlama 4.

Detaylı

HAFTA-2 Norm Yazı Çizgi Tipleri ve Kullanım Yerleri Yıliçi Ödev Bilgileri AutoCad e Genel Bakış Tarihçe Diğer CAD yazılımları AutoCAD Menüleri

HAFTA-2 Norm Yazı Çizgi Tipleri ve Kullanım Yerleri Yıliçi Ödev Bilgileri AutoCad e Genel Bakış Tarihçe Diğer CAD yazılımları AutoCAD Menüleri HAFTA-2 Norm Yazı Çizgi Tipleri ve Kullanım Yerleri Yıliçi Ödev Bilgileri AutoCad e Genel Bakış Tarihçe Diğer CAD yazılımları AutoCAD Menüleri AutoCAD ile iletişim Çizimlerde Boyut Kavramı 0/09 2. Hafta

Detaylı

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA GİRİŞ Bilgisayarların önemli bir kullanım amacı, veri ve bilgilerin kullanılarak var olan belirli bir problemin çözülmeye çalışılmasıdır. Bunun için, bilgisayarlar

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

Fen ve Mühendislik Uygulamaları ile MATLAB

Fen ve Mühendislik Uygulamaları ile MATLAB Fen ve Mühendislik Uygulamaları ile MATLAB Doç. Dr. M. Akif CEVİZ Atatürk Üniversitesi Mühendislik Fakültesi Makine Mühendisliği Bölümü M-Dosyaları Kontrol İfadeleri - İlişkisel ve Mantıksal Operatörler

Detaylı

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Algoritma ve Programlama: Karar Yapıları ve Döngüler Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan

Detaylı

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No.

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013. Ad, Soyad Öğrenci No. Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü BLGM 318 Ara Sınavı 2012 2013 Đlkbahar Dönemi 13 Nisan 2013 Ad, Soyad Öğrenci No. : : Öğretim Üyesi: Doç. Dr. Zeki BAYRAM Süre: 100 dakika Talimatlar:

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

10. SINIF MATEMATİK FONKSİYONLARDA İŞLEMLER-1 ÇAKABEY ANADOLU LİSESİ MATEMATİK BÖLÜMÜ

10. SINIF MATEMATİK FONKSİYONLARDA İŞLEMLER-1 ÇAKABEY ANADOLU LİSESİ MATEMATİK BÖLÜMÜ 10. SINIF MATEMATİK FONKSİYONLARDA İŞLEMLER-1 ÇAKABEY ANADOLU LİSESİ MATEMATİK BÖLÜMÜ 1. ÜNİTE 3.1 FONKSİYONLARLA İŞLEMLER VE UYGULAMALARI Neler öğreneceksiniz? Bir fonksiyon grafiğinden dönüşümler yardımıyla

Detaylı

Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic

Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic Dr. Musa KILIÇ Öğretim Görevlisi http://kisi.deu.edu.tr/musa.kilic BİLGİSAYAR DONANIM Donanım birimleri ekran, klavye, harddisk, ram YAZILIM Yazılımlar ise bilgisayarın donanım yapısını kullanılır hale

Detaylı

C PROGRAMLAMA DİLİ. Hedefler

C PROGRAMLAMA DİLİ. Hedefler C PROGRAMLAMA DİLİ Hedefler Bu üniteyi çalıştıktan sonra; C programlama dili genel özelliklerini ve yapısını bilir, Kütüphane fonksiyonlarının çağrılmasını gerçekleştirebilir, Değişken, sabit tanımlamaları

Detaylı

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal)

FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal) FBEB-512 C++ ile Nesne Tabanlı Programlama Güz 2009 (1. Hafta) (Yrd. Doç. Dr. Deniz Dal) Algoritma Geliştirme ve Akış Diyagramları BİLGİSAYARLA PROBLEM ÇÖZÜMÜ AŞAMALARI Analiz Algoritma Geliştirilmesi

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

ÜNİTE. MATEMATİK-1 Yrd.Doç.Dr.Ömer TARAKÇI İÇİNDEKİLER HEDEFLER DOĞRULAR VE PARABOLLER

ÜNİTE. MATEMATİK-1 Yrd.Doç.Dr.Ömer TARAKÇI İÇİNDEKİLER HEDEFLER DOĞRULAR VE PARABOLLER HEDEFLER İÇİNDEKİLER DOĞRULAR VE PARABOLLER Birinci Dereceden Polinom Fonksiyonlar ve Doğru Doğru Denklemlerinin Bulunması İkinci Dereceden Polinom Fonksiyonlar ve Parabol MATEMATİK-1 Yrd.Doç.Dr.Ömer TARAKÇI

Detaylı

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); }

int faktoriyel(int sayi) { int sonuc = 1; for(int i=sayi;i>0;i--) sonuc*=i; return sonuc; } int main() { int sayi = faktoriyel(5); } FONKSİYONLAR Fonksiyon, programcı tarafından seçilen bir kod bloğuna isim vermek için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır. Örneğin

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

Temel Bilgisayar Terimleri Yrd. Doç. Dr. Devkan Kaleci

Temel Bilgisayar Terimleri Yrd. Doç. Dr. Devkan Kaleci 1 2 HTML, Hyper Text Markup Language kelimelerinin kısaltılmışıdır. HTML (Hareketli-Metin İşaretleme Dili) basitçe, browserlarla görebilen, internet dokümanları oluşturmaya yarayan bir çeşit dildir. HTML

Detaylı

Algoritma ve Akış Diyagramları

Algoritma ve Akış Diyagramları Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları

Detaylı

enum, struct, union ve typedef Yapıları

enum, struct, union ve typedef Yapıları enum, struct, union ve typedef Yapıları C, kullanıcının kendi veri tipini tanımlamasına müsaade eder. Bu kısımda böyle veritiplerinin nasıl oluşturulacağı anlatılacaktır. enum Bu tip, değişkenin alabileceği

Detaylı

MT 373 Visual Basic Programlama Dersi

MT 373 Visual Basic Programlama Dersi MT 373 VB Laboratuvar Uygulamaları Öğr. Gör. Dr. İrfan MACİT 1 MT 373 Visual Basic Programlama Dersi (VB.NET 2010 Uygulamaları) Dr. İrfan MACİT Matematik Bölümü Laboratuvar Uygulamaları Adana, 2013 MT

Detaylı

5. ÜNİTE İZDÜŞÜMÜ VE GÖRÜNÜŞ ÇIKARMA

5. ÜNİTE İZDÜŞÜMÜ VE GÖRÜNÜŞ ÇIKARMA 5. ÜNİTE İZDÜŞÜMÜ VE GÖRÜNÜŞ ÇIKARMA KONULAR 1. İzdüşüm Metodları 2. Temel İzdüşüm Düzlemleri 3. Cisimlerin İzdüşümleri 4. Görünüş Çıkarma BU ÜNİTEYE NEDEN ÇALIŞMALIYIZ? İz düşümü yöntemlerini, Görünüş

Detaylı

Uygulama İş Akış Kaydında Koşul Tanımlamaları

Uygulama İş Akış Kaydında Koşul Tanımlamaları İŞ AKIŞ YÖNETİMİ YENİLİKLERİ Amaç ve Fayda İş Akış Kayıtlarında yapılan değişiklikler ile; İş akış kayıtlarının koşula bağlı tanımlanabilmesi, İş akış kaydında bulunan açık işlerin farklı iş akış kaydına

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

MPLAB IDE v7.60 PROGRAMI KULLANIMI

MPLAB IDE v7.60 PROGRAMI KULLANIMI MPLAB IDE v7.60 PROGRAMI KULLANIMI MPLAB IDE programı mikroişlemciler için hazırlanmış bir derleyici programdır. Microchip firması tarafından hazırlanmıştır. (Resim 1) MPLAB programı assembly dilinde simulasyon,

Detaylı

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b. Diziler Dizi Nedir Ortak özelliğe sahip birden fazla bilginin oluşturduğu bütün bilgi kümelerine veya hafızada art arda sıralanmış aynı türden verilerin oluşturduğu yapıya dizi denir. Kısaca; Bellekte

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama

Detaylı

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu Sevcan AYTEKİN Alpaslan DUYSAK İÇERİK Amaç Sanal Ortam Sanal Ortam Aygıtları Uygulama Alanları Üç Boyutlu Modelleme (3B) OpenGL, 3Dmax Sanal Ortamın

Detaylı

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA

1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA BÖLÜM15 D- VERİ TABANI PROGRAMI 1. VERİ TABANI KAVRAMLARI VE VERİ TABANI OLUŞTUMA 1.1. Veri Tabanı Kavramları Veritabanı (DataBase) : En genel tanımıyla, kullanım amacına uygun olarak düzenlenmiş veriler

Detaylı

TOPOĞRAFYA Temel Ödevler / Poligonasyon

TOPOĞRAFYA Temel Ödevler / Poligonasyon TOPOĞRAFYA Temel Ödevler / Poligonasyon Yrd. Doç. Dr. Aycan M. MARANGOZ ÇEVRE MÜHENDİSLİĞİ BÖLÜMÜ JDF 264/270 TOPOĞRAFYA DERSİ NOTLARI http://geomatik.beun.edu.tr/marangoz http://jeodezi.karaelmas.edu.tr/linkler/akademik/marangoz/marangoz.htm

Detaylı