Написать программу проверки корректности ввода строки по данной маске - Pascal ABC

  1. Использовать типы данных множество и строка для ввода информации по заданной маске: 2 буквы, 3 цифры, 1 буква (ББЦЦЦБ) написать программу проверки корректности ввода строки по этой маске, при ошибочном вводе недопустимы символов подавать звуковой сигнал или менять цвет ошибочного символа и возвращать курсор назад. помогите пожалуйста.


textual

Код:

uses crt;
const bk=['A'..'Z','a'..'z','А'..'я','Ё','ё'];
      cf=['0'..'9'];
var c:char;
    i:byte;
begin
writeln('Введите строку из 6 симолов по маске ББЦЦЦБ');
i:=1;
while i<=6 do
 begin
  textcolor(0);
  c:=readkey;
  write(c);
  if ((i in [1,2,6]) and not(c in bk))
  or ((i in [3..5]) and not(c in cf)) then
   begin
    gotoXY(whereX-1,whereY);
    textcolor(12);
    write(c);
    gotoXY(whereX-1,whereY);
   end
  else i:=i+1;
  if i>6 then writeln
 end
end.


Похожие ответы
  1. Нужно, чтобы не было лейбел, но программа не меняла своей сути . ОЧЕНЬ СРОЧНО!!!

  1. Напишите программу, которая находит все различные цифры в символьной строке.Входные данные На вход программе подаётся символьная строка.Выходные данные Программа должна вывести в одной строке все различные цифры, которые встречаются в исходной строке, в порядке возрастания. Если в строке нет цифр, нужно вывести слово 'NO'.Примеры:входные данные ab1n32kz2выходные данные 123входные данные asdasdвыходные данные NO

  1. Составить программу вычисления функции y=1-(sin(x))/(1-ln(x+1)) при изменении аргумента x в интервале 0,1<=x<=3,0 с шагом h=0,1

  1. Напишите программу, которая выводит на экран круговую диаграмму , отражающую товарооборот (в процентах) книжного магазина. Исходные данные 30% 35% 30% 5%.

  1. Добрый день. Знаю, что такое уже было на вашем форуме, но оно было не полностью, а как доделать я не сильно знаю. Задача: Написать программу перевода целого числа a из цифрового формата в прописной. a < 1012 Пример: a = 123 ⇒ cто двадцать три. Вот код, который я обнаружил на этом сайте:

  1. Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 const x = 0.29;   var y, sv, sz, fact, st: real; i, j, zn: integer;   begin sz := 0; writeln('cycles for and while'); writeln('vnutr suma zovn suma'); for j := 4 to 12 do begin fact := 6; i := 1; sv := 0; zn := -1; st := x; while i <= 10 do begin y := zn * ((sqrt(i) * Ln(x + 1)) / (sqrt(j) + fact)); i := i + 1;st := st * x; sv := sv + y; fact := fact * (i + 2); zn := -zn; end; sz := sz + sv; writeln(sv:10:6, sz:14:6); end; writeln('zagalna suma=', sz:10:6); end.

  1. Здравствуйте, помогите разобраться! Дано задача. Кубики. Кубик с ребром N см покрасили и разрезали на кубики с ребром 1 см. При этом появились такие, у которых окрашено разное количество граней. Например, если N = 3, то после разрезания будет 8 кубиков, у которых окрашено три грани, 12 с двумя гранями, 6 с одной, а один кубик будет совсем неокрашенный. Составьте программу, которая бы определяла, сколько кубиков с каждой возможным количеством окрашенных граней. Как можно создать Ввод и Вывод файл не как не могу! Задачу из интернета скачал. Delphi1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 program cubes; uses crt; var x,x1,x2,x3,x0,y,z,k,n:integer; s:string; f,g:text; begin assign(f,'cubes.dat'); reset(f); readln(f,y); close(f) ; x3:=8; x1:=sqr(y-2)*6; x0:=(sqr(y-2))*(y-2); x2:=(y-2)*4*2+(y-2)*4; assign(g,'cubes.sol'); rewrite(g); writeln(g,'0/',x0,' 1/',x1,' 2/',x2,' 3/',x3); close(g); end.

  1. Написать программу формирования ОПЗ и расчета полученного выражения. Разработать удобный интерфейс ввода исходных данных и вывода результатов. Работу программы проверить на конкретном примере Сам пример со значениями которые должны получиться: (a– b)/(c+d)*e , где а=0.3 b=6.7 c=8.4 d=9.6 e=1.2 Результат должен получиться -0.429. Помогите пожалуйста используя динамический массив заранее спасибо

  1. Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 program nakoplenie; var s,x,y,p,z: real; k1, k2, k3,k4,k: integer;         function summa(k: integer): real;     begin     summa := abs(sin((sqr(k) / 1.5) - 2)) + 11.73 * cos(1.6 * k - 1)     end;       function proiz(var k: integer): real;     begin     proiz := 13.4 * cos(abs(k)) * sin(sqr(k) - 2.25);     end;       begin    writeln('Введите номер варианта для определения k конечного для суммы и произведения ');    readln(k2);    k1:=1;    s := 0;    for k := k1 to k2+5 do  s := s +summa(k);      p := 1;    for k := k1 to k2+8 do  p := p *proiz(k);        writeln('s=', s:2:2);    writeln('p=', p:2:2);       x := s;     y := p;     z := (5 * x) - (2 * y);     writeln('z=', z:2:2);     end.ОКНО ВЫВОДА: Введите номер варианта для определения k конечного для суммы и произведения 13 s=9.24 p=-299426686126.04 z=598853372298.28 Почему он не хочет хвост меньше делать? Объясните пожалуйста. Подставляла разные числа.