Нужна помощь с программой Pascal! Сказали, что блок схема правильная. (В.3)

0 голосов
45 просмотров

Нужна помощь с программой Pascal! Сказали, что блок схема правильная. (В.3)


image
image

Информатика (21 баллов) | 45 просмотров
0

Начнем с того, что на экране полный бред и формула выглядит не правильно, её можно трактовать как угодно.

0

Но если считать что следующий член последовательности равен (1/2)n + 1, то получится вот что:

Дан 1 ответ
0 голосов

Формула указана не ясно в задании, я указал в ответе так как оно более менее смотрится понятно, но вам стоит уточнить. Что до алгоритма, то он выглядит вот таким вот образом. Внимание, первый член данного ряда считается за 0, вам стоит так же уточнить у преподавателя, в задании этого явно не указано, но зачастую такое значение традиционно.

Ошибки в вашем алгоритме:
1. У вас условие k < 0, это значит, что если будет введено k = 0, то алгоритм отработает, но 0 членов быть не может, это не имеет смысла.
2. Цикл у вас выводит значение n-го члена после каждой итерации, а не единожды.

Спасибо за отметку "Лучший ответ" и нажатую кнопочку "спасибо" (:


image
(1.4k баллов)
0

Разве эта блок схема не выведет одно число? Нужно вывести к члены, значит их будет несколько. И в начале у вас да и нет спутаны. К - количество, оно не может быть отрицательным

0

Я прошу прощения, они действительно спутаны, мой косяк.

0

Что до вывода каждого члена, на ваш выбор, если хотите выводить каждый, то вывод ставите после вычисления. В заднии формулировка "вычислите первые К её членов", на мою точку зрения выводить каждый из них совершенно не обязательно. Если вы выводите n-й член, значит уже были произведены вычисления предыдущих.

0

program laba;

label programBegin;{лейбл для команды goto}

var
n{значение нного члена}
: real;{оно имеет дробную часть, по этому real}

var
k,{член до которого считаем}
i{переменная для подсчёта итераций цикла}
: integer;{они не могут быть с дробной частью, по этому integer}

begin

k:=0;{инициализируем k}

programBegin:{точка к которой мы будем возращаться}

0

Write('Enter k: ');
Readln(k); {вводим k}

if 0 >= k then{проверяем, является ли k > 0}
begin
Write('Wrong number, it must be more than zero!');
goto programBegin;{если нет, возращаемся в начало программы}
end;

n:=0;{обнуляем n член}

for i:= 0 to k do{цикл от 0 до k}
begin
n:=n/2+1;{считаем n член по формуле}
end;

Write('N number is: ');
Write(n);{выводим конечный результат}

end.

0

Вот код программы на паскале, что бы она соответствовала схеме что я скинул

0

Если вы хотите модернезировать её так , что бы она выводила каждый посчитанный член, то стоит сделать:

0

а. В схеме внести блок вывода в цикл

0

б. Изменить код цикла и до конца программы на вот такой?

0

for i:= 0 to k do{цикл от 0 до k}
begin
n:=n/2+1;{считаем n член по формуле}
Write('Current ', i, ' number is: ', n);
Write(n);{выводим текущий результат}
end;

end.