ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Benzer belgeler
ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

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

C PROGRAMLAMA D İ L İ

BİL1001 Bilgisayar Bilimlerine Giriş 1

ALGORİTMA VE PROGRAMLAMA II

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

YZM 2105 Nesneye Yönelik Programlama

STRİNG DİZİLER(KATARLAR)

Diziler (Arrays) Çok Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

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

Giriş. ENF102 Jeoloji

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II

Programlama Dilleri 1. Ders 4: Diziler

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Hafta 12 Karakter Tutan Diziler

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

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

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

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

2. Dereceden Denklemin Köklerini Bulan Program

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Özyineleme (Recursion)

Fonksiyonlar (Altprogram)

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

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

ALGORİTMA VE PROGRAMLAMA II

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

BİLGİSAYAR PROGRAMLAMA DERSİ

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

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

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

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

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

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

ALGORİTMA VE PROGRAMLAMA I

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

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

İnternet Programcılığı Dersi 2.Dönem Ders Notu

HSancak Nesne Tabanlı Programlama I Ders Notları

YZM 2105 Nesneye Yönelik Programlama

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

NESNEYE YÖNELİK PROGRAMLAMA

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Internet Programming II

ALGORİTMA VE PROGRAMLAMA I DERS#1

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

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

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

Final Sınavı Örnek Soruları Güz 2018 Süre: 90 Dakika

Programlama Dilleri Laboratuvarı

Internet Programming II

Diziler. Yukarıdaki bilgileri bilgisayar belleğinde saklamak için aşağıdaki gibi değişkenler tanımlanır ve değerler bu değişkenlere aktarılır :

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

BİLGİSAYAR PROGRAMLAMA DERSİ

D İ Z İ L E R A R R A Y S

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ GÜZ DÖNEMİ PROGRAMLAMAYA GİRİŞ DERSİ

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

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

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

YZM 2105 Nesneye Yönelik Programlama

ALGORİTMA VE PROGRAMLAMA II

KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ

Diziler & Karakter Katarı (String)

ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER

BÖLÜM 5: TEMEL GİRİŞ/ÇIKIŞ FONKSİYONLARI

C++ Dilinde Bazı Temel Algoritmalar

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

C Programlama Dilininin Basit Yapıları

Length: metin uzunluğunu yada diğer bir deyişle dizi elaman sayısını döndürür.

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

PROGRAMLAMAYA GİRİŞ DERS 2

YZM 2116 Veri Yapıları

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

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Dr. Fatih AY Tel: fatihay@fatihay.net

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

C++ Dersi: Nesne Tabanlı Programlama

Veri Tabanı Yönetim Sistemleri Bölüm - 6

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

Transkript:

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi

6. BÖLÜM 2 Çok Boyutlu Diziler

Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde bir boyutlu (tek indisli) dizi olarak adlandırılır. Bu tip dizilere vektör denir. int x[5]; Bir dizi birden çok boyuta sahip olabilir. Örneğin iki boyutlu y dizisi şöyle tanımlanabilir: int y [5] [10]; İki boyutlu diziler matris olarak adlandırılır. İlk boyuta satır, ikinci boyuta sütün denir. y matrisinin eleman sayısı 5x10=50 dir.

Çok Boyutlu Dizi (devam ) 4 Çok boyutlu dizi örnekleri: Dizi Çeşiti Genel Bildirimi Örnek Tek boyutlu diziler (Vektörler) İki boyutlu diziler (Matrisler) tip dizi_adı[eleman_sayısı] tip dizi_adı[satır_sayısı][sutun_sayısı] int veri[10]; float mat[5][4]; Çok boyutlu diziler tip dizi_adı[boyut_1][boyut_2]...[boyut_n]double x[2][4][2];

Çok Boyutlu Dizilerin Bildirimi 5 Çok boyutlu diziler tek boyuta indirgenerek bellekte tutulurlar. Tek indisli dizilerde olduğu gibi, çok indisli dizilere de başlangıç değeri vermek mümkündür. Örneğin 3 satır ve 4 sütunlu (3x4=12 elemanlı) bir x matrisinin elemanları şöyle tanımlanabilir: int x[3][4] = {11,34,42,60, 72,99,10,50, 80,66,21,38}; int x[3][4] = {11,34,42,60, /* 1. satır elemanları */ 72,99,10,50, /* 2. satır elemanları */ 80,66,21,38}; /* 3. satır elemanları */

6 Örnek1: Çok Boyutlu Dizi Bildirimi ve Dizi Elemanlarını Yazdırma

Örnek2: Satranç Tahtası 7 Bir satranç oyunundaki 64 bölgeyi nasıl tanımlarız? int Satranc [8][8]; Satranc(6,3) Satranc 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 4,1 4,2 4,3 4,4 4,5 4,6 4,7 4,8 5,1 5,2 5,3 5,4 5,5 5,6 5,7 5,8 6,1 6,2 6,3 6,4 6,5 6,6 6,7 6,8 7,1 7,2 7,3 7,4 7,5 7,6 7,7 7,8 8,1 8,2 8,3 8,4 8,5 8,6 8,7 8,8 Satranc(3,7)

İki Matrisin Toplamı 8 İki matrisin karşılıklı elemanları toplanarak, toplam matris elde edilir. Bunu matris ifadeleriyle gösterelim:

İki Matrisin Toplamı (devam ) 9

Örnek: 3 Öğrenci Not Girişi ve Hesaplama 10 3 öğrencinin 3 adet sınav notu bilgisi klavyeden girilecektir. Öğrenciler için 2 boyutlu bir dizi tanımlamalısınız ve not girişlerini for döngüsünde yapmalısınız. ogrnotlar [3][3] Notların girişi tamamlandıktan sonra: Ekran Çıktısı 1: 1.öğrencinin 1.sınav notu ile 2.öğrencinin 2.sınav notu ve 3.öğrencinin 3.sınav notunu toplayarak ekranda gösteriniz. Ekran Çıktısı 2: Her sınav için ağırlıklı not ortalamasını bulunuz ve ekrana yazdırınız. for döngüsü kullanınız.

Örnek: 3 Öğrenci Not Girişi ve Hesaplama (devam ) 11

İki Matrisin Çarpımı 12 Göz önünde bulundurulması gereken en önemli koşul, çarpımı yapılacak birinci matrisin sütun sayısının ikinci matrisin satır sayısına eşit olması gerektiğidir. İki matrisin çarpımı aşağıdaki şekilde gösterilir:

İki Matrisin Çarpımı (devam ) 13

İki Matrisin Çarpımı (devam ) 14

7. BÖLÜM 15 Karakter Dizileri

Karakter Dizileri (Strings) 16 Bazı programlama dillerinde karakter dizilerini tutmak için özel veri türleri (string, vb.) bulunmaktadır. Ancak C programlama dilinde böyle bir veri türü olmadığı için yerine karakterlerden oluşan bir boyutlu diziler kullanılır. Karakter dizilerine özel olarak, karakter dizilerinin sonuna sonlandırıcı karakter olarak adlandırılan bir simge eklenir. Sonlandırıcı karakter: Dizinin bittiği yeri gösterir. ASCII tablosunun sıfır numaralı ('\0') karakteridir.

Karakter Dizileri (Strings) devam 17 Karakter dizilerine 2 şekilde başlangıç değeri verilebilir: (1) char s[7] = {'d','e','n','e','m','e','\0'}; (2) char s[7] = "deneme"; Birinci tanımlamada sonlandırıcı karakter programcı tarafından konmalıdır. İkinci tanımlamada ise buna gerek yoktur. Çünkü, sonlandırıcı karakter bu atamayla, derleyici tarafından eklenir.

Karakter Dizilerini Okumak 18 Bir karakter dizisini klavyeden okumak için C'nin standart gets( ) fonksiyonu kullanılır. stdio.h dışında yeni bir kitaplığı C programına dahil etmeye gerek yoktur. Bu fonksiyon herhangi bir indeks tanımlamadan karakter dizilerinin okunmasını sağlar. Okuduğu karakter dizisinin sonuna satır sonu işaretini değil, NULL değerini yerleştirir.

Karakter Dizilerini Okumak (devam ) 19 gets() fonksiyonu, klavyeden girilen karakter dizilerini, herhangi bir ek tanımlamaya gerek duymadan bir dizi içine yerleştirir. Dizinin her bir karakteri dizinin farklı bir hücresi içine yerleşir. Örnek: char ad[20];... gets(ad);

20 Örnek-5: Karakter Dizisi Okuma ve Yazma Maksimum 50 karakter okuyabilecek bir karakter dizisi tanımlayın. Klavyeden karakter dizisini okuyun ve ekrana karakterleri yazdırın. Tek tek karakterleri yazdırın Tüm metni tek seferde yazdırın

21 Örnek-5: Karakter Dizisi Okuma ve Yazma (devam )

Karakter Dizilerinin Uzunluğu Bulmak 22 Bazı uygulamalarda bir karakter dizisinin uzunluğunu bulmak gerekebilir. Bir karakter dizisinin uzunluğunu, yani kaç karakter içerdiğini bulmak için C'nin standart strlen() fonksiyonu kullanılır. Uzunluk bulunurken, içerdiği en son karakter olan NULL karakteri göz özüne alınmaz. Örneğin, karakter dizisi "abc" değerlerini içeriyorsa, strlen() fonksiyonu bu uzunluk olarak "3" değerini döndürür.

23 Örnek-6: Girilen Karakter Dizisinin Uzunluğunu Bulmak

Karakter Dizilerini Birleştirmek 24 İki karakter dizisini birleştirilerek tek bir karakter dizisi haline dönüştürmek için C'nin strcat() fonksiyonu kullanılır. Bu fonksiyon, var olan bir karakter dizisinin sonuna bir başka karakter dizisini ekleyecektir. Örneğin "abc" karakter dizisinin sonuna "def" karakter dizisi strcat() fonksiyonu kullanılarak eklenebilir.

25 Örnek-7: Girilen Karakter Dizilerini Birleştirmek

Karakter Dizisi Kopyalama 26 Karakter dizilerine direk atama yapılamamaktadır. Örneğin aşağıdaki atama ifadesi yanlıştır: char dizi[50]; katar = "abcde"; Çünkü bu atama göstergeye yapılan atamadır. Göstergelerin ne olduğunu daha sonra detaylı olarak ele alınacaktır. Atamanın bir karakter dizisine yapılabilmesi için, C'nin standart strcpy() fonksiyonu kullanılır.

27 Örnek-8: Karakter Dizilerini Kopyalamak

Karakter Dizilerini Karşılaştırmak 28 İki karakter dizisinin birbirleriyle karşılaştırılarak, içerdiği karakterlerin aynı olup olmadıkları test edilebilir. Bu amaçla strcmp() fonksiyonu kullanılır. Karşılaştırma sonucunda, her iki karakter dizisi birbirinin aynı ise "0"; birbirinden farklı ise "1" değeri üretilir. Elde edilen bu değer kullanılarak programın akışı yönlendirilebilir.

29 Örnek-9: Karakter Dizilerini Karşılaştırmak

30 Örnek-10: Girilen Cümleyi Tersten Yazdırma 100 elemanlı bir karakter dizisi tanımlayınız. Daha sonra bir cümle giriniz. Cümleyi ekrana ters olarak yazdırınız. İsterseniz farklı bir diziye aktarabilirsiniz veya direk yazdırabilirsiniz. strrev() fonksiyonunu kullanmayınız.

31 Örnek-10: Girilen Cümleyi Tersten Yazdırma

32 Örnek-11: Girilen Cümlede Harf Arama ve Yerini Bulma 100 elemanlı bir karakter dizisi tanımlayınız. Daha sonra bir cümle giriniz. Cumlede aranmak üzere bir harf giriniz. Cümlede harfi bulursanız, bulduğunuz yerlerin pozisyonlarını farklı bir diziye aktarınız. Toplam bulunan harf sayısını ve harflerin pozisyonlarını ekrana yazdırınız.

33 Örnek-11: Girilen Cümlede Harf Arama ve Yerini Bulma

34 Örnek-12: Girilen Bir Cümlenin Kelimelerinin Baş Harflerini Büyük Harf Yapma 100 elemanlı bir karakter dizisi tanımlayınız. Daha sonra bir cümle giriniz. Cumledeki tüm kelimelerin baş harflerini büyük harfe çeviriniz. Büyük harfe çevirme için toupper() fonksiyonu kullanılacaktır. Çeviride Türkçe karakterler desteklenmeyecektir. Son olarak cümlenin çevrilmiş halini ekrana yazdırınız.

35 Örnek-12: Girilen Bir Cümlenin Kelimelerinin Baş Harflerini Büyük Harf Yapma