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

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

Fonksiyonlar (Altprogram)

Ders 6: Karşılaştırma Deyimleri

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

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

HSancak Nesne Tabanlı Programlama I Ders Notları

BİL1001 Bilgisayar Bilimlerine Giriş 1

Döngü ve Koşul Deyimleri

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

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

Karakter katarları ile ilgili fonksiyonlar içerir Yerel kayan noktalı sayılar tanımlanır

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

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

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

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

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

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

Program Akış Kontrol Yapıları

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

Bil Hafta Çalışma Soruları (Yanıtlar)

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

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.

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-10 Diziler. Yrd. Doç. Dr. Ümit ATİLA

Java da İşleçler, Ders #3 (4 Kasım 2009)

Diziler (Arrays) Çok Boyutlu Diziler

8. İŞARETCİLER (POINTERS)

BÖLÜM 7: DÖNGÜ KONTROL YAPILARI

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

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

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

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

Bölüm 4 C de Program Kontrolü

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

Temel Giriş/Çıkış Fonksiyonları

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

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

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

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

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Ders 7: Döngüler. Giriş. 7.1 while Döngüsü

C ile Uygulamalar 4 - Cevaplar

PROGRAMLAMAYA GİRİŞ DERS 2

Telefon Rehberi Uygulaması

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

// Aşağıdaki programın çıktısı nedir?

C ile Uygulamalar 3 - Cevaplar

Program AkıĢ Kontrol Yapıları

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

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

Başkent Üniversitesi Mühendislik Fakültesi Güz Yarıyılı BİL 101-Bilgisayar Yazılımı I Arasınavı

C PROGRAMLAMA D İ L İ

C++ Dersi: Nesne Tabanlı Programlama

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

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Karşılaştırma Komutları (Switch ve? Operatörü)

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

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

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

Döngü blokunda tek bir deyim varsa {} yazılmayabilir.

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

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Kocaeli Üniversitesi Bilgisayar Mühendisliği Programlama 2 Dersi Final Sınavı. A Grubu

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

BPR152-Algoritma ve Programlama II Uygulama -8

Programlama Dilleri 1. Ders 5: Göstericiler

Akış Konrol Mekanizmaları

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

Hafta 9 C Dilinde Kontrol ve Döngü Yapıları

C PROGRAMLAMA D İ L İ

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

YZM 2105 Nesneye Yönelik Programlama

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Programlama Dilleri Laboratuvarı

Pointer Kavramı. Veri Yapıları

Hafta 11 Çok Boyutlu Diziler

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

ALGORİTMA VE PROGRAMLAMA I

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

Genel Programlama II

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

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

C PROGRAMLAMA D İ L İ

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

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

Döngüler - Loops 4/9/2010. ENF-102 Jeoloji Giriş. Sayaç kontrollü bir döngüdeki temel öğeler. Sayaç (counter) Kontrollü Döngüler.

C PROGRAMLAMA D İ L İ

Dr. Fatih AY Tel: fatihay@fatihay.net

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

Hazır Fonksiyonlar {\} /\ Suhap SAHIN Onur GÖK 1

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 5. Bölüm Karar ve Çevrim Kontrol Yapıları

Transkript:

DİZİLER 8. Bölüm Dizi aynı ad altında toplanmış ve aynı tipte olan değişkenlerin sıralı bir listesidir. C de bir dizi için bildirim yapılırken kullanılan genel kural şudur. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar. main( ) int sayı_listesi[10]; /* 10 tamsayı içieren bir dizi */ sayı_listesi[4]=823; sayı_listesi[0]=38; printf("eleman %d : %d\n",4,sayı_listesi[4]); pirntf("eleman %d : %d\n",0,sayı_listesi[0]); # include <stddio.h> int i, tpl; int a[10], b[10], c[10]; for (i=0;i<=9;i++) a[i]=b[i]=c[i]=0; tpl=0; for (i=0;i<=9;i++) a[i]=i; b[i]=i*i; c[i]=2*a[i]+b[i]; tpl=tpl+c[i]; printf (" sayi karesi 2*sayi+karesi \n"); for (i=0;i<=9;i++) printf("%8d %8d %8d \n", a[i],b[i],c[i]); printf(" toplam =%d \n",tpl);

# include <stddio.h> int kare[21]; for (i=1;i<=20;i++) kare[i]=i*i main( ) float sonuc[10]; printf("10 tane reel sayı girin\n"); for (i=0;i<10;i++); printf("no %d:",i+1); scanf("%f, &sonuç[i]); printf("sayılar girildi\n"); printf("sonuç için 1 ile 10 arasında bir sayı\n"); printf("çıkış için 0 yazın\n); do printf(":"); scanf("%d", &i); if (i>0 && i<11) /* geçerli bir eleman (1-10) */ printf("eleman %d, %f içeriyor\n", i, sonuç[i-1]); /* elemanlar 0 ile 9 arasında */ while (i!=0) KARAKTER DİZGİLERİ Bir sözcük veya tümceyi bir değişkende saklamak istediğimizde bunu yapmanın bir yolu tümceyi bir karakter dizisine yerleştirmektir. Bir dizgi, bir dizi olduğu için = işareti kullanılamaz. Bir dizgiyi bir karakter dizisinden diiğerine taşımak için dizgi kopyalama fonksiyonu olan strcpy( ) yi kullanmak gerekir. Bu fonksiyonun iki parametresi vardır. Kaynak dizgisi ve hedef dizgisi.

char hedef[80]; char kaynak[80]; strcpy (hedef,kaynak); main( ) char dizgi1[80], dizgi2[80]; printf("lütfen bir dizgi girin\n:"); scanf("%s", &dizgi1); printf("bu dizgi2 ye aktarılıyor\n"); strcpy(dizgi2, dizgi1); printf("dizgi %s\n", dizgi2); NOT :Bir dizi aynı ad altında bir araya gelmiş olan bir grup değişkenden oluşur. Dizinin her bir değerine elman adı verilir. Bir elemanı belirtmek için kullanılacak sayı pozitif bir tam sayı olmalıdır ve bu elemanın içerdiği değer herhangi bir tipte olabilir. MATRİS İLE İLGİLİ : # define sira 3 # define kolon 3 int i, j, k, katsayı; int matris [sira][kolon]; for (i=0;i<sira;i++) for (j=0;j<kolon;j++) matris[i][j]=0; for (i=0;i<sira;i++) j=0; while (j<kolon) printf("matris[%d][%d]=",i,j); scanf("%d",&katsayi); if (katsayi<0) break; matris[i][j]=katsayi; j++;

for (i=0;i<sira;i++) for (j=0;j<kolon;j++) printf("matris[%d][%d]=%d",i,j,matris[i][j]); printf("\n"); BREAK DEYİMİ C de döngüden çıkmak için kullanılır. Bilgisayar döngünün sonunu beklemeden, istenilen koşulun sağlandığını kabul ederek, bir sonraki satırdaki komutları işletir. for, while veya do..while döngülerinde kullanılır. if..else ile kullanılamaz. Örnekte, katsayi sıfırdan küçük olursa, o sıradaki diğer elemanların hep sıfır değeri alması istendi. Bu durumda break ile bilgisayar j döngüsünden çıkıp bir sonraki i değerini alarak işleme devam eder. (CONTINUE deyimi) : C 'de continue "kaldığın yerden devam et", döngüyü tamamlayıncaya kadar devam et anlamındadır. int i, j; int a[5]; for (i=0;i<5;i++) a[i]=0; for (i=0;i<5;i++) scanf("%d",&a[i]); for (i=0;i<5;i++) if ( a[i]<0) continue; printf("%d TAMAM \n", a[j]); Bu örnekte, eğer a[j] değeri sıfırdan küçükse döngünün sonuna, yani işaretine kadar gitmeden başa dön, j nin bir sonraki değerini alarak işleme devam et denmektedir. program çalıştırıldığında; 11-22 33-44 55 değerleri girilirse 11 TAMAM

33 TAMAM 55 TAMAM çıktısı elde edilir. : Enter tuşuna basıncaya kadar verilen tüm karakterleri ASCII koduna çeviren program. cahar c; for (i=0;(c=getchar())!='\n';++i) printf("%d \n",c); ( Özel operatörler ve ifadeler) int a, b, i; for (i=0;i<=10;i++) a=a+i; printf("toplam a nın değeri = %d \n",a); for (i=0;i<=10;i++) b+=i; printf("toplam b nin değeri = %d \n", b); Bu örnekte a=55 ve b=55 değeri elde edilir. Genel olarak x=x+y yerine x+=y yazılabilir. Yani, x=x op y yerine x op =y komutu yazılabilir. Örneğin; x=x*(y+1) yerine x *=(y+1) yazılabilir. toplamını a, b, n 'in çeşitli değerleri için hesaplanacağını düşünüp bunun için bir fonksiyon yazalım.

double seri(); for (i=1;i<=5;++i) printf("%d %1.6f %1.6f %1.6f \n", i, seri(1,i,0), seri(2,i,1)); double seri(a,n,b) int a,n,b; double s, r; int j; r=0; s=0; for (j=1;j<=n;++i) r=a*j-b; s=s+(1/r); return(s); (Kısaltılmış if) float a, b, z; a=4; b=1.5; z=0; for (i=0; b<=a+100.0; i++) a=(a+7.3)*i; b=(b+1.0)*(i+1.0); if (a>b) z=a; else z=b; printf(%12.7f \n", z); NOT : C ' de mümkün olan diğer bir kısaltma da if... else deyimlerinde? işaretinin operatör olarak kullanılmasıdır. Yukarıdaki programın aynısı bu operatör kullanılarak aşağıda verilmiştir.

float a, b, z; a=4; b=1.5; z=0; for (i=0; b<=a+100.0; i++) a=(a+7.3)*i; b=(b+1.0)*(i+1.0); z=(a>b)? a: b; printf(%12.7f \n", z); Not: z=(a>b)? a: b; ifadesinde önce (a>b) işelem konur, eğer true (yani pozitif, doğru) ise 2.parametre olan a işlem görür, yani z=a; daha sonra ise yani (a>b) değilse son parametre olan b işlem görüyor, yani z=b; olur.