Помогите, пожалуйста

Всем доброго времени суток! Такая ситуация: битый час не могу допереть, где я ошибся. Нужно найти сумму точек на всех уровнях, количество которых (уровней) нужно ввести вручную, при том каждый следующий уровень больше предыдущего в два раза. Вот что у меня:

Program schet;
Var a, b : integer;
c: real;
Begin
  writeln ('Введите число строк:');
  read (b);
  for a := 1 to b do
  begin
   c := power(2,(b-1))+b; 
  end;
  write (c);

end.

Тут условие нюансы условия наглядно

Заранее благодарю!


Ответы (1 шт):

Автор решения: Мужчина из Орла

Вам надо завести переменную, которая будет считать кол-во точек в строке. И на каждом шаге цикла for увеличивать ее в 2 раза. И еще у вас переменная c имеет тип данных real, лучше сделать её integer, хоть в вашем случае это и не влияет на работу программы.

Program schet;
Var a, b, c, count: integer;
Begin
  writeln ('Введите число строк:');
  read (b);
  count := 1; // Кол-во точек в строке
  for a := 1 to b do
  begin
   c := c + count; // Сумма всех точек
   count := count * 2; // Увеличиваем кол-во точек в 2 раза
  end;
  write (c);
end.
→ Ссылка