Вопрос задан 22.10.2023 в 22:02. Предмет Информатика. Спрашивает Давлатов Саид.

Проверьте,есть ли ошибки? :) Программирование. Program name uses crt; var a :integer; begin

clrscr; readln (a); if (a>=1703) or (a<1914) or (a>=1992) then writeln ('Санкт Петербург'); if (a>=1915) or (a<1924) then writeln ('Петроград'); if (a>=1925) or (a<=1991) then writeln ('Ленинград'); readln; end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ионова Анастасия.
Во-первых, тут есть синтаксическая ошибка: в конце первой строки отсутствует точка с запятой. Во-вторых, неверно определены диапазоны дат: нет названия города до 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 ('Ленинград');
  ReadKey
end.

0 0
Отвечает Григорьев Даниил.
Program name;
uses crt;
var a :integer;
begin clrscr;
readln (a);
if (a>=1703) and (a<1914) or (a>=1992) then writeln ('Санкт Петербург');
if (a>=1915) and (a<1924) then writeln ('Петроград');
if (a>=1925)and (a<=1991) then writeln ('Ленинград');
if a<1703 then writeln('Error');
readkey;
end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа в целом выглядит верно, но есть несколько ошибок в использовании операторов сравнения и логических операторов.

Вот исправленный код программы:

```pascal program name; uses crt; var a: integer;

begin clrscr; readln(a);

if (a >= 1703) and (a < 1914) or (a >= 1992) then writeln('Санкт Петербург');

if (a >= 1915) and (a < 1924) then writeln('Петроград');

if (a >= 1925) and (a <= 1991) then writeln('Ленинград');

readln; end. ```

Исправления:

1. Заменили `>` на `>=` и `<` на `<` во всех операторах сравнения, чтобы включить границы интервалов.

2. Использовали логический оператор `and` вместо `or`, чтобы обеспечить выполнение всех условий одновременно.

Теперь программа должна работать корректно и выводить соответствующее название города в зависимости от введенного года.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос