ALB Emtia Raporu 27 03 2015

BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Fonksiyonlar
1.
Aşağıda math.h kütüphanesine ait bazı fonksiyonların kullanımına yer verilmiştir, inceleyiniz.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("64'un karekoku: %f\n", sqrt(64.0));
printf("e'nin ucuncu kuvveti: %f\n", exp(3.0));
printf("Logaritma e tabaninda 2.718282: %f\n", log(2.718282));
printf("Logaritma 10 tabaninda 100.0: %f\n", log10(100.0));
printf("|-5.67|: %f\n", fabs(-5.67));
printf("|-5|: %d\n", abs(-5));
printf("8.34'un yukari yuvarlanma sonucu: %f\n", ceil(8.34));
printf("-8.34'un yukari yuvarlanma sonucu: %f\n", ceil(-8.34));
printf("8.34'un asagiya yuvarlanma sonucu: %f\n", floor(8.34));
printf("-8.34'un asagiya yuvarlanma sonucu: %f\n", floor(-8.34));
printf("5.0 uzeri 9.0: %f\n", pow(5.0, 9.0));
printf("4.9'nin 1.2'ye bolumunden kalan: %f\n", fmod(4.9, 1.2));
printf("Sinus 45: %f\n", sin(45.0 * (3.142 / 180.0)));
printf("Kosinus 45: %f\n", cos(45.0 * (3.142 / 180.0)));
printf("Tanjant 45: %f\n", tan(45.0 * (3.142 / 180.0)));
system("pause");
return 0;
}
2.
Aşağıda kaynak kodu yer alan ve iki değer arasında rastgele sayı üreten programı inceleyiniz.
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //time() fonksiyonunu içeren kütüphane
int main()
{
int rastgeleSayi;
int ustSinir = 10;
int altSinir = 5;
srand(time(NULL));
rastgeleSayi = (rand() % (ustSinir - altSinir)) + altSinir + 1;
printf("Uretilen rastgele sayi: %d", rastgeleSayi);
system("pause");
return 0;
}
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Fonksiyonlar
3.
Aşağıdaki ekran çıktısına benzer sonuç üretecek şekilde kullanıcıdan alınan sınır değerleri doğrultusunda,
girilen değerler birbirine eşit oluncaya kadar birbirinden farklı rastgele sayı üretmeye devam eden
program kodunu do-while döngüsü yardımı ile yazınız.
4.
Aşağıdaki ekran çıktısını elde edecek şekilde alt ve üst sınırı ile artış miktarı klavyeden girilmek üzere,
değerlerin (𝑥), ln 𝑥 , log 2 𝑥, log10 𝑥, log 5 𝑥 hesaplamalarını yapan program kodunu yazınız. Aşağıdaki
program çıktısında alt sınır 0, üst sınır 10 ve artış miktarı 0.5’tir. Uygulamanızı bu girdilerle de test ediniz.
5.
Kullanıcıdan alınan x ve y parametreleri ile 𝑥 𝑦 işleminin sonucunu hesaplayan program kodunu yazınız.
Ardından bu işlemi math kütüphanesinde yer alan pow() fonksiyonu ile de çözüp hesaplamanızın
doğruluğunu test ediniz.
6.
Kullanıcıdan bir adet virgüllü sayı isteyen, bu sayının virgülden sonraki ilk hanesi 5 ve 5’ten büyükse sayıyı
yukarı yuvarlayan eğer 5’ten küçükse sayıyı aşağıya yuvarlayan program kodunu yazınız. Kullanıcı -1 değeri
girinceye kadar program kullanıcıdan yeni bir değer istemeli ve o değeri uygun şekilde yuvarlamalıdır.
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Fonksiyonlar
7.
Kullanıcıdan alınan bir x açısı için sinüs, kosinüs, tanjant ve kotanjant değerlerini hesaplayan program
kodunu yazınız. Kullanıcı -99999 değeri girene kadar program kullanıcıdan yeni açı değeri istemeli ve
hesaplamaları tekrarlamalıdır.
8.
Ortalama Karesel Hatanın Karekökü (Root Mean Square Error, RMSE) çıkarsama problemlerine geliştirilen
çözümün gerçek değere ne kadar yakın olduğunun ölçülmesinde kullanılır. Buna göre bu hesabı yapan bir
program kodunu aşağıdaki ekran çıktısına benzer olacak şekilde yazınız. Uygulamada ilk olarak kullanıcıdan
1-100 aralığında bir sayı (gerçek değer) girilmesi istenecektir. Ardından çıkarsama sonucu olarak rastgele
bir sayı (tahmin değeri) üretilecektir. Kullanıcıdan alınan gerçek değerle, programın hesapladığı rastgele
tahmin değeri arasındaki fark o tahminin hata değeridir. Kullanıcıdan değer istenmesi ve buna karşılık
rastgele tahmin yapılması 𝑚 = 10 kere tekrarlanacaktır. RMSE değerinin hesaplanması için ise aşağıdaki
metrikten faydalanılacaktır.
2
𝑅𝑀𝑆𝐸 = √
𝑚
∑𝑛=1(𝑔𝑒𝑟𝑐𝑒𝑘𝑛 − 𝑡𝑎ℎ𝑚𝑖𝑛𝑛 )2
𝑚
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Fonksiyonlar
9.
Kullanıcının seçimine göre pounddan kilograma veya kilogramdan pounda dönüşüm yapan program
kodunu yazınız. (PK: Pounddan Kilograma, KP: Kilogramdan Pounda ve Q: Çıkış) Kullanıcının bu dönüşümü
Q ile işlemi sonlandırana kadar yapmasına izin verecek şekilde bir 𝑑𝑜 − 𝑤ℎ𝑖𝑙𝑒 döngüsü kurgulayınız.
İ𝑝𝑢𝑐𝑢: 1 pound = 454 gr
İ𝑝𝑢𝑐𝑢: String tipinde (char secim [boyut]) iki değeri karşılaştırmak için gereken fonksiyon “string.h”
kütüphanesinden alınan strcmp' dir. Örneğin strcmp(secim, ”FC”). Bu fonksiyondan dönen değer 0 ise o iki
string birbirine eşittir. Ancak dönen değer eğer 1 ise eşitlik sağlanamamıştır.
10. Aşağıdaki ekran çıktısına uygun olacak şekilde bir tahmin oyununun program kodunu yazınız. Bu oyunda
kullanıcı aklından (0-50] aralığında bir sayı tutacaktır. Ardından program rastgele bir sayı üreterek
tahminde bulunacaktır. Tahmin yanlış ise program, tutulan sayının kendi tahmini ile karşılaştırılmasını
isteyecektir. Eğer tutulan sayı kendi tahmininden büyükse bu kez tahmin edilen sayıyı alt sınır belirleyecek
ve yeniden bir rastgele sayı üretecektir. Ancak küçükse tahmin edilen sayıyı üst sınır belirleyerek yeni bir
rastgele sayı üretecektir. Doğru sayı bulunana kadar bu döngü sürdürülecek ve sayı bulunup oyun
tamamlandığında oyunun kaç iterasyonda tamamlandığı ekrana yazdırılacaktır.
BM101 BİLGİSAYAR PROGRAMLAMA I
UYGULAMA ÖRNEKLERİ
Fonksiyonlar
11. Bir yıl içinde, Şubat ayı 29 gün olursa o yıl artık yıl olarak adlandırılır. Artık yıl periyodik olarak 4 yılda bir
gelir. Genel kanı "bir yıl 4 ile tam bölünebilirse o yıl artık yıldır" şeklindedir. Fakat 1996 artık yıl iken 1800
artık yıl değildir. Genel sorgulama söyle olmalıdır: Eğer bir yıl 4 ile tam bölünüyorsa ve 100'e tam
bölünmüyorsa veya 400 'e tam bölünüyorsa o yıl artık yıldır.
Kullanıcıdan 1990 ile 2020 arasında rastgele üretilen bir sayının artık yıl olup olmadığını bulan programı
yazınız.
12. Ascii kodu bilgisayarda görsel olarak girdiğimiz karakter, harf ve rakamların bilgisayar dilindeki temsil
edilme şeklidir. Yani bilgisayarımızın o karakteri, harfi veya rakamı belleğinde saklama biçimidir, bilgisayar
dilindeki kodlama sistemidir. Her rakamın ASCII de bir karşılık değeri vardır.
Uygulama için 32-127 arasındaki sayıların tolower ve isdigit fonksiyonları kullanılarak karşılıklarını
hesaplayan programı yazınız. Girilen sayıyı ASCII koduna döndürecek yapı c = toascii(i) şeklindedir.