31 Ekim 2015 Cumartesi

C'DE FAKTÖRİYEL HESAPLAMA

#include <stdio.h>

int factorial(int number){
if (number<2){
return 1;
}
return number * factorial(number-1);
}

int main(){
int n,result;
printf("Print any negative number to exit!!!\n\n");

while(1){
  printf("Enter N : ");
scanf("%d",&n);
if(n<0){
break;
}
result = factorial(n);
printf("%d!=%d\n", n, result);
}
}

int bir değişkenin değeri en fazla "2.147.483.647" olabilir (0 → 2.147.483.647 # 2.147.483.648 sayı).
13! = 6.227.020.800, değeri bizim maksimum int değerimizi aştığı için 13! ve sonrası için bilgisayar bu değerlerin 2.147.483.648 sayısına göre modunu verecektir.
Büyük sayılarla işiniz varsa double, int64 vs. kullanabilirsiniz.

8 Ekim 2015 Perşembe

KERNEL SÜRÜMÜNÜ YÜKSELTME



1) Uname -r (release) komutu şimdiki kernel sürümünü gösterir.

# Varsayılan Kernel Sürümü : 4.0.0


2) Wget –c (continue) komutu kısmen indirilmiş dosyayı, indirmeye devam ettirmek için kullanılır. İnternet bağlantım, bu işlemi yaparken ara sıra kesildiği için bu komutu kullandım.
Sadece wget kullanabilirsiniz.

# İndirilen TAR Klasörü : linux-4.2.3.tar.xz

3) Tar xvf komutu sıkıştırılmış TAR klasörünü çıkarmak için kullanılır.

# TAR (Tape ARchive) : Sıkıştırılmış klasör.
# x (eXtract) – Sıkıştırılmış klasörden dosyaları çıkarır.
# v (verbosely) – İşlemden geçen dosyaları ayrıntılı bir şekilde listeler.
# f (following) – Sıkıştırılmış klasörün ismini takip eder/alır.


4) CD (Change Directory) dizin değiştirmek için kullanılır.

# Geçilen Dizin : linux - 4.2.3

5) Make menuconfig komutu Kernel’i yapılandırmak için kullanılan beş araçtan biridir. Kaynak kodu derlemek için gerekli olan ilk adımdır. Menuconfig, makefile dosyası ile birlikte çalışır
( libncurses5-dev paketi yüklüyse 8.adımdan devam ediniz ).

# Linux – 4.2.3 dizinindeki “makefile” dosyası kullanıldı.


6) Apt – get install komutu yeni paket yüklemek/paket güncellemek için kullanılan bir komuttur.

# APT (Advanced Package Tool) : Gelişmiş paketleme aracı.
# Libncurses5 – dev : Geliştirici kütüphaneleri ve “ncurses” için döküman içerir.
# Ncurses (new curses) : Programlama kütühanesi.


7) Kerneli yapılandırmak için libncurses5 – dev paketi gerekliydi, paket yüklendikten sonra komut tekrar çalıştırıldı.


8) LS komutu dosyaların bilgilerini listeler.

# Boot dizininin içeriği listelendi.

9) CP komutu kopyalama işlemi yapar.


10) Make oldconfig komutu varolan .config dosyasını okur ve geçerli kernel(çekirdek) kaynağı içinde bulunmayan seçenekleri onaylamak için kullanıcıya sorar.

# Seçenekler onaylandı.


11) Time make komutu kerneli yapılandırır ve yapılan işlemlerin süresini tutmak için zamanlayıcı çalıştırır.

# Bu işlem ~3,5 saat sürdü.


12) Time make modules_install komutu modülleri derler, ikili sistemde derlendiğinden emin olur, ikili sistemde Kernel’e yükler ve süresini tutmak için zamanlayıcı çalıştırır.

# Bu işlem ~5 dakika sürdü.


13) Time make install komutu genellikle derleme içim kullanılan genel amaçlı bir iş akışı programı yapar ve süresini tutmak için zamanlayıcı çalıştırır. Başka amaçlar için de kullanılabilir.

# Bu işlem ~3 dakika sürdü.


14) Mkinitramfs –o (outfile) komutu “initramfs” imajı (görüntüsü) oluşturur.

# Initramfs : Sıkıştırılmış “cpio” klasörü.
# CPIO :  Dosya biçimi ve genel dosya sıkıştırıcıdır.

15) Update – grub komutu GRUB menu.lst dosyası oluşturmak için program çalıştırır.

# GRUB (GRand Unified Bootloader) : “Boot Loader” paketi.
# Boot Loader : Önyükleme yükleyicisi.

16) Bu işlemden sonra “reboot” komutu ile bilgisayar yeniden başlatılır.


17) Yeniden başlattıktan sonra Kernel sürümü sorgulaması.

# Önceki sürüm : 4.0.0
# Yeni sürüm 4.2.3. İşlem başarıyla tamamlandı.


KAYNAKLAR