Немного теории:
Любой доступ к элементу массива, осуществляемый с помощью операции индексирования может быть осуществлен при помощи указателей.
Имя массива хранит адрес его нулевого элемента. Поэтому адрес любого 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. 20
2. 30
Объяснение:
Это рекурсивный алгоритм, новые значения берутся из значений полученных ранее
F(1)=2
F(2)=F(2-1) + 2*2=2+4=6
F(3)=F(3-1) + 2*3=6+6=12
F(4)=F(4-1) + 2*4=12+8=20
Аналогично со 2 алгоритмом
Var ar:array[1..10] of integer;
i,s:integer;
begin;
for i:=1 to 10 do
readln(ar[i]);
writeln('OK:');
for i:=1 to 10 do
if (i mod 2=0) and (ar[i] mod 2=0) then writeln(ar[i]);
<span>end.</span>
1) 1
2) 0
3) 1
4)1
5)0
6)0
7)0
8)0
9)0
10)0
Если первая буква гласная, то удалить её и вывести полученное, а если согласная, то просто вывести.