3.17. У тебя должна совпадать одна из координат.
Код:
var
Cell1, Cell2 : TPoint;
begin
Result := (Cell1.x = Cell2.x) Or (Cell1.y = Cell2.y);
4.17. Тупой цикл, правда который можно оптимизировать.
Код:
var
I, P, S : Integer;
begin
S := 0;
P := 1;
For I := 1 To N Do
Begin
P := P * 2;
S := S + P;
End;
4.18. Тоже примитивно. Тебе нужно сделать функцию расчета суммы для одного случая, на вход сумма, процент и срок, далее считаем. Для N делается опять же циклом:
Код:
function ResSum(S, P : Currency; Len : Integer) : Currency;
var
I : Integer;
begin
Result := S;
For I := 1 To Len Do
Result := S + S*P/100;
end;
...
var
A : Array [1..10] Of Currency;
I : Integer;
begin
// Init
For I := 1 To 10 Do A[i] := Random(100000);
// Calc for 2% and 5 years
For I := 1 To 10 Do
Writeln('Start sum = ',A[i],'; End sum = ',ResSum(A[i],2,5));
...
Все, надоело. Дальше только подсказки.
7.16, 7.17 - Двумерный массив и вложенные циклы.
8.17 - функции Pos, Copy, Len плюс массив (или список) и его сортировка.
8.18 - функции Pos и Copy. Или работа со строкой как с массивом символов.