ИНФОРМАТИКА (Паскаль), помогите написать программу, очень срочно!
Знак представляет собой сочетание букв и цифр. Первая часть знака – 4 цифры (от 0 до 9), затем 2 буквы. Разрешается использовать только 12 букв, общих для белорусского и латинского алфавитов (А, В, Е, І, К, М, Н, О, Р, С, Т, Х). Затем записывается дефис, а потом еще одна цифра (от 1 до 7), которая обозначает код региона. У Саши есть набор из N записей (не содержащих в себе пробелов), для каждой из которых он хочет определить, является ли она корректной записью номера легкового автомобиля РБ.
Для написания программы на языке Паскаль, которая будет проверять корректность номера легкового автомобиля РБ, можно использовать следующий алгоритм:
Запросить у пользователя ввод номера автомобиля.
Проверить, что длина введенной строки равна 8 символам.
Проверить, что первые 4 символа являются цифрами от 0 до 9.
Проверить, что следующие 2 символа являются буквами из списка А, В, Е, І, К, М, Н, О, Р, С, Т, Х.
Проверить, что следующий символ является дефисом.
Проверить, что последний символ является цифрой от 1 до 7.
Если все проверки пройдены успешно, вывести сообщение о корректности номера автомобиля. Если хотя бы одна проверка не пройдена, вывести сообщение об ошибке.
Пример программы на языке Паскаль, реализующей данный алгоритм:
program check_car_number;
var
car_number: string;
begin
write('Введите номер автомобиля: ');
readln(car_number);
if length(car_number) <> 8 then
writeln('Ошибка: неверная длина номера автомобиля')
else if not (car_number[1] in ['0'..'9']) or
not (car_number[2] in ['0'..'9']) or
not (car_number[3] in ['0'..'9']) or
not (car_number[4] in ['0'..'9']) then
writeln('Ошибка: первые 4 символа должны быть цифрами от 0 до 9')
else if not (car_number[5] in ['А', 'В', 'Е', 'І', 'К', 'М', 'Н', 'О', 'Р', 'С', 'Т', 'Х']) or
not (car_number[6] in ['А', 'В', 'Е', 'І', 'К', 'М', 'Н', 'О', 'Р', 'С', 'Т', 'Х']) then
writeln('Ошибка: следующие 2 символа должны быть буквами из списка А, В, Е, І, К, М, Н, О, Р, С, Т, Х')
else if car_number[7] <> '-' then
writeln('Ошибка: следующий символ должен быть дефисом')
else if not (car_number[8] in ['1'..'7']) then
writeln('Ошибка: последний символ должен быть цифрой от 1 до 7')
else
writeln('Номер автомобиля корректен');
end.
Программа запрашивает у пользователя ввод номера автомобиля, затем последовательно проверяет каждое условие из алгоритма. Если все условия выполнены, программа выводит сообщение о корректности номера автомобиля. Если хотя бы одно условие не выполнено, программа выводит сообщение об ошибке.
program Avtomobil;
type
Znak = string[14];
Chislo = array[0..3] of char;
Region = 1..7;
var
N: integer;
S: Znak;
i: integer;
function IsCorrect(var S: Znak): boolean;
var
ch1, ch2: char;
begin
IsCorrect := false;
if length(S) <> 14 then exit;
for i := 1 to 12 do
if (S[i] in ['A'..'Z']) or (S[i] in ['a'..'z']) then
exit;
ch1 := S[13];
ch2 := S[14];
if (ch1 = '-') and (ch2 in ['1'..'7']) then
IsCorrect := true;
end;
begin
writeln('Enter the number of records:');
readln(N);
for i := 1 to N do begin