задачи 24


Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство . Для решения этой задачи ученик написал такую программу:
var a, s: real;
k: integer;
begin read(a);
k := 1;
s := 1;
while s<=a do begin
k := k + 1;
s := 1.0/k;
end;
write(k);
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 0.4.
2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 2?
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 3. Если в числе нет цифр, кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Напоминание: 0 делится на любое натуральное число.
var N,digit,maxDigit: longint;
beginreadln(N);
maxDigit := N mod 10;
while N > 0 do begin
digit := N mod 10;
if digit mod 3 = 0 then
if digit > maxDigit then
maxDigit := digit;
N := N div 10;
end;
if maxDigit = 0 then
writeln('NO')
else writeln(maxDigit)
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 134.
2. Приведите пример такого трёхзначного числа, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр этого числа, меньших 7. Если в числе нет цифр, меньших 7, требуется на экран вывести 0. Программист написал программу неправильно.
var N, digit, sum: longint;
begin readln(N);
sum := 0;
while N > 0 do begin
digit := N mod 10;
if digit < 7 then
sum := sum + 1;
N := N div 10;
end;
writeln(digit)
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 456.
2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько).
Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:
1 + 2 + ... + K > N.Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var n, k: integer;
begin read(n);
k := 1;
while n > 0 do begin
n := n - k;
k := k + 1;
end;
writeln(k)
end.
Последовательно выполните следующее.
1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.
2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Дано целое положительное число N. Необходимо определить наименьшее целое число K, для которого выполняется неравенство:
1 + 2 + ... + K ≥ N.Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var n, k: integer;
begin read(n);
k := 1;
while n >= 0 do begin
k := k + 1;
n := n - k;
end;
writeln(k)
end.
Последовательно выполните следующее.
1. Приведите пример числа N, при вводе которого программа выведет неверный ответ. Укажите верный ответ и ответ, который выведет программа.
2. Приведите пример числа N, при вводе которого программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K3 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var m, n, k, t: integer;
begin read(m, n);
k := 1;
t := 1;
while k*k*k <= n do begin
if k*k*k > m then t := t + 1;
k := k + 1;
end;
writeln(t)
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе M = 10 и N = 100.
2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Даны целые положительные числа M и N. Необходимо определить количество таких целых чисел K, для которых выполняется неравенство M ≤ K2 ≤ N. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
var m, n, k, t: integer;
begin read(m, n);
k := 1;
t := 1;
while k*k < n do begin
if k*k >= m then t := t + 1;
k := k + 1;
end;
writeln(t)
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе M = 10 и N = 40.
2. Приведите пример таких чисел M и N, при вводе которых программа выведет верный ответ. Укажите этот ответ.
3. Найдите в программе все ошибки (их может быть одна или несколько).
Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 5. То есть требуется определить, существует ли такое целое число К, что 5K =N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.
var n, k: integer;
begin read(n);
k := 0;
while k mod 5 = 0 do begin
k := k + 1;
n := n div 5;
end;
if k = 1 then
writeln(k)
else writeln('He существует')
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 25.
2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Приложенные файлы

  • docx 23836984
    Размер файла: 20 kB Загрузок: 0

Добавить комментарий