1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Дан текстовый файл f, состоящий из нескольких строк. В каждой строке найти наибольшее количество цифр, идущих подряд. Из этих значений сформировать файл h.
А что же насчет изменения i - так другие мысли на ум не приходят, как это решать...
Program tip2; Uses crt; Type file1=text; file2=file of byte; massiv=array[0..10] of byte; Var H:file2; F:file1; Fname:string; s:byte; re,n:massiv;
Procedure Input(Var F:file1; Fname:string; Var s:byte; Var n:massiv); Var x,i,j:byte; Begin clrscr; Write('Input/filename: '); Readln(fname); Assign(F,fname); ReWrite(F); Append(F); Write('Input/count/strings: '); Readln(s); For j:=1 to s do Begin Write('Input/count/elements: '); Readln(n[j]); Writeln('String ',j,#10,#13,'!start'); For i:=1 to n[j]-1 do Begin write(i,') '); Readln(x); Write(F,x,' '); End; Write(n[j],') '); Readln(x); Writeln(F,x); Writeln('!end'); End; Close(F); End;
Procedure mathpart(Var F:file1;Var re:massiv; s:byte; n:massiv); var i,j,x,ntemp:byte; temp:massiv; Begin Reset(F); For j:=1 to s do begin for i:=1 to (n[j]-1) do Begin Read(F,x); temp[i]:=x; End; Readln(F,x); temp[n[j]]:=x; ntemp:=n[j]; re[j]:=count(ntemp,temp); End; Write('Output/count: '); for j:=1 to s do write(re[j],' '); Writeln; Close(F); readkey; End;
procedure Output(Var H:file2; s:byte; re:massiv); Var j:byte; Begin Write('Input/filename: '); Readln(fname); Assign(H,fname); ReWrite(H); Reset(H); Write('Output/file/count: '); For j:=1 to s do begin write(H,re[j]); write(re[j],' '); end; Close(H); readkey; End;
Begin Input(F,Fname,s,n); mathpart(F,re,s,n); output(H,s,re); End.
function get_count(s: string): integer; var i, count, max: integer; begin s := s + ' '; count := 1; max := 0; for i := 2 to length(s) do begin if s[i] = s[i - 1] then inc(count) else begin if max < count then max := count; count := 1; end end; get_count := max; end;
begin writeln(get_count('12333445678')); writeln(get_count('1010101888878888098')); end.