12. Hafta Uygulama Dersi Dokümanı

BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Diziler
1.
Aşağıdaki örnekte double türünde bir dizinin oluşturulması, eleman atama ve elemana erişme işlemleri
gösterilmiştir. İnceleyiniz.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
// Dizi tanımlama ve eleman atama
double myArray[5] = {0.1, 0.2, 0.3, 0.4, 0.5};
//Diziye eleman atama
myArray[3] = 1.4;
//Dizideki elemanlara el ile erişim
myArray[0] = myArray[4];
printf("To access the elements of array manually:\n");
printf("Element 0 is %.1lf\n",myArray[0]);
printf("Element 1 is %.1lf\n",myArray[1]);
printf("Element 2 is %.1lf\n",myArray[2]);
printf("Element 3 is %.1lf\n",myArray[3]);
printf("Element 4 is %.1lf\n",myArray[4]);
//Dizideki elemanlara for döngüsü ile erişim
printf("\nTo access the elements of array via for loop:\n");
for (i = 0; i < 5; i++)
{
printf("Element %d is %.1lf\n",i, myArray[i]);
}
system("pause");
return 0;
}
2.
Aşağıdaki örnekte bir dizinin elemanlarının ortalaması bulunmaktadır. İnceleyiniz.
#include <stdio.h>
#include <stdlib.h>
double Average(int arr[], int size);
double Average(int arr[], int size)
{
int i;
double avg;
double sum= 0;
int main ()
{
//Dizi tanımlama ve eleman atama
int myArray[5] = {1, 2, 3, 4, 5};
double avg;
for (i = 0; i < size; ++i)
{
sum += arr[i];
}
//Dizi boyutunu hesaplama
int size=sizeof(myArray)/sizeof(int);
avg = sum / size;
return avg;
}
//Fonksiyon parametresi olarak dizi kullanımı
avg = Average(myArray, size) ;
printf("%.2lf \n", avg);
system("pause");
return 0;
}
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Diziler
3.
Bir karakter dizisinin elemanlarını eğer küçük harf ile yazılmışsa büyük harfe, büyük harfle yazılmışsa küçük
harfe çevirip eski ve yeni diziyi ekrana yazan program kodunu yazınız.
Beklenen fonksiyonlar:
 char Lower(char c); //upper to lower
 char Upper(char c); //lower to upper
 char LowerUpperOrNeither(char c); //returns 1 if c is upper, -1 if c is lower,
0 if c is neither upper of lower
İpucu: Lower fonksiyonu C kodu:
char Lower(char c)
{
if(c >= 'A' && c <= 'Z')
{
return c + ('a' - 'A');
}
else
{
return c;
}
}
4.
Beş elemanlı bir integer dizisi tanımlayıp elemanlarının ilk değerlerini klavyeden aldırınız. Ardından dizinin
tüm değerlerini bir for döngüsü ile gezerek ortalamadan büyük olan değerleri ortalama kadar azaltan,
ortalamadan küçük olan değerleri ise ortalama kadar arttıran program kodunu yazınız.
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Diziler
5.
Bir karakter dizisi içerisinde klavyeden girilen bir karakteri ekran çıktısındaki gibi arayan program kodunu
yazınız. Programdan beklenen gereksinimler aşağıda listelenmiştir.
 Başlangıçta dizinin tüm elemanları ekrana yazdırılmalıdır.
 Aranan karakter klavyeden girilmelidir.
 Aranan karakter dizide bulunursa dizideki index numarasını (dizinin kaçıncı elemanı olduğu bilgisi)
ekrana yazdırılmalıdır.
 Büyük-küçük harf bağımsız çalışmalıdır.
6.
Cümlelerin ilk harfi büyük yazılır. Cümle içerisinde ise sadece özel isimlerin baş harfleri büyük yazılır. Buna
göre kelimelerin içerisinde büyük harfle yazılı karakterler olmamalıdır. Bu kurala göre bir karakter dizisini
düzenleyen program kodunu yazınız. Özel isimleri değerlendirmeye almadan aşağıdaki ekran çıktısına
benzer çıktı üretiniz.
Beklenen fonksiyonlar:
 char Lower(char c); //upper to lower
 char Upper(char c); //lower to upper
 char LowerUpperOrNeither(char c); //returns 1 if c is upper, -1 if c is lower,
0 if c is neither upper of lower
7.
Aşağıdaki ekran çıktısını üretecek şekilde bir dizi tanımlayıp bu dizi elemanlarından tek olanları bir diziye
çift olanları başka bir diziye atarak bu iki diziyi ekrana yazdıran program kodunu yazınız. Başlangıç dizinin
boyutu ve elemanları kullanıcı tarafından girilecektir.
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Diziler
8.
Integer tipinde bir diziyi aşağıdaki kurallara göre sıralayıp başlangıçtaki diziyi ve sıralama sonrasında oluşan
diziyi ekrana yazdıran program kodunu yazınız.
 Başlangıç ve sıralama sonrası elemanları tutmak üzere iki integer dizi kullanılacaktır.
 Dizi boyutunu en az 5 olmak üzere kendiniz belirleyebilirsiniz.
 Tüm elemanlar sıralanana kadar başlangıç dizideki en büyük eleman bulunup ikinci diziye
kaydedilecektir.
 En büyük değerden en küçük değere doğru sıralama yapılacaktır.
9.
Boyutu (eleman sayısı) ve elemanları klavyeden okunmak üzere bir dizinin elemanlarını çarpan ve çarpım
sonucunu ekrana yazdıran program kodunu yazınız.
10. Boyutu klavyeden okunmak üzere dizinin elemanlarını rastgele üretip ekrana yazan program kodunu
yazınız.
11. Maksimum boyutu 100 olan ve klavyeden girilen iki karakter dizisini (string) karşılaştıran program kodunu
yazınız. Hazır fonksiyon kullanmayınız. Uygulama kullanıcı sonlandırıncaya kadar karşılaştırmak amacıyla
yeni diziler istemeyi sürdürmelidir. Aşağıdaki ekran çıktısına benzer çıktı üretiniz.
12. Klavyeden girilen ve maksimum boyutu 100 olan bir karakter dizisinin içerisinde kaç adet sesli harf
olduğunu bulan program kodunu yazınız. Sesli harfleri de ayrı bir dizide saklayınız. Uygulama kullanıcı
sonlandırıncaya kadar sesli harf saymak amacıyla yeni diziler istemeyi sürdürmelidir.
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Diziler
13. İki adet integer tipinde matrisi toplayıp ekrana yazdıran program kodunu yazınız. Toplanacak iki matris de
klavyeden alınmalıdır ve boyutları 5 olmalıdır. Uygulama kullanıcı sonlandırıncaya kadar yeni matrisler
istemeyi sürdürmelidir.
14. Tersten okunuşu kendisine eşit olan diziler palindrom özelliği taşır. Klavyeden girilen maksimum
20 karakterli bir karakter dizisinin palindrom olup olmadığını bulan program kodunu yazınız.