Function GetWord(s:string; var ptr:integer):string; var i:integer; begin i:=PosEx(' ',s,ptr); if i>0 then Result:=Copy(s,ptr,i-ptr) else Result:=Copy(s,ptr,length(s)-ptr+1); ptr:=i+1 end;
var f,g:Text; ib:integer; s,Fam,Im,Ot:string; begin Assign(f,'Input.txt'); Reset(f); Assign(g,'Result.txt'); Rewrite(g); while not Eof(f) do begin readln(f,s); writeln(s); // отладочная выдача ib:=1; Fam:=GetWord(s,ib); Im:=GetWord(s,ib); Ot:=GetWord(s,ib); writeln(g,Im,' ',Ot,' ',Fam); // закомментарить строку для б) writeln(Im,' ',Ot,' ',Fam); // отладочная выдача writeln(g,Fam,' ',Im[1],'.',Ot[1],'.'); // закомментарить строку для а) writeln(Fam,' ',Im[1],'.',Ot[1],'.'); // отладочная выдача end; Close(f); Close(g) end.
Тестовый прогон:
Иванов Петр Сергеевич Петр Сергеевич Иванов Иванов П.С. Тарасова Анна Георгиевна Анна Георгиевна Тарасова Тарасова А.Г. Коваленко Евгений Станиславович Евгений Станиславович Коваленко Коваленко Е.С. Петрова Татьяна Вячеславовна Татьяна Вячеславовна Петрова Петрова Т.В. Бородкин Тимофей Савельевич Тимофей Савельевич Бородкин Бородкин Т.С. Пышка Варвара Семеновна Варвара Семеновна Пышка Пышка В.С. Голобородько Ирина Олеговна Ирина Олеговна Голобородько Голобородько И.О.
INPUT "Kolichestvo okrugov. K="; k INPUT "Kolichestvo partiy. M="; m INPUT "Porog yavki izbirateley (v %). P="; p DIM g(k, m + 1) DIM pr(k, 1) FOR i = 1 TO k CLS PRINT "Okrug "; i g(i, 0) = i FOR j = 1 TO m PRINT "Golosov za partiyou "; j; INPUT g(i, j) pr(i, 1) = pr(i, 1) + g(i, j) NEXT j INPUT "Ne golosovalo "; g(i, m + 1) pr(i, 0) = i pr(i, 1) = 100 * pr(i, 1) / (pr(i, 1) + g(i, m + 1)) NEXT i CLS FOR i = 1 TO k FOR j = 1 TO k IF pr(i, 1) > pr(j, 1) THEN x = pr(i, 1) y = pr(i, 0) pr(i, 1) = pr(j, 1) pr(i, 0) = pr(j, 0) pr(j, 1) = x pr(j, 0) = y END IF NEXT j NEXT i PRINT "Itogi po golosovavshim" PRINT "Okrug #", "Golosovalo (%)", "Pobedila partia #" FOR i = 1 TO k PRINT pr(i, 0), pr(i, 1), IF pr(i, 1) >= p THEN PRINT "Yes. Sostojlis", max = 0 FOR j = 1 TO m IF g(pr(i, 0), j) > max THEN max = g(pr(i, 0), j) x = j END IF NEXT j PRINT x ELSE PRINT "No. Ne sostojlis" END IF NEXT i
var
i:integer;
begin
i:=PosEx(' ',s,ptr);
if i>0 then
Result:=Copy(s,ptr,i-ptr)
else
Result:=Copy(s,ptr,length(s)-ptr+1);
ptr:=i+1
end;
var
f,g:Text;
ib:integer;
s,Fam,Im,Ot:string;
begin
Assign(f,'Input.txt');
Reset(f);
Assign(g,'Result.txt');
Rewrite(g);
while not Eof(f) do begin
readln(f,s);
writeln(s); // отладочная выдача
ib:=1;
Fam:=GetWord(s,ib);
Im:=GetWord(s,ib);
Ot:=GetWord(s,ib);
writeln(g,Im,' ',Ot,' ',Fam); // закомментарить строку для б)
writeln(Im,' ',Ot,' ',Fam); // отладочная выдача
writeln(g,Fam,' ',Im[1],'.',Ot[1],'.'); // закомментарить строку для а)
writeln(Fam,' ',Im[1],'.',Ot[1],'.'); // отладочная выдача
end;
Close(f);
Close(g)
end.
Тестовый прогон:
Иванов Петр Сергеевич
Петр Сергеевич Иванов
Иванов П.С.
Тарасова Анна Георгиевна
Анна Георгиевна Тарасова
Тарасова А.Г.
Коваленко Евгений Станиславович
Евгений Станиславович Коваленко
Коваленко Е.С.
Петрова Татьяна Вячеславовна
Татьяна Вячеславовна Петрова
Петрова Т.В.
Бородкин Тимофей Савельевич
Тимофей Савельевич Бородкин
Бородкин Т.С.
Пышка Варвара Семеновна
Варвара Семеновна Пышка
Пышка В.С.
Голобородько Ирина Олеговна
Ирина Олеговна Голобородько
Голобородько И.О.
INPUT "Kolichestvo partiy. M="; m
INPUT "Porog yavki izbirateley (v %). P="; p
DIM g(k, m + 1)
DIM pr(k, 1)
FOR i = 1 TO k
CLS
PRINT "Okrug "; i
g(i, 0) = i
FOR j = 1 TO m
PRINT "Golosov za partiyou "; j;
INPUT g(i, j)
pr(i, 1) = pr(i, 1) + g(i, j)
NEXT j
INPUT "Ne golosovalo "; g(i, m + 1)
pr(i, 0) = i
pr(i, 1) = 100 * pr(i, 1) / (pr(i, 1) + g(i, m + 1))
NEXT i
CLS
FOR i = 1 TO k
FOR j = 1 TO k
IF pr(i, 1) > pr(j, 1) THEN
x = pr(i, 1)
y = pr(i, 0)
pr(i, 1) = pr(j, 1)
pr(i, 0) = pr(j, 0)
pr(j, 1) = x
pr(j, 0) = y
END IF
NEXT j
NEXT i
PRINT "Itogi po golosovavshim"
PRINT "Okrug #", "Golosovalo (%)", "Pobedila partia #"
FOR i = 1 TO k
PRINT pr(i, 0), pr(i, 1),
IF pr(i, 1) >= p THEN
PRINT "Yes. Sostojlis",
max = 0
FOR j = 1 TO m
IF g(pr(i, 0), j) > max THEN
max = g(pr(i, 0), j)
x = j
END IF
NEXT j
PRINT x
ELSE PRINT "No. Ne sostojlis"
END IF
NEXT i