Первая программа предназначена только для pascal.abc, в другой среде она работать не будет. она самая короткая и простая. метод split разбивает исходную строку на слова по символу пробела и формирует динамический массив. что бы мы ни вводили, мы всегда будем получать в результате то, что требовалось. (понятно, что если слов будет меньше трех, будем получать то, что ввели). var s: string; ms: array of string; begin write('введите три слова через пробел: '); readln(s); ms : = s.split(' '); writeln(ms[0] + ' ' + ms[2] + ' ' + ms[1]) end. вторая программа реализуется в любой версии pascal. её недостаток в том, что она правильно работает только тогда, когда введена фраза из трех слов, разделенных пробелом. это простейший линейный алгоритм. var s, s1, s2, s3: string; n, p: integer; begin write('введите три слова через пробел: '); readln(s); n : = length(s); p : = pos(' ', s); s1 : = copy(s, 1, p - 1); s3 : = copy(s, p + 1, n - p); p : = pos(' ', s3); s2 : = copy(s3, 1, p - 1); n : = length(s3); s3 : = copy(s3, p + 1, n - p); writeln(s1 + ' ' + s3 + ' ' + s2) end. третья программа также реализуема в любой версии pascal и содержит "классический" способ работы со строкой, состоящий в последовательном анализе каждого символа. имеет защиту на случай, если слов будет больше или меньше трех. var s: string; ms: array[1..3] of string; i, n, p, j: integer; begin write('введите три слова через пробел: '); readln(s); { алгоритм: просматриваем все символы строки начиная с позиции p и при обнаружении пробела в позиции q заносим в массив очередное слово, копируя q-p символов, начиная с p. затем заносим в p значение q+1 и продолжаем просмотр. при старте принимаем p=1 } p : = 1; j : = 0; n : = length(s); for i : = 1 to n do if s[i] = ' ' then begin j : = j + 1; if j < = 3 then begin{ если введено больше двух пробелов } ms[j] : = copy(s, p, i - p); p : = i + 1 end end; if j < 3 then ms[3] : = copy(s, p, n - p + 1); writeln(ms[1] + ' ' + ms[3] + ' ' + ms[2]) end. все три программы опробованы и результаты их работы одинаковы: введите три слова через пробел: зебра полосатая лошадь зебра лошадь полосатая
d2002
24.12.2021
Слишком много вопросов, поэтому ответы будут даны без подробных разъяснений. 1. в году 12 месяцев, выбор 1 из 12. 2. в месяце максимум 31 день, минимум - 28 дней. выбор от 1 из 31 до 1 из 28. соответственно, количество информации будет в диапазоне: 3. в сутках 24 часа, выбор 1 из 24. 4.в неделе 7 дней, выбор 1 из 7. 5. 6. если каждый раз делить интервал пополам и задавать вопрос "находится ли число..", указывая любую из половинок, то число не превысит семи. 7. как и в предыдущем случае, надо угадать одно число из 64-31+1=34 надо задать три вопроса.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Сколько бит информации будет получено при угадывании числа в диапазоне от 1 до 256?