Олег86
?>

Запишите значение переменной f после выполнения фрагмента алгоритма для переменной целого типа x= 1056: b: =x mod 100 div 10; c: = x mod 10; d: = x div 1000; y: = 100*c +10*d +b; f: = x - y;

Информатика

Ответы

kirik197308
B:5; C:6; D:1; Y:615; F:441
barkhatl-2p7
Const 
  Letters = ['a'..'z', 'A'..'Z'];
  LineEnds = [#13, #10, #0, '.'];
  MAX_LEN = 255;
var 
  txt: array [0..MAX_LEN] of char;
  bnd: array [0..MAX_LEN, 0..1] of integer;
  tsz, bsz: integer; // размеры массивов
  isLetter, isWord, f1, f2: boolean;
  i, j: integer;
begin
  repeat
    read(txt[tsz]);

    // Определение границ слов   
    isLetter := txt[tsz] in Letters;
    if isLetter and not isWord then
      bnd[bsz, 0] := tsz;
    if isWord and not isLetter then begin
      bnd[bsz, 1] := tsz;
      bsz := bsz + 1;
    end;
    
    isWord := isLetter;
    tsz := tsz + 1;
  until txt[tsz-1] in LineEnds;
  
  if bsz > 1 then begin  
    for i := 0 to bsz-2 do begin
      j := 0; f2 := true;
      f1 := (bnd[bsz-1, 1] - bnd[bsz-1, 0]) = (bnd[i, 1]-bnd[i, 0]); // совпадение длин
      
      while (j < bnd[i, 1] - bnd[i, 0]) and f2 do begin
        f1 := f1 and (txt[bnd[i, 0] + j] = txt[bnd[bsz-1, 0] + j]);
        f2 := f2 and (LowCase(txt[bnd[i, 0] + j]) = Chr(Ord('a') + j));
        j := j + 1;
      end;
      
      // вывод
      if f2 and not f1 then begin
        for j := bnd[i, 0] to bnd[i, 1] - 1 do
          write(txt[j]);
        writeln;
      end;
    end;
  end;
end.
qwerty
Подразумевающееся решение:
Объём информации о том, что отобран конкретный ученик, находится из уравнения 2^i = 64, т.е. i = 6 бит. Тогда было отобрано 72 / 6 = 12 человек.

На самом деле эта задача НЕКОРРЕКТНА. Разумнее хранить информацию о том, какое подмножество было выбрано. Всего подмножеств 2^64 - следовательно, любое подмножество однозначно кодируется 64 битами.
Например, кодировать можно так: на i-м месте будем ставить 1, если i-ый претендент выбран, и 0 в противном случае. Тогда строчка 001000...00 будет говорить о том, что выбран только третий претендент, а 111...110 - все претенденты кроме последнего.

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

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

Запишите значение переменной f после выполнения фрагмента алгоритма для переменной целого типа x= 1056: b: =x mod 100 div 10; c: = x mod 10; d: = x div 1000; y: = 100*c +10*d +b; f: = x - y;
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Качкова1820
ruslanriad10
ganorussia
Aleksandrova Zhanna1250
georgegradoff122
doorhan42n6868
Gennadievna bessonov
Орлова
marvindkc
anitanemtsewa
zalev
koll23
Dmitrievna-Dmitrii980
apioslk4533
Щербаков33