Вкачестве данного конкурса предлагаем решить : «в финале турнира шахматистов-военнослужащих встретились представители восьми воинских званий: полковник, майор, капитан, лейтенант, прапорщик, сержант, ефрейтор и рядовой. все они были из разных родов войск: один пехотинец, другой летчик, а
также танкист, артиллерист, минометчик, сапер, связист и моряк. определите воинскую специальность каждого из восьми шахматистов по следующим данным: 1. в первом туре полковник играл с моряком. 2. летчик приехал только ко второму туру. 3. во втором туре пехотинец играл с ефрейтором, а майор — с
прапорщиком. 4. после второго тура капитан выбыл из турнира по болезни. из-за этого выходными оказались: — в третьем туре сержант; — в четвертом туре танкист; — в пятом туре майор. 5. в третьем туре лейтенант выиграл у пехотинца, а партия полковника с артиллеристом закончилась вничью. 6. в
четвертом туре сапер выиграл у лейтенанта, а прапорщик у полковника. 7. перед последним туром доигрывалась оставшаяся незаконченной в шестом туре партия моряка с минометчиком». примечание. в турнире один и тот же шахматист дважды выходным не бывает и с каждым партнером играет по одной партии.
m:=0. "количество отрицателных"
p:=0 "количество положительных"
i:=1.
пока i<>0 повторять
i:=прочитать число, введенное с клавиатуры.
если i>0 то p:=p+1.
если i<0 то m:=m+1.
конец цикла пока.
вывести на экран('процент положительных = ', p/(p+m)).
вывести на экран('процент отрицательных = ', m/(p+m)).
Алгоритм будет верно работать, если введено хотя бы одно число, отличное от нуля. В противном случае возникнет ошибка деления на ноль. В нормальных программах подобные случаи отлавливаются и корректно обрабатываются.