Циклы с заданным числом повторений - Дано целое число N (> 2) и две вещественные точки на числовой оси: A, B (A < B). Функция F(X) задана формулой F(X) = 1 – sin(X). Вывести значения функции F в N равноотстоящих точках, образующих разбиение отрезка [A, B]
Описание
Цель работы: Научится организовывать циклы с заданным числом повторений.
/ задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023
Условия для программы, под которые она выполнена:
20. Дано целое число N (> 2) и две вещественные точки на числовой оси: A, B (A < B). Функция F(X) задана формулой F(X) = 1 – sin(X). Вывести значения функции F в N равноотстоящих точках, образующих разбиение отрезка [A, B]: F(A), F(A + H), F(A + 2H), ..., F(B).

Программа в сделанном ввиде:




Показать/скрыть дополнительное описание
Лабораторная работа №5. Вариант 20. ЛР Циклы с заданным числом повторений Цель работы: Научится организовывать циклы с заданным числом повторений. / задача из РК программа в Pascal Lazarus. В архиве также файл с объяснениями работы программы. Тэги: Программа на Lazarus, PascalObject, Pascal, Delphi, Turbo Delphi, Pascal ABC / Анимация, ЛР, РК, ДЗ, 2023 Условия для программы, под которые она выполнена: 20. Дано целое число N (> 2) и две вещественные точки на числовой оси: A, B (A < B). Функция F(X) задана формулой F(X) = 1 – sin(X). Вывести значения функции F в N равноотстоящих точках, образующих разбиение отрезка [A, B]: F(A), F(A + H), F(A + 2H), ..., F(B).
Программа в сделанном ввиде: Лабораторная работа № 5. Циклы с заданным числом повторений Цельработы:Научитсяорганизовыватьциклысзаданнымчислом повторений. Теоритическая часть: Оператор цикла с параметром. Иногда заранее точно известно, сколько раз должно быть выполнено определенное действие. Для задач такого типа в языке Паскаль, имеется оператор цикла с параметром. Этот оператор имеет вид: for переменная:= выражение 1 to выражение 2 do оператор; или for переменная:= выражение 1 to выражение 2 do begin оператор 1; оператор 2; … оператор n; end; где for, to, do – служебные слова; переменная- переменная целого типа, называемая индексом или параметром цикла. Выражение 1, выражение 2 – арифметические выражения целого типа, т.е.
значения выражений должны быть целыми; оператор – простой или составной оператор. Для того чтобы оператор цикла выполнялся хотя бы один раз, значение выражения 1 должно быть меньше или равно значению выражения 2 (на практике значения выражения 1 всегда меньше значения выражения 2). Оператор работает следующим образом: вначале переменной (параметру цикла) присваивается значение выражения 1, затем сравнивается значение параметра цикла и значение выражения 2. Если параметр цикла меньше значения выражения 2, то выполняется оператор после слова do. Затем параметр цикла увеличивается на 1, после этого вновь сравнивается значение параметра цикла и выражение 2, если параметр цикла меньше, то вновь выполняется оператор после слова do.
И так продолжается до тех пор, пока параметр цикла не станет больше выражения 2. Как только это происходит, оператор цикла заканчивается. Второй вариант оператора цикла с параметром Оператор цикла с параметром может быть записан и в таком виде: for переменная:= выражение 1 downto выражение 2 do оператор; или for переменная:= выражение 1 downto выражение 2 do begin оператор 1; оператор 2; … оператор n; end; В этом варианте параметр цикла (переменная) после каждого повторения не увеличивается, а уменьшается на 1. Значение выражения 1 больше или равно (на практике всегда больше) значения выражения 2. Оператор цикла заканчивается, как только параметр цикла станет меньше выражения 2.
Пример 1. Создать программу, вычисляющую факториал числа N, используя цикл For. Создайтепроект.Встрокезаголовкаформызапишитеназвание «Факториал». Вид формы представлен на рисунке 1: Рис.1 Окно формы Поместите на форму компоненты соответственно рисунку. В свойстве Caption объектов Label1 и Label2 запишите соответственно «Введи число N», «Результат», а для объектов Button1, Button2, Button3 – «Вычислить N!», «Выход», «Новое». Процедура щелчка по кнопке «Вычислить N!» будет иметь вид: procedure TForm1.Button1Click(Sender: TObject); var R, I, N:integer; begin N:=StrToInt(Edit1.Text) ; if N<=0 then R := 0 else begin {условный оператор, который проверяет корректность значения параметра} R:=1; for i:=1 to N do R := R*i; Form1.Edit2.Text:=IntToStr(R); end; Кнопку «Выход» запрограммируем с помощью компонента TBitBtn, задав свойство King = bkClose.
Чтобыиспользоватьнашупрограммуещёраз,нужноочистить содержимое полей Edit1 и Edit2. Для этого после двойного щелчка по кнопке «Новое» впишем следующую процедуру: procedure TForm1.Button3Click(Sender: TObject); begin Edit1.Text:=\'\'; Edit2.Text:=\'\'; end; Запустите программу, и протестируйте данный проект. Пример 2. Создать программу, осуществляющую ввод произвольного целого числа N и вычисление суммы всех целых чисел от 1 до N [9, 52]. Создаём новое приложение (File→ New→ Application). В свойстве Caption для формы записываем «Сумма». Помещаем на форму компоненты: Label, Edit, Memo вкладки Standard, BitBth со вкладки Additional. Очистите свойство Memo1.Lines.
Рис.2 Окно формы «Сумма» Вид формы представлен на рисунке 2: Посмотрим,какдолжнавыглядетьпроцедуращелчкапокнопке «Вычислить сумму от 1 до N»: procedure TForm1.BitBtn1Click(Sender: TObject); var i,N,Sum:integer; st:string; begin try // Преобразуем ввод с контролем правильности N:=StrToInt(Edit1.Text);{ПеременнойNприсвоить содержимое текстового поля, переведя его в целое число} except {Следующие операторы выполняются, если есть ошибка} ShowMessage(\'ОШИБКА ВВОДА ЦЕЛОГО ЧИСЛА\');{Показываем сообщение} Edit1.SelectAll;//Выделение неверного текста exit //Завершение работы обработчика end; Edit1.Text:=\'\';//Очищаем поле ввода Edit1.SetFocus;//и возвращаем ему фокус ввода Sum:=0;//Начальное значение суммы for i:=1 to N do //Цикл формирования суммы Sum:=Sum+i; st:=\'СУММАВСЕХЦЕЛЫХЧИСЕЛ\'+\'ВДИАПАЗОНЕ 1..\'+IntToStr(N)+\'РАВНА\'+IntToStr(Sum); Memo1.Lines.Add(st);//Сообщаем в Memo1 о вводе суммы end; С помощью служебных (зарезервированных) слов try (попробовать, попытка), except (исключение, кроме), end реализуется защищенный блок.
Пример 3. Создадим игру «Угадай число»: программа случайным образом выбирает целое число 0…9999 и запоминает его; пользователь пытается угадать его, вводя своё число. Причём программа сообщает: больше, меньше или равно введённое число запомненному. В заключении выводится количество шагов угадывания (использовать метку). Создадим форму. Вид формы представлен на рисунке 3: Создадим строку ввода с пояснением условия игры на загрузку формы. Для этого нужно дважды щёлкнуть по форме и вписать процедуру, осуществляющую ввод числа в текстовое поле программы: Рис.3 Окно формы «Угадай procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:=InputBox(\'ВВОД ЧИСЛА\',\'ЗАГАДАНО ЧИСЛО\',\'УГАДАЙ ЕГО!\'); end; Для проверки числа активизируем кнопку «Результат»: procedure TForm1.Button1Click(Sender: TObject); var a,i,b:integer; begin randomize; a:=random(8999)+1000; {Загадать число} i:=1;{Начальное число шагов угадывания} b:=StrToInt(Edit1.Text); while a<>b do {Повторять, пока число не угадано} begin if a>b then begin Label2.Visible:=True; Label2.Caption:=\'ВАШЕ ЧИСЛО МЕНЬШЕ ЗАГАДАННОГО\'; end else begin Label2.Visible:=True; Label2.Caption:=\'ВАШЕ ЧИСЛО БОЛЬШЕ ЗАГАДАННОГО\'; end; Form1.Show;{Показать форму} Edit1.Text:=InputBox(\'ВВОД ЧИСЛА\',\'ПОПРОБУЙ УГАДАТЬ!\',\'ВВОДИ СЮДА!\');//Вводим новое число i:=i+1; //Посчитать количество вводов числа b:=StrToInt(Edit1.Text); end; Label2.Visible:=True; Label2.Caption:=\'ВЫУГАДАЛИ!!!\';//Выводконечного результата Label4.Visible:=True; Label4.Caption:=IntToStr(i) end; Рис.4 Результат выполнения программы «Угадай число» В результате выполнения программы на экране появится ещё одно окно (смотри рисунок 4): Задания для самостоятельного решения 1.Даны два целых числа A и B (A < B).
Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их возрастания, а также количество N этих чисел. 2.Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (не включая сами эти числа), в порядке их убывания, а также количество N этих чисел. 3.Дано вещественное число A и целое число N (> 0). Вывести A в степени N: AN = A·A·...·A (числа A перемножаются N раз). 4.Дано вещественное число A и целое число N (> 0). Вывести все целые степени числа A от 1 до N. 5.Дано вещественное число A и целое число N (> 0). Вывести 1 + A + A2 + A3 + ... + AN. 6.Дано вещественное число A и целое число N (> 0).
Вывести 1 – A + A2 – A3 + ... + (–1)NAN. 7.Дано целое число N (> 1). Вывести наименьшее целое K, при котором выполняется неравенство 3K > N, и само значение 3K. 8.Дано целое число N (> 1). Вывести наибольшее целое K, при котором выполняется неравенство 3K < N, и само значение 3K. 9.Дано вещественное число A (> 1). Вывести наименьшее из целых чисел N, для которых сумма 1 + 1/2 + ... + 1/N будет больше A, и саму эту сумму. 10.Дано вещественное число A (> 1). Вывести наибольшее из целых чисел N, для которых сумма 1 + 1/2 + ... + 1/N будет меньше A, и саму эту сумму. 11.Дано целое число N (> 0). Вывести произведение 1·2·...·N. Чтобы избежать целочисленного переполнения, вычислять это произведение с помощью вещественной переменной и выводить его как вещественное число.
12.Дано целое число N (> 0). Если N — нечетное, то вывести произведение 1·3·...·N; если N — четное, то вывести произведение 2·4·...·N. Чтобы избежать целочисленного переполнения, вычислять это значение с помощью вещественной переменной и выводить его как вещественное число. 13.Дано целое число N (> 0). Вывести сумму 2 + 1/(2!) + 1/(3!) + ... + 1/(N!) (выражение N! — \"N факториал\" — обозначает произведение всех целых чисел от 1 до N: N! = 1·2·...·N). Полученное число является приближенным значением константы e = exp(1) (= 2.71828183...). 14.Дано вещественное число X и целое число N (> 0). Вывести 1 + X + X2/2! + ... + XN/N! (N! = 1·2·...·N). Полученное число является приближенным значением функции exp в точке X.
15.Дано вещественное число X и целое число N (> 0). Вывести X – X3/3! + X5/5! – ... + (–1)NX2N+1/(2N+1)! (N! = 1·2·...·N). Полученное число является приближенным значением функции sin в точке X. 16.Дано вещественное число X и целое число N (> 0). Вывести 1 – X2/2! + X4/4! – ... + (–1)NX2N/(2N)! (N! = 1·2·...·N). Полученное число является приближенным значением функции cos в точке X. 17.Дано вещественное число X (|X| < 1) и целое число N (> 0). Вывести X –X2/2 + X3/3 – ... + (–1)N....
Файлы условия, демо
Характеристики лабораторной работы
Список файлов
