М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Vera4441
Vera4441
16.08.2022 19:25 •  Информатика

Дати відповіді на контрольні питання на ст. 163. Інформатика Руденко (Профільний рівень) 10 клас 2019.

👇
Открыть все ответы
Ответ:
andreymikilov
andreymikilov
16.08.2022
Первый допустим.
2) k:=10; Не должен быть допустим, поскольку 10 не входит в 0..9. НО...по умолчанию Паскаль игнорирует эту ошибку, позволяя даже 255 присвоить.
Третий оператор допустим.
4) k:='5'; недопустимо, потому что нельзя преобразовать тип char в правой части к типу 0..9, являющемуся подмножеством однобайтных целых.
5) k:=ord(d); в таком виде записать нельзя, потому что d нигде не описано. Если предположить, что на месте d находится цифра, то оператор допустим.
6) k:=ord(d)-ord('0'); Как и для 2) - оператор не должен быть допустим... но он допустим. Допустим он будет и в варианте k:=ord(d)-ord(0), даже когда выдаст отрицательные значения.

Все это сужает область возможного применения данных типа "диапазон" и в целом типа "set of ...". не позволяя во многих случаях использовать их для организации эффективных проверок . Например, для можно было бы описать диапазон 6..18 для контроля принадлежности возраста к школьному. Можно было БЫ... но, как выясняется, нельзя.
4,7(70 оценок)
Ответ:
ириша182300
ириша182300
16.08.2022
Function PosBlank(s: string; cursor: integer): integer;
{Возвращает позицию первого пробельного символа в строке s,
 начиная с позиции, указанной cursor. Если такого символа нет,
 возвращает 0.}
var
  n: integer;
begin
  n := Length(s);
  while (s[cursor] <> ' ') and (cursor < n) do cursor := cursor + 1;
  if cursor = n then
    if s[cursor] = ' ' then PosBlank := n else PosBlank := 0
  else
    PosBlank := cursor
end;

function PosNonBlank(s: string; cursor: integer): integer;
{Возвращает позицию первого непробельного символа в строке s,
 начиная с позиции, указанной cursor. Если такого символа нет,
 возвращает 0.}
var
  n: integer;
begin
  n := Length(s);
  while (s[cursor] = ' ') and (cursor < n) do cursor := cursor + 1;
  if cursor = n then
    if s[cursor] = ' ' then PosNonBlank := 0 else PosNonBlank := n
  else
    PosNonBlank := cursor
end;

procedure GetWord(s: string; var cursor: integer; var wd: string);
{Процедура помещает в wd очередное слово из строки s
 Начало слова указано в cursor, после завершения процедуры
 cursor будет указывать на первый пробельный символ,
 следующий за найденным словом. Лидирующие и хвостовые
 пробельные символы усекаются. Если слово не найдено, то
 в wd помещается пустая строка}
var
  n, ibegin: integer;
begin
  n := length(s);
  if n>0 then
    begin
    cursor := PosNonBlank(s, cursor);
    if cursor > 0 then
    begin
      ibegin := cursor;
      cursor := PosBlank(s, cursor);
      if cursor > 0 then wd := Copy(s, ibegin, cursor - ibegin)
      else wd := Copy(s, ibegin, n - ibegin + 1)
    end
    else
      wd := ''
    end
  else
    begin
    wd:='';
    cursor:=0
    end
end;

var
  c, cc, w: string;
  ic: integer;
  fin, fout: Text;

begin
  Assign(fin, 'input.txt');
  Reset(fin);
  Assign(fout, 'output.txt');
  Rewrite(fout);
  while not Eof(fin) do
  begin
    ic := 1;
    cc := '';
    readln(fin, c);
    while ic > 0 do
    begin
      GetWord(c, ic, w);
      if w <> '' then cc := cc + ' ' + w
    end;
    cc := Copy(cc, 2, length(cc) - 1);
    writeln(fout, cc)
  end;
  Close(fin);
  Close(fout);
end.
4,7(58 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ