Bu örneğin algoritması nasıl yazılır? Programcılar Nerde?

Kodla Büyü

aslan0706

Süper Üye
Süper Üye
Mesajlar
1,207
Bir Sınav programı var.
Sınavlar 5 gün sürecek.
Sınavlar tam saatlerde başlayacak: 00.
Sınavlar saat 9 ile saat 18 arasında yapılabilir.
Sınavlar 2 saat sürecek. Sınavlar çakışmayacak.
Her sınava 3 öğretmen girecek.
Toplamda 4 öğretmen bulunmaktadır.
Öğretmenler arasında eşit iş yükü olacak.Yani her öğretmen eşit sayıda sınav görevi alacak.

İngilizcesi:
Exams will start at Day 1 and end at Day 5.
Exams only start at full hours, i.e. at X:00.
Exams can start from 9 to 18 o’clock.
Exams take 2 hours. User must be prevented from entering conflicting exam times.
Schedule 3 assistants per exam.
There are 4 assistants.
Separate the workload evenly among the assistants.

Örnek program:



Fikir verirseniz sevinirim.
 

Ekli dosyalar

  • c project scheduler.rar
    44.4 KB · Görüntüleme: 29
pythonda iç içe while döngüsü kullanarak şöyle bir şey yazdım ama öğretmenleri nasıl oturturuz çıkartamadım.


ÇIKTISI

pazartesi
1. sınav saat 9
2. sınav saat 11
3. sınav saat 13
4. sınav saat 15
5. sınav saat 17
salı
1. sınav saat 9
2. sınav saat 11
3. sınav saat 13
4. sınav saat 15
5. sınav saat 17
çarşamba
1. sınav saat 9
2. sınav saat 11
3. sınav saat 13
4. sınav saat 15
5. sınav saat 17
perşembe
1. sınav saat 9
2. sınav saat 11
3. sınav saat 13
4. sınav saat 15
5. sınav saat 17
cuma
1. sınav saat 9
2. sınav saat 11
3. sınav saat 13
4. sınav saat 15
5. sınav saat 17


işin zor kısmı öğretmenleri dağıtmak.
Edit: Girintiler burada gözükmüyor.Fotoğraf attım.
 

Ekli dosyalar

  • sinav.png
    sinav.png
    22.3 KB · Görüntüleme: 1,323
Linux kullandığım için eklediğin dosyayı çalıştırmadım.Anlattıklarından doğru anladıysam programı yazdım.Kodlara bakarak algoritmayı çıkarabilirsin hocam.5. sınav 17 de başlayınca 19 da bitiyor buda süreyi geçtiğinden çıkardım.
Kod bloğu(python)



Çıktı

pazartesi
1. sınav saat 9 Kezban ayşe fatma
2. sınav saat 11 ayşe fatma hayriye
3. sınav saat 13 fatma hayriye Kezban
4. sınav saat 15 hayriye Kezban ayşe
salı
1. sınav saat 9 Kezban ayşe fatma
2. sınav saat 11 ayşe fatma hayriye
3. sınav saat 13 fatma hayriye Kezban
4. sınav saat 15 hayriye Kezban ayşe
çarşamba
1. sınav saat 9 Kezban ayşe fatma
2. sınav saat 11 ayşe fatma hayriye
3. sınav saat 13 fatma hayriye Kezban
4. sınav saat 15 hayriye Kezban ayşe
perşembe
1. sınav saat 9 Kezban ayşe fatma
2. sınav saat 11 ayşe fatma hayriye
3. sınav saat 13 fatma hayriye Kezban
4. sınav saat 15 hayriye Kezban ayşe
cuma
1. sınav saat 9 Kezban ayşe fatma
2. sınav saat 11 ayşe fatma hayriye
3. sınav saat 13 fatma hayriye Kezban
4. sınav saat 15 hayriye Kezban ayşe
 

Ekli dosyalar

  • sinav1.png
    sinav1.png
    42.2 KB · Görüntüleme: 1,297
Hocam bu da benden.. Java kodu.

public class Sinav {
public static void main(String[] args) {
String [] dizi={"Ali","Veli","Ayşe","Fatma","Ali","Veli"};
int d=0;
for(int i=1; i<6; i++){
for(int j=9; j<16;j=j+2){
if ((d)==4) d=0;
System.out.println(i+". gün"+j+"-"+(j+2)+" oturumu");
System.out.println("Görevliler:"+dizi[d]+","+dizi[d+1]+","+dizi[d+2]);
d++;
}
}
}
}
 
Sağolun hocam. Biraz algıritma fikri oluştu. Bitirince paylaşacağım. Başka fikri olan varsa bekliyorum.
 
Hocam algoritmayı da bu şekilde ifade ettim. Şematik düzeni buradan yola çıkılarak çizilebilir.
1- Başla
2- Dizi oluştur (Döngü sağlamak amacıyla 6 elemanlı)
3- Dizide gezinmek için d değişkeni oluştur 0 değeri ata (int d)
4- Gün sayısı kadar döndür (for)
5- Oturum sayısı kadar döndür (iç for, 2 arttırmalı)
6- Dizi gezintisini başa almak için d değeri 4 olduğunda sıfırla
7- Gün ve oturum veren çıktı
8- Dizi gezintisi yapıp görevlendirilecek öğretmeni belirleyen çıktı
9- d değişkenini 1 arttır ve başa dön (iç for)
10- Bitir.
 
Geri
Üst