BİL 220 Sistem Programlamaya Giriş

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

Download "BİL 220 Sistem Programlamaya Giriş"

Transkript

1 Öğrenci Adı Soyadı: Öğrenci Numarası: S S S S4 S Toplam Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 0 Sistem Programlamaya Giriş. Ara Sınav Tarih: Mayıs 0 Süre: 0 dak. Sınava başlamadan önce aşağıda yazılanları mutlaka okuyunuz! Bu sınav kapalı kaynak bir sınavdır. Yani sınav süresince ilgili ders kitapları veya ders notlarınızdan faydalanmanız yasaktır. Size yardımcı olması açısından sonraki sayfada bazı Intel IA/x8-4 Assembly komutlarının söz dizimleri ve diğer bazı ilgili tanımlar verilmiştir. Sınavda kopya çekmek yasaktır. Kopya çekmeye teşebbüs edenler hakkında ilgili idare işlemler kesinlikle başlatılacaktır. Her bir sorunun toplam ağırlığı soru numarasının ardında parantez içinde belirtilmiştir. Sınav toplam 0 puan üzerinden değerlendirilecektir. Sınav bu kapak sayfası dahil toplam sayfadan oluşmaktadır. Lütfen kontrol ediniz! BAŞARILAR! Sayfa

2 Sıçrama İşlemleri Aritmetik İşlemler Sıçrama Koşul Format İşlem jmp addl Src,Dest Dest = Dest + Src je ZF subl Src,Dest Dest = Dest - Src jne ~ZF imull Src,Dest Dest = Dest * Src js SF sall Src,Dest Dest = Dest << Src jns ~SF sarl Src,Dest Dest = Dest >> Src jg ~(SF^OF)&~ZF shrl Src,Dest Dest = Dest >> Src jge ~(SF^OF) xorl Src,Dest Dest = Dest ^ Src jl (SF^OF) andl Src,Dest Dest = Dest & Src jle (SF^OF) ZF orl Src,Dest Dest = Dest Src ja ~CF&~ZF incl Src Dest = Dest + jb CF decl Src Dest = Dest - negl Src Dest = - Dest notl Src Dest = ~ Dest Bellek İşlemleri Format (Rb, Ri) D(Rb, Ri) (Rb, Ri, S) İşlem Mem[Reg[Rb]+Reg[Ri]] Mem[Reb[Rb]+Reg[Ri]+D] Mem[Reg[Rb]+S*Reg[Ri]] Yazmaçlar (Registers) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8%7%%%%%%%%%%%0% %rax %eax %ax %ah %al Return value Linux Yığıt (Stack) Yapısı %rbx %rcx %ebx %bx %bh %bl %ecx %cx %ch %cl Callee saved Argument #4 Caller Frame% %rdx %rsi %rdi %edx %dx %dh %dl %esi %si %sil %edi %di %dil Argument # Argument # Argument # %ebp Arguments% Return%Addr% Old%%ebp% %rbp %rsp %r8 %r9 %ebp %bp %esp %sp %r8d %r8w %r9d %r9w %bpl %spl %r8b %r9b Callee saved Stack Pointer Argument # Argument # Saved Registers + Local Variables% %r0 %r %r %r0d %r0w %rd %rw %rd %rw %r0b %rb %rb Reserved Used for linking Callee saved %esp Argument Build% %r %rd %rw %rb Callee saved %r4 %r4d %r4w %r4b Callee saved %r %rd %rw %rb Callee saved Sayfa

3 Özel Hizalama Durumları (Intel IA) byte: char,... sınırlandırma yok bytes: short,... en düşük bit adresi 0 4 bytes: int, float, char *,... en düşük bit adresi 00 8 bytes: double,... Windows: en düşük bit adresi 000 Linux: en düşük bit adresi 00 C Veri Tipi IA- X8-4 char short int 4 4 long 4 8 long long 8 8 float 4 4 double 8 8 long double 0/ 0/ pointer 4 8 bytes: long double Windows & Linux: en düşük bit adresi 00 Özel Hizalama Durumları (Intel x8-4) byte: char,... sınırlandırma yok bytes: short,... en düşük bit adresi 0 4 bytes: int, float,... en düşük bit adresi 00 8 bytes: double, char *,... Windows & Linux: en düşük bit adresi 000 bytes: long double Linux: en düşük bit adresi 000 Bayt Sıralama (Byte Ordering) 0x00 adresinde 4-bayt lık değişken 0x047 Big Endian En anlamsız bayt en yüksek adreste 0x00 0x0 0x0 0x0! 0% % 4% 7% Little Endian En anlamsız bayt en düşük adreste 0x00 0x0 0x0 0x0! 7% 4% % 0% Kayan noktalı sayı (floating point) Bias = k- Sayfa

4 Soru. (0 puan) Arabellek taşması (Buffer overflow). Buflab ödevinizde gets fonksiyonunun açığından yararlanarak çeşitli arabellek taşma saldırıları nasıl gerçekleştirilir onu deneyimlediniz. Ancak pratikte gcc derleyicisi, gets fonksiyonunun kullanımını tespit ettiğinde programcıyı bu fonksiyonun güvenli olmadığı konusunda uyarmaktadır. Kamil, kodlama yaparken gets gibi güvenli olmayan fonksiyonlardan uzak durduğu sürece arabellek taşma saldırılarından korunduğunu düşünmektedir. Aşağıda Kamil in yazdığı bir kod verilmiştir. NOT: Bu kodun -bit Little-Endian bir makinede bir uyarı mesajı almadan hatasız derlendiğini varsayınız. #include <stdio.h> void sifre_gir() { char sifre[8]; scanf("%s",sifre); void hodrimeydan() { printf("acigimi buldunuz!!!\n"); int main(void) { printf("sifre: "); sifre_gir(); return 0; test.c Bu soruda Kamil in bu düşüncesinin yanlış olduğunu hodrimeydan fonksiyonuna bir çağrı gerçekleştirerek kanıtlamanız istenmektedir. Kamil in test programını yarattığı klasörün altında çalıştığınızı ve komut satırında aşağıdaki komut zincirini çalıştırdığınızı düşünün../hexraw < exploit./test burada exploit saldırıda kullandığınız kodun onaltılı sayı düzenindeki karşılığını içeren bir metin dosyasıdır. Bu güvenlik açığını Kamil e kanıtlamak için exploit dizisinin içeriği ne olmalıdır? NOT: Cevabınızda peşi sıra gelen n rastgele bayt için [n] gösterimini kullanabilirsiniz. Sayfa 4

5 test programının objdump ile elde edilen Assembly çıktısı (sadece ilgili bölümler): <hodrimeydan>: : push %ebp 80484: 89 e mov %esp,%ebp : 8 ec 8 sub $0x8,%esp 80484a: c movl $0x804890,0x4(%esp) : : c movl $0x,(%esp) : e8 f fe ff ff call < printf_chk@plt> e: c9 leave f: c ret <sifre_gir>: : push %ebp : 89 e mov %esp,%ebp : 8 ec 8 sub $0x8,%esp : 8d 4 f0 lea -0x0(%ebp),%eax : mov %eax,0x4(%esp) d: c a movl $0x8048a,(%esp) : e8 fb fe ff ff call < isoc99_scanf@plt> : c9 leave a: c ret b <main>: b: push %ebp c: 89 e mov %esp,%ebp e: 8 e4 f0 and $0xfffffff0,%esp 80484a: 8 ec 0 sub $0x0,%esp 80484a4: c a movl $0x8048a8,0x4(%esp) 80484ab: ac: c movl $0x,(%esp) 80484b: e8 bc fe ff ff call < printf_chk@plt> 80484b8: e8 c ff ff ff call <sifre_gir> 80484bd: b mov $0x0,%eax 80484c: c9 leave 80484c: c ret Sayfa

6 Soru. (4 puan) Bellek sıradüzeni (The memory hierarchy). Bu soruyu yanıtlarken üzerinde çalıştığınız sistemin -bit bir Linux makinesi olduğunu ve baytlık bloklara sahip 4 kümeden oluşan direkt eşlenen (direct-mapped) bir önbellek kullandığını varsayınız. (a) ( puan) u dizisinin 0x0 adresinden başladığını ve önbelleğin başlangıçta soğuk (boş) olduğunu kabul ederek; int i,j; float u[8][8],ux; for (i = ; i < 7; i++) for (j = ; j < 7; j++) ux = 0.*(u[i][j+]-u[i][j-]); programının çalıştırılması sırasında u dizisinin her bir elemanına yapılan ilk erişimin bir rastlama (hit) (R) veya ıskalama (miss) (I) ile sonuçlanıp sonuçlanmadığını aşağıdaki tablo üzerinde işaretleyerek gösteriniz. Ayrıca u dizisine yapılan tüm erişimleri göz önüne alarak ıslama oranını hesaplayınız. j=0 4 7 i=0 4 7 Iskalama oranı = Sayfa

7 (b) ( puan) u dizisinin yine 0x0 adresinden başladığını ve önbelleğin başlangıçta soğuk olduğunu kabul ederek; int i,j; float u[8][8],uy; for (i = ; i < 7; i++) for (j = ; j < 7; j++) uy = 0.*(u[i+][j]-u[i-][j]); programının çalıştırılması sırasında u dizisinin her bir elemanına yapılan ilk erişimin bir rastlama (hit) (R) veya ıskalama (miss) (I) ile sonuçlanıp sonuçlanmadığını aşağıdaki tablo üzerinde işaretleyerek gösteriniz. Ayrıca u dizisine yapılan tüm erişimleri göz önüne alarak ıslama oranını hesaplayınız. j=0 4 7 i=0 4 7 Iskalama oranı = Sayfa 7

8 Soru. ( puan) Bağlama (Linking). Aşağıda main.c ve bubblesort.c dosyalarının içerikleri belirtilmiştir: #define SIZE 0 main.c void bubblesort( float *array, int size, int order ); int main(int argc, char** argv) { int i,order,n; float a[size]; sscanf(argv[], "%d", &order); sscanf(argv[], "%d", &N); for(i=0;i<n;i++) scanf("%f", &a[i]); bubblesort(a,n,order); return 0; extern int formatted; bubblesort.c static void printarray(float* array, int SIZE) { int i; for (i = 0; i<size; i++) if (formatted) printf("%.f ", array[i]); else printf("%f ", array[i]); printf("\n"); void bubblesort(float *array, int size, int order) { int pass,j; printarray(array, size); for (pass=0; pass<size-; pass++) for (j=0; j<size-; j++) if (order==0) { if (array[j]>array[j+]) swap(&array[j], &array[j+]); else { if (array[j]<array[j+]) swap(&array[j], &array[j+]); printarray(array, size); Yukarıdaki tanımlara ek olarak helper.c adlı dosyada swap adlı fonksiyonun ve formatted adlı değişkeninin tanımlandığını int formatted=; void swap( float *elementptr, float *elementptr); varsayarak aşağıdaki soruları yanıtlayınız. Sayfa 8

9 (a) (4 puan) Aşağıdaki sembol tablolarında verilen her ismin karşısına o sembolün yerel veya global ve kuvvetli veya zayıf olup olmadığını belirtiniz. Bu özelliklerin verilen bir isim için geçerli olmadığını düşünüyorsanız ilgili kutuya çarpı atabilirsiniz. Örneğin; verilen sembolün sembol tablosunda yer almaması gerektiğini düşünüyorsanız ilgili satırdaki ilk kutuya çarpı atmanız yeterlidir, veya sembolün global olmadığını düşüyorsanız (ve dolayısıyla zayıf veya güçlü olamıyorsa) ilgili satırdaki ikinci kutuya çarpı atabilirsiniz. NOT: C programlama dilinde harici fonksiyonları beyan etme zorunluluğu yoktur! main.c yerel / global zayıf / güçlü bubblesort main order bubblesort.c yerel / global zayıf / güçlü formatted printarray bubblesort swap (b) ( puan) helper.c dosyasının derlenip helper.a adlı statik bir kütüphanede arşivlendiğini varsayınız. Bu durumda altta sıralanan gcc komutlarının çıktısı aşağıdaki olasılıklardan hangisi olmaktadır? (i) Derleme ve bağlama aşamaları düzgün bir şekilde gerçekleşir. (ii) Tanımsız referanstan (undefined reference) dolayı bağlama aşamasında hata alınır. (iii) Çoklu tanımdan (multiple definitions) dolayı bağlama aşamasında hata alınır. Komut gcc -o sort main.c bubblesort.c helper.a Sonuç gcc -o sort helper.a main.c bubblesort.c gcc -o sort helper.a bubblesort.c main.c gcc -o sort bubblesort.c helper.a main.c gcc -o sort bubblesort.c main.c helper.a Sayfa 9

10 (c) ( puan) Aşağıda bubblesort.o nesne dosyasının objdump ile elde edilen Assembly çıktısının printarray ile ilgili bölümü verilmiştir. Bu kod üzerinde yer değiştirebilen (relocatable) kısımları işaretleyiniz: <printarray>: 0: push %ebp : 89 e mov %esp,%ebp : 8 ec 8 sub $0x8,%esp : c7 4 fc movl $0x0,0xfffffffc(%ebp) d: eb 4 jmp 4 <printarray+0x4> f: a mov 0x0,%eax 4: 8 c0 test %eax,%eax : 74 d je <printarray+0x> 8: 8b 4 fc mov 0xfffffffc(%ebp),%eax b: c e0 0 shl $0x,%eax e: add 0x8(%ebp),%eax : d9 00 flds (%eax) : dd c 4 04 fstpl 0x4(%esp) 7: c movl $0x0,(%esp) e: e8 fc ff ff ff call f <printarray+0xf> : eb b jmp 0 <printarray+0x0> : 8b 4 fc mov 0xfffffffc(%ebp),%eax 8: c e0 0 shl $0x,%eax b: add 0x8(%ebp),%eax e: d9 00 flds (%eax) 40: dd c 4 04 fstpl 0x4(%esp) 44: c movl $0x,(%esp) 4b: e8 fc ff ff ff call 4c <printarray+0x4c> 0: 8 4 fc 0 addl $0x,0xfffffffc(%ebp) 4: 8b 4 fc mov 0xfffffffc(%ebp),%eax 7: b 4 0c cmp 0xc(%ebp),%eax a: 7c b jl f <printarray+0xf> c: c a movl $0xa,(%esp) : e8 fc ff ff ff call 4 <printarray+0x4> 8: c9 leave 9: c ret Sayfa 0

11 Soru 4. (0 puan) Kural dışı durumlarda komut akışı (Exceptional control flow). NOT: Bu soruyu yanıtlarken tüm fonksiyonların normal bir şekilde sonlandığını ve printf fonksiyonunun arabellek kullanmadığını (unbuffered olduğunu) varsayınız. (a) ( puan) Aşağıdaki verilen C programının üretebileceği olası çıktıları nelerdir? int main() { pid_t pid, pid; printf("0\n"); if ((pid = fork()) > 0) { printf("\n"); if ((pid = wait(null)) > 0) { printf("\n"); else { printf("\n"); if ((pid = fork()) == 0) { printf("4\n"); exit(0); else { printf("\n"); printf("\n"); return 0; Aşağıdaki tabloda verilen bir çıktının olası olduğunu düşünüyorsanız ilgili sütunu Evet, olmadığını düşünüyorsanız Hayır olarak işaretleyiniz Sayfa

12 (b) ( puan) Aşağıda verilen C programının üreteceği olası çıktılar nelerdir? NOT: kill fonksiyonun ilk argümanı 0 ise. argümanda belirtilen sinyal o anki işlemin (current process) dahil olduğu grup içindeki bütün diğer işlemlere gönderilir. void handler(int sig) { printf("%d \n", pid); wait(null); int main() { int pid; setpgid(0,0); signal(sigchld, handler); printf("leyla\n"); if((pid = fork()) > 0) { printf("mecnun\n"); else { kill(0, SIGCHLD); printf("ismail\n"); exit(0); printf("erdal\n"); return 0; Aşağıdaki tabloda verilen bir çıktının olası olduğunu düşünüyorsanız ilgili sütunu Evet, olmadığını düşünüyorsanız Hayır olarak işaretleyiniz. leyla ismail mecnun erdal leyla ismail mecnun erdal leyla erdal mecnun ismail leyla mecnun erdal ismail leyla mecnun erdal ismail Sayfa

13 Soru. ( puan) Okuma ödevleri. (a) ( puan) Yer değiştirebilen kod (relocatable code) kavramının faydası, çeşitli altbirimlerden oluşan bir programın belleğin herhangi bir yerine yüklenip buradan çalıştırılabilmesidir. Bu özellik sayesinde bir altbirime ait kodun sadece belli bir adresten başlatılabilme gereksinimi ortadan kalkmaktadır. Bu yer değiştirebilen kod kavramı ne kadar eskiye dayanmaktadır? NOT: İlgili bilgisayar sisteminin veya bilimadamının adını belirtmeniz yeterlidir. (b) (8 puan) İlk İnternet solucanı olan Morris solucanı, arabellek taşımından kaynaklı bir güvenlik açığından yararlanarak yüklendiği sistemi kötücül amaçları doğrultusunda kullanmıştır. Bu solucan, aynı zamanda belirli aralıklarla kendisi üzerinde bir fork sistem çağrısı gerçekleştirmekte ve bunun ardından üst komut işlemini (parent process) öldürmektedir. Sizce solucanın bu tarz bir yol izlemesinin altında yatan neden(ler) nedir? Kısaca açıklayınız. Sayfa

BBM 341 Sistem Programlama

BBM 341 Sistem Programlama Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü BBM 341 Sistem Programlama Ara Sınav Tarih: 19 Kasım 2012 Süre: 105 dak. Sınava başlamadan

Detaylı

BİL 220 Sistem Programlamaya Giriş

BİL 220 Sistem Programlamaya Giriş Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 S6 S7 Toplam Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 220 Sistem Programlamaya Giriş Ara Sınav 1 Tarih: 29 Mart 2012 Süre: 140 dak.

Detaylı

BİL 220 Sistem Programlamaya Giriş

BİL 220 Sistem Programlamaya Giriş Öğrenci Adı Soyadı: Öğrenci Numarası: S S2 S3 S4 S5 S6 S7 S8 Toplam Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 220 Sistem Programlamaya Giriş Final Sınavı Tarih: 30 Mayıs 202 Süre: 35 dak.

Detaylı

BİL 220 Sistem Programlamaya Giriş

BİL 220 Sistem Programlamaya Giriş Öğrenci Adı Soyadı: Öğrenci Numarası: S S2 S3 S4 S5 S6 S7 S8 Toplam Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü BİL 220 Sistem Programlamaya Giriş Final Sınavı Tarih: 30 Mayıs 202 Süre: 35 dak.

Detaylı

BBM 341 Sistem Programlama

BBM 341 Sistem Programlama Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü BBM 341 Sistem Programlama Ara Sınav Tarih: 19 Kasım 2012 Süre: 105 dak. Sınava başlamadan

Detaylı

C İLE BUFFER OVERFLOW-2

C İLE BUFFER OVERFLOW-2 C İLE BUFFER OVERFLOW-2 İlk yazımızda buffer overflow un ne olduğundan, hangi amaçla yapıldığından bahsettik. Bu yazımızda önce güvenlik yarışmalarının genel formatı olan CTF(Capture The Flag) hakkında

Detaylı

Linux Assembly Programlamaya Giriş

Linux Assembly Programlamaya Giriş Linux Assembly Programlamaya Giriş Barış Metin Konular gcc / gas / ld Intel ve AT&T söz dizimleri gdb INT 80H C kütüphane fonksiyonları Stack Frame Örnek

Detaylı

Komut Seti Mimarisi (ISA)

Komut Seti Mimarisi (ISA) Komut Seti Mimarisi (ISA) BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğretim Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted

Detaylı

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes Bölüm 3: Adresleme Modları Chapter 3: Addressing Modes 3 1 Veri Adresleme Modları MOV komutu veriyi bir bellek satırından diğer bellek satırına yada yazaca kopyalar Kaynak (source) verilin okunacağı belleğin

Detaylı

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN Bahar Dönemi Öğr.Gör. Vedat MARTTİN 8086/8088 MİKROİŞLEMCİSİ İÇ MİMARİSİ Şekilde x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci temel iki ayrı çalışma

Detaylı

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2013-2014 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 18.03.2014 Sınav Süresi: 50 dakika

Detaylı

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

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ı

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek 8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek kullanımını tanımlamak. Korumalı modda belleğe erişim yöntemlerini

Detaylı

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı 11-2009 Ver:01

Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı 11-2009 Ver:01 Bilgisayar i Mimarisii i Big Endian & Little Endian K.Atilla Toker İzmir Üniversitesi Meslek Yüksek Okulu Bilgisayar Programcılığı 11-2009 Ver:01 İZMIR ÜNIVERSITESI İZMIR ÜNIVERSITESI MYO BILGISAYAR PROGRAMLAMA

Detaylı

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR GÖMÜLÜ PROGRAMLAMA Selçuk Üniversitesi Bilgisayar Mühendisliği Bölümü 2012-2013 Bahar Dönemi Doç.Dr.Erkan ÜLKER 1 İçerik 1. Adresleme Modları 2. İskelet Program

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ı

Komut Seti Mimarisi (ISA)

Komut Seti Mimarisi (ISA) Komut Seti Mimarisi (ISA) BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğretim Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted

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ı

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı

Detaylı

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap

Detaylı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

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ı

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ı

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar

BLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar 1 BLM 112- Programlama Dilleri II Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar Dr. Öğr. Üyesi Caner Özcan Kendi yolculuğumuzu yapmak için buradayız; bu yolculukta kendimiz

Detaylı

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 1105- Algoritma ve Programlama I Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika Derse Kayıtlı Olduğunuz Grubun Öğretim Üyesini (X) ile

Detaylı

MTM 305 MĠKROĠġLEMCĠLER

MTM 305 MĠKROĠġLEMCĠLER KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ KONTROL KOMUTLARI Program Kontrol Komutları Program akıģını bir

Detaylı

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar Fonksiyon Tanımı Karmaşıkveuzunprogramları,

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ı

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2014-2015 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 2. Ara Sınav 09.04.2015 Sınav Süresi: 90 dakika

Detaylı

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma Özet DERS 5 Çarpma, Bölme ve Dallanmalar Öğr. Gör. Eren ERENER AİBÜ/DMYO Neredeyiz Çarpma Bölme Karşılaştırma Jump komutları Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma Kaydediciler ve bellek

Detaylı

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve

Detaylı

Final Sınavı Soruları Güz, Süre: 90 Dakika

Final Sınavı Soruları Güz, Süre: 90 Dakika Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM 1105- Algoritma ve Programlama I Final Sınavı Soruları Güz, 2018-2019 Süre: 90 Dakika Derse Kayıtlı Olduğunuz Grubun Öğretim Üyesini (X)

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ı

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI 07.07.2003 Burak DEMİRKOL Atılım BOY [v 1.0] Özet : Bu makalede CSD İşletim sisteminin sistem fonksiyonlarının user mod dan (ring 3) kernel mod

Detaylı

Fonksiyonlar -Genel Test- A

Fonksiyonlar -Genel Test- A 1 Fonksiyonlar -Genel Test- A 1. C dilinde fonksiyon bildirimi için hangisi gereklidir? (a) Fonksiyonun döndüreceği veri tipi (b) Fonksionun adı (c) Fonksiyon parantezi ( ) (d) Hepsi 2. C dilinde fonksion

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti X86 tabanlı mikroişlemcilerin icra ettiği makine kodları sabit olmasına rağmen, programlama dillerinin komut ve ifadeleri farklı olabilir. Assembly programlama dilininde

Detaylı

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri 7.0. Amaç Ve Kapsam Deneyde C dilinde kullanılan fonksiyon tanımlama ve parametre aktarım yöntemleri hakkında bilgi verilecektir. 7.1. Deneyden

Detaylı

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1

TEMPLATES. Binnur Kurt kurt@cs.itu.edu.tr. Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. C++ ile Nesneye Dayalı Programlama 1 PARAMETRİKÇOKŞEKİLLİLİK: TEMPLATES Binnur Kurt kurt@cs.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi C++ ile Nesneye Dayalı Programlama 1 Sınıf Yapısı Kalıtım Çok Şekillilik Templates

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ı

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Alt Programlar (Procedure) Büyük programları tek bir kod bloğu

Detaylı

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 S6 S7 Toplam HACETTEPE ÜNİVERSİTESİ 2012-2013 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 25.04.2013 Sınav Süresi:

Detaylı

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD 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 : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

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ı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar 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

Detaylı

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers) 5. İşaretç iler (pointers) C dilinin öyle bir özelliği vardır ki, programlama dilleri arasında kendisini diğerlerinden ayıran bir fark olarak sunulur: işaretçiler. Aslında, bazı diğer dillerde de direkt

Detaylı

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

C Programlama Dilinde Değişkenler

C Programlama Dilinde Değişkenler C Programlama Dilinde Değişkenler Değişkenler bir programlama dilinin en önemli bileşenlerindendir. En basit bir aritmetik işlemin bile kullanıcının girdiği değerleri saklamak için çeşitlik bellek alanlarına

Detaylı

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Ekran ve Klavye İşlemleri EKRAN İŞLEMLERİ Ekrana yazdırma işlemleri

Detaylı

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır stringh floath Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır 32 Sorgulama İfadesi - if Deyimi (5 Hafta) Bu deyim sorgulamanın tek basamakta yapılacağı yerlerde

Detaylı

Bölüm 10. Altprogramları Uygulamak

Bölüm 10. Altprogramları Uygulamak Bölüm 10 Altprogramları Uygulamak Altprogramları Uygulamak -- Başlıklar Çağrıların genel anlam analizi Basit altprogramların gerçekleştirilmesi Yığıt dinamik yerel değişkenlerle altprogramları uygulamak

Detaylı

OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI

OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI 23.01.2016 1. (6 puan) İnternetten, kod.txt isimli bir dosyayı Linux kurulu bir

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Adım Adım C-II. Eksik kalmış konular

Adım Adım C-II. Eksik kalmış konular Adım Adım C-II Eksik kalmış konular Bu dersin amacı Bu derste; değişkenler, sabitler ve operatörler ile fonksiyonlar konusunun detayları anlatılacaktır. Ders bitiminde; Daha etkin programlar yazma becerisinin

Detaylı

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Toplama (Addition) Toplama (ADD) belirtilen iki yazaç veya yazaç ile belleğin içeriğini toplar ve kullanılan adresleme moduna göre sonucu belirtilen yazaca

Detaylı

INTEGER OVERFLOW ***************************************************************/

INTEGER OVERFLOW ***************************************************************/ INTEGER OVERFLOW BELGE HAKKINDA Bu belge "GNU Free Documentation Licence" ile kaynak gösterilmek ve önceden yazarından izin alınmak kaydıyla yeniden yayınlanabilir. Bu belgedeki eksik, yanlış ya da geliştirilmesi

Detaylı

Hafta 13 Fonksiyonlar

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

Detaylı

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ http://www.cplusplus.com/doc/tutorial/ Published by Juan Soulié DERSİN WEB SİTESİ: http://nucleus.istanbul.edu.tr/~bilprog2/ DeğiĢkenler ve Data Türleri

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ı

C Programlama printf() Fonksiyonu

C Programlama printf() Fonksiyonu C Programlama printf() Fonksiyonu Standart C kütüphanesinin bir parçası olan printf() C Programlama Dili'nin genel amaçlı çıktı alma fonksiyonudur. Girdi ve çıktı deyimleri gerçekte C dilinin bir parçası

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I Bilgisayar Programlamaya Giriş Temel Programlama Kavramları Programlama Dilleri Program Oluşturma Teknikleri C++ Programlama Diline Giriş Temel Programlama Kavramları Bilgisayar

Detaylı

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ Prof. Dr. Necmettin Kaya C PROGRAMLAMA DİLİ ÖZELLİKLERİ C programlama dili, 1972 yılında Bell Labortuvarı nda Dennis Ritchie tarafından geliştirilmiştir.

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri BLM-111 PROGRAMLAMA DİLLERİ I Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Temel Veri Tipleri C dilinde

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ı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

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

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

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ı

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar Adresleme Modları 1 Adresleme Modları İşlenenin nerede olacağını belirtmek için kullanılırlar. Kod çözme aşamasında adresleme yöntemi belirlenir ve işlenenin nerede bulunacağı hesaplanır. Mikroişlemcide

Detaylı

Temel Giriş/Çıkış Fonksiyonları

Temel Giriş/Çıkış Fonksiyonları Temel Giriş/Çıkış Fonksiyonları Temel giriş/çıkış fonksiyonları, bütün programla dillerinde mevcuttur. Bu tür fonksiyonlar, kullanıcıya ekrana veya yazıcıya bilgi yazdırmasına, ve bilgisayara klavyeden

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

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ı

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak. Selçuk Üniversitesi Mühendislik-Mimarlık Fakültesi Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :26.11.2012, 60 dak. Dikkat!!! Soru kitapçığında

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ı

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı

BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı MALTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSİĞİ BÖLÜMÜ BİL 423 Bilgisayar Mimarisi 1. Ara Sınavı Öğrenci Adı Soyadı : Öğrenci no : Akademik yıl : 2015-2016 Dönem : Güz Tarih : 4.11.2015 Sınav yeri : MZ-4 Sınav

Detaylı

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları 1. MACRO YAZDIR HEXSAYI MOV AX,HEXSAYI ; sayi 10 a bolunerek her seferinde kalan MOV DL,10 ; alinmistir. MOV CL,0 DONGU: DIV DL MOV BL,AH XOR AH,AH PUSH BX ; stack'a once birler basamagi atilir CMP AL,10

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ı

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf("%d", **pp+2); }

void main() { int a[] = {1, 2, 3, 4, 5, 6}; int *p=&a[2]; int **pp=&p; printf(%d, **pp+2); } Adı Soyadı Öğrenci No 1 (25p) 2 (25p) +10p 3 (25p) 4 (25p) Toplam (100p) Açıklamalar: Öğrenciler yanlarında hatırlatma amacıyla sadece bir yüzüne C fonksiyonlarını açıkladıkları, kullanımlarını örnekledikleri

Detaylı

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların

Detaylı

Mikrobilgisayar Mimarisi ve Programlama

Mikrobilgisayar Mimarisi ve Programlama Mikrobilgisayar Mimarisi ve Programlama 2. Hafta Bellek Birimleri ve Programlamaya Giriş Doç. Dr. Akif KUTLU Ders web sitesi: http://www.8051turk.com/ http://microlab.sdu.edu.tr Bellekler Bellekler 0 veya

Detaylı

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10 ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Esnek Argümanlı Fonksiyonlar main() Fonksiyonuna Parametre Aktarımı

Detaylı

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ HAZIRLAYAN BEDRİ SERTKAYA bedri@bedrisertkaya.com Sistem Uzmanı CEH EĞİTMENİ BUFFER OVERFLOW: Buffer Nedir? Buffer yani tampon alan donanım aygıtları veya farklı hızlarda farklı öncelikleri olan 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ı

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ı

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ı

Giris {\} /\ Suhap SAHIN Onur GÖK

Giris {\} /\ Suhap SAHIN Onur GÖK Giris 0 \ /\ Suhap SAHIN Onur GÖK Fonksiyon C: Ana Fonksiyon(main) main() main() C: Ana Fonksiyon(main) main() main() C: Ana Fonksiyon(main) Giris? main() Çıkıs main() C: Ana Fonksiyon(main) void main()

Detaylı

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I 1 BLM 111 ALGORİTMA VE PROGRAMLAMA I ÇOK BOYUTLU DİZİLER, YAPILAR [MULTIDIMENSIONAL ARRAYS, STRUCTURES] ÇOK BOYUTLU DİZİLER Çok boyutlu diziler tanımlayabiliriz. İki boyutta, çok boyutlu diziler bellek

Detaylı

Başkent Üniversitesi Mühendislik Fakültesi Güz Yarıyılı BİL 101-Bilgisayar Yazılımı I Arasınavı

Başkent Üniversitesi Mühendislik Fakültesi Güz Yarıyılı BİL 101-Bilgisayar Yazılımı I Arasınavı Başkent Üniversitesi Mühendislik Fakültesi 2014-2015 Güz Yarıyılı BİL 101-Bilgisayar Yazılımı I Arasınavı Yer Sıra no Sınav Tarihi : 11-11-2014 Sınav Başlama Saati : 09:15 Sınav Süresi : 100 Dakika Öğretim

Detaylı

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3 ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ 2013-2014 BAHAR DÖNEMİ ÖDEV-3 (Son Teslim Tarihi: 06.06.2014 17:30 a kadar ) Teslim: Arş. Gör. Ferhat Bozkurt

Detaylı

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler Ders Özeti Ders Bilgisayarlar Hakkında Mikroişlemci ve Bilgisayar sisteminin yapısı Temel komut işleme süreci x86 kaydedicileri (registers) x86 hafıza temelleri Çevre cihazları x86 assembly diline giriş

Detaylı

Mifare Kart Yazıcı/Okuyucu Modül (MFM-200)

Mifare Kart Yazıcı/Okuyucu Modül (MFM-200) 2012 Mifare Kart Yazıcı/Okuyucu Modül (MFM-200) İstanbul Yazılım ve Elektronik Teknolojileri 01.01.2012 MFM-200 Mifare Kart Yazıcı/Okuyucu Modül Genel Özellikler Ürün Kodu MFM-200 Protokol ISO14443A, ISO15693

Detaylı

Proses. Prosesler 2. İşletim Sistemleri

Proses. Prosesler 2. İşletim Sistemleri 2 PROSESLER Proses Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkinbirdenfazlaprosesolabilir. Görev

Detaylı

PROSESLER. Proses. Proses

PROSESLER. Proses. Proses Proses 2 PROSESLER Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkin birden fazla proses olabilir.

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ı

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya MAK 1005 Bilgisayar Programlamaya Giriş Fonksiyonlar Prof. Dr. Necmettin Kaya 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

Detaylı

16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol

16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol 16 bitlik İşlemciler 16 bitlik işlemciler basit olarak 8 bitlik işlemciler gibi Kaydedici ALU Zamanlama/kontrol Birimlerine sahiptirler. Fakat mimari yapıları çoklu görev (multitasking) ortamına uygun

Detaylı

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri Öğrenci No Ad-Soyad Puan Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri S1) 8086 mikroişlemcisi bitlik adres yoluna ve.. bitlik veri yoluna sahip bir işlemcidir. S2) 8086 Mikroişlemci mimarisinde paralel

Detaylı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER DİZİLER Dizi Nedir? Aynı türden nesnelerin oluşturduğu, bellekte bitişik bir biçimde bulunan veri yapısına dizi denir.mesela alfabe diye bir dizi tanımlarız, harfleri a,b,c,d... diye sıralarız.dizinin

Detaylı

Adı Soyadı : Öğrenci No :

Adı Soyadı : Öğrenci No : Adı Soyadı : Öğrenci No : Soru 1 2 3 4 Toplam Not F.Ü TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖL. YMT111 VİZE SINAVI 2013 2014 Güz (03 Aralık 2013) SORULAR Toplam 4 soru 110 Puan, cevaplarınızı soru

Detaylı

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN

BLM111 Programlama Dilleri I. Hafta 10 Diziler. Yrd. Doç. Dr. Caner ÖZCAN BLM111 Programlama Dilleri I Hafta 10 Diziler Yrd. Doç. Dr. Caner ÖZCAN Diziler Bilgisayarlar yardımıyla yapılan işlemlerde, çok sayıda veri girilmesi ve girilen verilerin işlenerek belirli bir sistematiğe

Detaylı