- •Основные этапы проектирования программ
- •Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы
- •Выражения и операторы действия
- •Ввод и вывод данных
- •Лабораторная работа №1 Тема: Числовые типы данных. Стандартные функции. Задачи линейной структуры Задание 1
- •Задание 2
- •Указание к выполнению: перед составлением программы необходимо выполнить следующие этапы:
- •Образец выполнения задания
- •Writeln(‘значение искомого выражения равно’, y:8:4); {вывод результата на экран}
- •Образец выполнения задания
- •Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Логический тип
- •Условный оператор
- •Оператор выбора
- •Лабораторная работа №2 Тема: Логические выражения. Логический тип. Условный оператор. Оператор выбора. Программирование разветвляющихся алгоритмов
- •Задание 2
- •Образец выполнения задания
- •Текст программы
- •Тема: Циклические структуры. Программирование циклических алгоритмов. Циклы
- •Простой арифметический цикл (цикл с параметром)
- •Арифметический цикл с произвольным шагом
- •Итерационные циклы
- •Оператор цикла с постусловием
- •Оператор цикла с предусловием
- •Лабораторная работа №3 Тема: Циклические структуры. Программирование циклических алгоритмов. Задание 1
- •Текст программы
- •Приложение: работа в среде программирования Паскаль
- •Работа с окнами
- •Редактирование текста программы
- •Пошаговое выполнение программы
- •Как посмотреть результат выполнения программы?
- •Литература
- •Содержание
Текст программы
Program zadacha3_2;
Var
E,s: real;
N: word;
Begin
Writeln (‘введите Е’);
Readln (E);
S:=0; N:=1;
While 1/n>E do
Begin {так как в цикле должны выполняться два оператора, то их нужно заключить в операторные скобки}
S:=S+1/n;
N:=n+1;
End; {конец тела цикла}
Writeln(‘искомая сумма S=’, S)
End.
Дальнейшие действия: настало время научиться трассировать программу, т.е. выполнять ее в пошаговом режиме и следить за изменением значений переменных (читай Приложение, стр.50).
Откомпилировать программу, исправить ошибки, допущенные при наборе;
Провести пошаговое выполнение программы для тестовых значений входных данных с отслеживанием значений переменных. В нашей задаче будем следить за изменением значений переменных N, S и выражением 1/N>E. Для этого откроем окно Watches по команде Watch меню Debug. Нажмем сочетание клавиш <Ctrl>+<F7> и в диалоговом окне напишем имя переменной N. Повторно нажмем <Ctrl>+<F7> и запишем имя переменной S. Еще раз нажмем <Ctrl>+<F7> и введем выражение 1/N>E. Запустим программу для пошагового выполнения, нажав <F8> (<F7>). В окне Watches будем наблюдать, как меняются значения переменных и выражения, одновременно в верхней части экрана будет подсвечиваться очередная команда. Результаты трассировки программы следует записать в тетрадь. После проверки и отладки окно Watches можно закрыть, нажав <Alt>+<F3>.
Запустить программу на выполнение в обычном режиме, задать произвольные допустимые значения входных данных. Записать результат.
Вариант 1
Найти наименьший номер последовательности, для которого выполняется условие |an - an-1|<. Вывести на экран этот номер и все элементы ai, где i=1, 2, 3, ...,n, если =10-3. an= arctg an-1+1, a1=0.
Вариант 2
Найти
наименьший номер последовательности,
для которого выполняется условие |an
- an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
,
a1=2.
Вариант 3
Найти
наименьший номер последовательности,
для которого выполняется условие |an
- an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
,
a1=0.5.
Вариант 4
Найти
наименьший номер последовательности,
для которого выполняется условие |an
- an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
,
а1=0.5.
Вариант 5
Найти
наименьший номер последовательности,
для которого выполняется условие М.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n.
Вариант 6
Дан
числовой ряд и малая величина .
Найти сумму ряда с точностью ,
общий член которого задан формулой:
.
Вариант 7
Найти
наименьший номер последовательности,
для которого выполняется условие |an
- an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
Вариант 8
Дан
числовой ряд и малая величина .
Найти сумму ряда с точностью ,
общий член которого задан формулой:
.
Вариант 9
Найти
наименьший номер последовательности,
для которого выполняется условие М.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n.
,
М: |аn|<.
Вариант 10
Найти
наименьший номер последовательности,
для которого выполняется условие |an
- an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
Вариант 11
Найти
наименьший номер последовательности,
для которого выполняется условие |an
- an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
.
Вариант 12
Найти
наименьший номер последовательности,
для которого выполняется условие
|an-an-1|<.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n,
если =10-3.
.
Вариант 13
Найти
наименьший номер последовательности,
для которого выполняется условие М.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3, ...,n.
Вариант 14
Дан
числовой ряд и малая величина .
Найти сумму ряда с точностью ,
общий член которого задан формулой:
.
Вариант 15
Найти
наименьший номер последовательности,
для которого выполняется условие М.
Вывести на экран этот номер и все
элементы ai,
где i=1,
2, 3,...n.
Задание 3
Задание: составить программу вычисления функции F(x) на отрезке [a, b] с шагом h. Результат представить в виде таблицы, первый столбец которой – значения аргумента, второй – соответствующие значения функции.
Указания к выполнению: см. предыдущую лабораторную работу.
Образец выполнения задания
Задача: вычислить значения функции F(x)=x + sinx на отрезке [a, b] с шагом h. Результат вывести в виде таблицы.
Для решения данной задачи мне потребуются следующие переменные: переменная a для задания начала отрезка, эта переменная может принимать любые вещественные значения, т.к. функция определена на всей числовой оси, поэтому тип этой переменной real; переменная b для задания конца отрезка, тип переменной real; переменная h для задания шага приращения аргумента, тип переменной real; переменные x, f для вычисления значения аргумента и соответствующего значения функции, тип переменных real; переменная n для вычисления количества точек на отрезке, может принимать натуральные значения, поэтому тип ее определим как byte; переменная i для организации цикла, эта переменная будет обозначать номер очередной точки, тип этой переменной определим как byte.
Входными данными в этой задаче являются концы отрезка и шаг приращения, т.е. переменные a, b, h, поэтому их значения нужно ввести до начала вычислений. Ввод буду осуществлять с клавиатуры.
В результате выполнения программы на экране должна быть выведена таблица значений аргумента, начиная с точки a, и соответствующих значений функции. В данной задаче целесообразно задать формат вывода значений переменных x, f, чтобы таблица выглядела красиво. Пусть общая длина переменной x будет 6 позиций, число знаков после запятой – 3, а для переменной f общая длина будет 8 позиций, число знаков после запятой – 4. В этом случае процедура вывода на экран запишется writeln(x: 6: 3, f: 8: 4).
Ход решения задачи:
ввод значений a, b, h
вычислим количество точек на отрезке, в которых нужно посчитать значение функции, по формуле
т.к. нумерация точек на отрезке начинается с 0, то организуем цикл с параметром i, в котором будем последовательно изменять его значения от 0 до n и для каждого значения i выполнять следующие действия: а) вычисляем значение аргумента x=a+i*h; б) вычисляем значение функции в точке x по формуле f= x + sin(x); в) печатаем значения x и f (действия а), б), в) образуют тело цикла, при написании программы их нужно заключить в операторные скобки begin end).
Зададим тестовые значения. Пусть a=0, b=1, h=0.2. В результате выполнения программы на экране должна быть выведена таблица следующего вида:
-
0.0
0.0
0.2
0.2035
0.4
0.4070
0.6
0.6105
0.8
0.8140
1.0
1.0175
Текст программы: напишите самостоятельно.
Дальнейшие действия: см. предыдущую лабораторную работу.
Вариант 1
Вариант 2
Вариант 3
Вариант 4
Вариант 5
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Вариант 11
Вариант 12
Вариант 13
Вариант 14
Вариант 15
Задание 4
Задание: составить программу решения задачи.
Указания к выполнению: самостоятельно выполнить все требования к лабораторной работе.
Вариант 1
Натуральное число называется совершенным, если оно равно сумме всех своих делителей, включая единицу, но исключая себя. Напечатать все совершенные числа, меньшие заданного числа N.
Вариант 2
Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую свою цифру.
Вариант 3
Последовательность Хэмминга образуют натуральные числа, не имеющие других простых делителей, кроме 2, 3, 5. Найти первые N элементов этой последовательности.
Вариант 4
Найти натуральное число в диапазоне от 1 до n с максимальной суммой делителей.
Вариант 5
Дано целое число n>2. Напечатать все простые числа из диапазона от 2 до n.
Вариант 6
Разложить целое число N на простые множители.
Вариант 7
Найти сумму цифр заданного натурального числа.
Вариант 8
Найти все натуральные числа, не превосходящие заданного N, представимые в виде суммы квадратов двух натуральных чисел.
Вариант 9
Напечатать все различные разбиения числа N на три натуральных слагаемых.
Вариант 10
Найти наименьшее натуральное число, которое можно представить суммой трех квадратов натуральных чисел не единственным образом.
Вариант 11
Напечатать все простые несократимые дроби, заключенные между 0 и 1, знаменатели которых не превышают 7, в порядке возрастания.
Вариант 12
Последовательность Хэмминга образуют натуральные числа, не имеющие других простых делителей, кроме 2, 3, 5. Найти N-ый элемент последовательности.
Вариант 13
Найти N первых простых чисел.
Вариант 14
Напечатать все простые делители заданного натурального числа.
Вариант 15
Найти сумму первой и последней цифры в записи натурального числа.
