C++ Dizi İşlemleri
Merhaba arkadaşlar,
Bu programda kullanıcıdan okunan bir grup rakam üzerinden işlem yapan bir program yazmamız istenmektedir. Aşağıdaki adımları izleyerek programınızı yazınız. Her adımda programınızı çalıştırarak test ediniz.
a) Kullanıcıdan kaç adet rakam girmek istediğini sorarak, istenilen adette rakamı bir dizi yada benzeri bir veri yapısının içine kullanıcıdan okuyarak depolayınız.
b) Depolanan rakamları ekrana yan yana düzenli bir şekilde yazdıracak bir fonksiyon yazınız (ekran genişliğinin 80 karakter olduğunu bilmenizde fayda var). Bu fonksiyona veri yapısını parametre yada parametreler olarak almalıdır (örn: dizi için dizi değişkeni ve dizinin uzunluğu verilmelidir.)
c) Depolanan rakamların toplamını bulan fonksiyonu yazarak rakamların toplamını yazdırınız. Bu yazdırma işlemi yazdığınız fonksiyonda değil “main” fonksiyonunda olmalıdır, yani,yazacağınız fonksiyon hesapladığı toplamı geriye değer olarak döndürmelidir.
d) Rakamların ortalamasını bulan fonksiyonu, toplam bulma fonksiyonundan yararlanarak yazınız.
e) Rakamların içindeki en küçük ve en büyük değerleri bulan fonksiyonları yazınız.
f) Rakamların içindeki en küçük ve en büyük değerlerin kaçıncı elemanlar olduğunu bulan fonksiyonları yazınız.
g) Verilen rakamlar içerisinde en büyükten en küçüğe kadar olan aralıktaki eksik olan rakamların sayısını bulan bir fonksiyon yazınız.
h) Aşağıdaki formülden yararlanarak verilen rakamların standart sapmasını hesaplayınız:
σ=√Σ(xi−ortalama)2 / elemansayısı
i) Bu rakam seti üzerinde uygulanabilecek olan bir başka işlem bularak programlayınız.
#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <iomanip>
using namespace std;
int a[100],i,j,n,tmp,sonuc,toplam=0,sayi;
int bul(int a[], int bvks[]);
int yanyana(int a[], int n);
int dizitopla(int a[], int n) ;
int diziortalama(int a[], int n) ;
float sapma(int a[], int n) ;
int varmi(int a[],int n );
int main()
{
int eb,ek;
int buyukVeKucukSayilar[10];
cout <<“Dizi’ye kac tane eleman girilsin = “;
cin >> n;
for (i=0;i<n;i++)
{
cout<<“a”<<“[“<<i<<“]”<<“.Elemani Giriniz = “;
cin>> a[i];
}
yanyana(a,n);
cout<<“\n”<<endl;
cout<<“Toplam = “<<dizitopla(a, n)<<endl;
cout<<“Ortalama = “<<diziortalama(a, n)<<endl;
bul(a, buyukVeKucukSayilar);
cout << “En buyuk = ” << buyukVeKucukSayilar[0]<< “\n”;
cout << “En buyuk deger dizi sirasi = ” << eb << “\n”;
cout << “En kucuk deger dizi sirasi = ” << ek << “\n”;
cout << “En kucuk = ” << buyukVeKucukSayilar[1] << “\n”;
cout << “Sapma = ” << sapma(a,n) << “\n”;
cout << “Aradaki Toplam Sayi = ” << varmi(a,n) << “\n”;
system(“pause”);
return 0;
}
int dizitopla(int a[], int n)
{
int toplam = 0;
for (i=0;i<n;i++) {
toplam=toplam+a[i];
}
return toplam;
}
int diziortalama(int a[], int n)
{
int ortalama;
ortalama=dizitopla(a,n)/n;
return ortalama;
}
int yanyana(int a[], int n)
{
for (int i=0;i<n;i++) {
cout<<setw(10)<<a[i];
}
}
int bul(int a[], int bvks[]){
int enBuyuk, enKucuk ,eb,ek=0;
int i;
enBuyuk = a[0];
enKucuk = a[0];
for (i = 0; i < n; i++){
if (a[i] > enBuyuk)
enBuyuk = a[i];
eb=i;
if (a[i] < enKucuk)
enKucuk = a[i];
ek=i;
}
bvks[0] = enBuyuk;
bvks[1] = enKucuk;
}
float sapma (int a[] , int n)
{
int i;
float sapma=0;
for (i=0; i<n; i++) {
sapma += (a[i]-diziortalama(a,n))*(a[i]-diziortalama(a,n));
}
return sapma;
}
int varmi(int a[],int n)
{
int i,j,min,max,x,say=0;
int temp;
max=a[0];
for (i=0;i<n;i++) {
if(a[i]>max) {
max=a[i];
}
}
min=a[0];
for (x=0;x<n;x++) {
if(a[i]<min) {
min=a[i];
}
}
while(min!=max) {
say+=1;
min++;
}
say=say-(sayi+3);
return say;
}