9. SınıfBilişim Teknolojileri

Dizgi İşlemleri ve Karakterler

Bilişim Teknolojileri · 9. Sınıf · Değişkenler ve Veri Tipleri

Konu Anlatımı

Dizgi İşlemleri ve Karakterler

Ad, soyad, okul numarası, e-posta adresi veya bir cihaz seri numarası gibi bilgiler tek tek sayı değil, karakterlerden oluşan dizgi olarak saklanır. Kullanıcıdan gelen her bilgi önce metin olarak okunur, sonra sayıya çevrilir. Bu yüzden değişkenler ve veri tipleri konusunu öğrenirken karakter dizisi tipini de mutlaka tanımak gerekir.

Bu derste ne öğreneceğiz?

Bu konuda bir dizgi değişkeninin nasıl tanımlandığını, kaç karakterden oluştuğunu ve karakterlerine sıra numarasıyla nasıl erişildiğini göreceğiz. Birleştirme, dilimleme, arama ve büyük küçük harf dönüşümü işlemlerini gerçek örneklerle uygulayacağız. Ayrıca karakter kod değerlerinin mantığını, dizgiden sayıya dönüşümde neden hata yapıldığını ve metin karşılaştırmasının hangi düzende gerçekleştiğini inceleyeceğiz.

Ön bilgi

Ön bilgi olarak değişken ve veri tipi kavramını bilmek gerekir. Değişken, bellekte bir değeri saklayan isimlendirilmiş alandır; veri tipi ise o alanda hangi türden bilgi tutulacağını belirler. Sayısal tiplerden farklı olarak dizgi tipi birden çok karakteri bir arada tutar ve içindeki karakterlere sıra numarasıyla tek tek ulaşılır.

İkinci ön bilgi döngü ve koşul yapılarıdır. Bir dizginin karakterlerini sırayla gezmek, bir harfin kaç kez geçtiğini bulmak ya da tersten yazdırmak gibi işlemler döngü olmadan yapılamaz. Aynı biçimde karakter sıra numarasının geçerli olup olmadığını denetlemek koşul ifadesi gerektirir.

Dizgi nedir, karakter nedir?

Dizgi, birbirini izleyen karakterlerden oluşan ve kendine ait uzunluğu olan veri tipidir. Karakter; harf, rakam, noktalama işareti veya boşluk olabilir. Her karakterin dizgi içinde bir sıra numarası vardır ve bu numaralar ilk karakter için sıfırdan başlayarak art arda gelir. Bu yüzden beş karakterlik bir dizginin son karakterinin sıra numarası dörttür.

Dizginin uzunluğu metin olarak yazılmış olsa bile bilgisayar tarafında bir sayı olarak saklanır. Uzunluk bilgisi döngü yazarken çok işe yarar: sıra numarası uzunluktan küçük olduğu sürece işlem yapılır. Dizgi değişkenine hiçbir değer atanmamışsa onun da bir uzunluğu vardır ve o uzunluk sıfırdır; bu yüzden boş dizgi ile henüz değer verilmemiş dizgi aynı davranışı gösterir.

Dizgi oluşturma ve birleştirme

Dizgi tek tırnak ya da çift tırnak arasında yazılır. Tırnakların arasında hiçbir şey yoksa dizgi boştur. Tırnak kullanmanın amacı, birden çok karakterden oluşan metnin sayıdan ayırt edilmesidir. Tırnak kullanılmadığında bir dizgi ile bir sayı aynı satırda görünür ve karşılaştırma sonucu beklenmedik çıkar.

Birleştirme işlemi iki dizgiyi uç uca ekler. Üç ya da daha fazla dizgiyi birleştirmek için işlemi art arda kullanmak gerekir. Birleştirme sırasında araya ayraç konulacaksa boşluk ya da ayraç karakteri unutulmamalıdır; aksi hâlde ad ve soyad yerine adsoyad gibi tek parça bir metin oluşur. Birleştirme sonucu her zaman yeni bir dizgidir, ilk iki dizginin içeriği değişmez.

Uzunluk, sıra numarası ve karakter erişimi

Dizginin uzunluğu doğrudan okunabilen bir özelliktir; karakterleri tek tek saymak gerekmez. Buna karşılık tek bir karaktere erişmek için sıra numarası kullanılır. Karakter üzerinde aritmetik yapılamaz, ancak karakterin kod değeri karşılaştırılabilir. Örneğin büyük harfli harflerin kodları 65 ile 90 arasında, küçük harflerin kodları ise 97 ile 122 arasında sıralanmıştır.

Sıra numarası sıfırdan başladığı için sık yapılan hata, birinci karakteri sıfır yerine bir kabul etmektir. Bu yanlış kabulde son karakterin sıra numarasına erişilemez ve ya da son karakterden bir önceki karakter okunur. Döngü koşulunu uzunluğa göre kurmak bu hatayı yapısal olarak engeller.

Dilimleme işlemi

Dilimleme, dizginin belirli bir bölümünü ayırarak yeni bir dizgi oluşturur. Dilimin başlangıç sırası ile bitiş sırası verilir; başlangıç sırası dilime dâhildir, bitiş sırası dâhil değildir. Bu aralık kuralı ezberlenmelidir, çünkü bir karakter eksik almak en sık yapılan hatadır. Sıra numarası uzunluğa eşitse o karakter artık yoktur.

Dilimleme aynı zamanda bir metin parçasını ayıklama işinde kullanılır: bir etiketin ön ekini, bir alan kodu ya da bir alan adının uzantısı ayrı dizgi olarak alınır. Dilimlenen parça bağımsız bir dizgi olduğundan üzerinde ayrıca işlem yapılabilir ve yeni bir dizgiye birleştirilebilir.

Arama ve konum bulma

Dizgi üzerinde arama, hedef karakterin ya da parçanın dizgi içindeki sıra numarasını verir. Aranan parça bulunamazsa sonuç eksi bir değer olarak döner. Bu nedenle bulunamadı durumu sıfır değerle karıştırılmamalıdır; sıfır geçerli bir sıra numarasıdır ve dizginin ilk karakterini gösterir. Doğru bir program, eksi bir sonucu özel olarak ele almalıdır.

Bir karakterin dizgide kaç kez geçtiğini bulmak için dizgi taranır: sıra numarası sıfırdan başlar, uzunluğa ulaşılana kadar her karakter hedefle karşılaştırılır ve eşitlik sağlanan her adımda sayaç bir artırılır. Aynı tarama yöntemi, bir dizginin tersten yazılışıyla kendisinin aynı olup olmadığını belirleyen palindrom denetiminde de kullanılır.

Harf sayma ve sıklık bulma

Bir dizgide her karakterin kaç kez geçtiğini tutan bir sayaç dizisi kurulabilir. Bu dizinin uzunluğu harf sayısı kadar olmalıdır. Tarama bittiğinde sayaç dizisinin en büyük elemanı, dizgide en sık geçen karakterin sayısını verir. Bu yöntem sözcük analizi, anagram bulma ve metin istatistiği gibi işlerde kullanılır.

Sayılan değer daha sonra yüzdeye çevrilebilir. Yüzde, geçen karakter sayısının dizgi uzunluğuna bölünüp yüz ile çarpılmasıyla bulunur. Burada bölme işlemi tam sayı bölmesi olarak yapılır ve kalan kısım atılır; yüzdeye çevirme gerekiyorsa işlem ondalıklı olarak yapılmalıdır.

Karakter kodları ve büyük küçük harf

Her karakterin sayısal bir kod değeri vardır ve bu değerler bir tablo hâlinde sıralıdır. Büyük harfler küçük harflerden önce gelir; aynı harfin büyük ve küçük biçimi arasındaki kod farkı sabittir. Bu fark bilinirse küçük harfi büyük harfe çevirmek, kod değerinden bu sabit farkı çıkararak yapılır veya tam tersi toplanarak yapılır.

Harf olup olmadığını anlamak için kodu harf aralıklarında aramak yeterlidir. Rakam, noktalama işareti ve boşluk gibi karakterlerin kodları bu aralıkların dışında kalır. Bu denetim, kullanıcıdan gelen veriyi sayıya çevirmeden önce doğrulamak için kullanılır ve hatalı verinin programa girmesini engeller.

Dizgiden sayıya ve sayıdan dizgiye dönüşüm

Kullanıcı bir sayı yazdığında o bilgi karakterlerden oluşan bir dizgi olarak okunur. Sayısal değere dönüştürülürken rakam karakterleri sırayla toplanır: soldaki ilk karakter en büyük basamağı, sondaki karakter en küçük basamağı belirler. Bu işlemde tam sayı bölmesi yapılır, ondalık ayracından sonraki kısım kullanılmaz.

Ters yönde dönüşümde sayısal değer basamaklarına ayrılır ve her basamak için karakter üretilir. Basamak sayısı azaldıkça sayının büyüklüğü de değişir. Bu iki yönlü dönüşümün de doğru çalışması, veri tipi dönüşümlerinin neden ayrı bir konu olarak ele alındığını gösterir.

Basit örnek

Adı «Mert» olan bir öğrencinin dizgisi düşünülsün. Dizginin uzunluğu dörttür ve sıra numaraları sıfırdan üçe kadar sıralanır. Dördüncü sıra numarasındaki karakter «t» harfidir. Dizginin ilk üç karakteri alınarak «Mer» elde edilir, kalan iki karakter alınarak «rt» elde edilir. Her iki işlemde de uzunluktan küçük bir sıra numarası kullanılmıştır.

Aynı dizgide büyük harfe çevirme uygulanırsa sonuç «MERT» olur. Dönüşüm sonrası uzunluk değişmez, yalnızca karakter kodları değişir. Dizginin birleştirilmesiyle «Mert Kaya» gibi iki parçalı bir ad soyad metni de oluşturulabilir; ayraç olarak bir boşluk kullanılmalıdır.

İleri örnek

Bir okulun öğrenci listesinde etiketler «SIRA-NO» biçiminde saklanmaktadır. Her etiketin sıra numarası kısmı sabit uzunlukta olduğundan, dizginin belirli bir dilimi alınarak yalnızca sıra numarası okunabilir. Örneğin etiketin ilk dört karakteri okutucu kodu, sonraki bölümü ise kayıt sırasıdır.

Bu senaryoda üç işlem arka arkaya yapılır: önce dizgi oluşturulur, sonra dilimleme ile kayıt sırası ayrılır, en sonda ise elde edilen parça tam sayıya çevrilerek ortalama hesabında kullanılır. Her adımda uzunluk denetimi yapılmalıdır; beklenen uzunluktan farklı bir uzunluk geliyorsa etiket hatalı demektir ve o kayıt atlanır.

Adım adım çözülmüş örnek

Görev: «mühendislik» dizgisindeki «i» harfinin kaç kez geçtiğini bulmak. Çözüm: Adım 1: Dizginin uzunluğu ölçülür ve on bir karakter olduğu görülür. Adım 2: Sıra numarası sıfırdan başlar ve hedef karakter «i» olarak seçilir. Adım 3: Her adımda ilgili karakter hedefle karşılaştırılır; eşitlik varsa sayaç bir artırılır. Adım 4: On bir adım sonunda sayaç ikiye ulaşır.

Sayım elle doğrulandığında karakterler sırayla m, ü, h, e, n, d, i, s, l, i, k olur. «i» harfi yedinci ve onuncu sıra numaralarında yer alır. Bu iki konumun sıra numarası toplamı on yedi eder ve bu değer doğru bir çapraz denetmedir. Döngünün sıra numarasını bir yerine sıfırdan başlatmamak, elde edilecek sonucun bu iki konumu kaçırmasına yol açardı.

Kavram karşılaştırma tablosu

KavramNe zaman kullanılırSonuç türüSık karıştırılan konu
DizgiMetin saklanırkenKarakterlerden oluşan bütünSayı tipiyle karıştırılmamalı
UzunlukDöngü sınırı belirlenirkenTek sayıSon sıra numarası sanılmamalı
Sıra numarasıTek karaktere erişirkenKonum bilgisiBir yerine sıfırdan başlar
BirleştirmeParçaları tek metin yaparkenYeni bir dizgiAraya ayraç eklemeyi unutmak
DilimlemeMetnin bir bölümü alınırkenDaha kısa dizgiBitiş sırasının dâhil olduğunu sanmak
Arama sonucuHedefin konumu bulunurkenSıra numarası veya eksi değerEksi bir değeri sıfır saymak
Karakter koduHarf bulunurkenTek sayıKodu harfin kendisi sanmak
Palindrom denetimiMetnin tersi kendisiyle karşılaştırılırkenDoğru veya yanlışYalnızca ilk yarıyı kontrol etmek

Sık Yapılan Hatalar

Özet

Dizgi, karakterlerden oluşan ve kendine ait uzunluğu olan bir veri tipidir. Karakterler sıfırdan başlayan sıra numaralarıyla adreslenir; son karakterin sıra numarası uzunluktan bir eksiktir. Birleştirme yeni bir dizgi üretir, dilimleme başlangıcı dâhil bitişi dâhil olmayan bir aralık alır. Arama başarısızlığını eksi değer bildirir, bu yüzden sıfır ile karıştırılmamalıdır. Karakter kod değerleri harf aralıklarını denetlemeye yarar ve büyük küçük harf dönüşümünde kullanılır. Dizgiden sayıya geçişte tam sayı bölmesi yapıldığı için kesirli kısım atılır.

Kendini dene

Kendin dene bölümünde bir alışkanlık ödevi olarak kendi adını soyadını içeren bir dizgi oluştur, uzunluğunu ölç, üçüncü karakterini yaz ve dizginin ilk dört karakterini dilimle. Ardından aynı dizgide kendi adının geçtiği konumu bul ve kaç kez geçtiğini say. Son olarak bu dizgiyi bir sayıya çevirmeye çalışırken ne olduğunu gözlemle. Puanlama notu: doğru çalışan bir program, uzunluk denetimini de içermeli ve bulunamadı durumunu sıfırdan ayırmalıdır.

Dizgi İşlemleri ve Karakterler — Sık Sorulan Sorular

Bu derste ne öğreneceğiz?

Bu konuda bir dizgi değişkeninin nasıl tanımlandığını, kaç karakterden oluştuğunu ve karakterlerine sıra numarasıyla nasıl erişildiğini göreceğiz. Birleştirme, dilimleme, arama ve büyük küçük harf dönüşümü işlemlerini gerçek örneklerle uygulayacağız. Ayrıca karakter kod değerlerinin mantığını, dizgiden sayıya…

Dizgi nedir, karakter nedir?

Dizgi, birbirini izleyen karakterlerden oluşan ve kendine ait uzunluğu olan veri tipidir. Karakter; harf, rakam, noktalama işareti veya boşluk olabilir. Her karakterin dizgi içinde bir sıra numarası vardır ve bu numaralar ilk karakter için sıfırdan başlayarak art arda gelir. Bu yüzden beş karakterlik bir dizginin son…

Dizgi İşlemleri ve Karakterler nedir?

Ad, soyad, okul numarası, e-posta adresi veya bir cihaz seri numarası gibi bilgiler tek tek sayı değil, karakterlerden oluşan dizgi olarak saklanır. Kullanıcıdan gelen her bilgi önce metin olarak okunur, sonra sayıya çevrilir. Bu yüzden değişkenler ve veri tipleri konusunu öğrenirken karakter dizisi tipini de mutlaka…

Dizgi İşlemleri ve Karakterler konusunda ne öğrenilir?

Sıra numaraları sıfırdan başlar; ilk karakterin sıra numarası sıfırdır.

Dizgi İşlemleri ve Karakterler Kazanımları

Örnek Sorular ve Çözümleri

Örnek Soru 1 kolay

Bir dizginin karakter sayısı nasıl öğrenilir?

  1. A) Uzunluk özelliği okunarak
  2. B) Karakterler tek tek sayılarak
  3. C) Döngüye bir kez girilerek
  4. D) Dizi elemanı sayısına bakılarak
Cevabı göster

Doğru cevap: A) Uzunluk özelliği okunarak

Uzunluk özelliği okunarak kavramı Dizgi İşlemleri ve Karakterler konusunun temel bir kavramıdır. Detaylar konu anlatımında verilmiştir.

Örnek Soru 2 orta

Dizgiden tam sayı değerine dönüşümde ilk karakter hangi basamağı belirler?

  1. A) En küçük basamağı
  2. B) Ondalık basamağını
  3. C) Hiçbir basamağı belirlemez
  4. D) En büyük basamağı
Cevabı göster

Doğru cevap: D) En büyük basamağı

Rakam karakterleri soldan sağa işlenir ve ilk karakter, basamak değerinin en yüksek kuvvetine karşılık gelir. Böylece metindeki sıralama ile sayının basamak sıralaması örtüşür.

Örnek Soru 3 zor

Uzunluğu n olan bir dizgiyi tersten çevirmek neden n adım sürer?

  1. A) Her karakter için karşılaştırma yapıldığı için
  2. B) Karakterler önce sıfıra çevrildiği için
  3. C) Her sıra numarası için tam bir karakter yazıldığı için
  4. D) Uzunluk önce iki katına çıkarıldığı için
Cevabı göster

Doğru cevap: C) Her sıra numarası için tam bir karakter yazıldığı için

Sıra numaralarının hepsi bir kez gezilir ve her biri için bir karakter yazılır. Bu nedenle çalışma süresi doğrudan n ile orantılıdır.

Sıradaki adım

Konu anlatımları hesapsız okunur. Quiz, slayt ve deneme için hesap gerekir.

DersTeders ile devam et

Bilişim Teknolojileri için çalışma yolu

  1. OkuKonu anlatımını bu sayfada bitir.
  2. Soru çözÖrnekleri çöz, cevabı açıklamayla karşılaştır.
  3. Quiz ile pekiştirHesapla kendini ölç.

Slaytla adım adım öğren · Tüm dersler · Ana sayfa

Hesap açTüm dersleri keşfet

Konu anlatımları hesapsız okunur; quiz, slayt ve deneme için hesap gerekir.

Bu sayfa Dizgi İşlemleri ve Karakterler konusunun anlatımını, kazanımlarını ve örnek sorularını içerir. Konuyla ilgili tüm sorular için testi çöz, diğer konular için DersTeders ana sayfasına geçebilirsin.

Bu konunun öğretmen materyallerini (ders planı, çalışma kâğıdı, çözümlü soru bankası, rubrik) yazdırabilirsin: Yazıcı çıktısı modülünü aç