Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

1. ve 2. En Büyük ve En Küçük Sayıları, Negatif-Pozitif Olduğunu Bulan...

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Kod:
/*
>> PROGRAMLAYAHN: lavara123
>> TARİH: 23.02.2014
>> PROGRAMIN ÖZELLİKLERİ:
   -Kullanıcıdan önce kaç sayı gireceğini sorar
   -sonra o kadar sayıya değer ister
   -girilen sayılardan:
     *1.En Büyük Sayıyı Bulur
     *2.En Büyük Sayıyı Bulur
     *1.En Küçük Sayıyı Bulur
     *2.En Küçük Sayıyı Bulur
     *Girilen Sayılardan negatif, pozitif ve 0 olanları gösteririr
     *Kaç negatif, pozitif ve 0 girildiğni yazar
     
*/
#include <conio.h>//_getch() fonksiyonunu kullanabilmek için
#include <iostream>//ana kütüphane

using namespace std;

int main(int argc, char *argv[])
{
    setlocale(LC_ALL, "Turkish");//dil fonksiyonundan türkçe dilini çağırıyoruz(türkçe karakterleri kullanabilmek için)
                                 //yukarıdaki fonksiyonda hata alırsanız kütüphane olarak <locale.h> ekleyin.
	int y,d,de,n,p,z,max[3],min[3],gecici1,fr;//tam sayı değişkenlerimizi tanımlıyoruz
	//yukarda fr değişkenimizi for döngülerinde kullanacağız

	//__sıfıra eşitlemeler -basla-__
	p = 0;
	n = 0;
	z = 0;
	max[0] = -1410065407;//max[0]'ı int değişkeninin en küçük alabileceği degere eşitliyoruz çünkü negatif
						//sayı girilirse onlarıda işlemlere katmak için
	max[2] = -1410065407;//yukarıdaki max[0] şeklinde
	for(fr=0;fr<4;fr++)//max[] ve min[] dizilerini for döngüsü sıfıra eşitliyeceğiz
	{
	min[fr] = 0;
	if(fr==0 || fr==2)//eğer fr=0 veya fr=2'ye:
		continue;//aşağıya uğramadan başa dönecek(bunu neden kullandık çünkü
				//yukarda max[0] ve max[2]'ye lazım olna negatif degerleri atamıştık)
	max[fr] = 0;
	}
	//__sıfıra eşitlemeler -*bit*-__

	int x['y'];//bir dizi tanımladık ve dizi boyutuna y dedik

basla://eğer kodların bir yerinde goto basla; komutuna rastlarsa buraya geri dönüp bunun altından tekrar başlayacak
	system("CLS");//Ekran Silme Komututudur
	cout << "...Lütfen Karşılastırmanın Tam Teşeeküllü Olmasını Istiyorsanız: \nEn Az 4 Sayı Giriniz...\n\n";
	cout <<"Kac Sayi Girilecek.: ";
	cin >> d;//d değişkenine kullanıcıdan değer alıyoruz
	if(d < 4)//eğer d küçükse 4'ten(4 veya 4'ten büyük sayı girilmesini istiyoruz):
	{
		cout << "\nLutfen Sayiniz 4'den Kucuk Olmasin\n";
		system("PAUSE");
		goto basla;//yukardaki basla: altına gider
	}
	y = d;//y değişkenimizi kullanıcıdan aldığımı d değişkenine eşitledik(çünkü x[] bir dizi idi ve y kadar boyutu vardı)
	system("CLS");
	cout << endl;

	//__sayıları almaya -basla-__
	for(fr=0;fr<d;fr++)//fr'yi 0'a eşitliyoruz; fr küçük olduğu sürece d'den;fr'yi 1 artır
	{
		cout << fr+1 << ". Sayi..: ";//fr+1 dedik çünkü fr 0'dan başıyor 0.sayı iyi olmayacağı için 1.sayı yazdırmak için +1 dedik
		cin >> x[fr];//x[] dizine fr d olasıya kadar sayı istiyecek
		cout << endl;
	}
	//__sayıları alma -*bit*-__


	//__1. büyük sayı bul -basla-__
	for(fr=0;fr<d;fr++)
	{
		if(x[fr]>=max[0])//x[fr] büyükse veya eşitse max[0]'a:
		{
			max[0]=x[fr];//max[0]'ı x[fr]'ye eşitle
			max[1]=fr+1;//max[1]'i fr+1'e eşitle(neden +1 derseniz çünkü 0.Sayi güzel durmayacağı için)
		}
	}
	//__1. büyük sayı bul -*bit*-__

	gecici1 = max[0];//gecici1 değişkenimizi max[0]'a eşitliyoruz

	//__2. büyük sayı bul -basla-__
	for(fr=0;fr<d;fr++)
	{
		if(x[fr]>=max[2])//eğer x[fr] büyük veya eşitse max[2]'ye:
		{
			if(x[fr] < max[0])//eğer x[fr] küçükse max[0]'dan
			{
			max[2] = x[fr]; //max[2]'yi x[fr]'ye eşitle
			max[3] = fr+1;  //max[3]'ü eşitle fr+1'e
			}
		}
	}
	//__2. büyük sayı bul -*bit*-__

	//__1. küçük sayı bul -basla-__
	for(fr=0;fr<d;fr++)
	{
		if(x[fr]<gecici1)//eğer x[fr] küçükse gecici1'den:
		{
			gecici1 = x[fr]; //gecici1'i x[fr]'ye eşitle
			min[0] = x[fr];  //min[0]'ı x[fr]'ye eşitle
			min[1] = fr+1;   //min[1]'i fr+1'e eşitle
		}
	}
	//__1. küçük sayı bul -*bit*-__

	gecici1 = max[0];//gecici1 değişkenimizi max[0]'a eşitliyoruz birazdan lazım olacak(çünkü yukardaki for döngüsünde yeni bir değer aldı bize en büyük sayının değerini alması gerekiyor)

	//__2. küçük sayı bul -basla-__
	for(fr=0;fr<d;fr++)
	{
		if(x[fr]<gecici1 && x[fr] > min[0])//x[fr] küçükse gecici1'den ve x[fr] büyükse min[0]'dan:
		{
			gecici1 = x[fr]; //gecici1'İ x[fr]'ye eşitliyoruz
			min[2] = x[fr];  //min[2]'yi x[fr]'ye eşitliyoruz
			min[3] = fr+1;   //min[3]'ü fr+1'E eşitle
		}
	}
	//__2. küçük sayı bul -*bit*-__

	system("CLS");

	cout << "\nToplam girilen sayi: " << fr << endl;//fr d'olasıya kadar 1 artırıldığı için fr=d olmuş olur bu yüzden fr ile toplam kaç sayı girildiğini gösterebiliriz
	
	//__Pozitif-Negatif bulma -basla-__
	for(de=0;de<fr;de++)//de=0;de küçük olduğu sürece fr'den;de'yi 1 artır:
	{
		if(x[de] > 0)//x[de] büyükse 0'dan(yani pozitif ise):
		{
			p++;//p değişkenine 1 ekle(kaç pozitif sayı olduğunu saymak için)
			cout << endl << endl;
			cout << de+1 << ". Sayi = " << x[de];
			cout << " > pozitif bir sayidir." << endl;
		}
		else if(x[de] == 0)//x[de] 0'a eşitse:
			{
				z++;//z değişkenine 1 ekle(kaç sıfır sayısı girildiğini saymak için)
				cout << endl << endl;
				cout << de+1 << ". Sayi = " << x[de];
				cout << " > negatif veya pozitif degildir." << endl;
			}
		else if(x[de] < 0)//x[de] küçükse 0'dan(yani negatif ise):
			{
				n++;//n değişkenine 1 ekle(kaç negatif sayı olduğunu saymak için)
				cout << endl << endl;
				cout << de+1 << ". Sayi = " << x[de];
				cout << " > negatif bir sayidir." << endl;
			}
	}
	//__Pozitif-Negatif bulma -*bit*-__
	
	cout << endl << endl;
	
	if(z > 1 || z == 1)//z(yani kaç sıfır olduğunu sayan değişken) büyükse 1'den veya eşitse 1'e(çünkü 0 sayısı hiç yoksa aşağıdaki
					  //yazıyı boşuna yazdırmaya gerek yok):
	{
		cout << "Toplam " << p << " pozitif, " << n << " negatif ve " << z << " tanimsiz sayi girdiniz\n";
	}
	else//yukardaki if gerçekleşmediğinde:
	{
	cout << "Toplam " << p << " pozitif ve " << n << " negatif sayi girdiniz\n";
	}

	cout << "1. En Buyuk Sayi: " << max[1] << ".Sayi = " << max[0] << "\n";
	cout << "2. En Buyuk Sayi: " << max[3] << ".Sayi = " << max[2] << "\n\n";
	cout << "1. En Kucuk Sayi: " << min[1] << ".Sayi = " << min[0] << "\n";
	cout << "2. En Kucuk Sayi: " << min[3] << ".Sayi = " << min[2] << "\n";
	_getch();//normalde bunu getch(); olarak yazardık neden böyle derseniz aynı işlmi görürler bu daha hızlı derlenir
	return 0;//çıkış
}
 
Üst Alt