[Phpcourse] Результаты тестирования по PHP

Dmitry Irtegov fat at nsu.ru
Sat Sep 22 20:59:40 NOVST 2007


Господа!
Поздравляю вас с успешным прохождением тестирования.  Вы приняты для 
прохождения факультативного спецкурса "Разработка Web-приложений на PHP 5"
в осеннем семестре 2007 года.  Просьба прислать на 
phpcourse at swsoft.nsu.ru информацию о своем расписании в следующем формате:
pupkin at gorodok.net
Понедельник
Вторник 9:00-17:45
Среда   12:30-14:15
Четверг 9:00-14:15,16:00-17:45
Пятница 9:00-17:45
Суббота 10:45-14:15

Запись Вторник 12:30-14:15 означает, что вас устраивают в качестве 
времени проведения занятий пары, начинающиеся в 12:30 и 14:15 по вторникам.
Просьба указывать как можно больше интервалов, т.е. если у вас есть 
какие-то еженедельные дела, которые вы можете перенести, лучше укажите 
это время.
Практика показывает, что подобрать устраивающее всех время очень сложно.

Для проверки синтаксиса вашего расписания (и для уточнения синтаксиса) 
прилагается программа на Perl, которой все это будет обрабатываться (о 
перекодировке входных данных в КОИ-8 я позабочусь).
Заранее спасибо,
-------------- next part --------------
#!/usr/bin/perl

# parse file

$i=0;

@dayname=("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"); 
my (%schedule);

while(<>) {
    #parse name
    $name=$_;
    $name =~ s/^\s+//;
    $name =~ s/\s+$//;
    $name =~ s/\r$//;
    $name =~ s/\s+$//;
    $nameindex{$name} = $i;
    #parse days
    $daysched="";
    for ($j=0; $j<6; $j++) {
	$line=<>;
	($head, $rest) = split(' ', $line);
	die "syntax error, wrong day name $head" unless $head==$dayname[j];
	$rest =~ s/^\s+//;
	$rest =~ s/\s+$//;
	next if $rest=="";
	$rest=~ s/9:00-10:45/9:00,10:45/;
	$rest=~ s/9:00-/9:00,10:45-/;
	$rest=~ s/10:45-12:30/10:45,12:30/;
	$rest=~ s/10:45-/10:45,12:30-/;
	$rest=~ s/12:30-14:15/12:30,14:15/;
	$rest=~ s/12:30-/12:30,14:15-/;
	$rest=~ s/14:15-16:00/14:15,16:00/;
	$rest=~ s/14:15-/14:15,16:00-/;
	$rest=~ s/16:00-17:45/16:00,17:45/;
	$rest=~ s/16:00-19:20/16:00,17:45,19:20/;
	$rest=~ s/16:00-/16:00,17:45-/;
	$rest=~ s/17:45-19:20/17:45,19:20/;
#	print $j.$rest."\n";
	for my $pair (split(/,/,$rest)) {
	    $daysched.=$j.':'.$pair.' ';
	}
#	print $daysched."\n";
    }
    $schedule{$name}=$daysched;
}

#for my $name (keys(%schedule)) {
#    print "$name schedule is $schedule{$name}\n";
#}

#die "Debug\n";

for($i=0; $i<6; $i++) {
    for my $pair ("9:00", "10:45", "12:30", "14:15", "16:00", "17:45", "19:20") {
	$count=0;
	$testpair=$i.':'.$pair;
	$cannotattend="";
	for my $name (keys(%schedule)) {
	    if (index($schedule{$name},$testpair)<0) {
		$count++;
		$cannotattend.=" $name";
	    }
	}
	print "$count people cannot attend at $dayname[$i], $pair: $cannotattend\n";
    }
}


More information about the Phpcourse mailing list