Во-первых, тут есть синтаксическая ошибка: в конце первой строки отсутствует точка с запятой. Во-вторых, неверно определены диапазоны дат: нет названия города до 1703 года (на самом деле города тогда еще не было, но что-то все равно надо сообщить), не определен 1914 год, когда город был переименован в Петроград и 1924 год, когда город был переименован в Ленинград. И в-третьих, хоть это и не ошибка, но недочет программы: будут выполняться все три оператора if, даже если в первом из них искомая дата будет найдена.Ниже предлагается исправленный вариант программы.program name;uses crt;var a:integer;begin ClrScr; Readln(a); if a<1703 then Writeln('Город не существовал') else if (a>=1703) and (a<1914) or (a>=1991) then Writeln ('Санкт-Петербург') else if (a>=1914) and (a<1924) then Writeln ('Петроград') else Writeln ('Ленинград'); ReadKeyend.