Top.Mail.Ru
Ответы

ИНФОРМАТИКА (Паскаль), помогите написать программу, очень срочно!

Знак представляет собой сочетание букв и цифр. Первая часть знака – 4 цифры (от 0 до 9), затем 2 буквы. Разрешается использовать только 12 букв, общих для белорусского и латинского алфавитов (А, В, Е, І, К, М, Н, О, Р, С, Т, Х). Затем записывается дефис, а потом еще одна цифра (от 1 до 7), которая обозначает код региона. У Саши есть набор из N записей (не содержащих в себе пробелов), для каждой из которых он хочет определить, является ли она корректной записью номера легкового автомобиля РБ.

По дате
По рейтингу
Аватар пользователя
Просветленный

Для написания программы на языке Паскаль, которая будет проверять корректность номера легкового автомобиля РБ, можно использовать следующий алгоритм:

  1. Запросить у пользователя ввод номера автомобиля.

  2. Проверить, что длина введенной строки равна 8 символам.

  3. Проверить, что первые 4 символа являются цифрами от 0 до 9.

  4. Проверить, что следующие 2 символа являются буквами из списка А, В, Е, І, К, М, Н, О, Р, С, Т, Х.

  5. Проверить, что следующий символ является дефисом.

  6. Проверить, что последний символ является цифрой от 1 до 7.

  7. Если все проверки пройдены успешно, вывести сообщение о корректности номера автомобиля. Если хотя бы одна проверка не пройдена, вывести сообщение об ошибке.

Пример программы на языке Паскаль, реализующей данный алгоритм:

1234567891011121314151617181920212223242526
 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