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

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

C PROGRAMLAMA D İ L İ

Diziler (Arrays) Çok Boyutlu Diziler

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ı

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

C++ Dersi: Nesne Tabanlı Programlama

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

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

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

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

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

BİL1001 Bilgisayar Bilimlerine Giriş 1

Hafta 11 Çok Boyutlu Diziler

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

Klavyeden girilen metnin karakter uzunluğu bulan C programı. Klavyeden girilen metin içerisindeki küçük ve büyük harf sayısını bulan C programı

BLM 111 ALGORİTMA VE PROGRAMLAMA I

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

Deney 7: Fonksiyon Tanımlama ve Parametre Aktarım Yöntemleri

Giriş. ENF102 Jeoloji

BLM 111 ALGORİTMA VE PROGRAMLAMA I

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

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

2. Dereceden Denklemin Köklerini Bulan Program

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

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

YZM 2105 Nesneye Yönelik Programlama

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

scanf () Fonksiyonu Klavyeden veri okumak için kullanılır. Yapı olarak printf () fonksiyonu aynıdır. Kullanım biçimi:

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

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

Adı Soyadı : Öğrenci No :

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

NOT: Bu kodlar çeşitli internet siteleri, üniversite siteleri ve ders kitaplarından derlenerek hazırlanmıştır.

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

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

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

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

Döngü komutları komutların bir çok kez yeniden yürülmesini. sağlayan, programlamada kullandığımız önemli yapılardan biridir.

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

elemanlı bir dizide bir sinyalin 1 er saniye aralıklarla ölçülen gerilim değerleri tutulmaktadır. Bu sinyalin tepeden tepeye genliğini,

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

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

Programlama Dilleri Laboratuvarı

8. İŞARETCİLER (POINTERS)

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

ALGORİTMA VE PROGRAMLAMA I

Hafta 12 Karakter Tutan Diziler

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

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

Temel Giriş/Çıkış Fonksiyonları

Dr. Fatih AY Tel: fatihay@fatihay.net

YAPILAR (STRUCTURES)

C ile Uygulamalar 2 - Cevaplar

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

4.Hafta BİL Soruların Çözümleri

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

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

BPR152-Algoritma ve Programlama II Uygulama -13

Final Sınavı Soruları Güz, Süre: 90 Dakika

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

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

Bil 101 Bilgisayar Yazılımı 1 Çözümlü Sorular Timur Karaçay

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

Matlab da Dizi ve Matrisler. Mustafa Coşar

Programlama Dilleri 1. Ders 5: Göstericiler

Arasınav Sınavı Soruları Güz 2017 Süre: 90 Dakika

Matris İşlemleri Uygulaması

ALGORİTMA VE PROGRAMLAMA I

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

Programlama Dilleri 1. Ders 4: Diziler

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

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

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

İki Boyutlu Dizi Uygulamaları

1. Her marka için 3 aylık satış toplamı nedir? (Tablodaki satır toplamları)

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

C ile Uygulamalar 3 - Cevaplar

#include <stdio.h> int main(void) { float sayi; float * p; p = &sayi; printf("deger girin:"); scanf("%f", p); printf("girilen deger:%f\n", *p);

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

#include<stdio.h> #include<conio.h> #define doktorsayisi 3. typedef struct dr{ int ay1, ay2, ay3, ay4; } doktor; float hesapla(doktor dktr){

BÖLÜM 11: YAPISAL VERİ TİPLERİ

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

C Programlama Dilinde Değişkenler

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

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

Döngü ve Koşul Deyimleri

PROGRAMLAMAYA GİRİŞ DERS 2

Özyineleme (Recursion)

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

JAVADA DİZİ İŞLEMLERİ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Visual Basic Uygulamaları-4. Dİ Zİ LER (ARRAYS) ve Nesne Kü meleri

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

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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

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

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

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

HSancak Nesne Tabanlı Programlama I Ders Notları

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

Transkript:

Diziler

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

Dizi Tanımı Değişkenler aynı anda tek bir değer tutabilen temel değişkenler ve birden fazla değer saklayabilen bileşik değişkenler olmak üzere ikiye ayrılır. Temel değişkenler bellekte tek bir hücreyi tanımlayıp, içlerinde tek bir değeri tutabilirler. Diziler ise ardarda sıralanmış bellek hücreleridirler. Diziler bu bağlamda bileşik değişkenlerdir ve bellekte aynı anda birden fazla değerin saklamasını mümkün kılarlar.

Dizi Tanımı veri_tipi dizi_ismi [eleman_sayısı]; Bellek Görüntüsü:

Dizi Tanımı Örnek: int not[4]; int i; not[0]=20; 20 not[2]= not[0]+10; 20 30 i=0; not[i]=90; not[++i]=70; 90 70 30

Dizi Elemanlarına Değer Atama int a[3],b; scanf( %d, &b); a[2]=b; veya int a[3]; scanf( %d, &a[2]);

Dizinin elemanlarına değer verilmesi tanımlama anında yapılabilir. int a[5]= {25, 18; 20; 0,29 Dizilerin bellekte saklanma biçimi: Erişimin kolay olması için dizinin tüm elemanları peşpeşe saklanır.

Dizi Elemanlarına Değer Atama Örnek:Kullanıcıdan alınan 5 tamsayı değerini bir dizide saklayan ve bu değerlerin ortalamasını bulan bir program yazalım #include <stdio.h> int main(void) { int a[5]; int i,toplam; double orta; /*Kullanici degerlerinin dizide saklanmasi*/ printf( Bes tamsayi giriniz: ); for(i=0;i<5;++i) scanf( %d,&a[i]); /*Toplam ve ortalamanin bulunmasi*/ toplam=0; for(i=0;i<5;++i) toplam=toplam+a[i]; orta= toplam/5.0; printf( Ortalama=%5.2f,orta); return (0);

2-Boyutlu Diziler Her elemanı bir boyutlu dizi olan yapılara ise çok boyutlu diziler denir. Bu bölümde matris veya tablo olarak da bilinen 2-boyutlu dizilere değineceğiz. veri_tipi dizi_ismi[satır_büyüklüğü][sütun_ büyüklüğü]; int not[3][30];

2-Boyutlu Diziler 2-Boyutlu Dizilere Değer Atama scanf( %d, &not[29][0]); not[1][1]=90; Tanımlama Sırasında Değer Atama satır yönünde atama

2-Boyutlu Diziler Tanımlama Sırasında Değer Atama

2-Boyutlu Diziler Tanımlama Sonrasında Satır Yönünde Değer Atama int a[30][3]; for(satir=0; satir<30; ++satir) { for (sutun=0;sutun<3; ++sutun) a[satir][sutun]=0;

2-Boyutlu Diziler Tanımlama Sonrasında Sütun Yönünde Değer Atama int a[30][3]; for(sutun=0; sutun <3; ++sutun) for (satir=0;satir<30;++satir) a[satir][sutun]=0;......

Örnek: 10 elemanlı iki dizinin toplamını üçüncü bir diziye yazan program. #include <stdio.h> main() { int A[5], B[5],C[5]; int i; printf("a dizinin elemanlarini giriniz"); for(i=0;i<5;i++) { printf("a[%d]=", i); scanf ("%d",&a[i]); printf("b dizinin elemanlarini giriniz"); for(i=0;i<5;i++) { printf("b[%d]=", i); scanf ("%d",&b[i]); /* Iki dizinin elemanlarinin toplanmasi*/ for(i=0;i<5;i++) C[i]=A[i]+B[i]; /* C dizisinin yazdırılması */ printf("c dizisi:\n"); for(i=0;i<5;i++) printf("%d\t",c[i]);

Örnek: 10 elemanlı A dizisinin en küçük elemanı bulup yazan program. #include <stdio.h> main() { int A[10]; int i,enk; for (i=0;i<10;i++) { printf("a[%d]=", i); scanf("%d",&a[i]); enk=a[0]; for(i=0;i<10;i++) if (enk>a[i]) enk=a[i]; printf("dizinin en küçük elemani %d dir", enk);

Örnek: 10 elemanlı A dizisinin tek elemanlarından B dizisini oluşturan program #include <stdio.h> main() { int A[10],B[10]; int i,j; // A dizisinin elemanlarinin okunmasi for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); j=0; for(i=0;i<10;i++) { if (A[i]%2==1) { B[j]=A[i]; j++; // B dizisinin yazdirilmasi for(i=0;i<j;i++) printf("%d,", B[i]);

Örnek: 25 kişilik bir sınıfın sınav sonuçlarını okuyup ortalamasını bulan program #include <stdio.h> main() { int ogr[25]; int i, toplam; float ortalama; /*Ogrenci notlarinin okunmasi*/ for(i=0;i<25;i++) { printf("%d\ inci ögrencinin sinav notunu giriniz", i); scanf ("%d",&ogr[i]); toplam=0; for(i=0;i<25;i++) toplam=toplam+ogr[i]; ortalama=toplam/25; printf("sinif ortalamasi %f dir",ortalama);

2-Boyutlu Diziler Örnek:Kullanıcının, 30 kişilik bir sınıftaki her öğrenci için 3 er sınav notu gireceği ve her sınav için sınıf ortalamasının ekranda gösterileceği bir program yazınız. #include <stdio.h> int main(void) { int not[30][3]; int i,j,toplam; double orta; /* Kullanicidan notlarin alinmasi*/ for(i=0;i<30;++i) { printf( %d. ogrenci notlari:,i+1); for(j=0;j<3;++j) scanf( %d, &not[i][j]); /*Her sinavin ortalamasinin bulunmasi*/ for(j=0;j<3;++j) { toplam=0; for(i=0;i<30;++i) toplam+=not[i][j]; orta=toplam/30.0; printf( %d. sinav ortalamasi: %5.2f\n,j+1,orta); return (0);

Sıralama Dizi elemanlarının küçükten büyüğe ve büyükten küçüğe doğru dizilmesi işlemidir. Farklı performansa sahip bir çok yöntem vardır. Buble sort: Bu yöntemde ardışıl iki yöntem karşılaştırılır. Eğer önceki eleman sonrakinden büyük ise elemanlar yer değiştirilir. Bu şekilde dizi taranır. Eğer herhangi bir değişiklik yapılmış ise işlem tekrar edilir.

Buble sort Başlangıç 1. Adım 2.Adım 3.Adım 34 21 18 18 21 18 21 21 18 25 25 25 25 34 34 34

Örnek: 10 elemanlı dizinin elemanlarını sıralayan program #include <stdio.h> main() { int a[10]; int i,j,temp; /*dizi elemanlarinin okunmasi*/ for(i=0;i<10;i++) { printf("dizinin %d\ inci elemanini giriniz",i); scanf ("%d",&a[i]); for(i=0;i<10;i++) for (j=i+1;j<10;j++) if(a[i] >a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; for(i=0;i<10;i++) printf("%d, ",a[i]);

Örnek: A ve B matrislerini toplayan program. #include <stdio.h> main() { int A[3][3]={ 1,2,3,4, 5, 6, 7, 8, 9; int B[3][3]= {{2, 4, 8,{3,6,9,{4,16,64; int C[3] [3]; int i, j; for (i=0;i<3;i++) for(j=0;j<3; j++) C[i][j]=A[i][j]+B[i][j]; // C matrisinin yazdirilmasi for (i=0;i<3;i++) { for(j=0;j<3; j++) printf("%d ", C[i][j]); printf("\n");

Örnek: A matrisinin içindeki en büyük ve en küçük sayıyı bulan program #include <stdio.h> main() { int A[3][3]; int enb; int enk; int i, j; // A matrisinin elemanlarinin okunmasi for (i=0;i<3;i++) for(j=0;j<3;j++) { printf("a[%d][%d]=",i,j); scanf("%d",&a[i][j]); enb=a[0][0]; enk=a[0][0]; //A matrisinin enk ve enk elemanlarinin bulunmasi for (i=0;i<3;i++) for(j=0;j<3; j++) {if (enb<a[i][j]) enb=a[i][j]; if (enk>a[i][j]) enk=a[i][j]; printf("dizinin en kucuk elemani %d en buyuk elemani %d dir",enk, enb) ;