DERS GÜNLÜĞÜM 3 AYRINTILI VERSİYON
25 MAYIS ALGORİTMA DERSİ ÖĞRENDİKLERİM: Karakter Dizisi,Matrisler
KAZANIMLAR:
Kullanıcının girdiği bir kelimeyi karakter dizisine atar ve
ekrana yazdırır.
ASCII Karakter Tablosu
Girilen bir kelimenin uzunluğunu bulur ve tersten yazdırır
Girilen bir kelimedeki büyük harfleri küçük harfe,küçük
harfleri ise büyük harfe dönüştür.
Girilen kelimenin harflerinden oluşan bir dik üçgen figürü
oluşturur.
BÖLÜM 1 KARAKTER DİZİLERİ VE UYGULAMALARI
Kelime (string) char olarak karakter dizisi şeklinde tanımlanmalıdır
boyutu 100 girmek yeterlidir çekoslavakyalaştırılamadıklarımızdanmısın bile 100
harfli olmadığından bu boyut yeterlidir.
Yani kullanıcıdan bir kelime girmesini istediysek bunu
1.
Adım TANIMLAMA: char kelime[100]
şeklinde tanımlamalıyız.
Karakter grubuna string adı verilir ve s ile gösterilir.
Kelimeler birden çok karakterden oluştuğundan stringdir.
2.
Adım KULLANICININ KELİME GİRMESİ:
scanf(“%s”, kelime);
3.
Adım KONTROL:
Kullanıcını girdiği kelimeyi bilgisayar
algıladımı?
printf(“%s”, kelime);
4.
Adım GİRİLEN KELİMENİN UZUNLUĞUNU BULMA
Uzunluk bir tam sayı olduğundan
integer olarak tanımlanır:
İnt uzunluk
For döngüsü yardımıyla karakter dizisinde
null yani ‘\0’ karakterine kadar gidilir.
Örnegin gamze 5 harfli bir isimdir karakterleri ‘g’ ‘a’ ‘m’ ‘z’
‘e’ ve ‘\0’dır bu ‘\0’ kelimenin bittiğini bize gösterdiğinden uzunluk nulla
kadar artar.
Yani kelime[0] = ‘g’ …..kelime[5] = ‘\0’ dır
for(uzunluk=0;kelime[uzunluk] !=
'\0';uzunluk++);
0,1,2,3,4 à 5
adet karakter var demekki uzunluk 5miş.
printf("%d",uzunluk);
5.
adım Kelimeyi tersten yazdırma
gamze kelimesindeki harfler karakter dizisinde
sırasıyla 0 1 2 3 4 olarak saklanmakta ancak uzunluk 5 olduğundan uzunluk=5ti (bkz
4.adım).Biz kelime[4] olan g harfinden başlamak istiyoruz.Bu nedenle uzunluk-1
den başlıyoruz 0 dan büyük eşit olduğu sürece i yi azaltıyoruz.
for(i=uzunluk-1;i>=0;i--)
printf("%c",kelime[i]);
6.
adım Harfleri bir dik üçgene atamak
önce uzunluk bulma kodu yazılır
for(uzunluk=0;kelime[uzunluk] != '\0';uzunluk++);
sonra dik üçgen kodu yazılır
for(i=0;i<uzunluk;i++){
printf(“\n”);
for (j=0; j<=i; j++)
eğer
g
a a
m m m
şeklinde yazdırmak istersek dış döngünün değişkenini
kelime[i] şeklinde yazdırırız.
Eğer
g
g a
g a m
g a m z
g a m z e
şeklinde yazdırmak istersek iç döngü baz alınır kelime[j]
BÖLÜM 2 ASCII KARAKTER TABLOSU UYGULAMALARI
Aşağıdaki inputta output neden 65?
#include <stdio.h>
main(){
printf("%d",'A');
getch();
}
Çünkü ‘A’ yani büyük A harfi karakterinin ASCII
tablosundaki decimal karılığı 65.
Ascıı tablosunu ezberlemek zorunda değiliz bu şekilde
karakterimizin decimal karşılığını öğrenebiliriz.
printf("%c",65); ise bize A çıktısını verir.
65-90 arası büyük harfler 97-122 arası küçük harflerdir.
Bir i değişkeni atayarak for döngüsüyle bu başlangıç bitiş
değerlerini printf("%c",i);
şeklinde alfabeyi yazdırabiliriz.
BÜYÜK KÜÇÜK HARF DÖNÜŞÜMÜ
A’yı a ya dönüştürmek istiyorsam aslında 65’i 97’ye
dönüştürmek istiyorum.
97-65=32 yani 65-90 arasındaki büyük harflerin her birini 32
arttırmam lazımki büyük harf karşılıklarını elde ediyim.Tam tersini yapmak için
ise yani büyük harfi küçük harfe çevirmek için
if (kelime[i] >= 65 && kelime[i] <= 90)
printf ("%c", kelime[i]+32);
else
printf ("%c", kelime[i]-32);
Yorumlar
Yorum Gönder