Var a:array of integer; i,n:integer; begin //Заполняем массив сл. числами и выводим //Нумерация массива с 0 write('Число элементов массива ');readln(n); setlength(a,n); for i:=0 to n-1 do begin a[i]:=random(41)-20; write(a[i]:4); end; writeln; //Вывод номеров четных элементов for i:=0 to n-1 do if a[i] mod 2 = 0 then writeln(a[i]:4, ' номер: ',i ); end.
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов.
FOR i = 1 TO 100 percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round) x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет END 'завершаем программу END IF NEXT i ' конец цикла Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.
Переводим целую часть:
2765342:2=1382671(0)
1382671:2=691335(1)
691335:2=345667(1)
345667:2=172833(1)
172833:2=86416(1)
86416:2=43208(0)
43208:2=21604(0)
21604:2=10802(0)
10802:2=5401(0)
5401:2=2700(1)
2700:2=1350(0)
1350:2=675(0)
675:2=337(1)
337:2=168(1)
168:2=84(0)
84:2=42(0)
42:2=21(0)
21:2=10(1)
10:2=5(0)
5:2=2(1)
2:2=1(0)
1010100011001000011110 - это целая часть
Переводим дробную:
0,23*2=0,46(0)
0,46*2=0,92(0)
0,92*2=1,84(1)
0,84*2=1,68(1)
0,68*2=1,36(1)
0,36*2=0,72(0)
0,72*2=1,44(1)
0,44*2=0,88(0)
0,00111010 - дробная часть
В итоге:
1010100011001000011110,00111010 - это данное число в двоичной СС