21 Mart 2016 Pazartesi

# Sistem Programlama (linux) C programlama Odev1

#include stdio
#include stdlib
#include time

int main(int argv, char *argc[]) {
  srand(time(NULL));
  int i ,boyut = atoi(argc[1]);       
    unsigned long diziUL[boyut] ;
    unsigned char ch[boyut] ;  
   printf("***** long veri tipi ****** \n***************************************************\n");
    for( i = 0 ; i< boyut; i++){
        unsigned int rastgele = rand()%60+60;
        diziUL[i]=rastgele;       
        printf("%li \t(deger hex ) 0x%lx \t(adres) %p\n",diziUL[i],diziUL[i],&diziUL[i]);
                   
    }   
    printf("***** Char veri tipi ****** \n***************************************************\n");
for( i = 0 ; i< boyut; i++){
        ch[i]=(unsigned char)diziUL[i];
        printf("%c \t (deger hex ) 0x%x \t(adres) %p\n",ch[i],ch[i],&ch[i]);
           
    }   
    return 0;
}
******************************************************************************

#include stdio
#include stdlib
int main(int argv, char *args[]) {   
int sayi,i,toplam = 0, carpim = 1;
if(argv <3) { printf="Gecersiz giris.Dogru kullanım ornegi'./program -c 1 2 3 4' \n") ;  return 0 ;}
if(strcmp( "-t" ,args[1]) == 0 ){
                  for(i=2; args[i]!='\0';i++){           
            toplam = toplam +atoi(args[i]);            
          }
   printf("toplam = %d \n " , toplam);
}
else if(strcmp("-c",args[1]) == 0 ){
                   for(i=2 ; args[i]!= '\0'; i++){                       
                          carpim = carpim * atoi(args[i]);
                   }
            printf("carpim = %d \n " , carpim);

}
else{ printf("Gecersiz islem !\n");  return 0 ;}
  
    return 0;
} 
 ******************************************************************************
 soru1 -> N elemanlı Unsigned long ve char tipinde veriler tanımlanmıştır , Dizinin boyutu komut satırından alınmıştır Random olarak oluşturulan sayılar (un) long veri tipindeki diziye aktarılmıştır .type castingle (un)long veri tipindeki dizideki veriler (un)char dizisine aktarılımıştış ve bu değerler hex olarak ekrana basılmıştır aynı şekilde adresleride basılmıştır.  (un)char , (un) long tipindeki verilerin hexadecimal karşılıkları aynıdır. Normal tipleri farklı olsada.

soru2 -> Komut satırından gerekli giriş dizisi alınır ve İlk parametreleri  -t veya -c değilse programdan çıkılır ve gerekli hata belirtilir.Komut satırından gelen işleme göre carpım veya toplam yapılıp sonuç gösterilir .

***Linux Terminal Derleme***
- .c dosyalarının buludunğu dizine geç
- gcc -c soru1.c
- gcc soru1.o -o soru1
- ./soru1
***Linux Terminal Derleme2***
- .c dosyalarının buludunğu dizine geç
- gcc soru1.c
- ./a.out
******************************************
*Ödev linux Terminalden derlenip yapılmıştır
********************************************
****12.30 21.03.2016 ödev Düzenlenmiştir (YENİ)

*************************************************
Not :   Eğer elinizdeki metni, bir tam sayıya ( int ) çevirecekseniz, atoi(  ) fonksiyonunu kullanmanız gerekir

Not:



strcmp(  ) fonksiyonu, kendisine verilen iki katarı birbiriyle karşılaştırır. Katarlar birbirine eşitse, geriye 0 döner. Eğer ilk katar alfabetik olarak ikinciden büyükse, geriye pozitif değer döndürür. Şayet alfabetik sırada ikinci katar birinciden büyükse, geriye negatif değer dönmektedir

Hiç yorum yok:

Yorum Gönder