abone ol




Kullanıcı Adı

Şifre


          Şifremi Unuttum?




İletişim

  • 0216 550 46 26




REKLAM PROBLEMİ (OPTİMUM ÇİFTİ SEÇME)


Ödev Bilgileri

 Sayfa Sayısı : 6 Sayfa
 Dökümanın Dili : Türkçe
 Döküman Türü : Acrobat Reader Dökümanı
 Kaynakça :
 Resim/Şekil :
 Tablo :



Sitedeki dosyalar üye olmak için öğrencilerin gönderdiği dosyalardan oluşmaktadır. Eğitim ve öğretim amaçlıdır. Bu dosyaların tümünün editörden gözden geçirilmesi yoğun bir emek gerektiğinden, gözden kaçmış olanlar olabilir. Ayrıca bir üyemiz tarafından gönderilen bir dosyanın telif hakkına tabi olup olmadığını her durumda tespit edemeyebiliriz. Böyle bir durumu fark etmeniz halinde lütfen iletişim mailimizden bize durumu bildirin. Siteden kaldırılması için mesajınıza dosya numarasınıda ekleyerek bize yardım merkezinden gönderebilirsiniz. İlgili dosya 48 saat içerisinde derhal siteden kaldırılır.. Telif haklarına gösterilen özen konusunda bize yardımcı olduğunuz için teşekkür ederiz..
Dosya No: 75163 - | Yardım Merkezi için Lütfen Buraya Tıklayınız

Eğer üye iseniz giriş yapıp dökümanı indirebilirsiniz.


Ödevin Özeti

Reklam Problemi (Optimum çifti seçme) 1. GİRİŞ: Bir reklamın bizim şirketimizde en fazla G günde yayınlanması için bize F fiyatı kadar para verilecektir. Gün (G) ve Fiyat (F) bilgileri tamsayılardan oluşmaktadır. Bize girdi olarak verilen N adet F-G çifti vardır. Kolaylık olması açısından F-G bilgileri bir metin dosyası içersine girilmiştir. Kullanıcı sadece metin dosyasının adını girerek giriş yapacaktır. 2. ÇIKIŞ: Bize verilen F-G çiftlerinden hangilerini seçersek en karlı (bize en çok getiri sağlayan) durumu oluşturabiliriz. 3. ALGORİTMA: Bu problemi çözmek için çeşitli yöntemler kullanılabilir. Özyineleme (recursion) kullanarak bütün ihtimalleri denemek ve aralarından en iyi olanı seçmek genelde ilk akla gelen çözümdür. Özyineleme mantıksal açıdan basit ve net bir çözüm olmasına ve programa dökülmesi de oldukça kolay olmasına rağmen bilgisayar açısından işletilmesi normal işlemlere göre daha çok zaman alan bir işlemdir. Bazı diller özyinelemeyi desteklemez. Ayrıca özyinelemeli çözümlerde, çözülmek istenen problemin derinliğine göre boyutu artan bir yığıt belleğine ihtiyaç vardır. Bu nedenle problemleri özyinelemesiz olarak çözmek biraz daha zor veya karmaşık olsa da daha iyidir. İşte bu problemin de özyinelemesiz bir çözümü mevcuttur. Elimizdeki verileri birinci öncelikle fiyat bilgisine, ikinci öncelikle gün bilgisine göre büyükten küçüğe sıralarız. Bu tarz bir sıralama yapmak için kolay bir yöntem olarak “F*100+G”değerine göre sıralamayı kullanabiliriz. Böylece tüm G değerlerinin 100’den küçük olduğunu kabul ederek istediğimiz sıralama şeklini tek işlemde tamamlamış oluruz. (Not: Buradaki 100 değeri program içerisinde MAXG olarak tanımlanmıştır.) Daha sonra sıralı olan dizinin başından başlarız ve G (gün) değeri 0’dan büyük olan her çift için o çiftin indeks numarasını başka bir dizide saklarız. Ve bu çiftten sonra gelen tüm çiftlerden G değeri sakladığımız G değerinden büyük-eşit ise o çiftin G değerini 1 azaltırız. Bu şekilde seçtiğimiz çiftler en iyi sonucu veren çiftlerdir. Daha sonra bu çitleri sakladığımız indeks numaralarını kullanarak ekrana yazdırırız. Ancak dizi içersindeki Gün (G) değerleri değiştirdiğimiz için ekrana yazdırmadan önce orijinal değerleri tekrar dosyadan okuruz. (Not: Eğer girdileri konsoldan (klavye) alıyor olsaydık. Bu işlemi orijinal değerleri başka bir dizide saklayarak yapmamız gerekirdi.) Asansör Problemi 2/6 4. AKIŞ DİYAGRAMI: N, G[N], F[N] J=1 T=G[I] T 0 E[J]=I J=J+1 G[K]=G[K]-1 SORTRECORD(F,G) I=1 +1 N K=I+1 +1 K =N G[K] T İ=1 +1 J-1 K=E[I] G[K], F[K] END Asansör Problemi 3/6 5. PROGRAM KAYNAK KODU: #include stdio.h #define N 100 #define MAXDAY 100 typedef struct {int f,g;} record; record r[N]; int e[N]; int i,j,k,n,t,resj; char infile[255]; void read_file() { FILE *in; if ((in = fopen(infile, rt)) == NULL) { printf(Dosya a‡•lamad• ); return; } n=0; while (!feof(in)) { if (!fscanf(in, %d %d, &r[n].f , &r[... - Üye olup tamamını bilgisayarınıza kaydedebilir, üzerinde değişiklik yapabilir, yazıcı çıktısı alabilirsiniz.