Nasteona1994
?>

Суть такова: дана строка, состоящая из групп нулей и единиц. каждая группа отделяется от другой одним или несколькими пробелами.подсчитать количество символов в самой длинной группе. нашел вот такой исходник, пытался понять но так и не понял, объясните кто-нибудь код) procedure tform1.button1click(sender: tobject); var s: string; i, l, c, m: integer; z, u: boolean; begin if combobox1.text< > '' then begin s: =combobox1.text; combobox1.items.insert(0, s); l: =length(s); z: =false; u: =false; c: =0; m: =0; for i: =1 to l do begin if ((s[i]='0')and not z)or((s[i]='1')and not u)then begin if m end; if ((s[i]='0')and not z) then begin u: =false; z: =true; c: =0; end; if ((s[i]='1')and not u) then begin u: =true; z: =false; c: =0; end; if ((s[i]='0')and z)or((s[i]='1')and u)then c: =c+1; end; if m label1.caption: ='количество символов в самой длинной группе: '+inttostr(m); end; end;

Информатика

Ответы

andrewa
Программа для случая, когда в строке только "0", "1" и пробелы (т.е. проверки корректности ввода нет):
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i,k,max:integer;
begin
if combobox1.Text<>'' then
begin
s:=combobox1.Text;
combobox1.Items.Insert(0,s);
s:=s+' ';
while pos('  ',s)>0 do delete(s,pos('  ',s),1);
k:=0; max:=0;
for i:=1 to length(s) do
  if s[i]<>' '
   then k:=k+1
   else begin
        if k>max then max:=k;
        k:=0;
        end;
label1.Caption:='Количество символов в самой длинной группе: '+inttostr(max);
end;
end;
profitgroup51

10 минут

Объяснение:

Обозначим за  V  — количество данных,  q  — сорость передачи,  t  — время передачи

 

Тогда  V1=V2=12V=12⋅50=25  Мбайт

 

Переведём  25  Мбайт в Кбиты:

 

V1=V2=25Мбайт =25Мбайт⋅8бит=200Мбит=200⋅210 Кбит =50⋅4⋅210 Кбит=50⋅22⋅210 Кбит=50⋅212 Кбит

 

Время передачи определяется как  t=t1+t2=V1q1+V2q2 , где  q1=1024=210  Кбит/с,  q2=10242=512=29  Кбит/с

 

Таким образом,  t=50⋅212210+50⋅21229=50⋅22+50⋅23=50⋅4+50⋅8=200+400=600  c

 

Переведём полученный результат в минуты ( 1  мин  =   60  с):

 

600с:60с=10  мин.

Pgr100

Без массива:

Program n_1;

var a, b, i, n: integer;

begin

   a:=0; b:=0;

   for i:=1 to 15 do begin

       read(n);

       if n mod 2 = 1 then a:=a+1

       else b:=b+1;

   end;

   if a>b then writeln('Нечетных чисел больше, чем четных')

   else writeln('Четных чисел больше, чем нечетных');

end.

С массивом:

Program n_1;

var a, b, i: integer; n: array [1..15] of integer;

begin

   a:=0; b:=0;

   for i:=1 to 15 do begin

       read(n[i]);

       if n[i] mod 2 = 1 then a:=a+1

       else b:=b+1;

   end;

   if a>b then writeln('Нечетных чисел больше, чем четных')

   else writeln('Четных чисел больше, чем нечетных');

end.

Но честно, не вижу смысла использовать массив.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Суть такова: дана строка, состоящая из групп нулей и единиц. каждая группа отделяется от другой одним или несколькими пробелами.подсчитать количество символов в самой длинной группе. нашел вот такой исходник, пытался понять но так и не понял, объясните кто-нибудь код) procedure tform1.button1click(sender: tobject); var s: string; i, l, c, m: integer; z, u: boolean; begin if combobox1.text< > '' then begin s: =combobox1.text; combobox1.items.insert(0, s); l: =length(s); z: =false; u: =false; c: =0; m: =0; for i: =1 to l do begin if ((s[i]='0')and not z)or((s[i]='1')and not u)then begin if m end; if ((s[i]='0')and not z) then begin u: =false; z: =true; c: =0; end; if ((s[i]='1')and not u) then begin u: =true; z: =false; c: =0; end; if ((s[i]='0')and z)or((s[i]='1')and u)then c: =c+1; end; if m label1.caption: ='количество символов в самой длинной группе: '+inttostr(m); end; end;
Ваше имя (никнейм)*
Email*
Комментарий*