Для выполнения указанных ниже заданий можно использовать один не вложенный оператор if, (причем в выражении для условия участвуют только обычные переменные или константы, не участвуют логические свойства компонент) и обработку только одного события – OnClick для Button ( BitBtn )
- Написать программу, которая запрашивает пользователя, в каком году начался 21 век. В случае неправильного ответа программа должна выводить на форму правильный ответ.
Вид формы может быть примерно таким:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image012.jpg)
Можно использовать «фигурную кнопку» - компонент BitBtn (она находится на вкладке Additional), ее свойство kind можно установить в bkOK.
Для вывода ответа можно использовать компонент Panel (свойство Caption)
- Написать программу, которая определяет, было ли введено отрицательное вещественное число и ответ помещает на форму. Вид формы может быть примерно таким же, как и в задании 1.
- Написать программу, которая выводит пример на сложение, вычитание или умножение с целыми числами (пример придумайте сами), запрашивает ответ пользователя и сообщает, правильный ответ или нет. Если ответ неправильный, программа должна сообщить правильный ответ. Сконструируйте подходящую для проекта форму.
- Написать программу, которая выводит пример на сложение случайных чисел (используйте генератор случайных чисел), запрашивает ответ пользователя и сообщает, правильный ответ или нет. Если ответ неправильный, программа должна сообщить правильный ответ. Вид формы может быть примерно таким:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image015.jpg)
Для написания такой программы вам могут понадобиться глобальные переменные – переменные, которые действуют для всего файла и описываются не в процедуре, а вне ее.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
Panel1: TPanel;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a, b: integer; //слагаемые, получаемые с помощью генератора случайных чисел
implementation
{$R *.dfm}
…
Опишите глобальные переменные a и b здесь. Это описание выделено красным цветом. Остальные описания, выделенные синим цветом, делает сама Delphi.
Далее требуется сконструировать сам пример, используя генератор случайных чисел. Пример можно будет сконструировать в процедуре обработки события OnCreate для Form, так как нам требуется, чтобы пример сочинился в самом начале перед запуском приложения.
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize; // инициируем генератор случайных чисел с помощью стандартной
// функции Randomize
a:=Random(100); // генерируем первое случайное слагаемое, его величина – до 100
b:=Random(100); // генерируем второе случайное слагаемое, его величина – до 100
Label1.Caption:= // здесь выведите пример на форму (в компонент Label1)
end;
Теперь пример уже есть и требуется написать процедуру обработки события OnClick для компонента BitBtn (или Button), где будет анализироваться введенный пользователем ответ.
- Написать программу, которая проверяет знания пользователя по географии. Программа должна проверить введенный пользователем вариант ответа. Вид формы может быть примерно такой:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image018.jpg)
- Написать программу, которая подсчитывает общее сопротивление цепи, состоящей из двух резисторов, соединенных последовательно или параллельно. Входные данные: значения сопротивлений, тип соединения. Примерный вид формы указан на рисунке.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image020.jpg)
После ввода входных данных и нажатия кнопки «ОК» форма может выглядеть примерно так:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image022.jpg)
- Написать программу, которая находит частное и остаток от деления двух целых чисел с проверкой на равенство делителя 0. Если делитель равен 0, выдается сообщение об ошибке. Форма может выглядеть приметно так:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image024.jpg)
- Написать программу, которая проверяет, является ли введенный год високосным. Форму для проекта придумать самим.
- Написать программу, которая проверяет, является ли введенное целое число нечетным. Форму для проекта придумать самим.
- Написать программу, которая проверяет, делятся ли друг на друга нацело 2 введенных целых числа. Форму для проекта придумать самим.
Для выполнения указанных ниже заданий можно использовать несколько не вложенных операторов if со сложными условиями, либо вложенные операторы if и обработку только одного события – OnClick для Button ( BitBtn ). В выражении для условия участвуют только обычные переменные или константы, не участвуют логические свойства компонент.
- Написать программу, находящую максимальное значение из трех. Примерный вид формы указан на рисунке:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image026.jpg)
- Написать программу, находящую минимальное значение из трех. Примерный вид формы можно взять из задачи 11.
- Написать программу, проверяющую, образуют ли три введенных вещественных числа строго убывающую последовательность. * В зависимости от результата проверки ответ должен выводиться разными цветами. Примерный вид формы:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image028.jpg)
- Написать программу, проверяющую, образуют ли четыре введенных целых числа не убывающую последовательность (каждое последующее число должно быть больше или равно предыдущему). * В зависимости от результата проверки ответ должен выводиться разными цветами. Примерный вид формы такой же как и в предыдущей задаче.
- Написать программу, определяющую, к какому промежутку относится введенное число: I – меньше (-3); II – от (-3) до 0; III – от 0 до 10.5; IV – больше 10.5 Примерный вид формы указан на рисунке.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image030.jpg)
- Написать программу по условию задачи 15, но границы промежутков программа должна брать из Edit. Предполагается, что границы промежутков введены в возрастающей последовательности. Ответ выводить «цветом промежутка».
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image032.jpg)
- Написать программу по условию задачи 16, но программа должна проверять, образуют ли введенные границы промежутков возрастающую последовательность. Если не образуют – выдается сообщение об ошибке.
- Написать программу, определяющую общую стоимость покупки. Входные данные – цена за 1 шт. (вещественная), кол-во штук (целое). Если стоимость покупки >=1000 руб., предоставляется скидка 10%, если стоимость покупки >=1500 руб., предоставляется скидка 20%. Результат выводится разными цветами в зависимости от наличия скидки и ее величины.
- Написать программу, определяющую, выполняется ли условие А – введенное число попадает в промежуток I или в промежуток III (см. задачу 15) или это условие не выполняется.
- Написать программу, определяющую, в какой квадрант попадает точка (если точка лежит на осях координат, можно считать, что она находится в любом из соседних квадрантов). Входные данные – x и y – координаты точки (вещественные).
21. Написать программу, проверяющую знание пользователем географии (см. задачу 5). Вид формы:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image034.jpg)
- Написать программу, подсчитывающую площадь или периметр прямоугольника в зависимости от выбранной опции. Результат выводится в одном компоненте Panel.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image036.jpg)
- Написать программу, увеличивающую или уменьшающую размер формы в зависимости от наличия или отсутствия флажка.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image038.jpg)
Обычная форма при неустановленном флажке
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image040.jpg)
Уменьшенная форма при установленном флажке
- Напишите программу, проверяющую знание пользователем Паскаля. Считается, что пользователь правильно ответил на вопрос, если все верные варианты ответа выбраны, а неверные – не выбраны.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image042.jpg)
- Напишите программу, проверяющую знание пользователем Паскаля. Считается, что пользователь правильно ответил на вопрос, если все верные варианты ответа выбраны, а неверные – не выбраны. За каждый правильный ответ на вопрос дается 1 балл, таким образом, пользователь может набрать от 0 до 2 баллов за тест. Для подсчета количества баллов можно завести целую переменную-счетчик, которую надо предварительно обнулить, а затем добавлять к ней по единице за каждый полностью правильный ответ на вопрос.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image044.jpg)
- (*) Измените предыдущую задачу N25 таким образом, чтобы после нажатия кнопки «Yes» отобразились бы правильные ответы и заблокировались кнопка «Yes» и все кнопки RadioButton и CheckBox, чтобы пользователь не смог вторично ответить на вопросы теста.
На этапе конструирования форма может выглядеть так:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image046.jpg)
Затем на этапе конструирования сделайте невидимой панель, содержащую правильные ответы и уменьшите ширину формы, чтобы сразу после запуска форма выглядела бы так:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image048.jpg)
В коде для кнопки «Yes» проанализируйте ответы пользователя на вопросы теста, подсчитайте и выведите на форму количество набранных пользователем баллов, увеличьте ширину формы и сделайте панель с правильными ответами видимой.
- (*) Измените задачу N25 таким образом, чтобы каждый вопрос теста и итоговая оценка за тест выводились на отдельной форме, то есть всего в проекте должно быть 3 формы. Для добавления новой формы к проекту используйте опцию меню File/New/Form. Каждой форме соответствует файл Unit. Сохраните проект обычным способом. Сохраняйте каждую новую форму и соответствующий ей Unit, используя опции меню File/Save As. Убедитесь, что теперь Ваш проект состоит из трех Unit-ов, каждый из которых, в свою очередь, состоит из файла, содержащего форму (Form?) и файла, содержащего текст программы (Unit?.pas), для этого используйте опцию меню View/Project Manager:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image050.jpg)
Для перехода к новой форме используйте горячие клавиши Shift/F12.
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image052.jpg)
Для переключения между Unit?.pas используйте соответствующие вкладки редактора кода:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image057.jpg)
Форма с первым вопросом теста может выглядеть так:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image059.jpg)
Кнопка «Вперед» используется для перехода к Form2, которая содержит 2 вопрос. Обработчик для этой кнопки:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Hide; // скрыть Form1 с первым вопросом
Form2.Show; // показать Form2 со вторым вопросом
end;
На вопросы относительно связей между Unit-ами, задаваемые Delphi:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image061.jpg)
отвечайте «Yes». Мы еще не проходили структуру Unit-ов, поэтому смысл подобных вопросов может быть Вам пока не очень ясен.
Кнопка «Закончить» предназначена для окончания выполнения теста и получения за него оценки. Для вывода результата теста используется Form3. Обработчик для кнопки «Закончить»:
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Hide; // скрыть Form1 с первым вопросом
Form3.Show; // показать Form3 с результатами теста
end;
Форма со вторым вопросом теста может выглядеть так:
![](https://konspekta.net/studopediaorg/baza4/1493259066542.files/image063.jpg)
Кнопка «Назад» используется для перехода к Form1, которая содержит 1 вопрос. Напишите обработчик для этой кнопки, аналогичный обработчику кнопки «Вперед» на Form1. Напишите обработчик для кнопки «Закончить», аналогичный обработчику кнопки «Закончить» на Form1.
На Form3 отобразите количество набранных пользователем баллов и правильные ответы. Проанализировать ответы пользователя можно в обработчике события OnShow для Form3, которое наступает при отображении Form3. Для доступа к компонентам, находящимся на других формах, используйте следующее обращение: Форма.Компонент.Свойство, например, оператор