UNIX/Linux ve Windows Sistemlerinde Dizin İçeriğinin Elde Edilmesi

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

Download "UNIX/Linux ve Windows Sistemlerinde Dizin İçeriğinin Elde Edilmesi"

Transkript

1 UNIX/Linux ve Windows Sistemlerinde Dizin İçeriğinin Elde Edilmesi Kaan Aslan 11 Haziran 2007 UNIX/Linux ve Windows sistemlerinde dizinlerle dosyalar tamamen aynı biçimde organize edilir. Dizinlerle dosyalar arasındaki tek fark, dosyalara ilişkin bloklarda dosya bilgileri bulunduğu halde dizinlere ilişkin bloklarda dizin girişlerinin bulunmasıdır. Bazı POSIX sistemlerinde dizinler de dosyalar gibi open fonksiyonuyla açılıp içerikleri read fonksiyonuyla okunabilmektedir. Böyle sistemlerde dizinlerin içerisinde bulunan dosya isimleri ve dosyaların düğüm numaraları normal dosya işlemleriyle elde edilebilir. Fakat dizin girişlerinin veri yapıları dosya sistemine göre bazı farklılıklar gösterebiliyorlar. Yani eğer programcı dizin içeriğini bu biçimde elde edecek olsa read fonksiyonu ile her sisteme göre değişik uzunlukta okumalar yapması ve okunanları değişik biçimlerde yorumlaması gerekecektir. Bundan dolayı UNIX türevi sistemlerin büyük çoğunluğu uzunca bir süredir dizin içeriklerinin doğrudan read fonksiyonlarıyla okunabilmesine izin vermiyorlar [1]. Dizin içeriklerinin taşınabilir bir biçimde elde edilmesi için prototipleri <dirent.h> içerisinde bulunan opendir, readdir, seekdir, rewinddir, telldir ve closedir isimli POSIX fonksiyonları kullanılmaktadır. UNIX/Linux sistemlerinde dizin listesini elde etmek için gereken ilk fonksiyon opendir fonksiyonudur. Bu fonksiyona içeriği elde edilecek dizininin yol ifadesi verilir ve fonksiyondan bir handle değeri elde edilir. Bu handle değeri de diğer fonksiyonlara argüman olarak geçirilir. opendir fonksiyonunun prototipini inceleyiniz: DIR *opendir(const char *dirname); Fonksiyon içeriği elde edilecek dizinin yol ifadesini parametre olarak alır. Başarı durumunda DIR isimli bir yapı adresine geri döner. POSIX standartlarında DIR isminin bir tür belirttiği söylenmiştir fakat bunun nasıl bir tür olduğu hakkında bir belirlemede bulunulmamıştır. Programcı elde ettiği bu DIR türünden adresi yalnızca diğer fonksiyonlara parametre olarak geçirmek için kullanır. Yani programcı DIR yapısının içeriğini bilmek zorunda değildir. opendir fonksiyonu başarısız olabilir. Başarısızlık durumunda NULL adresle geri döner. Başarısızlığın tipik nedenleri ve errno değişkeninin aldığı değerler şunlardır: 1

2 EACCESS : Yol ifadesine ilişkin herhangi bir bileşene erişim hakkı yoktur ENAMETOOLONG : Yol ifadesi PATH_MAX değerinden daha uzundur ya da yol ifadesinin bir bileşeni NAME_MAX değerinden daha uzundur. ENOENT : Fonskiyonun paarametresi bir dizini belirtmemektedir ya da boş bir yazıdan oluşmaktadır ELOOP : Sembolik bağlantılardan dolayı döngüsel bir durum oluşmuştur.... :... Hata kodlarında da gördüğünüz gibi opendir fonksiyonuyla bir dizini açabilmeniz için her yol bileşenine ilişkin dizine x hakkınızın olması ( r hakkı gerekmiyor) ve ayrıca hedef dizine de r hakkınızın olması gerekir. Örneğin /usr/include dizinini açabilmeniz için usr ve include dizinleri için x hakkına ve ayrıca include dizini için de ayrıca r hakkına sahip olmalısınız. opendir fonksiyonunu şöyle kullanabilirsiniz: DIR *dir;... if ((dir = opendir("/usr/include")) == NULL) perror("opendir"); opendir fonksiyonuyla dizini açtıktan sonra artık readdir fonksiyonuyla dizin içerikleri elde edilebilir. readdir fonksiyonu her çağrıldığında bir sonraki dizin elemanını verecektir. Prototipini inceleyiniz: struct dirent *readdir(dir *dir); Fonksiyon opendir fonksiyonundan elde edilen handle değerini parametre olarak alır. Başarı durumunda dizin girişine ilişkin bilgilerin bulunduğu dirent isimli bir yapının adresiyle, başarısızlık durumunda NULL değeriyle geri döner. Başarısızlığın iki nedeni olabilir. Birinci ve muhtemel nedeni dizin listesinin sonuna gelinmesidir. Bu durum programcı tarafından normal karşılanmalıdır. İkinci durumda ise daha ciddi bir giriş/çıkış problemiyle karşılaşımıştır. Eğer fonksiyon dizin listesinin sonuna gelmekten dolayı başarısız olduysa errno değişkeninin değeri değişmez. Yok eğer fonksiyon ciddi bir okuma hatasından dolayı başarısız olmuşsa errno değişkenine hata değeri atanır. Hata durumunda errno değişkeninin alabileceği önemli değerler şunlardır: 2

3 EBADF : Fonksiyonun parametresi. ENOENT : Dizin okumasında hata oluşmuştur.... :... errno değişkeninin alabileceği diğer değerler için dökümanlara başvururabilirsiniz. i-node tabanlı sistemlerde dizin girişi tipik olarak dosya ismi ve i-node numarasından oluşmaktadır. dirent yapısı tipik olarak aşağıdaki gibidir: struct dirent char d_name[name_max]; ino_t d_ino; ; POSIX standartlarına göre dirent yapısı daha fazla eleman içerebilir. Fakat en azından dosyanın ismini belirten bir d_name elemanı ile düğüm numarasını belirten bir d_ino elemanının olması gerekir. dirent yapısı da <dirent.h> başlık dosyası içerisinde bildirilmiştir. opendir fonksiyonuyla açılan dizin closedir fonksiyonuyla kapatılmalıdır. closedir fonksiyonunun prototipi de şöyledir: int closedir(dir *dir); Fonksiyon açılan dizine ilişkin handle değeri parametre olarak alır ve açılmış olan dizini kapatır. closedir fonksiyonu başarı durumunda sıfır değerine başarısızlık durumunda -1 değerine geri döner. Dizin doğru bir biçimde açıldıysa kapatılamaması için bir neden yoktur. Bu nedenle fonksiyonun geri dönüş değerini kontrol etmeyebilirsiniz. Başarısızlık durumunda errno değişkeninin alacağı değerler için dökümanlara başvurabilirsiniz. Tıpkı dosyalarda olduğu gibi dizinler de prosesin sonlanmasıyla otomatik olarak kapatılmaktadır. Sonraki örneklerimizde bu nedenle exit fonksiyonuyla prosesi sonlandırmadan önce closedir fonksiyonunu uygulamayacağız. Dizin içerisindeki dosyaların isimlerini tipik olarak aşağıdaki gibi elde edebiliriz: 3

4 /* dirlist1.c */ #include <stdio.h> #include <stdlib.h> void err_sys(const char *msg) perror(msg); fflush(stdout); int main(void) DIR *dir; struct dirent *ent; if ((dir = opendir("/usr/include")) == NULL) err_sys("opendir"); while ((ent = readdir(dir))!= NULL) printf("%s\n", ent->d_name); closedir(dir); return 0; Derlemeyi şöyle yapabilirsiniz: gcc o dirlist1 dirlist1.c Döngünün her yinelenmesinde yeni bir dosyanın bilgileri elde edilmektedir. Nihayet dizin listesi bittiğinde readdir fonksiyonu NULL değerine geri döner ve döngüden çıkılır. Tabi burada yalnızca dizin listesi bittiğinde değil bir giriş/çıkış hatası olduğunda da readdir fonksiyonu NULL ile geri döneceğinden döngüden çıkılacaktır. Giriş/çıkış hatası olasılığını gözardı edebilirsiniz. Çünkü herşeyi düzgün yaptığınız bir durumda böyle bir hatanın ortaya çıkma olasılığı da yoktur. Fakat tam bir hata denetimi sağlamak istiyorsanız başarısızlığın nedenini tespit etmelisiniz. Bunun için readdir fonksiyonunu çağırmadan önce errno değişkenine değer atanmalı, döngü çıkışında bu değere bakılmalıdır. /* dirlist2.c */ #include <stdio.h> #include <stdlib.h> #include <errno.h> 4

5 void err_sys(const char *msg) perror(msg); int main(void) DIR *dir; struct dirent *ent; if ((dir = opendir("/usr/include")) == NULL) err_sys("opendir"); while (errno = 0, (ent = readdir(dir))!= NULL) printf("%s\n", ent->d_name); if (errno) err_sys("readdir"); closedir(dir); return 0; Derleme işlemi şöyle yapılabilir: gcc o dirlist2 dirlist2.c rewinddir fonksiyonu listeleme işlemini baştan başlatmak için kullanılmaktadır. Örneğin, opendir fonksiyonuyla dizini açtıktan sonra listeleme yaptınız, fakat closedir ile dizini kapatmadan bu işlemi bir kez daha yapmak istiyorsunuz. İşte bu durumda rewinddir ile dizinin yeniden başına geçebilirsiniz: void rewinddir(dir *dir); telldir fonksiyonu listeleme sırasında dizinde bulunulan konumu almak için kullanılır: long telldir(dir *dir); Alınan offset çoğu POSIX kütüphanesinde dizin içerisinde o anda bulunulan dosya sırasına ilişkin indeks numarası belirtse de standart genelinde böyle bir garanti verilmemiştir. Yani fonksiyon dizin içerisinde kalınan yeri belirten bir sayı vermektedir fakat bu sayının nasıl elde edileceği derleyicileri yazanların isteğine bırakılmıştır. seekdir fonksiyonu telldir fonksiyonu ile alınan konuma geri dönmek için kullanılmalıdır: 5

6 void seekdir(dir *dir, off_t offset); Fonksiyonun ikinci parametresi telldir fonksiyonundan alınan değeri belirtir. Fonksiyon dizin içerisinde daha önce alınmış pozisyona konumlandırma yapar. Dizin içeriğini listelemek için verdiğimiz bu örneklerde yalnızca dosyaların isimlerini yazdırdık. Peki dosyaların diğer özelliklerini nasıl yazdıracağız? İşte readdir fonksiyonuyla dosyaların düğüm isimlerini elde ettikten sonra stat fonksiyonuyla onların bilgilerini elde edebiliriz. Dizin listesini almakta kullandığımız ls programı da tamamen bu biçimde çalışmaktadır. Aşağıdaki program komut satırı argümanı olarak verilen dizin içerisindeki dosyaları listeliyor, inceleyiniz: /* dirlist3.c */ #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #define MAX_PATH_LEN 1024 void err_sys(const char *msg) perror(msg); int main(int argc, char *argv[]) DIR *dir; struct dirent *ent; struct stat finfo; char path[max_path_len]; int result; if (argc!= 2) fprintf(stderr, "Wrong number of arguments!..\n"); if ((dir = opendir(argv[1])) == NULL) err_sys("opendir"); while (errno = 0, (ent = readdir(dir))!= NULL) snprintf(path, MAX_PATH_LEN, "%s/%s", argv[1], ent->d_name); if (stat(path, &finfo) < 0) err_sys("stat"); 6

7 printf("%-40s", ent->d_name); if (S_ISDIR(finfo.st_mode)) printf("<dir>\n"); else printf("%lu\n", finfo.st_size); if (errno) err_sys("readdir"); closedir(dir); return 0; Derleme işlemini aşağıdaki gibi yapabilirsiniz: gcc o dirlist3 dirlist3.c Programı çalıştırırken komut satırı argümanı olarak listelemek istediğiniz dizini vermelisiniz. Örneğin:./dirlist3 /usr/include Programda önce komut satırı argümanlarının sayısının kontrol edildiğini görüyorsunuz. Sonra opendir fonksiyonu ile dizin açılmış ve döngü içerisinde readdir fonksiyonu ile dizin girişleri okunarak stat fonksiyonu ile dosya bilgilerine erişilmiştir. Burada önemli bir anımsatma yapmak istiyoruz. stat fonksiyonu bizden dosyanın tüm yol ifadesini istemektedir. Halbuki readdir fonksiyonuyla yalnızca dosyanın ismini elde edebiliyoruz. O halde readdir fonksiyonuyla elde ettiğimiz dosya ismini dizinin yol ifadesiyle birleştirerek tüm yol ifadesini elde etmeliyiz. Bu işlem programda şöyle yapılmıştır snprintf(path, MAX_PATH_LEN, "%s/%s", argv[1], ent->d_name); snprintf fonksiyonu sprintf gibidir fakat bir güvenlik parametresi vardır. Fonksiyon en fazla bu sayıda (null karakter dahil olmak üzere) karakteri hedef diziye yazar. Diziyi neden 1024 byte uzunlukta açtığımızı merak edebilirsiniz. Bu kadar geniş açmamızın nedeni çok uzun dosya isimlerinin probleme yol açmasını engellemektir. Bir dosya isminin ya da yol ifadesinin POSIX sistemlerinde en fazla hangi uzunlukta olabileceği konusunun bazı ayrıntıları olduğu için burada kodu karıştırmak istemedir. Aslında her defasında readdir ile elde ettiğimiz dosya ismini yol ifadesiyle birleştirmek yerine prosesin çalışma dizinini de chdir fonksiyonuyla değiştirebilirdik. Bu durumda program aşağıdaki gibi olurdu: /* dirlist4.c */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> 7

8 void err_sys(const char *msg) perror(msg); int main(int argc, char *argv[]) DIR *dir; struct dirent *ent; struct stat finfo; int result; if (argc!= 2) fprintf(stderr, "Wrong number of arguments!..\n"); if ((dir = opendir(argv[1])) == NULL) err_sys("opendir"); if (chdir(argv[1]) < 0) err_sys("chdir"); while (errno = 0, (ent = readdir(dir))!= NULL) if (stat(ent->d_name, &finfo) < 0) err_sys("stat"); printf("%-30s", ent->d_name); if (S_ISDIR(finfo.st_mode)) printf("<dir>\n"); else printf("%lu\n", finfo.st_size); if (errno) err_sys("readdir"); closedir(dir); return 0; Dizin değiştirme işlemi şöyle yapılmıştır: if (chdir(argv[1]) < 0) err_sys("chdir"); Bu işlemden sonra artık prosesin çalışma dizini (current working directory) komut satırında belirtilen dizin olacaktır. Bu nedenle stat fonksiyonuna verilen dosya ismine herhangi bir ekleme yapmaya gerek duyulmamıştır. readdir fonksiyonuyla dosyaların elde edilme sıralarının isme ya da uzunluğa göre olmadığını belirtelim. Dosyalar dizin içerisindeki doğal sıraya göre elde edilmektedir. Doğal sıra, dizin dosyası içerisindeki dizin girişlerinin oluşturulma sırasıdır. Tabi bir 8

9 dosya silindiğinde yeni gelen dosya listenin sonuna değil, silinmiş olan girişin yerine girebilir. Bu durumda elde edilen sıranın dizin girişlerinin yaratılma zamanlarına ilişkin olduğunu bile söyleyemeyiz. Eğer dosyaları isme ya da uzunluğa göre listelemek istiyorsanız önce onları dinamik büyütülen bir dizide toplamanız daha sonra da sıralamanız gerekir. Bu işlemi C++'da aşağıdaki gibi yapabilirsiniz: /* dirlist5.cpp */ #include <iostream> #include <cstdlib> #include <iterator> #include <algorithm> #include <string> #include <vector> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> using namespace std; void err_sys(const char *msg) perror(msg); int main(int argc, char *argv[]) DIR *dir; struct dirent *ent; struct stat finfo; int result; vector<string> dirlist; if (argc!= 2) cerr << "Wrong number of arguments!"; if ((dir = opendir(argv[1])) == NULL) err_sys("opendir"); if (chdir(argv[1]) < 0) err_sys("chdir"); while (errno = 0, (ent = readdir(dir))!= NULL) if (stat(ent->d_name, &finfo) < 0) err_sys("stat"); dirlist.push_back(ent->d_name); 9

10 if (errno) err_sys("readdir"); closedir(dir); sort(dirlist.begin(), dirlist.end()); copy(dirlist.begin(), dirlist.end(), ostream_iterator<string>(cout, "\n")); return 0; Burada vector içerisinde biz yalnızca dosya isimlerini tuttuk. Siz istersenin dosyanın stat bilgilerini de tutabilirsiniz. Derleme işlemini şöyle yapabilirsiniz: g++ -o dirlist5.cpp dirlist5.cpp Windows sistemlerinde dizin içeriğinin elde edilmesi POSIX sistemlerine benzer bir biçimde yapılmaktadır. FindFirstFile isimli API fonksiyonuna içeriği elde edilecek dosyalara ilişkin yol ifadesi verilir ve fonksiyondan bir handle değeri elde edilir. Bu fonksiyon aynı zamanda koşulu sağlayan ilk dosyanın bilgilerini de almaktadır. Daha sonra bir döngü içerisinde FindNextFile fonksiyonuyla diğer dosyalar elde edilir. Nihayet açılmış olan handle alanı FindClose fonksiyonuyla serbest bırakılır. FindFirstFile fonksiyonunun prototipi şöyledir: #include <windows.h> HANDLE FindFirstFile( LPCTSTR lpfilename, LPWIN32_FIND_DATA lpfindfiledata ); Fonksiyonun birinci parametresi bilgisi elde edilecek dosyaya ilişkin yol ifadesini (path name) belirtir. Yol ifadesi * ve? joker karakterlerini içerebilir. Bu durumda fonksiyon koşulu sağlayan ilk dosyanın bilgilerini elde eder. Fonksiyonun ikinci parametresi dosya bilgilerinin yerleştirileceği WIN32_FIND_DATA türünden yapının adresini alır. Fonksiyon dosya bilgilerini bu yapıya yerleştirmektedir. WIN32_FIND_DATA yapısı şöyledir: 10

11 #include <windows.h> typedef struct _WIN32_FIND_DATA DWORD dwfileattributes; FILETIME ftcreationtime; FILETIME ftlastaccesstime; FILETIME ftlastwritetime; DWORD nfilesizehigh; DWORD nfilesizelow; DWORD dwreserved0; DWORD dwreserved1; TCHAR cfilename[max_path]; TCHAR calternatefilename[14]; WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA; Yapının cfilename elemanı dosyanın ismini calternatefilename elemanı ise MSDOS uyumlu 8+3 lük kısa dosya ismini bulundurmaktadır. dwfileattributes elemanı dosyanın özelliklerini tutar. Bu eleman bit bit anlamlıdır ve ilgili özelliğin dosyada olup olmadığını belirlemek için tüm bitleri 0 olan yalnızca ilgili biti 1 olan değerlerle & işlemi uygulamak gerekir. Özelliklere ilişkin maskeleme değerleri <Windows.h> (alt dosya olarak <Winnt.h>) içerisinde bildirilmiştir. Bu değerlerden bazılarını aşağıda görüyorsunuz: #define FILE_ATTRIBUTE_READONLY #define FILE_ATTRIBUTE_HIDDEN #define FILE_ATTRIBUTE_SYSTEM #define FILE_ATTRIBUTE_DIRECTORY #define FILE_ATTRIBUTE_ARCHIVE... 0x x x x x Yapının ftccreationtime, ftlastaccesstime ve ftlastwritetime elemanları dosyanın yaratılış zamanını, son erişim zamanını ve son güncelleme zamanını tutmaktadır. (FAT12 ve FAT16 sistemlerinde yalnızca son güncelleme zamanı tutulmaktadır.) FILETIME iki DWORD ten oluşan aşağıdaki gibi bir yapıdır: #include <windows.h> typedef struct _FILETIME DWORD dwlowdatetime; DWORD dwhighdatetime; FILETIME, *PFILETIME, *LPFILETIME; Yapıdaki 64 bitlilk değer 01/01/1601 tarihinden itibaren geçen 100 nano saniyelerin sayısını UTC (eski ismiyle GMT) olarak verir. FILETIME yapısını tarih ve zaman bilgisine dönüştüren FileTimeToSystemTime fonksiyonunu kullanabilirsiniz. FileTimeToLocalFileTime fonksiyonu ise UTC yi yerel zamana dönüştürmektedir. Yapının nfilesizehigh ve nfilesizelow elemanları dosya uzunluğunu veren 64 bit değeri belirtiyor. Bu iki değeri Microsoft un int64 türüne (ya da C99 ve C++0x in long long türüne) dönüştürmek için LARGE_INTEGER birliği kullanılabilir: 11

12 #include <windows.h> typedef union _LARGE_INTEGER struct DWORD LowPart; LONG HighPart; u; LONGLONG QuadPart; LARGE_INTEGER, *PLARGE_INTEGER; Dönüştürmeyi şöyle yapabilirsiniz: LARGE_INTEGER li; WIN32_FIND_DATA fd; int64 fs;... li.u.lowpart = fd.nfilesizelow; li.u.highpart = fd.nfilesizehigh; fs = li.quadpart; FindFirstFile fonksiyonunun geri dönüş değeri FindNextFile fonksiyonu için kullanılacak handle değeridir. Fonksiyon başarısızlık durumunda INVALID_HANDLE_VALUE değerine geri döner. FindFirstFile fonksiyonunu aşağıdaki gibi kullanabilirsiniz: HANDLE hfind; WIN32_FIND_DATA fd; if ((hfind = FindFirstFile(_T("C:\\Windows\\*.exe"), &fd)) == INVALID_HANDLE_VALUE) _ftprintf(stderr, _T("Cannot find file, GetLastError = %u\n"), GetLastError()); FindFirstFile fonksiyonunu UNIX/Linux istemlerindeki opendir fonksiyonuna benzetebiliriz. Ancak gördüğünüz gibi Windows sistemlerinde bu fonksiyon joker karakterleri de alarak yalnızca belli koşulu sağlayan dosyaları bulabilmektedir. Windows sistemlerinde koşulu sağlayan diğer dosyaların bulunması FindNextFile fonksiyonuyla yapılmaktadır: #include <windows.h> BOOL WINAPI FindNextFile( HANDLE hfindfile, LPWIN32_FIND_DATA lpfindfiledata ); Fonksiyonun birinci parametresi FindFirstFile fonksiyonundan alınan handle değerini ikinci parametresi ise bulunan dosya bilgilerinin yerleştirileceği WIN32_FIND_DATA yapısının adresini alır. Fonksiyon başarı durumunda sıfır dışı bir değere başarısızlık durumunda sıfır değerine geri döner. Başarısızlığın tipik nedeni listenin sonuna gelinmesidir (yani bulunacak dosyanın kalmamasıdır). Bu durumda GetLasrError 12

13 fonksiyonu ERROR_NO_MORE_FILES değerine geri döner. FindClose fonksiyonuyla handle alanı kapatılmalıdır: İşlemler bitince #include <windows.h> BOOL WINAPI FindClose( HANDLE hfindfile ); Şimdi Windows ta dizin listesinin elde edilmesine yönelik bir örnek verelim. Örnekte C:\Windows dizininin içeriği listeleniyor. Fakat siz bu örnekten hareketle kodu istediğiniz gibi düzenleyebilirsiniz #include <stdio.h> #include <stdlib.h> #include <math.h> #include <Windows.h> #include <Tchar.h> void DispFileInfo(const WIN32_FIND_DATA *pfd); int main(void) HANDLE hfind; WIN32_FIND_DATA fd; if ((hfind = FindFirstFile(_T("C:\\Windows\\*.*"), &fd)) == INVALID_HANDLE_VALUE) _ftprintf(stderr, _T("FindFirstFile error: %u\n"), GetLastError()); do DispFileInfo(&fd); while (FindNextFile(hFind, &fd)); if (GetLastError()!= ERROR_NO_MORE_FILES) _ftprintf(stderr, _T("FindFirstFile error: %u\n"), GetLastError()); FindClose(hFind); return 0; void DispFileInfo(const WIN32_FIND_DATA *pfd) LARGE_INTEGER li; int64 fs; SYSTEMTIME st; li.u.lowpart = pfd->nfilesizelow; li.u.highpart = pfd->nfilesizehigh; fs = li.quadpart; 13

14 FileTimeToSystemTime(&pfd->ftLastWriteTime, &st); _tprintf(_t("%02d/%02d/%04d %02d:%02d "), st.wday, st.wmonth, st.wyear, st.whour, st.wminute); if (pfd->dwfileattributes & FILE_ATTRIBUTE_DIRECTORY) _tprintf(_t("%-18s"), _T("<DIR>")); else _tprintf(_t("%18i64u"), fs); _tprintf(_t(" %s\n"), pfd->cfilename); Ayrıca Windows Xp, 2000 ve Vista sistemlerine daha yetenekli yeni bir FindFirstFileEx fonksiyonu da eklenmiştir: #include <windows.h> HANDLE WINAPI FindFirstFileEx( LPCTSTR lpfilename, FINDEX_INFO_LEVELS finfolevelid, LPVOID lpfindfiledata, FINDEX_SEARCH_OPS fsearchop, LPVOID lpsearchfilter, DWORD dwadditionalflags ); Gördüğünüz gibi fonksiyon yetenek olarak oldukça geliştirilmiştir. Fonksiyonun ikinci ve dördüncü parametreleri daha çok geleceğe uyum için düşünülmüştür. Bu fonksiyon büyük harf küçük harf duyarlılığı ile de arama yapabilmektedir. Son olarak ayrı bir FindNextFileEx gibi bir fonksiyonun olmadığını belirtelim. FindFirstFileEx fonksiyonundan alınan handle değeri FindNextFile fonksiyonunda kullanılmaktadır. Java ve C# gibi nesne yönelimli programlama dillerinin kütüphanelerinde dizin içeriğini elde etmek için çeşitli sınıflar ve metotlar bulunmaktadır. Şüphesiz bu metotlar UNIX/Linux ve Windows sistemlerinde yukarıda belirttiğim sistem fonksiyonlarını kullanıyorlar..net kütüphanesinde System.IO isim alanındaki Directory sınıfının GetFiles isimli static metotları bir dizin içerisindeki dosyaları bulmak için kullanılmaktadır: public static string[] GetFiles( string path ) public static string[] GetFiles( string path, string searchpattern ) 14

15 public static string[] GetFiles( string path, string searchpattern, SearchOption searchoption ) Birinci metot dizin içerisindeki dosyaların hepsini, ikinci metot joker karakterleriyle verilen koşulu sağlayan dosyaları bulmaktadır. Üçüncü metot ise alt dizinlerde özyinelemeli arama yapabilmektedir. Benzer biçimde dizin içerisindeki dizinler de yine Directory sınıfının GetDirectories metotlarıyla elde edilebilir: public static string[] GetDirectories( string path ) public static string[] GetDirectories( string path, string searchpattern ) public static string[] GetDirectories( string path, string searchpattern, SearchOption searchoption ) Bu sınıflar ve metotlar Linux ve MacOS X sistemlerinde Mono altında da aynı biçimde kullanılabilir. Aşağıda bir örnek görüyorsunuz: using System; using System.IO; namespace CSD class Application public static void Main() try string[] files = Directory.GetFiles(@"C:\Windows"); foreach (string file in files) Console.WriteLine(file); string [] dirs = Directory.GetDirectories(@"C:\Windows"); foreach (string file in files) Console.WriteLine(file + " <DIR>"); 15

16 catch (Exception e) Console.WriteLine(e.Message); Bu metotların dosya isimlerini yol ifadeleriyle birlikte elde ettiğini belirtelim..net sisteminde dosya bilgileri FileInfo, dizin bilgileri ise DirectoryInfo sınıfı kullanılarak elde edilebilir. Java da dizin listesi System.io paketi içerisinde bulunan File sınıfı ile elde edilebilir. File sınıfının static olmayan list ve listfiles metotlarıyla dizin listesi elde edilebilir. Genel kullanım biçimi.net teki karşılığına benzemektedir. Aşağıda bir örnek görüyorsunuz: import java.io.*; class Main public static void main(string[] args) File dir = new File("c:\\windows"); String[] files; if ((files = dir.list()) == null) System.out.println("Cannot get files!"); System.exit(1); for(string s : files) System.out.println(s); list metotları hem dosyaları hem de dizinleri bulmaktadır. Bu metotlar dosya ismini yol ifadesi olmaksızın elde ederler. listfiles metotları ise dizin içeriğini File dizisi biçiminde vermektedir. [1] Linux sistemlerinde dizin listesini elde etmek için dizin önce open sistem fonksiyonuyla açılır ver getdents (eskiden readdir) sistem fonksiyonuyla okunur. 16

UNIX/Linux ve Windows Sistemlerinde Dosyaların ve Dizinlerin Silinmesi

UNIX/Linux ve Windows Sistemlerinde Dosyaların ve Dizinlerin Silinmesi UNIX/Linux ve Windows Sistemlerinde Dosyaların ve Dizinlerin Silinmesi Kaan Aslan 23 Temuz 2007 UNIX/Linux sistemlerinde bir dosyanın katı bağ sayısı 1 ise dosyayı tek bir dizin girişi göstermektedir.

Detaylı

UNIX/Linux ve Windows Sistemlerinde Proseslerin Çalışma Dizinleri

UNIX/Linux ve Windows Sistemlerinde Proseslerin Çalışma Dizinleri UNIX/Linux ve Windows Sistemlerinde Proseslerin Çalışma Dizinleri Kaan Aslan 12 Nisan 2008 UNIX/Linux ve Windows sistemlerinde her prosesin bir çalışma dizini (current working directory) vardır. Proseslerin

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ı

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI 10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI İkincil bellekte tanımlanmış bölgelere dosya denir. Her dosyanın bir ismi vardır. Ancak dosyaların isimlendirme kuralları sistemden sisteme göre değişebilmektedir. Dosya

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Veri Hiyerarşisi Dosyalar ve Akımlar(streams) Sıralı Erişim (Sequential Access) dosyalarının oluşturulması Sıralı Erişim Dosyalarından Veri Okuma Rasgele

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ı

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ı

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ı

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ı

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

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ı

UNIX/Linux Sistemlerinde exec İşlemleri

UNIX/Linux Sistemlerinde exec İşlemleri UNIX/Linux Sistemlerinde exec İşlemleri Kaan Aslan 10 Temmuz 2008 UNIX/Linux sistemlerinde fork fonksiyonu prosesin yeni ve özdeş bir kopyasını oluşturmaktadır. Yani fork işlemi sonrasında alt ve üst prosesler

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş

NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Özlem AYDIN NESNEYE YÖNELİK PROGRAMLAMA C++ a Giriş Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü C DİLİNİN BİR ÜST-KÜMESİ OLARAK C++ Genel olarak, C de mevcut olan her şey C++ da da vardır. C dilinde

Detaylı

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler: Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri

Detaylı

Görsel Programlama 1

Görsel Programlama 1 Görsel Programlama 1 1. Ekrana Hello world! yazan c# console application kodları: Console.Write("Hello world!"); 2. Ekranda ilk satıra Hello, ikinci satıra world! yazan kod: Console.WriteLine("Hello");

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

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ı

Eln 1002 Bilgisayar Programlama II

Eln 1002 Bilgisayar Programlama II Eln 1002 Bilgisayar Programlama II C»de Dosya ğşleme : S¹ral¹ EriŞim Ne ÖĆreneceĆiz? Dosyalar ve Streamler Sequential (sıralı) erişim dosyaların yaratılması Sıralı Erişim Dosyalarından Veri Okuma Sıralı

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

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ı

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ C# Yazım Kuralları 1 İçindekiler C# Yazım Kuralları Veritipleri Değişkenler Operatörler Sınıflar Nesneler, Özellik, Metot ve Olay Bileşenler 2 C# yazım kuralları Deyimlerde büyük küçük harf yazıma uyulmalı

Detaylı

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar: Dosyalama Çoğu programda, bazı verilerin disk üzerinde saklanmasına gerek duyulur. C programlama dilinde, disk dosyasına erişme (okuma ve yazma için) iki farklı yöntemle yapılır. Bunlar üst düzey ve alt

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ı

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ı

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ı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

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ı

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 Dosya İşlemleri (Rastgele Erişim)

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

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

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim

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ı

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş Kurulum için ilk önce Sun Microsystems in sitesinden uygun J2SE sürümünü indirin. Ben J2SE v1. 4. 2_16 Windows Installer paketini kullandım J2SE SDK Kurulumu aşağıdaki gibi başlayacaktır. 1 Kurulum tamamlandıktan

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ı

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 7: Yapılar Diziler İçerik Yapıların Tanımı Yapılara İlk Değer Atama Yapı Elemanlarına Erişim İç içe Yapılar Yapılar ve Fonksiyonlar 2 Yapılar (structures) içinde

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ı

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur: Jval tipi /blugreen/homes/plank/cs360/include/jval.h içerisinde bir Jval tipi tanımlanmıştır.büyük bir union yapısı aşağıdadır: typedef union { int i; long l; double d; void *v; char *s; char c; unsigned

Detaylı

İşletim Sistemlerinde Proseslerin Çevre Değişkenleri

İşletim Sistemlerinde Proseslerin Çevre Değişkenleri İşletim Sistemlerinde Proseslerin Çevre Değişkenleri Kaan Aslan 21 Temmuz 2008 Modern işletim sistemlerinde her prosesin bir çevre değişken bloğu vardır. Prosesin çevre değişken bloğu çevre değişkenlerinden

Detaylı

DOSYA İŞLEMLERİ Programlama dilleri hafta -

DOSYA İŞLEMLERİ Programlama dilleri hafta - BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA İŞLEMLERİ Programlama dilleri 1-10. hafta - Araş. Gör. Nesibe YALÇIN Dosya İşlemleri Programın çalışma esnasında

Detaylı

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin

Detaylı

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir:

Gereksiz Kodlar. burada if deyiminin else bölümüne gerek var mı? İfade doğruysa zaten fonksiyon geri dönüyor. Bu aşağıdakiyle tamamen eşdeğerdir: Gereksiz Kodlar Kaan Aslan 9 Temuz 1997 Kapalı spor salonu, durak yeri, taşıt aracı, en optimum, geri iade etmek, davranış biçimi Bu ifadelerde bir gariplik var, değil mi? Açık spor salonu göreniniz var

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

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

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

Detaylı

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

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ı

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ı

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

11- FONKSİYONLAR (FUNCTIONS)

11- FONKSİYONLAR (FUNCTIONS) 1 Fonksiyon : Belirli bir işi yapan programın bir isim altına tanımlanarak, o isimle çağrılarak kullanılması. Fonksiyonun faydaları : Programın modülerliğini arttırır. Aynı işi yapan program parçası tekrar

Detaylı

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) 1. Kendisine gönderilen iki karakter dizisini birleştirip geriye tek bir dizi döndüren ve

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ı

Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind()

Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu. İstemci. socket() Bir soket yarat. bind() Soket IPC (bağlantı doğrultusunda olan istemci and sunucu operasyonları) Sunucu Bir soket yarat Sokete iyi bilinen bir port numarası bağla Bağlantılar için bir dinleme kuyruğu oluştur Bir bağlantıyı kabul

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ KOCAELİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRONİK VE HABERLEŞME MÜHENDİSLİĞİ Nesneye Yönelik Programlama C++ ile Beaglebone Black de Bluetooth Haberleşmesi Danışman: Yrd. Doç. Dr. Mehmet YAKUT Sinan

Detaylı

Fonksiyonlar (Altprogram)

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

Detaylı

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ı

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR

NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu sunumda Prof. Dr. Yılmaz KILIÇASLAN ın Nesneye Yönelik Programlama dersi sunumlarından faydalanılmıştır.

Detaylı

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )

Detaylı

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

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

Detaylı

Regular Expressions Version 0.1

Regular Expressions Version 0.1 Regular Expressions Version 0.1 Hüseyin Kaya hkaya@be.itu.edu.tr 2001 Özet Bu belge Linux and Unix Shell Programming adlı kitaptan faydalalınarak yazılmıştır. Kitabın yazarı David Tansley. İngilizce bilenler

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ı

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ı

JAVA API v2.0 Belge sürümü: 2.0.2

JAVA API v2.0 Belge sürümü: 2.0.2 JAVA API v2.0 Belge sürümü: 2.0.2 1. İçindekiler 1. İÇİNDEKİLER... 2 2. BU BELGENİN AMACI... 3 3. BELGE SÜRÜMLERİ... 3 4. SİSTEM GEREKSİNİMLERİ... 3 5. KULLANIM ŞEKLİ... 4 5.1. GENEL... 4 5.2. UYARILAR...

Detaylı

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA İlk defa 1977 yılında Ron Rivest, Adi Shamir ve Leonard Adleman tarafından oluşturulan RSA algoritması geliştiricilerinin soyisimlerinin ilk harfleriyle

Detaylı

Giriş. ENF102 Jeoloji

Giriş. ENF102 Jeoloji DİZİLER Arrays Giriş Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.

Detaylı

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin);

işlemler bittikten sonra dosyaların kapatılması uygun olacaktır. Bunun için, fclose(fin); case 2 : C = 0.5088-0.0011*(B-135); break; case 3 : C = 0.4978-0.0010*(B-145); break; case 4 : C = 0.4878-0.0009*(B-155); break; default : printf("yanlış seçenek\n");} cout

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

Unix/Linux Sistem Programlama Ders Notları

Unix/Linux Sistem Programlama Ders Notları Unix/Linux Sistem Programlama Ders Notları CSD 2002 Bu notlar C ve Sistem Programcıları Derneği'nin düzenlediği, Kaan Aslan tarafından açılmış olan Unix/Linux Sistem Programlama kursunda derste tutulan

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

Temel Dosya İşlemleri. Kütük Organizasyonu 1

Temel Dosya İşlemleri. Kütük Organizasyonu 1 Temel Dosya İşlemleri Kütük Organizasyonu 1 Dosyaların Temel İşlemleri Bilgiler dosyada belirli bir düzen içerisinde yer alırlar Örn: ALAN THARP 100 100 100 JOHN BISHOP 70 80 75 PAUL AUSTER Bir satırda

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

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 Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

UNIX Türevi Sistemlerde Temel Dosya Fonksiyonları: open, close, read, write ve lseek

UNIX Türevi Sistemlerde Temel Dosya Fonksiyonları: open, close, read, write ve lseek UNIX Türevi Sistemlerde Temel Dosya Fonksiyonları: open, close, read, write ve lseek Kaan Aslan 12 Temuz 2008 Dosya sözcüğünü çok sık kullanırız. Fakat bu sözcüğü tanımlayabilmek o kadar kolay değildir.

Detaylı

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta - BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri 1-14. hafta - Araş. Gör. Nesibe YALÇIN

Detaylı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

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ı

Dizi ( Array ) ve Dizgi ( String )

Dizi ( Array ) ve Dizgi ( String ) Java da Dizi ( Array ) ve Dizgi ( String ) Tanımlama BBS-515 Nesneye Yönelik Programlama Ders #6 (25 Kasım 2009) İçerikç Geçen ders: Kalıtım ( inheritance ) -- tekrar ziyaret Java da super kullanımı Java

Detaylı

Fall Object-Oriented Programming Laboratory 02 - Structures

Fall Object-Oriented Programming Laboratory 02 - Structures 2017-2018 Fall Object-Oriented Programming Laboratory 02 - Structures 10.10.2017 1. Diziler. Bir tamsayi dizisinin elemanlarını ekrana yazdırmak için void printarr(int arr[], int elem_count) prototipli

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

Temel Veri Yapıları. (Veri Yapıları 1. Bölüm)

Temel Veri Yapıları. (Veri Yapıları 1. Bölüm) Temel Veri Yapıları (Veri Yapıları 1. Bölüm) Kaan Aslan 10 Haziran 2013 1. Giriş Programlarımızda tanımladığımız nesneler ya tek parçadan ya da birden fazla parçadan oluşurlar. Tek parçadan oluşan nesnelerin

Detaylı

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik

Nesne İşaretçileri. Binnur Kurt Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi. Sınıf Yapısı. Kalıtım Çok Şekillilik Binnur Kurt kurt@ce.itu.edu.tr Bilgisayar Mühendisliği Bölümü İstanbul Teknik Üniversitesi Sınıf Yapısı Kalıtım Çok Şekillilik Nesneye Dayalı Programlama 2 1 İşaretçiler, veri değil, verinin yerleşik bulunduğu

Detaylı

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez... Javada Diziler Java da diziler nesnedir; içerisinde belirli sayıda eleman bulunur. Eğer bu sayı sıfır ise, dizi boş demektir. Dizinin içerisindeki elemanlara eksi olmayan bir tam sayı ile ifade edilen

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ı

C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References)

C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References) C++0x - Sağ Taraf Değerine Bağlanan Referanslar (Rvalue References) Kaan Aslan 25 Ağustos 2008 C++ a eklenmesine karar verilen yeni bir özellik de sağ taraf değerine bağlanan referanslardır. C++0x standart

Detaylı

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü Metin Dosyaları Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü Metin Dosyaları Metin dosyaları, verileri bir kere hazırlayıp, ikincil saklama

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 2 (İlk 2 soru el yazısı ile çıktı alınarak

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 1 hafta Ödev No: 2 1- A)

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

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

Detaylı

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31

Bölüm 6. Karma. Olcay Taner Yıldız. O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, / 31 Bölüm 6. Karma Olcay Taner Yıldız 2014 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi Yayınevi, 2013 1 / 31 O. T. Yıldız, C && Java ile Veri Yapılarına Giriş, Boğaziçi Üniversitesi

Detaylı

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir DİZİLER (ARRAYS) Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir değişken tanımlamak gereklidir. string gun1,

Detaylı

12- HAZIR FONKSİYONLAR

12- HAZIR FONKSİYONLAR fonksiyon Hazır Aritmetik String Tarih- Zaman Dosya-Dizin Dizi (Array) M.İLKUCAR MAKU-MYO 2010 1 12.1 Aritmetik Fonksiyonlar Math.Abs( reel sayı) >> reel sayının pozitif değerini verir Math.Ceiling(reel

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ı

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ı

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p)

Adı Soyadı Öğrenci No. Toplam (100p) 2 (10p) +10p. 5 (25p) +10p. 3 (20p) 4 (25p) 1 (20p) Adı Soyadı Öğrenci No 1 (20p) 2 (10p) +10p 3 (20p) 4 (25p) 5 (25p) +10p Toplam (100p) Açıklamalar: Öğrenciler yanlarında hatırlatma amacıyla sadece bir yüzüne C fonksiyonlarının açıkladıkları, kullanımlarını

Detaylı

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle

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 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

Android Ders Notları

Android Ders Notları Android Ders Notları 1. Yeni Bir Proje Başlatma Android Studio programında yeni bir proje başlatıyoruz. İlk olarak karşımıza resim 1 deki gibi bir pencere gelecek. Burada Application name kısmına proje

Detaylı

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2; Dosya İşlemleri Nedir? Programlarınızı girdi (input) olarak aldığı verileri bir text dosyasında yada word dosyasında vb. saklamasıdır. Artık C programınızın yaratıp içine veriler koyacağı text dosyasını

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ı

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ı