PASCALABC Написать программу, которая позволит автоматически определить общее число учащихся в классах с 5-й по 10-ю паралель включительно. Для опрелеленности будеи считать, что в каждой параллели не более пяти классов. Число учащихся в классе варьируется от 20 до 30.
//PascalABC.NET
var
s1,s2,s3:string;
m,i,i2:integer;
function _case(s:string):integer;
begin if s='тысяча' then _case:=1000; if s='девятьсот' then _case:=900; if s='восемьсот' then _case:=800; if s='семьсот' then _case:=700; if s='шестьсот' then _case:=600; if s='пятьсот' then _case:=500; if s='четыреста' then _case:=400; if s='триста' then _case:=300; if s='двести' then _case:=200; if s='сто' then _case:=100; if s='девяносто' then _case:=90; if s='восемьдесят' then _case:=80; if s='семьдесят' then _case:=70; if s='шестьдесят' then _case:=60; if s='пятьдесят' then _case:=50; if s='сорок' then _case:=40; if s='тридцать' then _case:=30; if s='двадцать' then _case:=20; if s='девятнадцать' then _case:=19; if s='восемнадцать' then _case:=18; if s='семнадцать' then _case:=17; if s='шестнадцать' then _case:=16; if s='пятнадцать' then _case:=15; if s='четырнадцать' then _case:=14; if s='тринадцать' then _case:=13; if s='двенадцать' then _case:=12; if s='одиннадцать' then _case:=11; if s='десять' then _case:=10; if s='девять' then _case:=9; if s='восемь' then _case:=8; if s='семь' then _case:=7; if s='шесть' then _case:=6; if s='пять' then _case:=5; if s='четыре' then _case:=4; if s='три' then _case:=3; if s='два' then _case:=2; if s='один' then _case:=1;
end;
begin
Readln(s1);
i:=Pos(' ',s1);
i2:=Pos(' ',s1,i+1);
if i>0 then if i2>0 then begin s2:=copy(s1,i+1,i2-i-1); s3:=copy(s1,i2+1,length(s1)-i2); end else begin s2:=copy(s1,i+1,length(s1)-i); s3:=''; end;
delete(s1,i,length(s1));
Writeln(_case(s1)+_case(s2)+_case(s3));
end.
//PascalABC.NET версия 3.2, сборка 1389
//Если программа не запускается, то обновите версию
uses System.Linq;
begin
writeln('III');
var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList;
writeln;
while a.Any() do
begin
write(a[0], ' ');
a.RemoveAt(0);
if not a.Any then break;
write(a.Last, ' ');
a.RemoveAt(a.Count - 1);
if not a.Any then break;
var n := 0;
if a.Count > 1 then n := a.Count div 2 - 1;
write(a[n], ' ');
a.RemoveAt(n);
end;
end.
Объяснение: