BİLGİSAYAR programlama II

Slides:



Advertisements
Benzer bir sunumlar
Soru1 : Bir borcun faizi, basit olarak aşağıdaki formülle hesaplanır:
Advertisements

Nöbetçi Kontrollü Döngü
void medyan(int cevap[]) { int j; siralama(cevap);
switch - case Yapısı Döngü Yapıları
Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
Bölüm 2: Program Denetimi
Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Hazırlayan : Nuri AVCI
Yapısal Program Geliştirme – if, if-else
Program Kontrol İfadeleri
Makine Müh. & Jeoloji Müh.
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.
C++ Temelleri C++ genel amaçlı, nesne tabanlı, yüksek seviye programlama dilidir.
MATLAB’ de Programlama
ALGORİTMALAR VE PROGRAMLAMAYA GİRİŞ
Akış Kontrol Mekanizmaları
PASCAL ile Programlamaya Giriş
Kontrol Yapıları ve Döngüler
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 2: Koşula Göre İşlem Yapma
Çoklu dallanma seçimi: switch
Algoritma & Programlama
MATLAB’te Döngüler.
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar
PHP'de Program Denetimi
a) b) c) d) e) Pi= 4* atan(1) y=Log10 | x | +4 Y= LOG10 (ABS(x))+4
C++ Ders Notları 2.Ders (Dilin Yapısı)
PROGRAM DENETİM DEYİMLERİ
4. KONTROL VE DÖNGÜ KOMUTLARI
C++ Ders Notları 4.Ders (Kontrol ve Döngüler)
C PROGRAMLAMA DİLİ YRD.DOÇ.DR. BUKET DOĞAN 1.
VERİ YAPILARI İşaretçi Nedir? Nesne Tabanlı Programlama.
Bu Günkü Konular If yapısı ve karşılaştırma operatörleri
2. HAFTA 2. Hafta.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritmalar ve Programlama I Ders 5: Operatörler
3. HAFTA 3. Hafta.
Temel Bilgi Teknolojileri Yrd. Doç. Dr. Doğan Aydoğan.
BİLGİSAYAR programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Döngü Komutları. for deyimi bir alt limitten, bir üst limite kadar programın belirli bir parçasını tekrar eder. for deyiminde sayaç artış oranı da verilmelidir.
Dosyalar. Örnek: stok.dat isimli bir dosyaya beyaz eşyanın ismini ve stoktaki miktarlarını kaydeden, dosyadaki bilgilerde düzeltme yapan, dosyadan bilgi.
BM-103 Programlamaya Giriş Güz 2012 (3. Sunu)
İnternet Programlama-I
Fonksiyonlar.
SAYISAL ANALİZ Doç.Dr. Cüneyt BAYILMIŞ.
BİLGİSAYAR programlama II
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
BİLGİSAYAR programlama II
Sıralama. Sıralama, bir dizideki sayısal elemanların küçükten büyüğe veya büyükten küçüğe, sayısal olmayan bir dizideki elemanların ise A’ dan Z’ ye.
BİLGİSAYAR PROGRAMLAMA Ders 4: Koşula Göre İşlem Yapma Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
Hesaplama Tabloları (MS For Mac Excel -3)
5. HAFTA Mart Discussion: comp.soft-sys.matlab An unmoderated newsgroup that focuses on the.
Bölüm 4 Seçme Komutları Alıştırmalar
BİLGİSAYAR PROGRAMLAMA DERSİ 4. DERS NOTU Konu: M-dosya yapısı ve Kontrol Yapıları 1.
PROGRAMLAMA TEMELLERİ Burak UZUN Bilişim Teknolojileri Öğretmeni Burak UZUN.
Algoritma ve Programlamaya Giriş Ders 5. C Programlama Dili - 2.
Bilgisayar Programlama BIL 107
C Programlama Dili Bilgisayar Mühendisliği.
BM-103 Programlamaya Giriş Güz 2016 (10. Sunu)
BM-103 Programlamaya Giriş Güz 2016 (5. Sunu)
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
PROGRAM KONTROL KOMUTLARI 1. if koşulu 2. if else koşulu
BİLGİSAYAR programlama II
Bölüm 2: Program Denetimi
Discussion: comp.soft-sys.matlab
?: KARŞILAŞTIRMA OPERATÖRÜ
Aritmetik Operatörler
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

BİLGİSAYAR programlama II Program Dallandırma Komutları BİLGİSAYAR programlama II

şartli deyİm

Şartlı deyim Kullanımı: şart ? deyim1 : deyim2 şart: mantıksal bir deyim Eğer şart değeri doğru ise (sıfır değilse) sonuç olarak deyim1 verilir, eğer şart değeri yanlış ise (sıfırsa) sonuç olarak deyim2 verilir.

Örnek: cout << ( (Ortalama >= SinirDeger) ? “Gecer” : “Kalir” ); Eğer (Ortalama >= SinirDeger) şartı doğru (1) ise ekrana şunu yazacaktır: Gecer Eğer (Ortalama >= SinirDeger) şartı yanlış (0) ise ekrana şunu yazacaktır: Kalir

Örnek: cout << “\nKirlilik degeri = “ << Deger << “: “; if (Deger < Limit) cout << “Guvenli durum.\n”; else cout << “Zararli durum!\n”;

Aynı programın şartlı deyim ile yazımı cout << “\nKirlilik degeri = “ << Deger << “: “ << ((Deger < Limit) ? “Guvenli durum.\n” : “Zararli durum!\n”);

Örnek: Girilen sayının tersini hesaplama Tersi = (x == 0) ? 0 : 1/x;   x değeri 0 olduğunda 1/x hesaplanamayacağından yukarıdaki ifade güvenlidir, dolayısıyla “divide-by-zero” hatasına neden olmaz.

Örnek: Girilen iki sayıdan büyük olanın bulunması int Deger1, Deger2, Buyuk; if (Deger1 > Deger2) Buyuk = Deger1; else Buyuk = Deger2; veya Buyuk = ( (Deger1 > Deger2) ? Deger1 : Deger2 );

Örnek: İki sayıdan büyüğünü bulan program. #include <iostream.h> #include <conio.h>   #define max(x,y) (x>y) ? x : y main() { int a=7, b=9; int c = max(a, b); cout << c; getch(); }

SORULAR Klavyeden girilen iki sayı arasındaki mutlak farkı şartlı deyim kullanarak hesaplayan programı yazın. Klavyeden girilen iki sayıdan, büyük olandan küçük olanı çıkararak sonucu ekrana yazan programı yazın.

Klavyeden girilen iki sayıdan ilkini sonrakine bölerek sonucu ekrana yazan programı yazın. (Sıfıra bölme hatası vermemesi için şartlı deyim kullanılacaktır.)

Bir akaryakıt istasyonu alınan akaryakıt miktarı 20 litre ve üstünde olduğunda indirim %10 indirim yapmaktadır. Alınan yakıt miktarı (lt) ve yakıt litre fiyatı (TL) girildiğinde ödenmesi gereken tutarı hesaplayan programı ŞARTLI DEYİM kullanarak yazınız. KDV oranı %18’dir.

If-else

Koşula bağlı olarak programın bir parçasını aktif hale getirir.   Kullanımı: if (koşul) deyim #1; else deyim #2; Koşul doğru ise deyim #1 aktif hale gelir, yanlış ise deyim #2 aktif hale gelir.

Veya if (koşul) { deyimler #1; } else deyimler #2; Koşul doğru ise 1 Veya if (koşul) { deyimler #1; } else deyimler #2; Koşul doğru ise 1. bloktaki komutlar (deyimler #1) aktif hale gelir, yanlış ise 2. bloktaki (deyimler #2) aktif hale gelir.

Örnek: if (ortalama >= 65) cout << “ gecti”; else cout <<”kaldi”;   if (ortalama >= 50 && ortalama <= 65) cout <<” CC aldi”

Örnek: Klavyeden bilgisayara vize ve final notları girildiğinde, vizenin %40’ını, finalin %60’ını alarak başarı notunu hesaplayan, başarı notu 50 ve üzerinde ise ekrana geçti, aksi halde kaldı yazan program yazınız.

#include <iostream. h> #include <conio #include <iostream.h> #include <conio.h> main() { int vize, final, ortalama; cout << "vizeyi girin= "; cin>>vize; cout << "finali girin= "; cin >> final; ortalama = 0.4 * vize + 0.6 * final; cout << "ortalama= " << ortalama << endl; if (ortalama >= 50) cout << "gecti"; else cout << "kaldi"; getch(); }

Not: Program sonunda kullanılan getch() komutu, klavyeden bir tuşa basılmasını ve basılan tuşun okunabilmesini sağlayan komuttur. conio.h kütüphanesinde bulunmaktadır. Burada kullanılmasının nedeni, program sona erdiğinde program çalışma ekranının kapanmadan önce ekranı görebilmek içindir.

Örnek: Gün, ay ve yıl olarak girilen iki tarih arasındaki farkı yine gün, ay ve yıl olarak hesaplayan program. Not: 1 ay 30 gün kabul edilecektir.

Programı yazmadan önce iki tarih arasındaki fark nasıl hesaplanır inceleyelim: Örnek olarak büyük olan tarih 12.09.2009 olsun. Önceki (küçük olan) tarih ise 25.12.2000 olsun.

İki tarih arasındaki farkı hesaplarken önce günler, sonra aylar ve sonra yıllar arasındaki farklar hesaplanır. Dolayısıyla tersten yazmak gerekir:

Büyük tarih: 2009 09 12 Küçük tarih: 2000 12 25 Görüldüğü gibi 12 den 25 çıkmaz, aylardan (09) bir alınarak günlere (30 gün olarak) eklenir:

Büyük tarih: 2009 08 42 Küçük tarih: 2000 12 25 ------------------------------------ 17 Sıra ay farklarına geldiğinde aynı durum söz konusu. 8 den 12 çıkmaz, yıl bir azaltılarak aylara 12 eklenir.

Büyük tarih: 2008 20 42 Küçük tarih: 2000 12 25 ------------------------------------ 8 08 17 Fark 8 yıl, 8 ay, 17 gündür. Program yazılırken de bu kontrollerin yapılması gerekmektedir. Program şu şekildedir:

#include<iostream. h> #include<conio #include<iostream.h> #include<conio.h> main() { int GunB,AyB,YilB; int GunK,AyK,YilK; int GunFark,AyFark,YilFark; cout<<”Buyuk Tarih (gg aa yyyy): ”; cin >> GunB >> AyB >> YilB; cout<<”Kucuk Tarih (gg aa yyyy): ”; cin >> GunK >> AyK >> YilK;

if (GunB<GunK) { GunB=GunB+30; AyB=AyB-1; } if (AyB<AyK)   if (AyB<AyK) AyB=AyB+12; YilB=YilB-1;

  if (YilB>=YilK) { GunFark=GunB-GunK; AyFark=AyB-AyK; YilFark=YilB-YilK; cout<<”Aradaki fark” <<GunFark<<”gun,”; cout<<AyFark <<”ay, ”; cout <<YilFark<<”yildir…”; } else cout<< ”Bu fark hesaplanamaz…”; getch();

Örnek: Bir ayın her bir gününe ait sıcaklık değerleri girildiğinde (30 ün), aylık ortalama sıcaklığı hesaplayan, o aya ait en düşük ve en yüksek sıcaklık değerlerini ait oldukları günle birlikte belirleyen ve bu bilgileri ekrana yazan program.

#include<iostream. h> #include<conio #include<iostream.h> #include<conio.h> void main() { int i,Sic,Top; int EnK,EnB; int EnKGun,EnBGun; float Ort; clrscr(); Top=0; EnK=99; EnB=-99;

for (i=1; i<=30; i++) { cout<<i<<" . gun sicaklik degeri: "; cin>>Sic; Top=Top+Sic; if (Sic<EnK) { EnK=Sic; EnKGun=i; } if (Sic>EnB) { EnB=Sic; EnBGun=i;

Ort=Top/30; cout<<"En dusuk sicaklik: "<<EnK<<endl; cout<<"Gunu: "<<EnKGun<<endl; cout<<"En yuksek sicaklik: "<<EnB<<endl; cout<<"Gunu: "<<EnBGun<<endl; cout<<"Ortalama sicaklik: "<<Ort; getch(); }

SORULAR: Başarı notu girildiğinde aşağıdaki tabloya göre, notlara karşılık gelen harf cinsinden notu ekrana yazdıran programı yazınız.   0-49 FF 50-55 DD 56-60 DC 61-65 CC 66-70 CB 71-85 BB 86-90 BA 90-100 AA

Yapılan hız girildiğinde ödenmesi gereken cezayı bulan programı yazınız.   HIZLAR CEZA ÜCRETİ -120 km - 121-130 km 100 TL 131-140 km 150 TL 141-150 200 TL 151+ 300 TL

Gelir bilgisi girildiğinde ödenecek vergi ve net ücreti bulan programı yazınız.   10.000 TL ye kadar %18 10.000 – 15.000 %25 15.000 – 20.000 %30 20.000 – 30.000 %35 30.000 + %45

Klavyeden girilen iki sayıyı seçiminize göre toplayan, farkını hesaplayan, çarpan, bölümünü bulan programı yazın.

Bir araç kiralama şirketi 50 TL’lik sabit ücret üzerine 100 km’ye kadar her bir km için 50 kuruş, 100 km’den uzun kullanımlar için her bir km için 40 kuruş ek ücret almaktadır. Seyahat edilecek uzaklık km cinsinden girildiğinde ödenmesi gerekli ücreti hesaplayan programı yazın.

İkinci derece bir denklemin köklerini bulan programı yazınız. ( sqrt() kütüphanesi math.h ) ax2+bx+c D=b2-4ac D>0 ise x1=-b-sqrt(D)/(2a) x2=-b+sqrt(D)/(2a) D=0 ise x1=x2=-b/(2a) D<0 ise kök yok

İlk endeks, son endeks ve abone türü girildiğinde ödenmesi gereken elektrik faturasını hesaplayan programı yazınız. Birim ücretler: Ev türü için 1,5 TL/kWh İşyeri için 1,75 TL/kWh KDV oranları: Ev için %18 İşyeri için %9

Girilen iki sayıdan büyük olanını if veya if-else ile bulan programı yazınız.

switch

{ case Sabit1 : KomutListesi1 break; case Sabit2 : KomutListesi2 . Kullanımı:   switch ( değişken) { case Sabit1 : KomutListesi1 break; case Sabit2 : KomutListesi2 . case Sabitn : KomutListesin default: KomutListesin+1 }

değişken, tamsayı veya tamsayı uyumlu değişken Sabiti, tamsayı veya tamsayı uyumlu bir değer default, seçeneğe bağlı (olması zorunlu değil) KomutListesii, komutlar dizisi

switch deyimi çalıştırıldığında değişken değerlendirilir switch deyimi çalıştırıldığında değişken değerlendirilir. değişken’in değeri case listesinde varsa KomutListesii, break deyimine, return deyimine veya switch deyimi sonuna kadar çalıştırılır. değişken’in değeri case listesinde yoksa default deyimindeki KomutListesin+1 çalıştırılır. default deyimi bulunmuyorsa çalıştırma işlemi switch bloğundan sonra devam eder.

Örnek: Herhangi bir ayın numarası girildiğinde (1-12) o ayın adını yazan program. #include <iostream.h> #include <conio.h>   main() { int AyNo; cout<<"Kacinci ay: "; cin>>AyNo;

switch (AyNo) { case 1: cout<<"Ocak"; break; case 2: cout<<"Subat"; break; case 3: cout<<"Mart"; break; case 4: cout<<"Nisan"; break; case 5: cout<<"Mayis"; break; case 6: cout<<"Haziran"; break; case 7: cout<<"Temmuz"; break; case 8: cout<<"Agustos"; break; case 9: cout<<"Eylul"; break; case 10: cout<<"Ekim"; break; case 11: cout<<"Kasim"; break; case 12: cout<<"Aralik"; break; default: cout<<"Yanlis giris!..."; } getch();

Ekran çıktısı:   Kacinci ay: 5 Mayis

Yukarıdaki programda switch bloğu aşağıdaki gibi (break komutları unutulmuş olsun) yazılmış olsun. switch (AyNo) { case 1: cout<<"Ocak"; case 2: cout<<"Subat"; case 3: cout<<"Mart"; case 4: cout<<"Nisan"; case 5: cout<<"Mayis"; case 6: cout<<"Haziran"; case 7: cout<<"Temmuz"; case 8: cout<<"Agustos"; case 9: cout<<"Eylul"; case 10: cout<<"Ekim"; case 11: cout<<"Kasim"; case 12: cout<<"Aralik"; default: cout<<"Yanlis giris!..."; }

Bu durumda ekran çıktısı: Kacinci ay: 10 EkimKasimArlikYanlis giris Bu durumda ekran çıktısı: Kacinci ay: 10 EkimKasimArlikYanlis giris!... Case 1: case 2: Case 3: cout << ‘’***’’;

Örnek: Öğrencinin ortalama notu (0-100) girildiğinde harf cinsinden karşılık gelen notunu bulup yazan program.   Ortalama Harf --------------- ------ Ort>=90 A 80<=Ort<90 B 70<=Ort<80 C 60<=Ort<70 D Ort<60 F

#include <iostream.h> #include <conio.h>   main() { float Ort; char HarfNot; cout<<"Ortalama not: "; cin>>Ort;

switch ( int (Ort/10) ) // Sonucu int yapmak icin { case 10: case 9: HarfNot = 'A'; break; case 8: HarfNot = 'B'; case 7: HarfNot = 'C';

case 6: HarfNot = 'D'; break; default: HarfNot = 'F'; } cout<<"Harf not: "<<HarfNot; getch();

Ekran çıktısı: Ortalama not: 78 Harf not: C

Örnek: Basit 4 işlem yapan programı yazınız. #include <iostream.h> #include <conio.h> main() { float a, b, sonuc; char islem; cout << “1. sayi: “; cin >> a; cout << “2. sayi: “; cin >> b; cout << “Istenen islem (+, -, *, /): “; cin >> islem;

switch( islem ) { case ‘+’: sonuc = a + b; break; case ‘-’: sonuc = a - b; case ‘*’: sonuc = a * b; case ‘/’: sonuc = a / b; } cout << a << “ “ << islem << “ “ << b << “= “ << sonuc; getch();

Istenen işlem (+, -, /, *): + 3 + 5= 8 Ekran çıktısı: 1. sayi: 3 2. sayi: 5 Istenen işlem (+, -, /, *): + 3 + 5= 8

Aynı programın farklı yazımı #include <iostream.h> #include <conio.h> main() { float a, b, sonuc; char islem; cout << “islem: “; cin >> a >> islem >> b;

switch( islem ) { case ‘+’: sonuc = a + b; break; case ‘-’: sonuc = a - b; case ‘*’: sonuc = a * b; case ‘/’: sonuc = a / b; } cout << “Sonuc: “ << sonuc; getch();

Ekran çıktısı: islem: 3 + 5 Sonuc: 8

SORULAR: Fahrenheit’ten Celsius’a, Celsius’tan Fahrenheit’a, Fahrenheit’tan Kelvin’e, Kelvin’den Fahrenheit’e, Celsius’tan Kelvine’e veya kelvin’den Celsius’a sıcaklık dönüşümü yapan bir program yazınız.   Not: switch kullanılacak ve aşağıdaki ekran çıktısı görümüne sahip olacak.

Ekran:   Dönüştürmek istediğiniz sıcaklık değeri: 212 Seçenekler: A- Fahrenheit’tan Celsius’a B- Celsius’tan Fahrenheit’a C- Fahrenheit’tan Kelvin’e D- Kelvin’den Fahrenheit’a E- Kelvin’den Celsius’a F- Celsius’tan Kelvine’e Seçiminiz: A Dönüştürülen sıcaklık: 100

Dönüşümler: C = (F-32) / 1.8 C = K – 273; K = (F-32)/1.8 + 273

Girilen bir sayının pozitif, negatif veya sıfır olup olmadığını bildiren programı yazın. Not: switch kullanılacaktır.

İki sayı ve istenen işlemden biri (+ - İki sayı ve istenen işlemden biri (+ - * /) girildiğinde işlemi yapıp sonucu yazan programı yazın. Not: switch ile