PROGRAMLAMA TEMELLERİ DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014)
//kod blokları {} işaretleri başlar biter
//küçük-büyük harf ayrımı vardır
//console - Console
//console.writeline("merhaba"); -> Console.WriteLine("merhaba");
//genellikle satır sonlarında ";" işareti bulunur
//değişkenler
//değişken (variable):
//veri_türü değişken_adı;
//veri_türü değişken_adı=ilk_değer;
//veri_türü değişken_adı1, değişken_adı2;
int a = 1, b = 2;
int c = a + b;
Console.WriteLine(c);
//değişken adları:
//tanımlamalar harf veya "_" ile başlar
//rakam içerebilir
//noktalama işaretleri içermez
//boşluk içermez
//12abcdefgh, abc+, sdef12-, abc 123, abc123_23466
//tanımlandığı gibi kullanılır
//Ad -> Ad=5
//Ad -> ad, aD, AD
//veri türleri:
tamsayı(+/-)
tamsayı(+)
ondalık
mantıksal
karakter
metin
nesne
sbyte(1)
byte(1)
float(4)
bool
char(2)
string
object
sbyte sb = -5;
byte b = 5;
short s = -5;
usort us = 5;
int i = -5;
uint ui = 5;
long l = -5;
ulong ul = 5;
float f = 12.34F;
double d = 12.34;
decimal m = 12.34M;
bool bo = true;
char c='a';
string st="abc";
object obj1=123;
object obj2="abc"
short(2)
ushort(2)
double(8)
int(4)
uint(4)
decimal(16)
long(8)
ulong(8)
//Veri Türleri Arasındaki Dönüşümler
//1) Otomatik dönüşüm. küçük --> büyük
//int i = 123;
//long l = a;
//double d = l;
//2) Benzer veri türleri arasında dönüşüm
//parantez içerisinde hedef veri türü yazılır
//float f = (float)d;
//d = 12.34;
//i = (int)d;
//Console.WriteLine(a);
//byte asci = 65;
//Console.WriteLine((char)asci);
//Console.WriteLine((byte)'A');
//3) String veritüründen herhangi bir veri türüne dönüşüm
//string s = "123";
//int x = int.Parse(s);
//int x = 0;
//int.TryParse(s, out x); //out, ref
//Console.WriteLine(x * 5);
//string s2 = "12,34";
//double y = double.Parse(s2);
//Console.WriteLine(y / 2);
//4) Herhangi bir veri türünden string veri türüne dönüşüm
//ToString()
//int q = 12;
//string ss = q.ToString();
//long xx = 1234567890123456;
//Console.WriteLine("-{0}-",xx);
//Console.WriteLine(xx.ToString().Length);
//5) Convert sınıfı metotları ile dönüşüm
//string sss = "123";
//int aaa = Convert.ToInt32(sss);
//Console.WriteLine(aaa*2);
//Operatörler:
//Aritmetik: +,-,*,/, % (Mod, Kalan)
int a = 15, b = 6;
Console.WriteLine(a + b);
Console.WriteLine(a - b);
Console.WriteLine(a * b);
Console.WriteLine(a / b);
Console.WriteLine(a % b);
if (a % 2 == 0)
Console.WriteLine("çift");
else
Console.WriteLine("tek");
//Atama: =, +=, -=, *=, /=, %=
int c = 12;
//12 = c; //hata
a = b = c * 10;
Console.WriteLine(a / b);
//a = a + 5;
a += 5;
a -= 2;
a *= 6;
a /= 3;
a %= 4;
Console.WriteLine(a);
//Artırma-Azaltma: ++, -a = a + 1; a++; ++a;
a = a - 1; a--; --a;
a = 10; Console.WriteLine(a++);
a = 10; Console.WriteLine(++a);
a = 10; Console.WriteLine(a--);
a = 10; Console.WriteLine(--a);
//Karşılaştırma : ==, !=, >, <, >=, <= (if, for, while, vb....)
int x = 5;
int y = 25;
int z = y / ((5 + 4) * (4 - 2));
Console.WriteLine(z);
//Mantıksal: && (ve-and), || (veya-or ), ! (değil-not)
string ten = "esmer";
string goz = "ela";
string sac = "sarı";
bool sonuc = ten == "beyaz" || goz == "mavi" || sac == "sarı";
Console.WriteLine(sonuc);
//Kontrol: ?:
int w = 0;
Console.WriteLine(w >= 0 ? "pozitif" : "negatif");
//Koşullu İşlemler (Kontrol Yapıları): if, switch, ?:
//if: koşula bağlı olarak uygun olan durumun işletilmesi
//if(koşul/koşullar){ koşul doğru ise} else { koşul yanlış ise}
//Herhangi bir sayının negatif olmasının kontrolü
//sayı negatif mi?
//eğer sayı sıfırdan küçükse negatiftir
//eğer sayı küçükse sıfırdan yaz "negatif"
//değilse eğer sayı büyükse 0 dan yaz "pozitif"
//değilse yaz "sıfır"
int sayı = -5;
if (sayı < 0) Console.WriteLine("negatif");
else if (sayı > 0) Console.WriteLine("pozitif");
else Console.WriteLine("sıfır");
//Klavyeden girilen sayının tek/çift kontrolü
//Sayı gir
//eğer sayının 2'ye bölümünden kalan 0'a eşitse çift
//değilse tek
int sayı = int.Parse(Console.ReadLine());
if (sayı % 2 == 0)
Console.WriteLine("çift");
else
Console.WriteLine("tek");
//Klavyeden girilen sayı sıfırdan küçük ise karesini yaz
//değilse karekökünü yaz
//sayı gir => sayı = int.Parse(Console.ReadLine)
//eğer sayı küçükse sıfırdan
//sayının karesini yaz (kare=sayı*sayı)
//değilse
//sayının karekökünü yaz (karekök=Math.Sqrt)
int sayı = int.Parse(Console.ReadLine());
if (sayı < 0)
Console.WriteLine(sayı * sayı);
else
Console.WriteLine(Math.Sqrt(sayı));
//Klavyeden girilen kullanıcı adı ve şifresinin doğruluğunu kontrol eden prg.
//Kullanıcı Adı: ali ve Şifre: 1234 olarak girilirse doğru,
//değilse yanlış mesajı gösterilecek.
//Kullanıcı adı gir
//Kullanıcı şifre gir
//eğer kullanıcı adı ali ve şifre 1234 ise doğru yaz
//değilse yanlış yaz
//==, !=
string ad = Console.ReadLine();
string sifre = Console.ReadLine();
if (ad == "ali" && sifre == "1234")
Console.WriteLine("doğru");
else
Console.WriteLine("yanlış");
//Vize=80, Final=60, //Ortalama=Vize x %40 + Final x %60
//Final < 45 veya Ortalama < 40 => FF
FF
FD
DD
DC
CC
CB
BB
0-49
50-59
60-64
65-69
70-74
75-79
80-84
int vize = 80, final = 60;
int ortalama = (int)(vize * 0.4 + final * 0.6);
Console.WriteLine(ortalama);
if (final < 45) Console.WriteLine("FF");
else if (ortalama < 40) Console.WriteLine("FF");
else if (ortalama <= 49) Console.WriteLine("FF");
//else if (ortalama <= ...) Console.WriteLine("...");
else if (ortalama <= 89) Console.WriteLine("BA");
else Console.WriteLine("AA");
BA
85-89
//switch:
//switch (değişken)
//{
// case değer1: break;
// default:
break;
//}
byte rakam = 1;
switch (rakam)
{
case 0: Console.WriteLine("sıfır"); break;
//case ...: Console.WriteLine("..."); break;
case 9: Console.WriteLine("dokuz"); break;
default: Console.WriteLine("rakam değil"); break;
}
char grade = 'B';
switch (grade)
{
case 'A': Console.WriteLine("Excellent!"); break;
case 'B':
case 'C':
case 'D': Console.WriteLine("You passed"); break;
default: Console.WriteLine("Invalid grade"); break;
}
Console.WriteLine("Your grade is {0}", grade);
//Sayının tek/çift kontrolü (switch ile yapılacak)
//int sayı = 5;
//if (sayı % 2 == 0) Console.WriteLine("çift");
//else Console.WriteLine("tek");
int sayı = 5;
switch (sayı % 2)
{
case 0: Console.WriteLine("çift"); break;
case 1: Console.WriteLine("tek"); break;
}
switch (sayı % 2==0)
{
case true: Console.WriteLine("çift"); break;
case false: Console.WriteLine("tek"); break;
}
//?: kontrollü atama operatörü
//Koşul ? doğru : yanlış
//sayı < 0 ? Console.WriteLine("neg") : Console.WriteLine("poz");
string s = sayı < 0 ? "neg" : "poz";
Console.WriteLine(s);
Console.WriteLine(sayı < 0 ? "neg" : "poz");
Console.WriteLine(sayı % 2 == 0 ? "çift" : "tek");
//sayı tek ise karesi, çift ise karekökünü yaz
Console.WriteLine(sayı % 2 == 1 ? sayı * sayı : Math.Sqrt(sayı));
AA
90-100
//Herhangi bir işyerinde işçinin maaşına ek olarak fazla çalışma ücreti verilmektedir.
//İşçinin günlük normal çalışma saati 6 saat olup, işçinin 1 saatlik çalışma ücreti 10 TL'dir.
//İşçi bir günde 1-3 saat fazla çalışırsa saat ücretinin %20 fazlası fazla çalışma ücreti alacaktır
//İşçi bir günde 4-6 saat fazla çalışırsa saat ücretinin %30 fazlası fazla çalışma ücreti alacaktır
//günde 10 saat çalışan işçinin alacağı günlük ücret nedir?
//saat ücretini, çalışma süresini, günlük ücret tutarını tanımla
int saatucret = 10; //işçilerin 1 saatlik ücreti
int toplamcalismasure = 10; //işçinin çalıştığı süre
double gunlukucret = 0;//işçinin alacağı günlük ücret
int normalsaat = toplamcalismasure < 6 ? toplamcalismasure : 6;
int fazlasaat1 = 0; ;//işçinin çalıştığı fazla süre (1.kademe)
int fazlasaat2 = 0; //işçinin çalıştığı fazla süre (2.kademe)
fazlasaat1 = toplamcalismasure - 6;
if (fazlasaat1 > 3) fazlasaat1 = 3;
if (toplamcalismasure > 9) fazlasaat2 = toplamcalismasure - 9;
gunlukucret = saatucret * normalsaat;
if (fazlasaat1 > 0) gunlukucret += fazlasaat1 * saatucret * 1.2;
if (fazlasaat2 > 0) gunlukucret += fazlasaat2 * saatucret * 1.3;
Console.WriteLine(gunlukucret);
//iki basamaklı sayının yazı ile yazdırılması
//15 -> on beş, 36 -> otuz altı, 90 -> doksan
int sayı = 91;
int onlar_basamağı = sayı / 10;//1
int birler_basamağı = sayı % 10;//5
string yazı = "";
switch (onlar_basamağı)
{
case 1: yazı += "on"; break;
case 2: yazı += "yirmi"; break;
//case ...: yazı += "..."; break;
case 9: yazı += "doksan"; break;
}
switch (birler_basamağı)
{
case 1: yazı += "bir"; break;
case 2: yazı += "iki"; break;
//case ...: yazı += "..."; break;
case 9: yazı += "dokuz"; break;
}
Console.WriteLine(yazı);
//Bölümdeki toplam kredi=80;
//Öğrencinin genel ortalaması=1.99;
//Öğrencinin 4 kredilik notu "DD" olan dersinin
//geçme notu ne olursa genel ortalaması 2.0 olur?
//Genel Ortalama = Topla(DersNot*DersKredi)/ ToplamKredi
double ders_not = 1;//DD
double ders_kredi = 4;
double toplam_kredi = 80;
double genel_ortalama = 1.90;
double fark = 2.0 - genel_ortalama;
double toplam_fark = fark * toplam_kredi;
double olması_gereken_not = toplam_fark / ders_kredi + ders_not;
olması_gereken_not = Math.Round(olması_gereken_not, 1);
if (olması_gereken_not <= 1.0) Console.WriteLine("DD");
else if (olması_gereken_not > 1.0 && olması_gereken_not <= 1.5) Console.WriteLine("DC");
else if (olması_gereken_not > 1.5 && olması_gereken_not <= 2.0) Console.WriteLine("CC");
else if (olması_gereken_not > 2.0 && olması_gereken_not <= 2.5) Console.WriteLine("CB");
else if (olması_gereken_not > 2.5 && olması_gereken_not <= 3.0) Console.WriteLine("BB");
else if (olması_gereken_not > 3.0 && olması_gereken_not <= 3.5) Console.WriteLine("BA");
else if (olması_gereken_not > 3.5 && olması_gereken_not <= 4.0) Console.WriteLine("AA");
else if (olması_gereken_not > 4.0) Console.WriteLine("daha fazla ders alınması gerekir...");
//Döngüler: for, while, do-while, // foreach
//Döngü: bir işlemin birden fazla tekrarlanması
//genellikle for sayılabilir döngülerde, while sayılamayan döngülerde
//for: for(başlangıç; (bitiş)devam koşulu; artış/azalış miktarı )
//for (int i = 0; i < 10; i++ )
for (int i = 0; i <= 9; i++)//birer artır 0-9 arası yaz
Console.WriteLine(i);
for (int i = 9; i >= 0; i--)//birer azalt 9-0 arası yaz
Console.WriteLine(i);
for (int i = 0; i <= 9; i++)
Console.WriteLine(i + "-ali");
for (int i = 9; i >= 0; i--)
Console.WriteLine(i+"-ali");
//1.aşama: i=0
//2.aşama: i'nin değeri kontrol edilir
//3.aşama: işlem gerçekleştirilir
//4.aşama: i'nin değeri değiştirilir ve 2.aşamaya gidilir
for (/*1.aşama*/int i = 0; /*2.aşama*/i < 10; /*4.aşama*/i++)
{
/*3.aşama*/Console.WriteLine(i + "-ali");
}
//klavyeden girilen 5 sayının toplamı
//int a = int.Parse(Console.ReadLine());
//int b = int.Parse(Console.ReadLine());
//int c = int.Parse(Console.ReadLine());
//int d = int.Parse(Console.ReadLine());
//int e = int.Parse(Console.ReadLine());
//int toplam = a + b + c + d + e;
int toplam = 0;
for (int i = 0; i < 5; i++)
toplam += int.Parse(Console.ReadLine());
Console.WriteLine(toplam);
//herhangi bir metnin harflerinin yazdırılması
string metin = "uğur çağlayan";
for (int i = 0; i < metin.Length; i++)
Console.WriteLine(metin[i]);
//1-100 arası 5'in katlarını yazan prg.
//5,10,15.......95, 100
for (int i = 1; i <= 100; i++)
if (i % 5 == 0)
Console.WriteLine(i);
for (int i = 5; i <= 100; i+=5)
Console.WriteLine(i);
//1-100 arası sayılardan 5 bölünebilen, ancak 8'e bölünemeyen sayılar
for (int i = 1; i < 100; i++)
if (i % 5 == 0 && i % 8 != 0)
Console.WriteLine(i);
//Rakamların toplamını hesaplayan prg.
int toplam = 0;
for (int i = 0; i <= 9; i++)
toplam += i;
Console.WriteLine("Rakamların Toplamı: " + toplam);
//1-100 arasında, 3'ün katlarından 5'e bölünemeyenleri yazan prg
for (int i = 1; i < 100; i++)
if (i % 3 == 0 && i % 5 != 0)
Console.WriteLine(i);
//klavyeden girilen sayıları toplayan prg. (sayı adedi klavyeden girilecek)
int toplam = 0;
int adet = int.Parse(Console.ReadLine());
for (int i = 0; i < adet; i++)
toplam += int.Parse(Console.ReadLine());
Console.WriteLine(toplam);
//Belirtilen adet kadar klavyeden girilen sayının ortalamasını bulan prg.
int adet = int.Parse(Console.ReadLine());
int toplam = 0;
for (int i = 0; i < adet; i++)
toplam += int.Parse(Console.ReadLine());
Console.WriteLine((double)toplam / adet);
//klavyeden girilen metnin harf sayısı kadar metni ekrana yazdıran prg.
//Metnin uzunluğu => metin.Length
//1.adım: metni gir
//2.adım: metnin harf sayısını bul
//3.adım: harf sayısı kadar 4.adımı tekrarla
//4.adım: metni yazdır
string metin = Console.ReadLine();
int harf_sayısı = metin.Length;
for (int i = 0; i < harf_sayısı; i++)
Console.WriteLine(metin);
//100 ile 10 arasındaki sayılardan 3'ün katlarını yazan prg.
for (int i = 100; i >= 10; i--)
if (i % 3 == 0)
Console.WriteLine(i);
//klavyeden girilen 10 sayıdan,
//en büyük ve en küçük sayıların toplamını yazan prg.
int enbüyük=int.MinValue;
int enküçük=int.MaxValue;
for (int i = 0; i < 10; i++)
{
int sayı = int.Parse(Console.ReadLine());
if (sayı > enbüyük) enbüyük = sayı;
if (sayı < enküçük) enküçük = sayı;
}
Console.WriteLine(enbüyük+enküçük);
//10-99 arasındaki iki basamaklı sayılardan,
//karesinin tersi ile tersinin karesi aynı olan sayılar
//13 -> 169 -> 961, 31->961
for (int sayı = 10; sayı <= 99; sayı++)
{
//int sayı = 13;
int a = sayı / 10;
int b = sayı % 10;
int ters = b * 10 + a;
int sayı_karesi = sayı * sayı;
//169 -> 961
int x = (sayı_karesi / 100) % 10;
int y = (sayı_karesi / 10) % 10;
int z = (sayı_karesi / 1) % 10;
int sayı_karesinin_tersi = z * 100 + y * 10 + x;
int ters_karesi = ters * ters;
if (sayı_karesinin_tersi == ters_karesi)
Console.WriteLine(sayı);
}
//Klavyeden girilen iki sayı arasındaki çift sayıların toplamı
//sayı gir: 35, sayı gir: 60
//35+36+....+60=?
int baslangic = int.Parse(Console.ReadLine());
int bitis = int.Parse(Console.ReadLine());
int toplam = 0;
for (int i = baslangic; i <= bitis; i++)
{
if (i % 2 == 0)
toplam += i;
}
Console.WriteLine(toplam);
//klavyeden girilen iki sayı arasındaki
//tek ve çift sayıların toplamını ayrı ayrı hesaplayan prg.
//35, 67 -> 36+38+......66
int baslangic = int.Parse(Console.ReadLine());
int bitis = int.Parse(Console.ReadLine());
int cift_toplam = 0, tek_toplam=0;
for (int i = baslangic; i <= bitis; i++)
{
if (i % 2 == 0)
cift_toplam += i;
else
tek_toplam += i;
}
Console.WriteLine(cift_toplam);
Console.WriteLine(tek_toplam);
//for (double d = 0.4; d < 5.2; d += 0.2)
//
Console.WriteLine(d);
//break: döngüye kırmak için kullanılır,
//continue: döngüde bir sonraki adıma geçilmesi için kullanılır
for (int i = 0; i < 10; i++)
{
if (i == 5) continue;//adımı atla ve döngüye devam et
Console.WriteLine(i);
if (i == 7) break; //döngüyü bitir
}
//1-20 arası sayı tahmin oyunu (5 tahmin)
//tutulan sayı=5 ->
//girilen sayı=7 -> aşağı
//girilen sayı=3 -> yukarı
int tutulan_sayı = 10;
int hak = 3;
for (int i = 1; i <= hak; i++)
{
Console.Write("{0}.tahmin:", i);
int tahmin = int.Parse(Console.ReadLine());
if (tahmin == tutulan_sayı)
{
Console.WriteLine("doğru...");
break;
}
else
Console.WriteLine(i == hak ? "haklarınız bitti." :
tahmin < tutulan_sayı ? "yukarı..." : "aşağı...");
//
else if (i == hak)
//
Console.WriteLine("haklarınız bitti. tahmin edemediniz.");
//
else if (tahmin < tutulan_sayı)
//
Console.WriteLine("yukarı...");
//
else
//
Console.WriteLine("aşağı...");
}
//soldan sağa kayan yazı:
//Console.CursorLeft : soldan konum (sütun) 0-..
//Console.CursorTop : üstten konum (satır) 0-..
string s = "ali"; //Console.ReadLine();
for (int j = 0; j < 20; j++)
{
for (int i = 0; i < Console.WindowWidth - s.Length; i++)
{
Console.Clear();
Console.CursorTop = j;
Console.CursorLeft = i;
Console.Write(s);
System.Threading.Thread.Sleep(10);
}
}
string s = "ali"; //Console.ReadLine();
int fark=1;
int satir=0;
for (int i = 0; i < Console.WindowWidth - s.Length ; i++)
{
Console.Clear();
Console.CursorTop = satir;
Console.CursorLeft = i;
Console.Write(s);
System.Threading.Thread.Sleep(100);
satir += fark;
if (satir % 20 == 0) fark *= -1;
}
//Çarpım tablosu-1
for (int i = 2; i <= 9; i++)
for (int j = 2; j <= 9; j++)
Console.WriteLine("{0,2} x {1,2} = {2,3}", i, j, i * j);
for (int i = 1; i <= 3; i++)
for (int j = i; j >= 1; j--)
Console.WriteLine("{0} {1} {2}", i, j, i * j);
//Çarpım tablosu-2
for (int i = 1; i <= 10; i++)
for (int j = 1; j <= 10; j++)
{
Console.CursorLeft = (i % 5 == 0 ? 4 : i % 5 - 1) * 15;
Console.CursorTop = (12 * ((i - 1) / 5) + j);
Console.WriteLine("{0,2} x {1,2} = {2,3}", i, j, i * j);
}
//yukarıdan aşağıya doğru kayan yazı
//Console.CursorTop : üstten konum (satır) 0-24
//Console.CursorLeft: soldan konum (sütun) 0-79
for (int i = 0; i < 20; i++)
{
Console.Clear();
//Console.CursorLeft = 20;
Console.CursorTop = i;
Console.WriteLine("ali");
System.Threading.Thread.Sleep(100);
}
//rakamlardan çift olanların yazdırılması
for (int i = 0; i < 10; i++)
Console.WriteLine(i % 2 == 0 ? i+"" : "");
//klavyeden girilen 5 kelimenin birleştirilmesi (-)
string s="";
for (int i = 0; i < 3; i++)
s += Console.ReadLine()+"-";
Console.WriteLine(s);
//iç içe döngü-1
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= 4; j++)
{
for (int k = 1; k <= 6; k++)
{
Console.WriteLine(i);
}
}
}
for (int i = 0; i < 3; i++)
{
Console.WriteLine("ali");
for (int j = 0; j < 2; j++)
{
Console.WriteLine("selami");
for (int k = 0; k < 2; k++)
{
Console.WriteLine("veli");
}
}
}
//iç içe döngü-2
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 10; j++)
{
Console.CursorLeft = j * 6;
Console.CursorTop = i;
Console.WriteLine("{0}-{1}", i, j);
System.Threading.Thread.Sleep(100);
}
}
//veya
for (int i = 0; i < 50; i++)
{
Console.CursorLeft = (i % 10) * 6;
Console.CursorTop = i/10;
Console.WriteLine("{0}-{1}", i / 10, i % 10);
System.Threading.Thread.Sleep(100);
}
/*
1
12
123
1234
12345
*/
for (int i = 1; i <=9; i++)
{
for (int j = 1; j <=i; j++)
Console.Write(j);
Console.WriteLine();
}
Download

PT_DersUygulama