BİLGİSAYAR programlama II Diziler BİLGİSAYAR programlama II
dİzİler
Veriler geçici olarak hafızada(memory ya da RAM) tutulur(saklanır). Veriler hafızaya yerleştirilirken numaralandırılır. Hafızada saklanan veriler numaraları ile çağırılırlar. Dizi kullanılarak hafızada saklanan veriler burada geçici olarak tutulurlar. Program tekrar çalıştırıldığı ya da derleyiciden çıkıldığı veya bilgisayar kapatıldığı zaman veriler kaybedilir.
Hafızadaki veriye erişim son derece hızlıdır. Sayı dizilerin uzunluğu, karakter dizilerin ise dizi uzunluğu ile beraber veri uzunluğu da deklare edilir. Basit değişkenlerde bir t zamanında bir adet veri saklanabilirken, dizilerde dizi uzunluğu kadar veri saklanır.
Dizi tanımlaması (deklerasyonu): int sayi [10]; // 10 adet tamsayı // depolayacak sayı isimli // dizi char isim[10][15]; // her biri 15 byte // uzunluğunda (15 harf) 10 // adet isim depolayacak // isim dizisi
Kullanımı: int sayi[10]; for (sayac=0; sayac<10; sayac++) { int sayi[10]; for (sayac=0; sayac<10; sayac++) { cout <<sayac<<” inci sayıyı giriniz”<<endl; cin>>sayi[sayac]; }
Örnek: Klavyeden bilgisayara girilen 10 adet sayıyı toplayan ve toplamla birlikte sayıları ekranda listeleyen bir program yazınız.
Dizi kullanmadan #include <iostream.h> main() { int x1, x2, x3, x4, x5, x6, x7, x8, x9, x10; int toplam = 0; cout << “1. sayi: “; cin >> x1; cout << “2. sayi: “; cin >> x2;
. cout << “10. sayi: “; cin >> x10; toplam = x1+x2+x3+x4+x5+x6+x7+x8+x9+x10;
cout << “Sayilar” << endl; cout << x1 << endl; cout << x2 << endl; . cout << x10 << endl; cout << “Toplam degeri= “ << toplam; getch(); }
Dizi kullanarak #include<iostream.h> #include<conio.h> int sayi[10], toplam=0, sayac; main() { for (sayac=0; sayac<10; sayac++) cout << (sayac+1) << “. sayiyi giriniz: “; cin >> sayi[sayac]; toplam += sayi[sayac]; }
cout << “\nSayilar\n”; for (sayac=0; sayac<10; sayac ++) cout << (sayac+1) << “. sayi: " << sayi[sayac] << endl; cout << “Toplam degeri= “ << toplam; getch(); }
Örnek: 10 kişilik bir sınıftaki öğrencilerin ad soyad, vize ve final notlarını bilgisayara girip vizenin %40 ve finalin %60 ‘ını alarak ortalamayı hesaplayan ve daha sonra öğrenci ismi, vize ve final notlarını listeleyen program.
#include <iostream.h> #include <conio.h> #include <iomanip.h> int vize [10], final[10], ortalama[10], a; char ad[10][15], soy[10][15]; main() {
for(a=0; a<10; a++) { cout << (a+1) << ”. ogrencinin\nAdi: ”; cin>>ad[a]; cout << “Soyadi: “; cin >> soy[a]; cout <<“Vize notu: ”; cin >> vize[a]; cout << “Final notu: ”; cin >> final[a]; ortalama[a]=(vize[a]*0.4)+(final[a]*0.6); }
clrscr(); cout << “ Ad Soyad“ << “ Vize Final Ort\n” << “------------------------------” << “---------------\n”; for(a=0; a<10; a++) cout << setw(15) << ad[a] << setw(15) << soy[a] << setw(5) << vize[a] << setw(6) << final[a] << setw(4) << ortalama[a] << endl; cout << “------------------------------” getch(); }
Örnek: Klavyeden bilgisayara girilen N adet sayıyı toplayan ve toplamla birlikte sayıları ekranda listeleyen bir program yazınız.
#include<iostream. h> #include<conio #include<iostream.h> #include<conio.h> int sayi[100], toplam=0, sayac, N; main() { cout << “Kac adet sayi girilecek? “; cin >> N;
for (sayac=0; sayac<N; sayac++) { cout << (sayac+1) << “. sayiyi giriniz: “; cin >> sayi[sayac]; toplam += sayi[sayac]; }
cout << “\nSayilar\n”; for (sayac=0; sayac<N; sayac ++) cout << (sayac+1) << “. sayi: " << sayi[sayac] << endl; cout << “Toplam degeri= “ << toplam; getch(); }
Örnek: Klavyeden girilen N elemanlı A ve B dizilerini toplayarak C dizisini oluşturan program.
#include <iostream. h> #include <conio #include <iostream.h> #include <conio.h> main() { int A[100], B[100], C[100]; int i, N; cout << "Dizilerdeki eleman sayisi: "; cin >> N;
cout << "\nA dizisi girisi cout << "\nA dizisi girisi...\n"; for (i=0; i<N; i++) { cout << (i+1) << ". elemani: "; cin >> A [i]; } cout << "\nB dizisi girisi...\n"; cin >> B [i];
cout << "\n\nC dizisi\n"; for (i=0; i<N; i++) { C[i] = A[i] + B[i]; cout << (i+1) << ". elaman: " << C[i] << endl; } getch();
SORULAR Klavyeden girilen N elemanlı A dizisinin elemanlarını girilen bir k katsayısı ile çarpıp B dizisini oluşturan programı yaznınız.
Klavyeden girilen N elemanlı A dizisinin elemanlarını ters sırada B dizisine yerleştirerek ekrana yazdıran programı yazınız.
Klavyeden girilen N elemanlı A ve B vektörlerinin (dizilerinin) skaler çarpımını (SC) hesaplayan programı yazınız. A = (a1, a2, …, an) B = (b1, b2, …, bn) SC = A.B = (a1.b1+a2.b2+…an.bn)