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ı

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ı

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ı

Ö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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Ş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ı

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ı

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ı

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ı

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ı

İÇİ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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Ü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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

Ü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ı

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ı

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ı

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 1 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlamaya C ile Programlamaya Yazılım: Bilgisayarın işlemler yapması ve karar vermesi

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

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ı

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ı

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ı

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ı

İ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ı

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ı

Genel Bilgi. İz Düşüm Düzlemleri ve Bölgeler. Yrd. Doç. Dr. Garip GENÇ Şekil: İz düşüm düzlemlerine bakış doğrultuları. Page 1.

Genel Bilgi. İz Düşüm Düzlemleri ve Bölgeler. Yrd. Doç. Dr. Garip GENÇ Şekil: İz düşüm düzlemlerine bakış doğrultuları. Page 1. TEKNİK BİLİMLER MESLEK YÜKSEKOKULU Teknik Resim Genel Bilgi Uzaydaki cisimlerin eksiksiz bir anlatımı için, ana boyutlarıyla birlikte parçanın bitmiş hallerinden ve üzerindeki işlemlerle birlikte diğer

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ı

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ı

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ı

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ı

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ı

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ı

Data Structures Lab 1 2012-Güz

Data Structures Lab 1 2012-Güz Data Structures Lab 1 2012-Güz C# Ortamı Tanıtımı ve Uygulama Geliştirilmesi Visual Studio 2010 Ortamının Temini -NYG'ndan MSDN üyeliği için başvuru dilekçesi alınıp doldurulmalı ve yine NYG'ye teslim

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ı

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI İÇİ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ı

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ı

Bigisayar Programlama

Bigisayar Programlama Bigisayar Programlama (GÜZ 2015) DERS-02: C de Programlamaya Giriş Yrd. Doç Dr. Yakup EMÜL Cumhuriyet Üniv., Teknoloji Fakültesi Yazılım Mühendisliği Bölümü yakupemul@cumhuriyet.edu.tr Ofis Saatleri :

Detaylı

10/17/2007 Nesneye Yonelik Programlama 3.1

10/17/2007 Nesneye Yonelik Programlama 3.1 Procedure-Based Programming in C++ Çoğu gerçek dünya problemleri binlerce kod satırı gerektirir ( MS Windows NT 5.0 25 million dan fazla kod satırından oluşmaktadır). Yazılımın tasarımı, kodlanması ve

Detaylı

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım Yazılım Yazılım Bilgisayarlar üretildikleri anda içlerinde herhangi bir bilgi barındırmadıkları için bir işlevleri yoktur. Bilgisayarlara belirli yazılımlar yüklenerek işlem yapabilecek hale getirilirler.

Detaylı

Bölüm 3: Vektörler. Kavrama Soruları. Konu İçeriği. Sunuş. 3-1 Koordinat Sistemleri

Bölüm 3: Vektörler. Kavrama Soruları. Konu İçeriği. Sunuş. 3-1 Koordinat Sistemleri ölüm 3: Vektörler Kavrama Soruları 1- Neden vektörlere ihtiyaç duyarız? - Vektör ve skaler arasındaki fark nedir? 3- Neden vektörel bölme işlemi yapılamaz? 4- π sayısı vektörel mi yoksa skaler bir nicelik

Detaylı

Bilgisayar Programlama MATLAB

Bilgisayar Programlama MATLAB What is a computer??? Bilgisayar Programlama MATLAB Prof. Dr. İrfan KAYMAZ What Konular is a computer??? MATLAB ortamının tanıtımı Matlab sistemi (ara yüzey tanıtımı) a) Geliştirme ortamı b) Komut penceresi

Detaylı

«BM364» Veritabanı Uygulamaları

«BM364» Veritabanı Uygulamaları HAFTA 6 T-SQL ile Programlar Yazmak" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı Programlama dili olarak T-SQL Fonksiyonlar Programlamak

Detaylı

7- Turbo Pascal Programlamada Alt Programlar (Procedure)

7- Turbo Pascal Programlamada Alt Programlar (Procedure) 7- Turbo Pascal Programlamada Alt Programlar (Procedure) Alt programların ana programda yapacağımız ek işlevleri üstlendiğinden daha önceki bölümde bahsetmiştik. Alt programlar genelde ana program bloğu

Detaylı

http://www.microsoft.com/visualstudio/eng/downloads

http://www.microsoft.com/visualstudio/eng/downloads Visual Studio 2012'nin kurulumunu, Visual Studio'nun kullanımını ve Windows Store'da basit bir proje hazırlanmasını anlatacağım. Hepsinden önce Visual Studio ortamından biraz bahsedelim. Visual Studio

Detaylı

Part-Helical Sweep/ Yrd. Doç. Dr. Mehmet FIRAT- Yrd. Doç. Dr. Murat ÖZSOY

Part-Helical Sweep/ Yrd. Doç. Dr. Mehmet FIRAT- Yrd. Doç. Dr. Murat ÖZSOY HELICAL SWEEP YÖNTEMİ İLE CİVATA ÇİZİMİ 1. Bu ve bundan sonraki hafta basit bir cıvata çizimi yapılacaktır. Cıvata çizimi için ilk olarak cıvata başını çizmek gerekir. Bunun için bir altıgen çizip bu altıgeni

Detaylı

Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır.

Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır. Registry: Windows un bütün ayarlarının tutulduğu bir veri tabanıdır. Widows un çalışmasında birinci sırada önem taşıyan dosyalardan biriside Registry olarak bilinen kayıt veri tabanıdır. Win.3x sistemlerinde

Detaylı

C PROGRAMLAMA DİLİNE GİRİŞ

C PROGRAMLAMA DİLİNE GİRİŞ C PROGRAMLAMA DİLİNE GİRİŞ C Dilinin Tarihçesi 1972 de Dennis Ritchie tarafından AT&T Bell Laboratuarlarında B dilinden geliştirildi. C dili konusundaki ilk kitap 1978 de Dennis Ritchie ve Brain Kernighan

Detaylı

TEKNOLOJĠ PLANLAMASI. Başkent Üniversitesi

TEKNOLOJĠ PLANLAMASI. Başkent Üniversitesi TEKNOLOJĠ PLANLAMASI Başkent Üniversitesi ÖĞRENĠM KAZANIMLARI Bu dersi bitirdiğinizde; Teknoloji planlamasının ne olduğuna ilişkin bilgi edinecek, Teknoloji planlamasının amacını öğrenecek, Teknoloji planı

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME Hedefler Bu üniteyi çalıştıktan sonra; Android projesi oluşturabilir, Android projesini çalıştırabilir, Android projesi genel yapısını açıklayabilir, Activity kavramını açıklayabilir,

Detaylı

Kesit Görünüşler. Kesit Görünüşler

Kesit Görünüşler. Kesit Görünüşler Kesit Görünüşler Bir parçanın içkısmında bulunan delikleri, boşlukları belirtmek ve ölçülendirebilmek için hayali olarak kesildiği farzedilerek çizilen görünüştür. geometrisi bulunan parçalar daha kolay

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı