Очистка части консоли - Pascal
Формулировка задачи:
Всем привет. У меня очередная проблемка - по заданию нужно выводить число при вводе через консоль только в том случае, если оно равно другому числу. Т.е. например если введено число "А" и оно совпадает с "Б" то "А" должно выводиться. Но если "А" не равно "Б", то оно выводиться не должно. А при обычном вводе через "readln" оно выводится всёравно (точнее в консоли остаётся). Мне нужно чтобы если "А" не равно "Б", то предыдущая строка консоли удалялась. "crt" не помогло.
Заранее спасибо за ответ
Сам код выглядит так:
Задача выглядит так:
Написать функцию, обеспечивающую ввод с клавиатуры целого положительного двузначного числа. При нажатии пользователем какой-либо клавиши соответствующей ей символ должен появиться на экране только в том случае, если этот символ является одной из из цифр предыдущего числа.
program program9; //uses crt; var ex,a,b:integer; function C(a:Integer):integer; begin C:= a div 10; end; function D(a:Integer):integer; begin D:= a mod 10; end; begin Write('Введите А '); Readln (a); Writeln('Введите Б '); Readln(b); repeat repeat //if (b=c(a)) or (b=d(a)) then writeln ('Число ',b,' совпадает'); if (b<>c(a)) and (b<>d(a)) then begin Readln(b); end; until (b=c(a)) or (b=d(a)); writeln ('Число ',b,' совпадает с исходным числом'); Writeln('Введите Б '); Readln(b); until ex=1; end.
Решение задачи: «Очистка части консоли»
textual
Листинг программы
program lab; uses CRT; const ESC = #27; function EnterNumber: byte; var a: byte; begin readln(a); EnterNumber := a; end; var a: byte; s: string; i: integer; Chars: set of '0'..'9'; ch: char; begin a := EnterNumber; Str(a, s); Chars := []; for i := 1 to length(s) do include(Chars, s[i]); repeat repeat until KeyPressed; ch := ReadKey; if ch in Chars then Write(ch); until ch = ESC; end.
Объяснение кода листинга программы
- В программе используется библиотека CRT, которая предоставляет функции для ввода-вывода.
- Константа ESC представляет символ, используемый для выхода из программы.
- Функция EnterNumber считывает число с консоли и сохраняет его в переменной a.
- Переменная a инициализируется значением, возвращаемым функцией EnterNumber.
- Строка s инициализируется пустой строкой.
- Переменная i инициализируется целочисленным значением 1.
- Множество Chars инициализируется символами от '0' до '9'.
- Переменная ch инициализируется символом, прочитанным с клавиатуры.
- Если ch находится в множестве Chars, то этот символ выводится на экран.
- Цикл repeat выполняется до тех пор, пока клавиша не будет нажата.
- При чтении клавиши, значение переменной ch сравнивается со значением символа, прочитанного с клавиатуры.
- Если значения совпадают, то символ выводится на экран.
- Программа продолжается до тех пор, пока не будет нажата клавиша ESC.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д