Немного теории:
Любой доступ к элементу массива, осуществляемый с помощью операции индексирования может быть осуществлен при помощи указателей.
Имя массива хранит адрес его нулевого элемента. Поэтому адрес любого i элемента массива можно представить как (x+i), где x - указатель на первый элемент массива. А его значение как *(x+i)
Подобные операции верны для любого типа и размера массивом, так как при прибавлении к указателю целого числа, он "сдвигается" не на i байтов, а на i элементов этого типа.
int a[]={7,8,9}; - инициализация массива.
int b*=a - в этой строчке ошибка. Правильно: int *b=a; - объявляем указатель на нулевой элемент массива.
b++; - операция постфиксного инкремента(так как значение b в этой строчке нигде не используется, то данное выражение равносильно b=b+1). Теперь в b находится адрес первого элемента массива.
*(b+1)=*b - присваиваем второму элементу массива значение первого элемента(эта запись равносильна a[2]=a[1])
b[1] равносильно a[2] (не забываем, что в b[0] теперь адрес первого элемента, а не в нулевого. Адрес нулевого элемента будет в b[-1], а второго элемента - в b[1]).
В итоге значение b[1] равно 8
Ответ: 8
Где рисунок??
Уже второе задание так кидаешь..
Получается слово МОТОР. Там не тюлень, а морж нарисован на картинке
1. <span>var N, k: real; </span>
<span>begin </span>
<span>readln(N); </span>
<span>if (N<0) then k:= 0 </span>
<span>else </span>
<span>begin </span>
<span>if (frac(N)=0) then k:=N*2 </span>
<span>else k:=(trunc(N)+1)*2; </span>
<span>end; </span>
<span>writeln(k); </span>
<span>end.
2. </span><span>Первый хулиган увеличивал количество кусочков на 3
Второй - на 6
То есть, всего кусочков должно быть N = 1 + 3m + 6n
Значит, N - 1 должно делиться на 3
и наоборот, если N - 1 делится на 3
N - 1 = 3k
то возможна ситуация, когда Первый хулиган рвал k раз,
а Второй наблюдал (ничего не рвал).
Алгоритм свёлся к проверке:
Если N -1 не делится на 3, то No
КОНЕЦ</span>