1 7. HAFTA. 2 Referanslar  Referanslar adres temsilcisidir  İşaretçilerin görevlerini kısmi olarak yapabilirler  Değişken değildirler.  Bellekte yer.

Slides:



Advertisements
Benzer bir sunumlar
String fonksiyonları:
Advertisements

Dizi Kullanan Örnekler
STRİNG FONKSİYONLARI.
Fonksiyonlar.
Bölüm 12 ÜST DÜZEY KONULAR Dinamik Bellek Ayırma Önişlemci
Göstericiler (Pointers)
Nesneye Yönelik Programlama
void medyan(int cevap[]) { int j; siralama(cevap);
Bölüm 7 Fonksiyonlar GÖSTERGELER Gösterge Tanımı
Bölüm 2 C Dilinin Temelleri
switch - case Yapısı Döngü Yapıları
String Diziler(Katarlar)
STRING FONKSİYONLARI Tip Tanımları: char a; char ad[16]; char *ad;
Tanım ANSI C dizgisi (string) bir karakter dizisidir (array of characters) Örnek dizgi tanımları: #define UYARI_DIZGISI “Veri giris hatasi” #define DIZGI_BOYU.
Değişken Bildirimleri
Bölüm 2: Program Denetimi
OOP4 LAB.
Soru1: kuvvet(taban,us) Şeklinde bir yinelenen fonksiyon yazın
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
String Kütüphanesindeki Arama Fonksiyonları
Bölüm 10 Yapılar ve Birleşimler
String ve Karakterlerin Temelleri
Bölüm 2 C Dilinin Temelleri Genel Kavramlar
Soru1: Dışardan "%s" format belirteci kullanılarak girilecek 20 elemanlı bir dizinin elemanlarının kaç tanesinin rakam, kaç tanesinin harf ve kaç tanesinin.
Soru1: Kullanıcıdan iki tam sayı girmesini isteyen ve daha sonra büyük olan sayı ile beraber ‘en büyüktür’ ifadesi yazan, ancak sayılar birbirine eşitse.
6. HAFTA
FONKSİYONLAR.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Diziler Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler.
Algoritma & Programlama
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
Fonksiyonlar Fonksiyon Tanımı
Algoritma & Programlama
Diziler (Arrays).
SINIFLAR VE DİNAMİK BELLEK YÖNETİMİ VE SINIFLARIN DİĞER ÖZELLİKLERİ Yılmaz Kılıçaslan.
Temel Giriş/Çıkış Fonksiyonları
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
Bilgisayar Programlama. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada.
Bölüm 6 Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
PROGRAM DENETİM DEYİMLERİ
STRING‘LER Karakter Kütüphanesi Fonksiyonları
Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri Dizgi Çıktı İşlemleri Dizgi Fonksiyonları Karakter Fonksiyonları Gösterge Dizgileri.
Örnek Adam asmaca oyununun programının yazılması.
Pointer (İşaretçi) Yapısal Veri Tipleri (Struct)
2. HAFTA 2. Hafta.
3. HAFTA 3. Hafta.
4. Hafta1 4. HAFTA. 4. Hafta2 Fonksiyonlar  Büyük problemler, küçük parçalara bölünerek kolay çözülür  Yazılımlar benzer modüller içerirler  Hata ayıklama.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
String Diziler(Katarlar)
C Programlamada, benzer tipte tanımlaman değişkenleri kontrol etmede bize en çok yardım eden dostlarımız dizilerdir. Örneğin: 100 Öğrencinin bilgilerini.
BİLGİSAYAR programlama II
BİLGİSAYAR PROGRAMLAMA Ders 6: Diziler Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Örnek Sorular Bilgisayar Programlama BIL 107. Soru 1: Ekran çıktısında 66 yazması için boşlukları doldurunuz ______ i = 'A'; printf(____, i__); CEVAP:
7. HAFTA.
Bilgisayar Programlama BIL 107
YAPISAL PROGRAMLAMA Hafta-5
Bilgisayar Programlamasına ve Veri Analizine Giriş - IV
C’de Fonsiyonlar Aslı Ergün.
C Sharp 9. hafta - dIZILER.
BÖLÜM 5 POINTER’LER (İŞARETÇİLER)
tanımları yapabilmeniz gerekmektedir .
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H12
Bölüm 9 Dizgiler Dizgi Tanımı Dizgi Girdi İşlemleri
Bölüm 2 C Dilinin Temelleri
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
ARDUİNO Arduino Eğitimleri Bölüm 3 Programlama Dili Temelleri
YAPISAL PROGRAMLAMA Hafta-7
Bölüm 2 C Dilinin Temelleri
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

1 7. HAFTA

2 Referanslar  Referanslar adres temsilcisidir  İşaretçilerin görevlerini kısmi olarak yapabilirler  Değişken değildirler.  Bellekte yer tutmaları mümkün değildir  & karakteri ile tanımlanabilirler  Tanımlama anında atamaları da yapılmalıdır  Referanslar C’de mevcut değildir  Kullanılmaları çok pratiktir

3 Referans Tanımı-Ataması int a=3; int &refA=a;//Başlangıç ataması şart!! cout<<a<<endl;cout<<refA<<endl; refA=5;//refA, a değişkenin adresidir cout<<a<<endl;cout<<refA<<endl;cout<<&refA<<end;

4 İşaretçi-Referans Farkı #include<iostream.h> void change(int *ptr1,int *ptr2){ (*ptr1)++;(*ptr2)--;} main( ) { int a=10,b=20; cout<<"a="<<a<<"\n";cout<<"b="<<b<<"\n";change(&a,&b);cout<<"a="<<a<<"\n";cout<<"b="<<b<<"\n"; return 0; return 0;} #include<iostream.h> void change(int &ref1,int &ref2){ ref1++;ref2--;} main( ) { int a=10,b=20; cout<<"a="<<a<<"\n";cout<<"b="<<b<<"\n";change(a,b);cout<<"a="<<a<<"\n";cout<<"b="<<b<<"\n"; return 0; return 0;}

5 Karakter Dizgileri (Strings)  String, NULL karakteri ile biten karakter dizisinden meydana gelir.  Her karakter bir tamsayı ile temsil edilir  K.Dizgileri çift tırnak arasında gösterilir  K.Dizgeleri aslında bir işaretçi veya dizidir char sehir[]=“Van”; //dizi char sehir[]={‘V’,‘a’,’n’}; char *sehir=“İstanbul”; //işaretçi scanf(“%s”,sehir);

6 Karakter Fonksiyonları Fonksiyon Görevi isdigit c rakamsa TRUE, değilse FALSE döndürür isalpha c harfse TRUE, değilse FALSE döndürür isalnum c harf veya rakamsa TRUE, değilse FALSE döndürür isxdigit c hexadecimal ise TRUE, değilse FALSE döndürür islower c küçük harf ise TRUE, değilse FALSE döndürür isupper c büyük harf ise TRUE, değilse FALSE döndürür tolower Küçük harfe çevir toupper Büyük harfe çevir isspace c boşluk karakteri ise TRUE, değilse FALSE döndürür iscntrl c kontrol karakteri ise TRUE, değilse FALSE döndürür strupr diziyi büyük harfe çevirir strlwr diziyi küçük harfe çevirir int isdigit(int) //rakamsa 1, değilse 0 int isdigit(int c) { if( (c>=‘0’)&&(c =‘0’)&&(c<=‘9’) ) return 1; return 0; } int tolower(int c) {if(isupper(c))c+=32; return c; }

7 K.Dizgisi Dönüştürme Fonksiyonları Fonksiyon Görev atof Dizgiyi double’a dönüştürür atoi Dizgiyi int’e dönüştürür atol Dizgiyi long int’e dönüştürür strtod Dizgiyi double’a dönüştürür strtol Dizgiyi long int’e dönüştürür strtoul Dizgiyi unsigned int’e dönüştürür int atoi(const char *nptr) { int x=0,j=0; while (nptr[j]) { x=x*10+(nptr[j]-'0'); j++; } return x; } #include #include int main (){ int intSayi; int intSayi; char charSayi [50]; char charSayi [50]; printf ("Bir sayi girin: "); printf ("Bir sayi girin: "); scanf ("%s", &charSayi); scanf ("%s", &charSayi); intSayi = atoi (charSayi); intSayi = atoi (charSayi); printf ("Girilen deger:%d, 2 kati %d.\n",intSayi,intSayi*2); printf ("Girilen deger:%d, 2 kati %d.\n",intSayi,intSayi*2); getch(); getch(); return 0; return 0;}

8 K.Dizgisi İşleme Fonksiyonları Fonksiyon Görevi strcpyBir dizgiyi başka bir dizgiye kopyalar strncpy Bir dizginin belirli sayıdaki karakterini başka bir dizgiye kopyalar strcat Başka bir dizgiye ekler strncat Bir dizginin belirli sayıdaki karakterini başka bir dizgiye ekler void strcpy(char *s1,const char *s2) { int i=0; while (s2[i]) {s1[i]=s2[i];i++;}s1[i]='\0';} char *strcat(char *s1,const char *s2) { int i=0,j=0; while (s1[i]) i++; while (s2[j]) {s1[i+j]=s2[j];j++;}s1[i+j]='\0';}

9 K.Dizgisi Karşılaştırma Fonksiyonları FonksiyonGörev strcmpİki karakter dizgisini karşılaştırır. Birincisi büyükse pozitif, ikincisi büyükse negatif, eşitse 0 döndürür strncmpİki karakter dizgisini belirli sayıdaki karakterlerini karşılaştırır. Birincisi büyükse pozitif, ikincisi büyükse negatif, eşitse 0 döndürür int strcmp(const char* s1,const char* s2) { int i; for (i=0;s1[i]==s2[i];i++) if (!s1[i]) return 0; return s1[i]-s2[i]; }

10 K.Dizgisi Arama Fonksiyonları strchr: Bir dizgi içerisinde aranan karakterin ilk rastlanıldığı adresi döndürür strrchar: Bir dizgi içerisinde aranan karakterin son rastlanıldığı adresi döndürür strstr: Bir dizgi içerisinde aranan başka bir dizginin ilk rastlanıldığı adresi döndürür strok: Her çağrılmada dizgiyi bir parçaya (token) böler

11 Çalışma Soruları Soru 7.1 Bir fonksiyon karakterlerden oluşan bir dizgenin adresini tutan bir char işaretçisini parametre olarak alır ve aynalanmış kelimelerin sayısını ana fonksiyona döndürür. Örnek aynalanmış kelimeler: ata, kbk, akoka, vb.Aynalanmış kelimedeki karakter sayısı tek olur ve en az üç karakterden oluşur. Soru 7.2 Bir fonksiyonun prototipi: int fonk(char* dizge,char aranan,int mesafe) dir.Yazacağınız fonksiyon dizge içerisindeki aranan karakterin, verilen karakter mesafesi ile tekrar sayısını döndürmelidir. Örneğin: Aranan karakter ‘b’ olsun. Mesafe de 4 olsun. Dizgemiz “ababccccbaabvvvvvbeeeb” olursa, fonksiyon 2 değerini döndürür. Soru 7.3 Bir fonksiyon bir karakter dizisini parametre olarak almakta ve içerisinde geçen her bir karakterin sayısını başka bir diziye (28 elamanlı, her biri bir harfe gelecek şekilde) azalan sayıda (dizi[0] en fazla olan harfi, dizi[27] en az harfi tutmaktadır) kaydetmektedir. Parametre olan dizinin sonu, harften farklı bir karakter (rakam, noktalama işaretleri gibi) ile belirlenir. Soru 7.4 char * fonki (car *str1,char *str2, int konum) olarak verilen prototip için: str1 karakter dizgesi içerisine str2 dizgesi eklenmektedir. Eklemenin başlangıç yeri konum değişkeni ile belirlenmektedir. Eğer konum, str1 in eleman sayısından fazla ise ekleme doğrudan sondan başlar. Yeni oluşturulan dizinin adresi ana fonksiyona döndürülür. Örnek, str1: aaabbb, str2: ded ve konum 4 ise yeni dizi: aaadedbbb Soru 7.5 Fonksiyona parametre olarak alınan str1 ve str2 karakter işaretçisidir. Fonksiyon str1’içinde str2’ye karşılık gelen karakter dizgesini aramakta ve str1’in içerisinden silmektedir. Soru 7.6 Klavyeden 80 adete karakteri kadar getch fonksiyonu ile alan (alım nokta karakteri ile sonlandırılacak)ve alınan verilerin tutulduğu alanın başlangıç adresini ana fonksiyona döndüren fonksiyonu yazınız. Diziye ana fonksiyondan da erişilmelidir. NULL karakterini dizinin sonuna eklemeyi unutmayınız.