nsn-2012
?>

Решить паскаль 1) переменные x, y, i, k описаны как var i, k: integer; x, y: real; верна ли запись k: = 81; y: = 1; for i: = 1 to sqrt (k) do y: = 2*y; ответ обосновать 2)сколько раз выполняется цикл, и что будет выводится на печать? var i, k: char; k: = 'z'; for i: = 'a' to 'b' do if k write(k); 3)сколько раз выполняется цикл, и что будет выводится на печать? var f, g: boolean; begin g: = false; for f: = false to g do g: = not f; writeln(g)end.

Информатика

Ответы

pavlino-mkr
1. Запись НЕ ВЕРНА.
В операторе цикла for i:= 1 to sqrt(k) do значение, возвращаемое функцией sqrt имеет тип real, а в этом операторе все значения должны приводиться к целочисленному типу. Автоматическое приведение типа real к integer в языке Паскаль невозможно, его нужно осуществлять явно при функции Trunc() или Round().

2. НИ РАЗУ И НИЧЕГО НЕ БУДЕТ НАПЕЧАТАНО. Программа не откомпилируется из-за ошибок, которых в операторе if k write(k); сразу две.
Первая - после k пропущено ключевое слово then.
Вторая состоит в том, что после if должно следовать логическое выражение, а k имеет тип char, но не boolean.

3. ОДИН РАЗ, БУДЕТ ВЫВЕДЕНО True.
В цикле должны быть значения порядкового типа и тип boolean этому требованию удовлетворяет. При входе в цикл f=false, цикл выполняется, затем f=true и цикл завершается. При однократном проходе по циклу выполнится оператор g:= not f и g получит значение true. Это значение и будет выведено.
AleksandrIvanovich1273
Суть в том, что переводишь число в строковый формат и далее работаешь с ним как с одномерным массивом (чем и является по сути строка).
Во внешнем цикле выбирается по порядку от 1 до (длина строки -1, т.е. до предпоследнего) цифра числа. Во внутреннем цикле эта цифра сравнивается с каждой последующей по-порядку до тех пор пока не найдется одинаковая. Если нашлась, то выход из цикла. Из внешнего цикла так же предусмотрен выход если нашлась пара равных цифр.
program z1;
var n: int64; l: integer; s: string; i, j: byte; x: boolean;
begin
   writeln ('введите число');
   readln (n);
   Str(n,s);
   l:=length(s);
   x:=false;
     for  i:=1 to l-1 do begin
        for  j:=i+1 to l do begin
          if s[i]=s[j] then begin x:=true; break; end;
        end;
      if x=true then break;
     end;
   writeln (x);  
end.
juliat200520
Количество информации можно определить как -log2(p), где p - вероятность данного события. Оно измеряется в битах.
Также можно использовать равносильное выражение log2(1/p)
Вероятность взятия чёрного шара равна 10/20 = 0,5, белого - 4/20 = 0,2, жёлтого такая же - 0,2, красного - в 2 раза меньше - 0,1.
Значит, если мы взяли чёрный шар, мы получили кол-во информации log2(1/0,5) = log2(2) = 1 бит,
если белый, то log2(1/0,2) = log2(5) = 2,3219 бит
если жёлтый, то столько же 2,3219 бит
если красный, то log2(1/0,1) = log2(10) = 3,3219 бит

Чем меньше вероятность события, тем большее количество информации мы получаем, когда это событие наступает.

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

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

Решить паскаль 1) переменные x, y, i, k описаны как var i, k: integer; x, y: real; верна ли запись k: = 81; y: = 1; for i: = 1 to sqrt (k) do y: = 2*y; ответ обосновать 2)сколько раз выполняется цикл, и что будет выводится на печать? var i, k: char; k: = 'z'; for i: = 'a' to 'b' do if k write(k); 3)сколько раз выполняется цикл, и что будет выводится на печать? var f, g: boolean; begin g: = false; for f: = false to g do g: = not f; writeln(g)end.
Ваше имя (никнейм)*
Email*
Комментарий*