Memo1.Lines.Add('x2='+Edit2.Text);
N:=StrTolnt(Edit3.Text);
Memo1.lines.Add('N='+Edit3.Text);
h:=StrToFloat(Edit4.Text);
Memo1.Lines.Add(' h='+Edit4.Text);
c:=-1;
x:=x1;
repeat
a:=1;
S:=1;
for k:=1 to N do
begin
a:=c*a*x/k;
s:=s+a;
end;
Memo1.lines.Add('при x=' +FloatToStrF(x,ffFixed,6,2)+ ' сумма = '+FloatToStrF(s,tfFtxed,6,2));
x:=x+h;
until x>x2;
end;
end.
После отладки программы составьте тест (N=2, Х1=0, Х2=1, h=3), установите курсор на первый оператор (N:= ), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую программу и проследите, как меняются все переменные в процессе выполнения.
Индивидуальные задания.
Ниже приведено 15 вариантов задач из трёх частей. По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. В соответствии с этим установите количество окон Edit, тексты заголовков на форме, размеры шрифтов, а также типы переменных и функции преобразования при вводе и выводе результатов. С помощью инспектора объектов измените цвет формы, шрифт выводимых символов.
Часть 1. Использование ООП для программирования линейных алгоритмов.
1. Найти сумму цифр заданного четырехзначного числа.
2. Определить число, полученное в оратном порядке цифр , заданного трехзначного числа.
3. Вывести на экран 1 или 0в зависимости от того, равна ли сумма двух первых цифр заданного четырехзначного числа сумме двух его последних цифр.
4. Вывести на экран 1или 0в зависимости от того, равен ли квадрат эго трехзначного числа кубу суммы цифр этого числа.
5. Вывести на экран 1или 0в зависимости от того, есть ли среди первых дробной части заданного положительного вещественного числа цифра.
6. Вывести на экран 1 или 0в зависимости от того, есть ли среди цифр трехзначного числа одинаковые.
7. Присвоить целой переменной k третью от конца цифру в записи положительного целого числа n.
8. Присвоить целой переменной k первую цифру из дробной части положительного вещественного числа.
9. Целой переменной S присвоить сумму цифр трехзначного целого числа k.
10. Идет k-я секунда суток. Определить, сколько полных часов (h) и полных минут (m) прошло к этому моменту.
11. Определить f - угол (в градусах) между положением часовой стрелки в начале суток и ее положением в h -часов, т - минут и s - секунд (0<=Н<=11, 0<=т,s< =59).
12. Определить h - полное количество часов и m - полное количество минут, прошедших от начала суток до того момента (в первой половине дня), когда часовая стрелка повернулась на f градусов(0<=f<360, f - вещественное число).
13. Пусть k - целое от 1 до 365. Присвоить целой переменной n значение 1,2,3,...,6 или 7 в зависимости от того, на какой день недели (понедельник, вторник, ..., суббота или воскресенье) приходится k-й день невысокосного года, в втором 1 января - понедельник.
14. Поменять местами значения целых переменных х и у, не используя дополнительные переменные.
15. Вывести на экран 1 или 0в зависимости от того, имеют три заданных числа одинаковую четность или нет.
Часть 2. Использование ООП для программирования ветвящихся алгоритмов.
1. Известно, что из четырех чисел а1,а2,а3 и а4 одно отлично от трex других, равных между собой. Присвоить номер этого числа переменной п.
2. По номеру n (n>0) некоторого года определить c - номер его столетия (учесть, что, к примеру, началом XX столетия был 1901, а не 1900 год!).
3. Значения переменных а, b и c поменять местами так, чтобы оказаль а<=b<=с.
4. Дано целое k от 1 до 180. Определить, какая цифра находится в k-й позиции последовательности 10111213...9899 , в которой выписаны подряд все двузначные числа.
5. Дано натуральное k. Определить k-ю цифру в последовательности 110100100010000100000..., в которой выписаны подряд степени 10.
6. В старояпонском календаре был принят 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: green(зеленый), red (красный), yellow (желтый), white(белый) и black (черный). Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 год – годзеленой крысы -был началом очередного цикла). Разработать программу, которая вводит номер некоторого года нашей эры и выводит его название по старояпонскому календарю.
7. Если сумма трех попарно различных действительных чисел х, у, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух в противном случае заменить меньшее из х и у полусуммой двул оставшихся значений,
8. Для целого числа k от 1 до 99 вывести фразу "мне k лет", учитывая при этом, что при некоторых значениях kслово "лет" надо заменить на слово "год" или "года".
9. Для натурального числа k вывести фразу "мы выпили k бутылок пива", согласно окончание слова "бутылка" с числом k.
10. Type курс=(С,В,Ю,3); {север, восток, юг, запад}
Приказ=(вперед, вправо, назад, влево);
Var К1, К2 :курс; ПР:приказ;
Корабль сначала шел по курсу К1, а затем его курс был изменен согласно прикаказу ПР1. Определить К2 - новый курс корабля.
11. Туре месяц = (январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноя6рь,декабрь);
день=1...31;
Var d1,d2:день;
m1,т2:месяц;
t:boolean;
Переменной tприсвоить значение 1 если дата d1, m1предшествует (в рамках года) дате d2, m2, и значение 0 в других случаях.
12. Туре нота=(до, ре, ми, фа, солmь, ля, си);
интервал=(секунда, терция, кварта, квинта, секста, септима);
var n1, n2 : нота;
i : интервал;
Определить i-й интервал, образованный нотами п1 и п2(п1<>п2): секунда - это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до), терция - интервал через ноту (например, фа и ля, си и ре) и т.д.
13. Туре единица=(дециметр, километр, метр, милиметр, санптиметр);
длина=real;
var х : длина;
Р : единица;
Значение переменной х, означающее некоторую длину в единицах р, заменить на величину этой же длины в метрах.
14. Туре сезон=(зима, весна, лето, осенъ);
Var m : месяц; {определение «месяц» см. в 26}
S : сезон;
Определить S-сезон, на который приходится месяц m.
15. Var k: 1...9;
Вывести значение переменной k римскими цифрами.
Часть 3. Использование ООП для программирования циклических алгоритмов.
1. Подсчитать k - количество цифр в десятичной записи целого - n неотрицательного числа n.
2. Переменной t присвоить значение 1 или 0 в зависимости от того, является ли натуральное число k степенью 3.
3. Дано n вещественных чисел. Вычислить разность между максимальным и минимальным из них.
4. Дана непустая последовательность различных натуральных чисел, за которойследует 0. Определить порядковый номер наименьшего из них.
5. Даны целое n>0 и последовательность из n вещественных чисел, среди которых есть хотя бы одно отрицательное число. Найти величину наибольшего среди отрицательных чисел этой последовательности.
6. Дано n вещественных чисел. Определить, образуют ли они возврастающую последовательность.
7. Дана последовательность из n целых чисел. Определить, со скольких отрицательных чисел она начинается.
8. Определить k - количество трехзначных натуральных чисел, сумма цифр которых равна n(1<=n<=27). Операции деления (/, div и mod) не использовать.
9. Вывести на экран в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр (операции деления не использовать).
10. Переменной t присвоить значение 1 или 0 в зависимости от того, можно или нет натуральное число n представить в виде трех полных квадратов.
11. Дано натуральное число n. Выяснить, входит ли цифра 3 в запись числа n{2}.
12. Дано натуральное число n. Найти сумму его цифр
13. Дано целое n>0, за которым следует n вещественных чисел. Определить, сколько среди них отрицательных.
14. Дано натуральное число n. Переставить местами первую и последнюю цифры числа n.
15. Дано натуральное число n. Заменить порядок следования цифр числа n на оборот.
Лабораторная работа 3.
ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ
Цель работы: приобретение навыков работы с визуальными компонентами.
Меню – один из распространенных элементов пользовательского интерфейса. Меню представляет собой список пунктов, объединенных по функциональному признаку, каждый из которых обозначает команду или вложенное меню (подменю).
Главное меню располагается в верхней части формы под ее заголовком и содержит наиболее общие команды приложения. В Delphi главное меню представлено компонентом MainMenu.
Для создания и изменения меню в процессе разработки приложения в среде Delphi предназначен Конструктор меню (MenuDesigner). Запуск Конструктора меню можно выполнить по команде MenuDesigner… контекстного меню компонента MainMenu, а также с помощью двойного щелчка кнопкой мыши на этот компонент. При конструировании меню имеет тот же вид, что и при выполнении приложения.
Наименование пункта меню задается путем присвоения нужного значения его свойству Caption. Кроме того, в Delphi у компонента MainMenu доступны такие свойства как Checked и Bitmap, определяющие соответственно:
· Checked = true/false – наличие/отсутствие отметки Ö у пункта меню (для отметки выбора);
· Bitmap = рисунок, определяющий наличие картинки перед названием пункта в меню.
Для закрепления процедуры за выбором некоторого пункта меню (событие OnClick), на этапе проектирования приложения следует выбрать этот пункт с помощью клавиатуры или мыши.
Задание. Используя компонент MainMenu создать приложение, которое при выборе определенного пункта меню обеспечивает:
- вывод на экран сообщения «Привет!»;
- ввод пользователем некоторого числа (аргумента);
- вычисление cos, sin, tg, ctg, введенного аргумента;
- вывод формул для вычисления arccos(x), arcsin(x), actg(x),arcctg(x);
- выход из программы.
Реализация.
Создали новую форму и расположили на ней компоненты: MainMenu, Bevel, Label, Edit, Image, согласно рисунку 1.