Текстовое поле. Ввод и вывод данных
§ 3.4, с. 19–22: TextBox, числовой ввод и вывод, проверка формата и диапазона. Десять авторских иллюстраций, пример «Квадрат и корень» и самостоятельный расчёт параметров квадрата.
Конспект урока
Текстовое поле. Ввод и вывод данных
Преврати строку из текстового поля в число, выполни расчёт и проверь результат.
Ввод, проверка, вычисление и вывод — разные этапы работы приложения.
Результат урока
Создашь проект с одним полем ввода и двумя полями результата. Научишь приложение отклонять неверные данные и проверишь сохранённую работу после повторного открытия.
Перед началом
Работай в своей папке и соблюдай правила кабинета. При неисправности остановись и обратись к учителю. Для основного проекта нужна проверенная учителем среда PascalABC.NET под Windows с дизайнером Windows Forms.
Вспомни: свойство Text хранит текст, а событие Click вызывает связанный с ним обработчик. На прошлом уроке кнопка меняла готовую строку. Сегодня результат зависит от введённых данных.
Основа — пример 3.13 «Квадрат и корень» учебника. Проверка формата и допустимого диапазона добавлена в нашем уроке: приложение должно понятно реагировать и на неверный ввод.
TextBox хранит редактируемую строку
Компонент TextBox позволяет пользователю вводить текст. Значение доступно через свойство Text. Даже если набраны цифры, содержимое поля остаётся строкой.
Пользователь вводит строку. Программа решает, можно ли использовать её как число.
| Элемент | Назначение в проекте | Настройка |
|---|---|---|
textBox1 | Ввод числа a | Text пусто, ReadOnly=False |
textBox2 | Первый результат | Text пусто, ReadOnly=True |
textBox3 | Второй результат | Text пусто, ReadOnly=True |
ReadOnly=True запрещает пользователю редактировать поле, но программный код по-прежнему может присваивать его свойству Text новое значение. Результат можно выделить и скопировать.
В палитре PascalABC.NET выбирай именно TextBox. Встречающееся в тексте учебника название Edit не является именем нужного компонента Windows Forms.
Строка «7» и число 7
Строки используют для текста, числа — для арифметики. При textBox1.Text='7' выражение textBox1.Text + '2' даст строку '72'. Для числового сложения сначала требуется преобразование.
Внешнее сходство записи не означает одинаковый тип данных.
| Этап | В примере учебника | Тип результата |
|---|---|---|
| Прочитать поле | textBox1.Text | Строка |
| Преобразовать | StrToInt(textBox1.Text) | Целое число |
| Вычислить | a * a, Sqrt(a) | Целое / вещественное число |
| Подготовить вывод | IntToStr(b), FloatToStr(c) | Строки для полей результата |
Преобразование нужно и на входе, и перед выводом числа в Text.
Ограничение StrToInt: если строка не представляет допустимое целое число, преобразование вызывает ошибку. В нашем обработчике используем TryStrToInt: функция сообщает, удалось ли преобразование, и позволяет вывести понятную подсказку.
Квадрат и корень
Создай проект Windows Forms SquareRoot. Заголовок формы — «Квадрат и корень». Добавь три TextBox, кнопку и четыре Label. Сохрани имена компонентов.
| Компонент | Свойство Text | Роль |
|---|---|---|
label1 | Число a (0–10000) | Подпись ввода |
label2 | Квадрат a² | Подпись первого результата |
label3 | Корень √a | Подпись второго результата |
label4 | Введите целое число от 0 до 10000 | Сообщение; AutoSize=True |
button1 | Вычислить | Запуск обработчика Click |
Очисти Text всех трёх полей в инспекторе, не вводя кавычек. У выходных полей включи ReadOnly. Размести подписи рядом с соответствующими полями, оставь место для длинного сообщения.
Для a=4 получаем квадрат 16 и арифметический квадратный корень 2.
Вычисление и вывод после успешной проверки
var b := a * a;
var c := Sqrt(a);
textBox2.Text := IntToStr(b);
textBox3.Text := FloatToStr(c);
label4.Text := 'Готово';
Переменная b целая, c вещественная. Для a=3 корень будет приближённым значением. Число знаков и вид десятичного разделителя при FloatToStr могут зависеть от версии среды; не сравнивай результат только по запятой или точке.
Поле результата получает строку, сформированную программой.
Сначала очистка старого результата
Если после правильного расчёта пользователь введёт ошибочные данные, прежние ответы не должны выглядеть как новые. Поэтому в начале каждого Click очищаем оба поля результата.
var a: integer;
textBox2.Text := '';
textBox3.Text := '';
Пустое поле не означает число 0. Нельзя молча подменять отсутствующее значение.
Проверка формата
if not TryStrToInt(textBox1.Text, a) then
begin
label4.Text := 'Введите целое число';
exit;
end;
TryStrToInt возвращает True, если преобразование удалось, и записывает число в a. Иначе возвращает False. Команда exit завершает текущий обработчик, поэтому вычисления ниже не выполняются.
«abc», «4.5» и пустая строка не проходят проверку целого числа.
Проверка допустимых значений
if (a < 0) or (a > 10000) then
begin
label4.Text := 'Допустимо от 0 до 10000';
exit;
end;
Число −1 является целым, но не подходит для нашего вычисления арифметического квадратного корня. Верхняя граница 10000 — ограничение учебного проекта: квадрат не превосходит 100000000 и помещается в тип integer.
Правильный формат ещё не гарантирует допустимость значения в задаче.
Порядок в button1.Click: объявление a → очистка выходов → проверка преобразования → проверка диапазона → вычисление → вывод. Вставляй фрагменты именно в этом порядке внутрь созданных средой begin и end. Не переписывай объявление процедуры. Проверки — авторское дополнение к примеру 3.13.
Учебная модель ввода и расчёта
Выбери сценарий и до нажатия кнопки запиши ожидаемый результат. Модель выполняет описанный алгоритм в браузере. Она не компилирует Pascal и не создаёт проект Windows Forms.
Открыть учебную модель ввода и расчёта. Это учебная модель, которая не создаёт проект PascalABC.NET.
В браузерной модели: Tab переводит фокус, Enter запускает расчёт из поля ввода, Enter или пробел нажимает выбранную кнопку. Выходные поля доступны для выделения и копирования.
Три опыта
- В примере введи 4 и вычисли. Замени ввод на 9, но пока не нажимай кнопку. Какие результаты остались? Затем вычисли снова.
- После верного расчёта введи abc и нажми кнопку. Проверь оба поля результата и сообщение.
- Сравни ввод 0 в двух сценариях. Объясни, почему проверка формата одинакова, а допустимые значения различаются.
Пауза перед практикой
На минуту отведи взгляд от экрана, посмотри вдаль, расслабь плечи и кисти. Проверь посадку и переходи к самостоятельной работе.
Параметры квадрата
Сохрани исходный SquareRoot. Создай его копию в собственной папке SquareCard_07, заменив 07 номером места. Задача: по целой стороне a от 1 до 10000 вычислять площадь S=a² и периметр P=4a.
- Измени заголовок формы на «Параметры квадрата», подписи — «Сторона a (1–10000)», «Площадь S», «Периметр P». Начальное сообщение должно указывать новый диапазон.
- Сохрани одно поле ввода и два выходных поля с
ReadOnly=True. Сохрани имена textBox1, textBox2, textBox3, label4 и button1. - Измени нижнюю границу проверки и сообщение об ошибке. Самостоятельно составь две формулы и строки вывода целых результатов.
- Проверь верный и неверный ввод. Каждый заполняет личный лист, даже если за компьютером работает пара.
Сторона измеряется в условных единицах, площадь — в квадратных условных единицах. В поле вводи только число.
| Ввод по порядку | Мой прогноз | Наблюдение: два выхода и сообщение |
|---|---|---|
| 2 | ________ | ________ |
| 7 | ________ | ________ |
| 0 | ________ | ________ |
| Пустая строка | ________ | ________ |
| abc | ________ | ________ |
| 10001 | ________ | ________ |
| 3 после ошибки | ________ | ________ |
Сохранение и повторное открытие
- Выполни «Сохранить все», останови приложение и закрой проект.
- Через «Файл → Открыть проект» открой
.pabcprojиз своей папки. - Запусти заново: все поля должны быть пустыми, сообщение — начальным. Проверь ввод 2 и затем abc.
- Передай всю исходную папку проекта и личный лист. Один файл exe не заменяет исходники.
Сохраняй проект целиком и проверяй его после повторного открытия.
Критерии готовности
Шесть диагностических баллов: проект повторно открывается; поля и подписи настроены верно; S и P верны для 2 и 7; пустой ввод и abc не оставляют старого ответа; 0 и 10001 отклоняются; личный лист содержит прогнозы, наблюдения и объяснение преобразований. Эти баллы дают обратную связь, а не автоматически переводятся в школьную отметку.
Если остаётся время: проверь границу 10000. Затем попробуй +7 и 007. Это целые записи, и результат должен совпасть с вводом 7. Внутренние пробелы, дроби и запись с единицами измерения не допускаются.
Если результат отличается
| Наблюдение | Что проверить |
|---|---|
| Вместо суммы получилась склейка | Типы операндов; произошло ли преобразование строки в число |
| После ошибки виден старый результат | Очистка textBox2.Text и textBox3.Text стоит перед проверками |
| Приложение пытается считать по неверному вводу | Условие проверки и exit в каждой ветви ошибки |
| Ноль принят как сторона квадрата | В практике нижняя граница 1, а не 0 |
| Результат можно случайно исправить вручную | ReadOnly=True у выходных TextBox |
| После изменения входа ответ прежний | Нажата ли кнопка: ввод сам не запускает расчёт |
Объясни самостоятельно
- В поле введено 7. Почему
textBox1.Text + '2'даёт 72, а не 9? Что нужно для арифметики? - Почему одной успешной
TryStrToIntнедостаточно для стороны квадрата? - После правильного расчёта введено abc и нажата кнопка «Вычислить». Какие результаты и сообщение должны появиться? Почему нельзя оставить прежние ответы?
Домашнее задание
§ 3.4, страницы 19–22 до § 3.5*, вопрос 6 на странице 24. Письменно предложи два верных и два неверных ввода для SquareCard и укажи ожидаемые результаты либо сообщение об ошибке.
Обработчик KeyPress из примера 3.12 подробно изучим на следующем уроке. По желанию при доступе к Windows можно проверить границу 10000. Установка программ дома не требуется.
Источники
Котов В. М. и др. «Информатика. 11 класс», 2021: § 3.4, примеры 3.10–3.13, вопрос 6. Электронная копия печатного учебника.
Первичный код PascalABC.NET: преобразования PABCSystem. Microsoft: TextBox и ReadOnly.
Проверки, диапазоны, самостоятельная задача и десять иллюстраций разработаны для этого урока. Изображения условные и не являются снимками установленной среды.
10 вопросов по теме «Оконное приложение: уроки 1–4». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.
Открыть отдельноВопрос 1 из 10
ТренировкаБез отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.
Демонстрация
Материалы к уроку
Скачать и открыть
Материалы урока
3 материалаПодготовка к уроку
2 материала· для учителей
Проверка знаний
1 материал· для учеников
10 вопросов с объяснениями и повторной попыткой.
Проверочная
От сообщества
Материалы сообщества2
Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.
Практические задания для 11 класса по созданию оконных приложений в PascalABC.NET. Ученики вводят данные через текстовые поля, проверяют их, выполняют расчёты и выводят результат. В каждом варианте есть короткая шпаргалка и примеры для проверки.
Карточки для 11 класса по созданию оконных приложений в PascalABC.NET. В каждом варианте — короткая шпаргалка, задача на ввод, обработку и вывод данных, а также примеры для проверки программы.
Показано 2 из 2 · сначала новые
Все материалы урока
Комментарии
Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!