BLM 112- Programlama Dilleri II. Hafta 9 String Fonksiyonları Sıralama & Arama

Benzer belgeler
BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Hafta 12 Karakter Tutan Diziler

Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

Yrd. Doç. Dr. Caner ÖZCAN

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA I

Hafta 13 Fonksiyonlar

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

Hafta 11 Çok Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA I

Hafta 7 C Programlama Diline Giriş ve C Derleyicisi

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

ALGORİTMA VE PROGRAMLAMA I

Dr. Fatih AY Tel: fatihay@fatihay.net

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

STRİNG DİZİLER(KATARLAR)

Yrd. Doç. Dr. Caner ÖZCAN

Diziler & Karakter Katarı (String)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

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

ALGORİTMA VE PROGRAMLAMA I

String ve Karakter Dizileri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

String Sınıfını Yönetmek

Temel Bilgisayar Programlama

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Hafta 5 Algoritma Örnekleri ve Analizi

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-1 Kapsama Kuralları & Rasgele Sayı Üretimi & Rekürsif (Özyinelemeli) Fonksiyonlar

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM 112- Programlama Dilleri II. Hafta 1 Giriş, Kapsama Kuralları ve Rasgele Sayı Üretimi

BİL1001 Bilgisayar Bilimlerine Giriş 1

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

Bilgisayar Programlama. 1.Hafta

Alıştırma 1: Yineleme

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

Telefon Rehberi Uygulaması

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Hafta 4 Döngü Yapıları

Fonksiyonlar (Altprogram)

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

ALGORİTMA VE PROGRAMLAMA II

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

Hafta 8 C Dilinde Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

Hazır Fonksiyonlar {\} /\ Suhap SAHIN Onur GÖK 1

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

BLM 111 Algoritma ve Programlama I Güz 2018

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-4 Döngü Yapıları. Yrd. Doç. Dr. Ümit ATİLA

Week 7. Düğüm bulma Tekli bağlı liste: phead ve ptail Dairesel bağlı liste Çift bağlı liste

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İ

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

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

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

YZM 2116 Veri Yapıları

PROGRAMLAMA. Dosyalama İşlemleri. Yrd. Doç. Dr. Bülent Çobanoğlu. Sakarya Üniversitesi Mekatronik Mühendisliği. Yrd.Doç.Dr.

C PROGRAMLAMA D İ L İ

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

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

Yrd. Doç. Dr. Caner ÖZCAN

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

Programlama Dilleri Laboratuvarı

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

Fall Object-Oriented Programming Laboratory 02 - Structures

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

DOSYA İŞLEMLERİ Programlama dilleri hafta -

Yrd. Doç. Dr. Caner ÖZCAN

Arama Algoritmaları. Doğrusal Arama ve Binary Arama

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

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

C++ Dersi: Nesne Tabanlı Programlama

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

ALGORİTMA VE PROGRAMLAMA II

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

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

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

STRING (SÖZEL) İŞLEMLER. Yrd. Doç.Dr. Bülent Çobanoğlu

SIRALAMA SORTING. Yrd. Doç. Dr. Aybars UĞUR

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

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

Adım Adım C. Dr. Hidayet Takcı

VERİ YAPILARI DATA STRUCTURE GİRİŞ

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

Kocaeli Üniversitesi Bilgisayar Mühendisliği Programlama 2 Dersi Final Sınavı. A Grubu

BIP116-H14-1 BTP104-H014-1

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

BMT207 VERİ YAPILARI DATA STRUCTURE

Transkript:

1 BLM 112- Programlama Dilleri II Hafta 9 String Fonksiyonları Sıralama & Arama Dr. Öğr. Üyesi Caner Özcan Bilim doğanın dilini anlama çabasıdır. O dili anlayan doğayı dost, anlamayan düşman bilir.

String 2 String NULL karakter \0 ile biten bir karakter dizisidir. Örnek: char str[8]; Ençok 8 karakter alabilen bir dizi oluşturur. Eğer str dizisi string olarak kullanılacak ise en fazla 7 karakter alabilir ve sonu NULL karakter \0 ile bitmek zorundadır. 2

String İşlemleri 3 C standard kütüphanesi stringleri manipüle etmek için birçok fonksiyon içerir. Bu fonksiyonları kullanmak için <string.h> ifadesini eklemeniz gerekir. #include <string.h> Bazı önemli fonksiyonlar: strcpy(char *str1, const char *str2); strlen(const char *str); strcat(char *str1, const char *str2); strcmp(const char *str1, const char *str2); 3

Strcpy Fonksiyonu 4 char *strcpy(char *str1, const char *str2) { char *p = str1; while (*str2) *p++ = *str2++; *p = \0 ; return str1; } /* end-strcpy */ 4

Strcpy Fonksiyonu 5 #include <stdio.h> #include <string.h> int main () { char src[40]; char dest[100]; strcpy(src, "This is tutorialspoint.com"); strcpy(dest, src); printf("final copied string : %s\n", dest); return(0); } Output: Final copied string : This is tutorialspoint.com 5

Strlen Fonksiyonu 6 int strlen(const char *str) { int len = 0; while(*str++) len++; return len; } /* end-strlen */ 6

Strlen Fonksiyonu 7 #include <stdio.h> #include <string.h> int main () { char str[50]; int len; strcpy(str, "This is tutorialspoint.com"); len = strlen(str); printf("length of %s is %d \n", str, len); return(0); } Output: Length of This is tutorialspoint.com is 26 7

Strcat Fonksiyonu 8 char *strcat(char *str1, const char *str2) { char *p = str1; while(*p) p++; while(*str2) *p++ = *str2++; *p = \0 ; return str1; } /* end-strcat */ 8

Strcat Fonksiyonu 9 #include <stdio.h> #include <string.h> int main () { char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); strcat(dest, src); printf("final destination string : %s ", dest); return(0); } Output: Final destination string : This is destinationthis is source 9

Strcmp Fonksiyonu 10 int strcmp(const char *str1, const char *str2) { while (*str1 && *str2 && *str1 == *str2){ str1++; str2++; } /* end-while */ return *str1-*str2; } /* end-strcmp */ 10

Strcmp Fonksiyonu 11 #include <stdio.h> #include <string.h> int main () { char str1[15], str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) printf("str1 is less than str2"); else if(ret > 0) printf("str2 is less than str1"); else printf("str1 is equal to str2"); return(0); } Output: str2 is less than str1 11

Sıralama 12 Bir grup veriyi azalan veya artan şekilde yerleştirme. Bilgisayar sistemleri için veri sıralama çok önemlidir. Sıralama işlemi, hem arama işlemlerini hem de bir grup veriyi listeleme işlemini hızlandırmaya yarar. En popüler sıralama algoritmaları: Insertion sort (Araya ekleme sıralaması) Selection sort (Seçim sıralaması) Bubble sort (Kabarcık sıralaması) Quick sort (Hızlı sıralama) 12

Seçim Sıralaması (Selection Sort) 13 Eğer bir eleman olması gereken yerde ise bulunduğu sıra değiştirilmez. Yarı yarıya sıralanmış bir grup veri olması durumunda eleman yeri değişimi azdır. Listedeki ilk elemanı al ve bu elemanı diğer elemanlar arasından en küçüğü ile değiştir. Bu işlemi son elemana kadar tekrar et. Önce Sonra [][7,3,5,1,2] [1][3,5,7,2] 1 ve 7 değiştirildi [1][3,5,7,2] [1,2][5,7,3] 2 ve 3 değiştirildi [1,2][5,7,3] [1,2,3][7,5] 3 ve 5 değiştirildi [1,2,3][7,5] [1,2,3,5][7] 5 ve 7 değiştirildi [1,2,3,5][7] [1,2,3,5,7][] son 13

Seçim Sıralaması (Selection Sort) 14 14

Seçim Sıralaması (Selection Sort) 15 15

Arama 16 Bir dizi içerisinde belli bir elemanı bulma sürecine arama denir. İki arama tekniği vardır: Doğrusal Arama (Linear Search) İkili Arama (Binary Search) 16

Doğrusal Arama (Linear Search) 17 Dizinin her bir elemanını aranan ile karşılaştırır. Dizi sıralı değilse, aranan ilk elemanda olabilir, son eleman da. En kötü durumda N elemanlı dizide algoritmanın karmaşıklığı O(n) dir. Büyük boyutlu dizilerde kullanımı uygun değildir. 17

Doğrusal Arama (Linear Search) 18 18

Doğrusal Arama (Linear Search) 19 19

Gelecek Hafta 20 Dosya İşlemleri Sıralı Erişimli Dosyalar 20

Kaynaklar 21 Doç. Dr. Fahri Vatansever, Algoritma Geliştirme ve Programlamaya Giriş, Seçkin Yayıncılık, 12. Baskı, 2015. Kaan Aslan, A dan Z ye C Klavuzu 8. Basım, Pusula Yayıncılık, 2002. Paul J. Deitel, C How to Program, Harvey Deitel. A book on C, All Kelley, İra Pohl 21

22 S o r u l a r? Dinlediğiniz için teşekkürler CANER ÖZCAN canerozcan@karabuk.edu.tr