Gita_SS
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору вот что получилось, но из-за первого чтения строки значение кол-ва элементов смещается на строку ниже... мо кто-нить все ж поможет победить?! # program z; uses Crt; function Rus(mes: string):string; var i: integer; begin for i:=1 to length(mes) do case mes[i] of 'А'..'п' : mes[i] := Chr(Ord(mes[i])-64); 'р'..'я' : mes[i] := Chr(Ord(mes[i])-16); end; Rus := mes; end; function KolSlov(s: string):Integer; Var i, Number : Integer; {Number - количество слов в тексте} Flag : Boolean; Letter : Char; {текущая буква } begin While Pos(' ',s)>0 do Delete(s,Pos(' ',s),1); if s[1]=' ' then Delete(s,1,1); if s[Length(s)]=' ' then Delete(s,Length(s),1); Number := 0; Flag := TRUE; begin for i := 1 to Length(s) do {цикл по буквам текста} begin Letter := s[i]; {текущая буква текста } if (Letter <> ' ') and Flag then Number := Number+1; Flag := (Letter=' ') {(Letter=' ') — логическое выражение,} end; {принимающее значения TRUE или FALSE } KolSlov:=Number; end; end; var f: text; s : string; name: string[12]; io: string[6]; i,j,n,c,d,sum: integer; k,pr,p,sb:real; ek1,ek2,ek3,ek4,ek5,ek6:integer; begin ClrScr; Assign(f, 'ispyty.prn'); Reset(f); begin Readln(f,s); d:=KolSlov(s); writeln(Rus(s)); writeln(d); d:=d+6; end; While not Eof(f) do begin if d=1 then begin readln(f,name); writeln(Rus(name)); writeln(d); end; begin if d=7 then i:=0; p:=0;sb:=0;sum:=0; begin //while d=7 do repeat begin inc(i); c:=d-3; begin readln(f,name,io,pr,ek1,ek2,ek3,ek4); p:=p+pr; sum:=sum+ek1+ek2+ek3+ek4; writeln(Rus(name),' ',Rus(io),' ',pr:3:0,' ',ek1,' ',ek2,' ',ek3,' ',ek4); writeln(d,' ',i,' ',c,' ',p:3:0) end; k:=p/i; sb:=sum/i/c; writeln(d,' ',i,' ',c,' ',k:3:2,' ',sb:3:2) end until d=7; end; //d:=d+6; if d=8 then i:=0; p:=0;sb:=0;sum:=0; //while d=8 do begin repeat begin inc(i); c:=d-3; begin read(f,name,io,pr,ek1,ek2,ek3,ek4,ek5); p:=p+pr; sum:=sum+ek1+ek2+ek3+ek4+ek5; writeln(Rus(name),' ',Rus(io),' ',pr:3:0,' ',ek1,' ',ek2,' ',ek3,' ',ek4,' ',ek5); writeln(d,' ',i,' ',c,' ',p:3:0) end; k:=p/i; sb:=sum/i/c; writeln(d,' ',i,' ',c,' ',k:3:2,' ',sb:3:2) end;until d<>8; end; begin if d=9 then i:=0; p:=0;sb:=0;sum:=0; while d=9 do begin inc(i); c:=d-3; begin i:=0; p:=0;sb:=0;sum:=0; readln(f,name,io,pr,ek1,ek2,ek3,ek4,ek5,ek6); writeln(Rus(name),' ',Rus(io),' ',pr,' ',ek1,' ',ek2,' ',ek3,' ',ek4,' ',ek5,' ',ek6); writeln(d,' ',i,' ',c,' ',p:3:0) end; k:=p/i; sb:=sum/i/c; writeln(d,' ',i,' ',c,' ',k:3:2,' ',sb:3:2) end; end; end; Close(f); end; Readln; end. /# |