Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум ОА и П.doc
Скачиваний:
23
Добавлен:
29.08.2019
Размер:
13.34 Mб
Скачать

Задачи для самостоятельного решения.

  1. Из чисел от 10 до 99 вывести те, сумма цифр которых равна заданному числу n (0 < n < 18).

  2. Найти все двузначные числа, которые делятся на заданное число n.

  3. , где a, b и n – заданные числа.

  4. , где a, p, k и n – заданные числа.

  5. Составить программу вычисления суммы кубов всех чисел от 25 до 125.

  6. Квадраты некоторых трехзначных чисел оканчивается тремя цифрами, которые как раз и составляют исходные числа. Написать программу поиска таких чисел.

  7. Написать программу поиска двузначных чисел, обладающих следующим свойством: если к сумме цифр числа прибавить квадрат этой суммы, то получится снова данное число.

  8. Найти сумму целых положительных чисел, больших 20, меньших 100, кратных 3 и заканчивающихся на 2, 4 и 8.

  9. Дано натуральное число n. Получить все его натуральные делители.

  10. Даны натуральные числа m, n. Получить все кратные им числа, меньшие m*n.

  11. В трехзначном числе зачеркнули первую цифру слева. Когда полученное двузначное число умножили на 7, то получили исходное число. Найти все числа, обладающие этим свойством.

  12. Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найти все такие числа.

  13. Составить программу, которая возводит заданное натуральное число в квадрат с использованием только операции сложения. Для решения воспользуйтесь следующей закономерностью:

10 = 1

22 = 1 + 3

32 = 1 + 3 + 5

42 = 1 + 3 + 5 + 7

………….

N2 = 1 + 3 + 5 + 7 + 9 + … + 2n-1

  1. Найти сумму целых положительных чисел кратных 4, принадлежащих промежутку от А до В, где А и В – заданные целые числа.

  2. Написать программу поиска всех четырехзначных чисел, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111.

Лабораторная работа №4. Тема: «Разработка, отладка и испытание простых циклических алгоритмов и программ с неизвестным числом повторений».

Цель работы: получение навыков составления программ на языке Pascal с использованием цикла WHILE.

Краткие теоретические сведения

Оператор цикла WHILE позволяет организовать цикл, в котором число повторений вычислений зависит от записанного условия.

Общий вид оператора:

While b do

<оператор тела цикла>;

где b – логическое выражение.

Если логическое выражение имеет значение TRUE, то выполняется оператор тела цикла. Как только логическое выражение принимает значение FALSE, оператор тела цикла не выполняется.

Вопросы для самоподготовки:

  1. Структура циклического алгоритма с предусловием.

  2. Оператор цикла WHILE.

  3. Работа оператора цикла с предусловием.

  4. Правила организации цикла WHILE.

Задание 1

Составите таблицу значений функции z = e-x на промежутке от хнач. до хкон. с шагом х. Результаты оформите в виде таблицы. Значение x и z печатать в таблице с тремя знаками в дробной части.

Решение:

  1. В данной задаче в качестве параметра цикла будет использоваться переменная х, значения которой будут меняться в заданных пределах. Исходные данные для расчета: хнач., хкон., х. Результаты: - значение функции z.

Чтобы рассчитать ширину таблицы, условимся, что значения x и z в ней будут выдаваться по формату 10:3. Тогда ширина таблицы с учетом вертикальных ограничителей (и двух пробелов: один перед числом, а другой после), будет равна 27 символов. Горизонтальные линии таблицы будем формировать с помощью цикла.

  1. Составим графическую схему алгоритма.

Нет

Да

х=хнач.

Z=e-x

x=х+ х

  1. Составим таблицу соответствия переменных.

В исходной задаче

х

xнач.

xкон.

х

z

В программе

X

XN

XK

DX

Z

I

Тип

real

real

real

real

real

int

  1. В соответствии с пунктом 2 и 3 составим программу.

Program tabl;

{табуляция функции}

var

X, XN, XK, DX, Z:real;

i: integer;

begin

writeln (‘Введите хнач., хкон., шаг ‘);

readln (XN, XK, DX);

{Вывод заголовка таблицы}

writeln (lst, ‘ ‘:10, функция z=EXP (-X)’);

for i:=1 to 27 do

write (lst, ‘ ‘);

writeln (lst, ‘| X | Z |’);

for i:=1 to 27 do

write (lst, ‘ – ‘);

writeln (lst);

{Рабочая часть программы}

X:=XN;

Writeln X<=XK do

Begin

Z:=EXP(-X);

Writeln (lst, ‘| ‘, X:10:3, ‘ | ‘, Z:10:3, ‘ | ‘);

X:=X+DX

End;

{Вывод низа таблицы}

for i:=1 to 27 do write (lst, ‘ – ‘);

writeln (lst);

end.