Лабораторная работа № 7. Циклы с пред- и постусловием Вариант 8 Pascal
Описание работы
Работа пользователя И. Нестеров
I. Дана программа, решающая определенную задачу.
Проделать следующую работу: исполнить алгоритм при 2-3 наборах данных. Запишите исходные данные, промежуточные данные и результат работы для каждого из выбранных наборов значений величин. Сформулировать условие задачи, которую решает данная программа.
Примечание. При формулировании условия задачи в качестве образцов формулировки взять те задачи, которые вы решаете. В частности, из условия однозначно должно быть понятно, что дано и что требуется получить.
Var n: integer; mi, ma: 0..9;
Begin
Write ('введите натуральное число: '); Readln (n);
mi:=9; ma:=0;
while n<>0 do
begin
if n mod 10 < mi then mi:= n mod 10;
if n mod 10 > ma then ma:= n mod 10;
n := n div 10
end;
writeln('Результат: ', mi+ma)
End.
II. Выполнить тренировочное задание ЕГЭ по информатике и ИКТ[1]
sum, d: integer;
begin
readln(N);
sum := 1;
while N > 0 do begin
d := N mod 10;
N := N div 10;
sum := d;
end;
writeln(sum);
end.
Последовательно выполните следующее.
2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.
Проделать следующую работу: исполнить алгоритм при 2-3 наборах данных. Запишите исходные данные, промежуточные данные и результат работы для каждого из выбранных наборов значений величин. Сформулировать условие задачи, которую решает данная программа.
Примечание. При формулировании условия задачи в качестве образцов формулировки взять те задачи, которые вы решаете. В частности, из условия однозначно должно быть понятно, что дано и что требуется получить.
Var n: integer; mi, ma: 0..9;
Begin
Write ('введите натуральное число: '); Readln (n);
mi:=9; ma:=0;
while n<>0 do
begin
if n mod 10 < mi then mi:= n mod 10;
if n mod 10 > ma then ma:= n mod 10;
n := n div 10
end;
writeln('Результат: ', mi+ma)
End.
II. Выполнить тренировочное задание ЕГЭ по информатике и ИКТ[1]
- Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится сумма цифр этого числа. Программист торопился и написал программу неправильно:
sum, d: integer;
begin
readln(N);
sum := 1;
while N > 0 do begin
d := N mod 10;
N := N div 10;
sum := d;
end;
writeln(sum);
end.
Последовательно выполните следующее.
- Напишите, что выведет эта программа при вводе числа 256.
- Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт правильный результат.
- Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.
[1] Автор подборки задач — Поляков Константин Юрьевич (Санкт-Петербург, сайт http://kpolyzkov.spb.ru)
III. Решить задачу с использованием цикла while
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
an=2^n*n!/n^n
IV . Решить задачу с использованием цикла repeat..until
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
an=2^n*n!/n^n
III. Решить задачу с использованием цикла while
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
an=2^n*n!/n^n
IV . Решить задачу с использованием цикла repeat..until
Дан числовой ряд и некоторое число e. Найти сумму тех членов ряда, модуль которых больше или равен заданному e. Общий член ряда имеет вид:
an=2^n*n!/n^n