C PROGRAMLAMA D İ L İ

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

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

Hafta 12 Karakter Tutan Diziler

BİL1001 Bilgisayar Bilimlerine Giriş 1

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

Giriş. ENF102 Jeoloji

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

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

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

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

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

Diziler (Arrays) Çok Boyutlu Diziler

Özyineleme (Recursion)

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

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Bölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER

Programlama Dilleri 1. Ders 4: Diziler

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

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

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

PROGRAMLAMAYA GİRİŞ DERS 2

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

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

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

C Programlama Dilininin Basit Yapıları

C Programlama Dilinde Değişkenler

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

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

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

C PROGRAMLAMA D İ L İ

C PROGRAMLAMA D İ L İ

8. İŞARETCİLER (POINTERS)

Eln 1001 Bilgisayar Programlama I

Temel Giriş/Çıkış Fonksiyonları

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

Algoritma ve Programlama: Karar Yapıları ve Döngüler

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

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

ALGORİTMA VE PROGRAMLAMA II

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

Sınav tarihi : Süre : 60 dak.

Döngü ve Koşul Deyimleri

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

Dr. Fatih AY Tel: fatihay@fatihay.net

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

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Genel Programlama II

C PROGRAMLAMA D İ L İ

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Pointer Kavramı. Veri Yapıları

Başkent Üniversitesi MühendislikFakültesi BaharYarıyılı YerSıra No BİL 101 Bilgisayar Yazılımı-I Dersi Dönem Sonu MAZERET Sınavı

Hafta 11 Çok Boyutlu Diziler

C Konsol Giriş Çıkış Fonksiyonları

2. Dereceden Denklemin Köklerini Bulan Program

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

#include <stdio.h> main() { int i; i=0; do { printf("i nin simdiki degeri= %d\n",i); i = i + 1; } while (i<5); }

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Giris {\} /\ Suhap SAHIN Onur GÖK

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

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

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

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

IF / ELSE IF / ELSE. Bu deyimler, koşullu işlem yapan deyimlerdir ve daima if deyimi ile başlar, else if veya else ile devam eder.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

int printf (const char *format [, argument,...]);

BÖLÜM 9: POINTERLER (İŞARETÇİLER)

BLM 111 ALGORİTMA VE PROGRAMLAMA I

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

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

Ders 4: Temel Giriş/Çıkış Fonksiyonları

Göstericiler (Pointers)

Bölüm 2 - C ile Programlamaya Giriş

STRİNG DİZİLER(KATARLAR)

C PROGRAMLAMA DİLİNE GİRİŞ

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

10. DOSYA GİRİŞ ÇIKIŞ FONKSİYONLARI

Yrd. Doç. Dr. Caner ÖZCAN

Temel Giriş/Çıkış Fonksiyonları (Devam) Örnek :

Programlama Dilleri 1. Ders 5: Göstericiler

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

ELN1001 BİLGİSAYAR PROGRAMLAMA I

C++ Operatörler (Operators)

Adı Soyadı : Öğrenci No :

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

C dilinde if-else yapısı

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

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

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

Transkript:

C PROGRAMLAMA DİLİ

Diziler Dizi bir kümedir. Aynı tipteki verilere tek bir isimle erişmek için kullanılır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır. Bu yüzden dizilere tek bir isim altında çok sayıda değişken içeren bellek bölgesi de denir. Buna göre bir diziyi dizi yapan iki temel özellik vardır: dizi elemanların bellekte sürekli biçimde bulunması dizi elemanların aynı türden değişkenler olması

Dizilerin Bildirimi Bir dizi çok sayıda değişken barındırdığından, bunları birbirinden ayırdetmekiçin indis adı verilen bir bilgiye ihtiyaç vardır. C Programlama Dili'nde, bir dizi hangi tipte tanımlanmış olursa olsun başlangıç indisi her zaman 0'dır.

Bir dizinin bildirim işleminin genel biçimi söyledir: tip dizi_adı[eleman_sayısı]; Örneğin, 5 elemanlı bazı kütle verilerini tutmak için kutle dizisi şöyle tanımlanabilir: float kutle[5]; Bu dizinin elemanlarına bir değer atama işlemi şöyle olabilir: kutle[0] = 8.471 kutle[1] = 3.683 kutle[2] = 9.107 kutle[3] = 4.739 kutle[4] = 3.918

Bildirim sırasında dizilerin eleman sayısı tamsayı türünden bir sabit ifadesiyle belirtilmesi zorunludur. Örneğin: int n=100; inta[n];

Bir dizinin bellekte kapladığı alan bayt cinsinden sizeof operatörü ile öğrenilebilir. Örneğin: int a[5],b,c;... b = sizeof(a); /* bellekte kapladığı alan: b = 4*5 = 20 bayt */ c = sizeof(a)/sizeof(int); /* Dizinin boyutu : c = 20/4 = 5

Dizilere Başlangıç Değeri Verme Bir diziye başlangıç değerleri aşağıdaki gibi kısa formda atanabilir: float kutle[5]= { 8.471, 3.683, 9.107, 4.739, 3.918 }; int kilo[3] = { 25, 72, 94 }; doublea[4] = { 10.0, 5.2, 7.5, 0.0};

Küme parantezlerinin sonlandırıcı ; karakteri ile bittiğine dikkat ediniz. Bir dizinin uzunluğu belirtilmeden de başlangıç değeri atamak mümkündür. Örneğin: int a[]={100,200,300,400}; floatv[]={9.8,11.0,7.5,0.0,12.5}; Derleyici bu şekilde bir atama ile karşılaştığında, küme parantezi içindeki eleman sayısını hesaplar ve dizinin o uzunlukta açıldığını varsayar. Yukarıdaki örnekte, a dizisinin 4, v dizisinin 5 elemanlı olduğu varsayılır.

Dizileri Yazdırma/Okuma printf ve scanf fonksiyonları bir dizinin okunması ve yazdırılması için de kullanılır. Örneğin bir A dizisinin aşağıdaki gibi bildirildiğini varsayalım: inta[10]; Bu dizinin elemanlarını klavyeden okumak için: for(i=0;i<10;i++) scanf("%d",&a[i]); daha sonra bu değerlerini ekrana yazmak için: for(i=0;i<10;i++) printf("%d\n",a[i]);

Klavyeden girilen 10 sayının ortalamasını hesaplayan program

#include <stdio.h> #include <conio.h> main() { int i,x[10],toplam=0; floatort; for(i=0;i<10;i++) { printf("%d. sayi: ",i+1);scanf("%d",&x[i]); toplam=toplam+x[i]; } ort = (float) toplam/10; printf("sayilarin ortalamasi = %f\n",ort); getch(); }

Sıralama (Sorting) Bazı uygulamalarda bir grup sayının büyükten küçüğe, veya küçükten büyüğe, doğru sıralanması gerekebilir. Bu tip sıralama problemleri için çeşitli algoritmalar geliştirilmiştir. Sıralama mantığını anlamadan önce bir dizinin en büyük (veya en küçük) elemanının nasıl bulunduğunu anlamak gerekir.

Bir dizinin en büyük elemanının bulunuşu #include <stdio.h> #include <conio.h> main() { int a[10] = {100, -250, 400, 125,550, 900, 689, 450, 347, 700}; int k,eb; eb= a[0]; /* ilk eleman en büyük kabul ediliyor */ for(k=1;k<10;k++) if(a[k]>eb) eb= a[k]; printf("en buyuk eleman = %d\n",eb); getch(); }

Karakter Dizileri (Strings) Karakter dizileri en sık kullanılan dizilerdir. Karakterler üzerinde işlemlerin hızlı ve etkin bir biçimde yapılabilmesi için sonlandırcı karakter denilen bir tanımlamdan faydalanılmaktadır. Sonlandırıcı karakter: dizinin bittiği yeri gösterir ASCII tablosunun sıfır numaralı('\0') karakteridir

Karakter dizilerine iki şekilde başlangıç değeri verilebilir. chars[7] = {'d','e','n','e','m','e','\0'}; yada char s[7] = "deneme"; Birinci tanımlamada sonlandırıcı karakter programcı tarafından konmalıdır. İkinci tanımlamada ise buna gerek yoktur. Karakter dizileri getsfonksiyonu ile klavyeden okunabilir. Örneğin: char ad[20];... gets(ad);

Bir karakter dizisinin uzunluğunu bulur #include <stdio.h> #include <conio.h> main() { chars[20]; int k=0; printf("bir seyleryazin: "); gets(s); /* diziyi oku */ while(s[k]!='\0') /* sonlandırıcı karaktere kadar */ k++; printf("dizinin uzunlugu: %d\n",k); getch(); }

/* Bir karakter dizisini tersyüz eder */ #include <stdio.h> main() { char s[20]; int i,n,gecici; printf("bir seyler yazin : "); gets(s); /* diziyi oku */ for(n=0;s[n]!='\0';n++) ; /* sonlandırıcı karaktere kadar */ for(i=0;i<n/2;i++) { gecici = s[n-i-1]; s[n-i-1] = s[i]; s[i] = gecici; } printf("tersi : %s\n",s); }

Çok Boyutlu Diziler