Очистка части консоли - 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.

Объяснение кода листинга программы

  1. В программе используется библиотека CRT, которая предоставляет функции для ввода-вывода.
  2. Константа ESC представляет символ, используемый для выхода из программы.
  3. Функция EnterNumber считывает число с консоли и сохраняет его в переменной a.
  4. Переменная a инициализируется значением, возвращаемым функцией EnterNumber.
  5. Строка s инициализируется пустой строкой.
  6. Переменная i инициализируется целочисленным значением 1.
  7. Множество Chars инициализируется символами от '0' до '9'.
  8. Переменная ch инициализируется символом, прочитанным с клавиатуры.
  9. Если ch находится в множестве Chars, то этот символ выводится на экран.
  10. Цикл repeat выполняется до тех пор, пока клавиша не будет нажата.
  11. При чтении клавиши, значение переменной ch сравнивается со значением символа, прочитанного с клавиатуры.
  12. Если значения совпадают, то символ выводится на экран.
  13. Программа продолжается до тех пор, пока не будет нажата клавиша ESC.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы