Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Readln(K);. while (i> 0) and (F(i) > K) do






while (i> 0) and (F(i) > K) do

i: =i-1;

Writeln(i)

End.

Решение (И. Тощенко):

1) Вычислим значения функции F при i=1, 2, 3…

i= 0: f (0) =2

i= 1: f (1) =7

i= 2: f (2) =16

i= 3: f (3) =29

i= 4: f (4) =46

2) Заданное значение К попадает в отрезок [29; 45].

3) Следовательно, всего 45-29+1=17 чисел.

4) ответ: 17.

Ещё пример задания:

Напишите в ответе число различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k = 64. Значение k = 64 также включается в подсчёт различных значений k.

var k, i: longint;

function f(n: longint): longint;

Begin

f: = n * n

End;

Begin

Readln(k);

i: = 12;

while (i> 0) and (f(i)> =k) do

i: = i-1;

Writeln(i)

End.

Решение:

1) заметим, что функция F(x) вычисляет квадрат переданного ей числа

2) в теле основной программы выполняется цикл с условием, который заканчивается, когда значение функции станет меньше k

3) на каждом шаге цикла уменьшается значение переменной i, начиная с 12; цикл также заканчивается, когда значение переменной i станет равно 0

4) после окончания цикла программа выводит значение переменной i.

5) итак, функция выводит первое натуральное значение i, квадрат которого меньше, чем введённое с клавиатуры значение переменной k

6) при k = 64 программа выведет значение 7, поскольку это наибольшее натуральное число, квадрат которого меньше, чем 64

7) фактически нужно ответить на вопрос: сколько есть таких чисел k, которые меньше или равны 82 = 64 и больше, чем 72 = 49 (легко проверить, что при k=65 программа выведет значение 8, в при k=49 – значение 6)

8) в диапазоне [50; 64] всего 64-50+1=15 чисел, это и есть правильный ответ.

9) ответ: 15.

Ещё пример задания:

Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 24:

var i, k: integer;

function F(x: integer): integer;

Begin

F: =x*x*x;

End;

Begin

i: = 12;

Readln(K);

while (i> 0) and (F(i) > K) do

i: =i-1;

Writeln(i);

End.

Решение:

1) заметим, что функция F(x) вычисляет куб переданного ей числа

2) перед началом цикла значение переменной i равно 12, в цикле оно уменьшается

3) цикл while останавливается, когда переменная i становится равна нулю или значение функции F(i) становится меньше или равно K

4) таким образом, в данной фактически требуется найти количество натуральных чисел в диапазоне [1..12], куб которых больше, чем K = 24

5) определим, у скольких чисел куб меньше, чем 24; это все числа, меньшие, чем , то есть, только числа 1 и 2; поэтому программа выведет 2 – первое число, куб которого меньше или равен 24

6) остаётся определить, когда программа выведет именно 2; это случится при всех K, при которых , то есть при ; в этот диапазон входит 27-8 = 19 чисел

7) Ответ: 19.

Ещё пример задания:

Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 24:

var i, k: integer;

function F(x: integer): integer;

Begin

if x = 1 then

F: =1

else F: =x*F(x-1);

End;

Begin

i: = 15;


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.009 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал