ݺߣ

ݺߣShare a Scribd company logo
Çİܷҷѷ
       3003080041 Hakkı ÖZTÜRK
       3003080041 Burak İZCİ
       3103080015 Anıl DEMİR
       3103080014 Gizem ÇINAR
İÇİNDEKİLER:
 Problemin Tanımı………………………………………………………………………………3
 Problemin Algoritması…………………………..………………………………………….4
 Problemin Akış Şeması………………………………………………………………………6
 Problemin C Kodu……………………………………………………………………………..8
 Örnekler
    a) Örnek 1…………………………………………………………………………………………….…...18
    b) Örnek 2……………………………………………………………………………………….…………19




                                                            2
PROBLEMİN TANIMI
Çİܷҷѷ:
      Teslim tarihi ve işlem süresi verilen N tane işi, seçimli
olarak ya en kısa işlem süresine göre ya da en yakın teslim tarihli
işe göre sıralayarak, seçilen sıralama türüne göre oluşan toplam
gecikmeyi hesaplayan bir C programı yazınız. Yapılması
gerekenler aşağıda sıralanmıştır:
 1. Kullanıcıdan N sayısı istenecektir.
 2. Bu N işe ait işlem süreleri kullanıcıdan istenecektir.
 3. Her işe ait teslim süresi (1-5) arasında üretilen bir rastgele sayı ile
    işlem süresinin çarpılması ile hesaplanacaktır. Örnek: işlem süresi
    15 ise teslim süresi 15*4=60 olacaktır.
 4. Kullanıcıya hangi kritere göre işlerin sıralanacağı sorulacaktır.
    Verilen cevaba göre işler sıralanacaktır.
 5. İşler sıralandıktan sonra toplam gecikme (işin bitiş zamanı-teslimat
    süresi) hesaplanacaktır. Teslim tarihinden önce biten işlerde
    gecikme olmadığını unutmayın.
                                                                          3
PROBLEMİN ALGORİTMASI
 Adım 1: Programa başla.
 Adım 2: N sayısını iste.
 Adım 3: N sayısını oku.
 Adım 4: İşlem sürelerini iste.
 Adım 5: İşlem sürelerini oku.
 Adım 6: a[i] dizisine 1 ile 5 arasında rastgele sayı ata.
 Adım 7: Teslim süresi=işlem süresi*a[i]
 Adım 8: Teslim süresini yaz.
 Adım 9: Teslim süresinin ilk haline x i işlem süresinin ilk halini
  normal işlem süresine ata.
 Adım 10: Seçime götür. Seçim 1 ise en kısa işlem süresine göre
  sırala veya seçim 2 ise en kısa teslim süresine göre sırala. Değilse
  adım 1’e dön
 Adım 11: Sıralamayı yazdır.


                                                                         4
 Adım 12: Gecikme süresi=işlem süresi-normal işlem
 Adım 13: Gecikme süresini yazdır.
 Adım 14: Gecikme süresi >0 ise gecikmeleri toplat ve
  yazdır. Değilse adım 15’e geç.
 Adım 15: Bitir.




                                                         5
PROBLEMİN AKIŞ ŞEMASI




                        6
7
PROBLEMİN C KODU
   #include<stdio.h>
   #include<conio.h>
   #include<math.h>
   #include<string.h>
   main ()
   {
      int n;
      srand(time(NULL));
      printf("n sayisini giriniz:n");
      scanf("%d",&n);
      int
    islemsuresi[n],teslimsuresi[n],a[n],i,j,secim,k,x[n],normalisle
    m[n],gecikme[n],toplam=0;
                                                                  8
   for(i=0;i<n;i++)
         {
           printf("%d.islem suresini giriniz:n=",i+1);
           scanf("%d",&islemsuresi[i]);
           a[i]=1+rand()%5;
           teslimsuresi[i]=0;
       }
    printf("teslim suresi:n");




                                                           9
 for(i=0;i<n;i++)
      {
        gecikme[i]=0;
        x[i]=0;
        normalislem[i]=0;
        teslimsuresi[i]=a[i]*islemsuresi[i];
     }
   for(i=0;i<n;i++)
     {
        printf("%d.urunun teslim suresi=n",i+1);
        printf("%dn",teslimsuresi[i]);
     }

                                                     10
   strcpy(x,teslimsuresi);
   strcpy(normalislem,islemsuresi);
   printf("***MENU***n");
   printf("[1] en kisa islem suresine goren");
   printf("[2] en kisa teslim tarihine goren");
   printf("seciminiz:n");
   scanf("%d",&secim);
   switch(secim)


                                                    11
   {
       case 1:
       for(i=0;i<=n;i++)
         {
            for (j=i+1;j<=n-1;j++)
               {
                  if(islemsuresi[i]>islemsuresi[j])
                     {
                        k=islemsuresi[i];
                        islemsuresi[i]=islemsuresi[j];
                        islemsuresi[j]=k;
                     }
               }
         }
       for(i=0;i<n;i++)
         {
            printf("%d-",islemsuresi[i]);
         }
       break;
                                                          12
 case 2:
        for(i=0;i<=n;i++)
          {
             for (j=i+1;j<=n-1;j++)
               {
                   if(teslimsuresi[i]>teslimsuresi[j])
                      {
                         k=teslimsuresi[i];
                         teslimsuresi[i]=teslimsuresi[j];
                         teslimsuresi[j]=k;
                      }
               }
          }
        for(i=0;i<n;i++)
          {
             printf("%d-",teslimsuresi[i]);
          }
        break;

                                                             13
 default:
         printf("Yanlis secim. Tekrar deneyin!");
         break;
     }




                                                     14
 if(secim=1)
      {
        for(i=0;i<n;i++)
          {
             gecikme[i]=islemsuresi[i]-normalislem[i];
             printf("n");
             printf("%dn",gecikme[i]);
             if(gecikme[i]>0)
                {
                  toplam+=gecikme[i];
                }
          }
      }
                                                          15
 else
      {
        for(i=0;i<n;i++)
          {
             gecikme[i]=teslimsuresi[i]-x[i];
             printf("%dn",gecikme[i]);
             if(gecikme[i]>0)
                {
                  toplam+=gecikme[i];
                }
          }
      }

                                                 16
    printf("toplam gecikme=%d",toplam);
    return 0;
}




                                           17
ÖRNEKLER
Örnek 1:




                 18
Örnek 2:




           19
 Bizi dinlediginiz için tesekkür ederiz …
                                             20

More Related Content

çİzelgeleme projesi̇

  • 1. Çİܷҷѷ 3003080041 Hakkı ÖZTÜRK 3003080041 Burak İZCİ 3103080015 Anıl DEMİR 3103080014 Gizem ÇINAR
  • 2. İÇİNDEKİLER:  Problemin Tanımı………………………………………………………………………………3  Problemin Algoritması…………………………..………………………………………….4  Problemin Akış Şeması………………………………………………………………………6  Problemin C Kodu……………………………………………………………………………..8  Örnekler  a) Örnek 1…………………………………………………………………………………………….…...18  b) Örnek 2……………………………………………………………………………………….…………19 2
  • 3. PROBLEMİN TANIMI Çİܷҷѷ: Teslim tarihi ve işlem süresi verilen N tane işi, seçimli olarak ya en kısa işlem süresine göre ya da en yakın teslim tarihli işe göre sıralayarak, seçilen sıralama türüne göre oluşan toplam gecikmeyi hesaplayan bir C programı yazınız. Yapılması gerekenler aşağıda sıralanmıştır: 1. Kullanıcıdan N sayısı istenecektir. 2. Bu N işe ait işlem süreleri kullanıcıdan istenecektir. 3. Her işe ait teslim süresi (1-5) arasında üretilen bir rastgele sayı ile işlem süresinin çarpılması ile hesaplanacaktır. Örnek: işlem süresi 15 ise teslim süresi 15*4=60 olacaktır. 4. Kullanıcıya hangi kritere göre işlerin sıralanacağı sorulacaktır. Verilen cevaba göre işler sıralanacaktır. 5. İşler sıralandıktan sonra toplam gecikme (işin bitiş zamanı-teslimat süresi) hesaplanacaktır. Teslim tarihinden önce biten işlerde gecikme olmadığını unutmayın. 3
  • 4. PROBLEMİN ALGORİTMASI  Adım 1: Programa başla.  Adım 2: N sayısını iste.  Adım 3: N sayısını oku.  Adım 4: İşlem sürelerini iste.  Adım 5: İşlem sürelerini oku.  Adım 6: a[i] dizisine 1 ile 5 arasında rastgele sayı ata.  Adım 7: Teslim süresi=işlem süresi*a[i]  Adım 8: Teslim süresini yaz.  Adım 9: Teslim süresinin ilk haline x i işlem süresinin ilk halini normal işlem süresine ata.  Adım 10: Seçime götür. Seçim 1 ise en kısa işlem süresine göre sırala veya seçim 2 ise en kısa teslim süresine göre sırala. Değilse adım 1’e dön  Adım 11: Sıralamayı yazdır. 4
  • 5.  Adım 12: Gecikme süresi=işlem süresi-normal işlem  Adım 13: Gecikme süresini yazdır.  Adım 14: Gecikme süresi >0 ise gecikmeleri toplat ve yazdır. Değilse adım 15’e geç.  Adım 15: Bitir. 5
  • 7. 7
  • 8. PROBLEMİN C KODU  #include<stdio.h>  #include<conio.h>  #include<math.h>  #include<string.h>  main ()  {  int n;  srand(time(NULL));  printf("n sayisini giriniz:n");  scanf("%d",&n);  int islemsuresi[n],teslimsuresi[n],a[n],i,j,secim,k,x[n],normalisle m[n],gecikme[n],toplam=0; 8
  • 9. for(i=0;i<n;i++)  {  printf("%d.islem suresini giriniz:n=",i+1);  scanf("%d",&islemsuresi[i]);  a[i]=1+rand()%5;  teslimsuresi[i]=0;  }  printf("teslim suresi:n"); 9
  • 10.  for(i=0;i<n;i++)  {  gecikme[i]=0;  x[i]=0;  normalislem[i]=0;  teslimsuresi[i]=a[i]*islemsuresi[i];  }  for(i=0;i<n;i++)  {  printf("%d.urunun teslim suresi=n",i+1);  printf("%dn",teslimsuresi[i]);  } 10
  • 11. strcpy(x,teslimsuresi);  strcpy(normalislem,islemsuresi);  printf("***MENU***n");  printf("[1] en kisa islem suresine goren");  printf("[2] en kisa teslim tarihine goren");  printf("seciminiz:n");  scanf("%d",&secim);  switch(secim) 11
  • 12. {  case 1:  for(i=0;i<=n;i++)  {  for (j=i+1;j<=n-1;j++)  {  if(islemsuresi[i]>islemsuresi[j])  {  k=islemsuresi[i];  islemsuresi[i]=islemsuresi[j];  islemsuresi[j]=k;  }  }  }  for(i=0;i<n;i++)  {  printf("%d-",islemsuresi[i]);  }  break; 12
  • 13.  case 2:  for(i=0;i<=n;i++)  {  for (j=i+1;j<=n-1;j++)  {  if(teslimsuresi[i]>teslimsuresi[j])  {  k=teslimsuresi[i];  teslimsuresi[i]=teslimsuresi[j];  teslimsuresi[j]=k;  }  }  }  for(i=0;i<n;i++)  {  printf("%d-",teslimsuresi[i]);  }  break; 13
  • 14.  default:  printf("Yanlis secim. Tekrar deneyin!");  break;  } 14
  • 15.  if(secim=1)  {  for(i=0;i<n;i++)  {  gecikme[i]=islemsuresi[i]-normalislem[i];  printf("n");  printf("%dn",gecikme[i]);  if(gecikme[i]>0)  {  toplam+=gecikme[i];  }  }  } 15
  • 16.  else  {  for(i=0;i<n;i++)  {  gecikme[i]=teslimsuresi[i]-x[i];  printf("%dn",gecikme[i]);  if(gecikme[i]>0)  {  toplam+=gecikme[i];  }  }  } 16
  • 17. printf("toplam gecikme=%d",toplam);  return 0; } 17
  • 19. Örnek 2: 19
  • 20.  Bizi dinlediginiz için tesekkür ederiz … 20