Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Раздел 2. Задания для лабораторных работ



Для выполнения указанных ниже заданий можно использовать один не вложенный оператор if, (причем в выражении для условия участвуют только обычные переменные или константы, не участвуют логические свойства компонент) и обработку только одного события – OnClick для Button ( BitBtn )

  1. Написать программу, которая запрашивает пользователя, в каком году начался 21 век. В случае неправильного ответа программа должна выводить на форму правильный ответ.

Вид формы может быть примерно таким:

Можно использовать «фигурную кнопку» - компонент BitBtn (она находится на вкладке Additional), ее свойство kind можно установить в bkOK.

Для вывода ответа можно использовать компонент Panel (свойство Caption)

  1. Написать программу, которая определяет, было ли введено отрицательное вещественное число и ответ помещает на форму. Вид формы может быть примерно таким же, как и в задании 1.
  1. Написать программу, которая выводит пример на сложение, вычитание или умножение с целыми числами (пример придумайте сами), запрашивает ответ пользователя и сообщает, правильный ответ или нет. Если ответ неправильный, программа должна сообщить правильный ответ. Сконструируйте подходящую для проекта форму.
  1. Написать программу, которая выводит пример на сложение случайных чисел (используйте генератор случайных чисел), запрашивает ответ пользователя и сообщает, правильный ответ или нет. Если ответ неправильный, программа должна сообщить правильный ответ. Вид формы может быть примерно таким:

Для написания такой программы вам могут понадобиться глобальные переменные – переменные, которые действуют для всего файла и описываются не в процедуре, а вне ее.

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), где будет анализироваться введенный пользователем ответ.

  1. Написать программу, которая проверяет знания пользователя по географии. Программа должна проверить введенный пользователем вариант ответа. Вид формы может быть примерно такой:

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

После ввода входных данных и нажатия кнопки «ОК» форма может выглядеть примерно так:

  1. Написать программу, которая находит частное и остаток от деления двух целых чисел с проверкой на равенство делителя 0. Если делитель равен 0, выдается сообщение об ошибке. Форма может выглядеть приметно так:

  1. Написать программу, которая проверяет, является ли введенный год високосным. Форму для проекта придумать самим.
  2. Написать программу, которая проверяет, является ли введенное целое число нечетным. Форму для проекта придумать самим.
  3. Написать программу, которая проверяет, делятся ли друг на друга нацело 2 введенных целых числа. Форму для проекта придумать самим.

Для выполнения указанных ниже заданий можно использовать несколько не вложенных операторов if со сложными условиями, либо вложенные операторы if и обработку только одного события – OnClick для Button ( BitBtn ). В выражении для условия участвуют только обычные переменные или константы, не участвуют логические свойства компонент.

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

  1. Написать программу, находящую минимальное значение из трех. Примерный вид формы можно взять из задачи 11.
  2. Написать программу, проверяющую, образуют ли три введенных вещественных числа строго убывающую последовательность. * В зависимости от результата проверки ответ должен выводиться разными цветами. Примерный вид формы:

  1. Написать программу, проверяющую, образуют ли четыре введенных целых числа не убывающую последовательность (каждое последующее число должно быть больше или равно предыдущему). * В зависимости от результата проверки ответ должен выводиться разными цветами. Примерный вид формы такой же как и в предыдущей задаче.
  2. Написать программу, определяющую, к какому промежутку относится введенное число: I – меньше (-3); II – от (-3) до 0; III – от 0 до 10.5; IV – больше 10.5 Примерный вид формы указан на рисунке.

  1. Написать программу по условию задачи 15, но границы промежутков программа должна брать из Edit. Предполагается, что границы промежутков введены в возрастающей последовательности. Ответ выводить «цветом промежутка».

  1. Написать программу по условию задачи 16, но программа должна проверять, образуют ли введенные границы промежутков возрастающую последовательность. Если не образуют – выдается сообщение об ошибке.
  2. Написать программу, определяющую общую стоимость покупки. Входные данные – цена за 1 шт. (вещественная), кол-во штук (целое). Если стоимость покупки >=1000 руб., предоставляется скидка 10%, если стоимость покупки >=1500 руб., предоставляется скидка 20%. Результат выводится разными цветами в зависимости от наличия скидки и ее величины.
  3. Написать программу, определяющую, выполняется ли условие А – введенное число попадает в промежуток I или в промежуток III (см. задачу 15) или это условие не выполняется.
  4. Написать программу, определяющую, в какой квадрант попадает точка (если точка лежит на осях координат, можно считать, что она находится в любом из соседних квадрантов). Входные данные – x и y – координаты точки (вещественные).

21. Написать программу, проверяющую знание пользователем географии (см. задачу 5). Вид формы:

  1. Написать программу, подсчитывающую площадь или периметр прямоугольника в зависимости от выбранной опции. Результат выводится в одном компоненте Panel.

  1. Написать программу, увеличивающую или уменьшающую размер формы в зависимости от наличия или отсутствия флажка.

Обычная форма при неустановленном флажке

Уменьшенная форма при установленном флажке

  1. Напишите программу, проверяющую знание пользователем Паскаля. Считается, что пользователь правильно ответил на вопрос, если все верные варианты ответа выбраны, а неверные – не выбраны.

  1. Напишите программу, проверяющую знание пользователем Паскаля. Считается, что пользователь правильно ответил на вопрос, если все верные варианты ответа выбраны, а неверные – не выбраны. За каждый правильный ответ на вопрос дается 1 балл, таким образом, пользователь может набрать от 0 до 2 баллов за тест. Для подсчета количества баллов можно завести целую переменную-счетчик, которую надо предварительно обнулить, а затем добавлять к ней по единице за каждый полностью правильный ответ на вопрос.

  1. (*) Измените предыдущую задачу N25 таким образом, чтобы после нажатия кнопки «Yes» отобразились бы правильные ответы и заблокировались кнопка «Yes» и все кнопки RadioButton и CheckBox, чтобы пользователь не смог вторично ответить на вопросы теста.

На этапе конструирования форма может выглядеть так:

Затем на этапе конструирования сделайте невидимой панель, содержащую правильные ответы и уменьшите ширину формы, чтобы сразу после запуска форма выглядела бы так:

В коде для кнопки «Yes» проанализируйте ответы пользователя на вопросы теста, подсчитайте и выведите на форму количество набранных пользователем баллов, увеличьте ширину формы и сделайте панель с правильными ответами видимой.

  1. (*) Измените задачу N25 таким образом, чтобы каждый вопрос теста и итоговая оценка за тест выводились на отдельной форме, то есть всего в проекте должно быть 3 формы. Для добавления новой формы к проекту используйте опцию меню File/New/Form. Каждой форме соответствует файл Unit. Сохраните проект обычным способом. Сохраняйте каждую новую форму и соответствующий ей Unit, используя опции меню File/Save As. Убедитесь, что теперь Ваш проект состоит из трех Unit-ов, каждый из которых, в свою очередь, состоит из файла, содержащего форму (Form?) и файла, содержащего текст программы (Unit?.pas), для этого используйте опцию меню View/Project Manager:

Для перехода к новой форме используйте горячие клавиши Shift/F12.

Для переключения между Unit?.pas используйте соответствующие вкладки редактора кода:

Форма с первым вопросом теста может выглядеть так:

Кнопка «Вперед» используется для перехода к Form2, которая содержит 2 вопрос. Обработчик для этой кнопки:

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Hide; // скрыть Form1 с первым вопросом

Form2.Show; // показать Form2 со вторым вопросом

end;

На вопросы относительно связей между Unit-ами, задаваемые Delphi:

отвечайте «Yes». Мы еще не проходили структуру Unit-ов, поэтому смысл подобных вопросов может быть Вам пока не очень ясен.

Кнопка «Закончить» предназначена для окончания выполнения теста и получения за него оценки. Для вывода результата теста используется Form3. Обработчик для кнопки «Закончить»:

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Hide; // скрыть Form1 с первым вопросом

Form3.Show; // показать Form3 с результатами теста

end;

Форма со вторым вопросом теста может выглядеть так:

Кнопка «Назад» используется для перехода к Form1, которая содержит 1 вопрос. Напишите обработчик для этой кнопки, аналогичный обработчику кнопки «Вперед» на Form1. Напишите обработчик для кнопки «Закончить», аналогичный обработчику кнопки «Закончить» на Form1.

На Form3 отобразите количество набранных пользователем баллов и правильные ответы. Проанализировать ответы пользователя можно в обработчике события OnShow для Form3, которое наступает при отображении Form3. Для доступа к компонентам, находящимся на других формах, используйте следующее обращение: Форма.Компонент.Свойство, например, оператор





Дата публикования: 2014-11-19; Прочитано: 368 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.011 с)...