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ı

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ş Pürüzlü yüzey üretiminde, yüzeye kaplanacak dokudan yararlanarak yüzeyin normalini

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ı

Görünmeyen Yüzey ve Arkayüz Kaldırma

Görünmeyen Yüzey ve Arkayüz Kaldırma KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR GRAFİKLERİ LABORATUARI Görünmeyen Yüzey ve Arkayüz Kaldırma 1. Giriş Bilgisayar grafiklerinin en önemli problemlerinden biri katı

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ı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı COM337 Bilgisayar Grafiği OpenGL ile Grafik Programlama Dr. Erkan Bostancı İçerik Işık Resim ve Metin Görüntüleme Texture-mapping Işık (1/3) OpenGL de bir sahne 8 farklı ışık kaynağı kullanabilir. İlk

Detaylı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı

COM337 Bilgisayar Grafiği. OpenGL ile Grafik Programlama. Dr. Erkan Bostancı COM337 Bilgisayar Grafiği OpenGL ile Grafik Programlama Dr. Erkan Bostancı İçerik Giriş Dönüşüm matrisleri Matris yığınları (stack) Giriş İlk olarak gizli yüzeylerin kaldırılmasını (hidden surface removal)

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ı

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say İÇİNDEKİLER 1. Bilgisayarın Yapısı Ve Programlama Dilleri Giriş 1 Bilgisayar ve Programlamanın Kısa Bir Tarihçesi 2 Donanım ve Yazılım Kavramları 3 Bilgisayarın Donanımsal yapısı 4 Giriş Birimi (Input

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ı

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ı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

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ı

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ı

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 )

12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 ) 12 TBT / WEB TASARIM ve PROGRAMLAMA ( Not 3 ) 25.09.2017 METİN VE GÖRÜNÜM DÜZENLEME ETİKETLERİ : etiketleri dökümana başlık eklemek için kullanılır. etiketinde ki x ifadesi 1 den 6 ya kadar

Detaylı

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 4 MasterPage

İNTERNET PROGRAMLAMA 2 A S P. N E T. Marmara Teknik Bilimler MYO / Hafta 4 MasterPage İNTERNET PROGRAMLAMA 2 A S P. N E T Marmara Teknik Bilimler MYO / Hafta 4 MasterPage Bir web sitesi birden fazla sayfadan oluşur. Bu sayfalarda içerik değişirken her sayfada tekrarlanan ögeler ve özellikler

Detaylı

Sınav tarihi : Süre : 60 dak.

Sınav tarihi : Süre : 60 dak. Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Final Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 31.05.2016 Süre : 60 dak. 1. Ekranda ne görüntülenir? int i =

Detaylı

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü MATLAB a GİRİŞ Doç. Dr. Mehmet İTİK Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü İçerik: MATLAB nedir? MATLAB arayüzü ve Bileşenleri (Toolbox) Değişkenler, Matris ve Vektörler Aritmetik işlemler

Detaylı

PARÇA MODELLEMEYE GİRİŞ

PARÇA MODELLEMEYE GİRİŞ PARÇA MODELLEMEYE GİRİŞ Pro/ENGINEER programında 10 değişik modelleme kısmı bulunmaktadır. Bunlardan en çok kullanılan ve bizim de işleyeceğimiz parça modelleme (Part) kısmıdır. Bunun yanında montaj (assembly),

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ı

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ı

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ı

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ı

BİLG Dr. Mustafa T. Babagil 1

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

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip

Detaylı

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız. ARDUİNO PROGRAMLAMA fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız. fonksiyonu: Diğer programlama dillerinden alışık olduğumuz

Detaylı

Saat Yönünde 90 Derecelik Dönme Hareketi. Saatin Tersi Yönünde 90 Derecelik Dönme Hareketi

Saat Yönünde 90 Derecelik Dönme Hareketi. Saatin Tersi Yönünde 90 Derecelik Dönme Hareketi Saat Yönünde 9 Derecelik Dönme Hareketi Saatin Tersi Yönünde 9 Derecelik Dönme Hareketi çizilmiş olan üçgenin orjin etrafında saat yönünde 9 lik dönme hareketine ait görüntüsünü çizip bu üçgenin köşe koordinatlarını

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ı

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ı

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ı

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ı

CAEeda TM OM6 KANADI MODELLEME. EDA Tasarım Analiz Mühendislik

CAEeda TM OM6 KANADI MODELLEME. EDA Tasarım Analiz Mühendislik CAEeda TM OM6 KANADI MODELLEME EDA Tasarım Analiz Mühendislik 1. Kapsam Kanat Sınırlarını Çizme Taban Kanat Profilinin Hücum ve Firar Kenarları Sınırlarını Çizme Kanat Profilini Dosyadan (.txt) Okuma Geometrik

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ı

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ı

KİRİŞLERDE PLASTİK MAFSALIN PLASTİKLEŞME BÖLGESİNİ VEREN BİLGİSAYAR YAZILIMI

KİRİŞLERDE PLASTİK MAFSALIN PLASTİKLEŞME BÖLGESİNİ VEREN BİLGİSAYAR YAZILIMI IM 566 LİMİT ANALİZ DÖNEM PROJESİ KİRİŞLERDE PLASTİK MAFSALIN PLASTİKLEŞME BÖLGESİNİ VEREN BİLGİSAYAR YAZILIMI HAZIRLAYAN Bahadır Alyavuz DERS SORUMLUSU Prof. Dr. Sinan Altın GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ

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ı

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ı

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ı

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

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ı

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ı

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ı

Diziler (Arrays) Çok Boyutlu Diziler

Diziler (Arrays) Çok Boyutlu Diziler Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.

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ı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları Sayfa1 NESNE TABANLI PROGRAMLAMA 25.01.2011 Final Sınavı Cevapları CEVAPLAR 1. A ve C 3x3 boyutlu kare matrislerdir. Bu matrisler için, iken, işlemini gerçekleştirerek C matrisini oluşturan bir C++ programı

Detaylı

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş Mühendislik Mekaniği Statik Yrd.Doç.Dr. Akın Ataş Bölüm 2 Kuvvet Vektörleri Kaynak: Mühendislik Mekaniği: Statik, R.C.Hibbeler, S.C.Fan, Çevirenler: A. Soyuçok, Ö.Soyuçok. 2 Kuvvet Vektörleri Bu bölümde,

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI Enformatik Bölümü - Bilgisayarın tanımı ve tarihçesi Bilgisayar, belirli komutlara göre veri işleyen ve depolayan bir makinedir. İlk bilgisayar 1950 yılında yapılmıştır.

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ı

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ı

Viyana İmam Hatip Lisesi Öğrenci Seçme Sınavı - Matematik

Viyana İmam Hatip Lisesi Öğrenci Seçme Sınavı - Matematik Viyana İmam Hatip Lisesi Öğrenci Seçme Sınavı - Matematik 1. Ünite: Geometriden Olasılığa 1. Bölüm: Yansıyan ve Dönen Şekiller, Fraktallar Yansıma, Öteleme, Dönme Fraktallar 2. Bölüm: Üslü Sayılar Tam

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

OpenGL Uygulamaları. 1. Giriş. 2. OpenGL 1. Giriş OpenGL Uygulamaları 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 geliştirme

Detaylı

Sınav tarihi : Süre : 60 dak. c) En başta #include yazılmamıştır. c) zt d) Pi e) X0

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 14.04.2015 Süre : 60 dak. 1. Tür dönüşümleri... olmak üzere iki

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ı

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz. Ön bilgi: Dizi tanımlayabilmeli. foreach deyimi bilinmeli. Rastgele sayılar (Random) bilinmeli. 1. Aşağıda tamsayı tipinde iki boyutlu bir dizinin nasıl tanımlandığı, bir fonksiyona parametre olarak nasıl

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ı

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ı

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ı

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir. MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz

Detaylı

DÜZLEMDE GERİLME DÖNÜŞÜMLERİ

DÜZLEMDE GERİLME DÖNÜŞÜMLERİ 3 DÜZLEMDE GERİLME DÖNÜŞÜMLERİ Gerilme Kavramı Dış kuvvetlerin etkisi altında dengedeki elastik bir cismi matematiksel bir yüzeyle rasgele bir noktadan hayali bir yüzeyle ikiye ayıracak olursak, F 3 F

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ı

R ile Programlamaya Giriş ve Uygulamalar

R ile Programlamaya Giriş ve Uygulamalar R ile Programlamaya Giriş ve Uygulamalar İçerik R ye genel bakış R dili R nedir, ne değildir? Neden R? Arayüz Çalışma alanı Yardım R ile çalışmak Paketler Veri okuma/yazma İşleme Grafik oluşturma Uygulamalar

Detaylı

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe

Detaylı

Elektromanyetik Dalga Teorisi

Elektromanyetik Dalga Teorisi Elektromanyetik Dalga Teorisi Ders-2 Dalga Denkleminin Çözümü Düzlem Elektromanyetik Dalgalar Enine Elektromanyetik Dalgalar Kayıplı Ortamda Düzlem Dalgalar Düzlem Dalgaların Polarizasyonu Dalga Denkleminin

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

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

Programlama Dilleri 1. Ders 4: Diziler

Programlama Dilleri 1. Ders 4: Diziler Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları

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ı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi

Detaylı

Nokta uzayda bir konumu belirtir. Noktanın 0 boyutlu olduğu kabul edilir. Herhangi bir büyüklüğü yoktur.

Nokta uzayda bir konumu belirtir. Noktanın 0 boyutlu olduğu kabul edilir. Herhangi bir büyüklüğü yoktur. Üç Boyutlu Geometri Nokta (Point,Vertex) Nokta uzayda bir konumu belirtir. Noktanın 0 boyutlu olduğu kabul edilir. Herhangi bir büyüklüğü yoktur. Kartezyen Koordinat Sistemi Uzayda bir noktayı tanımlamak

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

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ı

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ı

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ı

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

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ı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA BLM-112 PROGRAMLAMA DİLLERİ II Ders-8 Dosya İşlemleri-1 Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Giriş Değişken ve dizilerde tutulan değerler programın çalışması

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C

Detaylı

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak:  Published by Juan Soulié Kullanılacak kaynak: http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié C++ Nedir? Arttırılmış C demektir ve C dilinin geliştirilmiş halini yansıtır. C++ öğrenmeden önce herhangi bir programlama

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ı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar

Detaylı

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ C PROGRAMLAMA DİLİ C Programlama Dilinin Temelleri C Programlama Dili'ni popüler kılan önemli nedenler aşağıda listelenmiştir: C, güçlü ve esnek bir dildir. C ile işletim sistemi veya derleyici yazabilir,

Detaylı

FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI

FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI FONKSİYONLARIN TABLO ŞEKLİNDE HESAPLANMASI Bu kısımda bir fonksiyon değerlerinin tablo şeklinde hesaplanması incelenecektir. İncelenecek fonksiyon y=f(x) şeklinde bir değişenli veya z=f(x,y) şeklinde iki

Detaylı