1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
§17 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

§17 ГДЗ Семакин 10 класс (Информатика)

Задача

2. Сформулируйте правило соответствия типов для оператора присваивания. Какое существует исключение из этого правила?
3. Если у — вещественная переменная, аn — целая, то какие из следующих операторов присваивания правильные, а какие — нет?
а)у:=n+1
б)n:=у-1
в)n:=4.0
г) у: =trunc (у)
д)у:=n div 2
е)у:=у div 2
ж)n:=n/2
з) n: =sqr (sqrt (n))
4. Напишите линейную программу, в результате выполнения которой целочисленные переменные х и у обменяются значениями. При этом нельзя использовать дополнительные переменные. Найдя такой алгоритм, определите, в чем его недостаток по сравнению с методом обмена через третью переменную. Можно ли его применять для вещественных чисел?
5. Напишите оператор присваивания, в результате выполнения которого целочисленной переменной h присвоится значение цифры, стоящей в разряде сотен в записи положительного целого числа k (например, если k = 28 796, то h = 7).
6. Напишите линейную программу, в результате выполнения которой в целочисленной переменной S получится перевернутое целое четырехзначное число k. Например: если k = 1357, то S = 7531.
7. Напишите линейную программу перевода любого целого четырехзначного двоичного числа в десятичную систему счисления. Например, дано число в двоичной системе счисления: 11012. Перевод в десятичную систему выполняется так: 1*2^3 +1-2^2 + 0*2^1+1 = 13.

Подробный ответ

1. При выполнении оператора присваивания сначала вычисляется выражение, затем его значение записывается в переменную.

2. Тип переменной и тип выражения должны совпадать. Исключение: переменной вещественного типа можно присваивать значение целочисленного выражения.

3. Проверим каждый оператор:

  • а) $$y := n + 1$$ — правильный, так как целое значение можно присвоить вещественной переменной;
  • б) $$n := y — 1$$ — неправильный, так как вещественное значение нельзя присваивать целой переменной без преобразования;
  • в) $$n := 4.0$$ — неправильный, так как справа вещественное число;
  • г) $$y := trunc(y)$$ — правильный, результат функции $$trunc$$ целый, а целое можно присвоить вещественной переменной;
  • д) $$y := n \ div \ 2$$ — правильный, результат $$div$$ целый;
  • е) $$y := y \ div \ 2$$ — неправильный, оператор $$div$$ применяется только к целым числам;
  • ж) $$n := n / 2$$ — неправильный, оператор $$/$$ даёт вещественный результат;
  • з) $$n := sqr(\sqrt{n})$$ — неправильный, так как результат выражения может быть вещественным.

4. Обмен значениями без дополнительной переменной можно выполнить так:

x := x + y;
y := x — y;
x := x — y;

Недостаток этого способа: возможен выход за пределы диапазона целого типа при сложении. Для вещественных чисел алгоритм применять можно, но возможна небольшая потеря точности.

5. Цифра в разряде сотен находится так:

$$h := (k \bmod 1000) \ div \ 100$$

6. Для переворота четырёхзначного числа выделим его цифры и составим новое число в обратном порядке:

a := k div 1000;
b := (k mod 1000) div 100;
c := (k mod 100) div 10;
d := k mod 10;
S := d * 1000 + c * 100 + b * 10 + a;

7. Для перевода четырёхзначного двоичного числа в десятичную систему нужно сложить разряды с соответствующими степенями двойки:

$$k := (n \bmod 10) + ((n \ div \ 10) \bmod 10)\cdot 2 + ((n \ div \ 100) \bmod 10)\cdot 4 + ((n \ div \ 1000) \bmod 10)\cdot 8$$

Пример программы:

var
  n, k: integer;
begin
  writeln(‘Введите двоичное число’);
  readln(n);
  k := (n mod 10) + ((n div 10) mod 10) * 2 + ((n div 100) mod 10) * 4 + ((n div 1000) mod 10) * 8;
  writeln(‘Десятичное число: ‘, k);
end.

Ответ

1) Сначала вычисляется выражение, затем его значение присваивается переменной.
2) Типы должны совпадать; исключение — вещественной переменной можно присваивать целое выражение.
3) Правильные: а, г, д. Неправильные: б, в, е, ж, з.
4) $$x := x + y; \ y := x — y; \ x := x — y$$. Недостаток — возможное переполнение; для вещественных чисел возможна потеря точности.
5) $$h := (k \bmod 1000) \ div \ 100$$.
6) $$S := d \cdot 1000 + c \cdot 100 + b \cdot 10 + a$$.
7) $$k := (n \bmod 10) + ((n \ div \ 10) \bmod 10)\cdot 2 + ((n \ div \ 100) \bmod 10)\cdot 4 + ((n \ div \ 1000) \bmod 10)\cdot 8$$.



Общая оценка
4.6 / 5
Другие учебники
Другие предметы