serkinn69
?>

Что делать если в строке readln (x); выводит ошибку: ожидплся оператор? program dialog; uses crt; var x: string; begin clrscr; writeln ('òû ïîåäåøü ëåòîì â èòàëèþ? '); readln (x); if (x='äà') or (x='äà') or (x='äà') then writeln ('îòëè÷íî, ïîåäåì âìåñòå! '); if (x='íåò') or (x='íåò') or (x='íåò') then writeln ('æàëü, ïîåäó îäíà! '); writeln ('òû ïîéäåøü çàâòðà â øêîëó? ') readln (x); if (x='äà') or (x='äà') or (x='äà') then writeln ('à ó íàñ çàâòðà âûõîäíîé! ') if (x='íåò') or (x='íåò') or (x='íåò') then writeln ('êëàññ! ìîæíî çàâòðà ñõîäèòü ïîãóëÿòü! '); readln; end.

Информатика

Ответы

Titeeva-Vladimirovich283
После этих строк поставь ; и всё должно заработатьwriteln ('òû ïîéäåøü çàâòðà â øêîëó? ') then writeln ('à ó íàñ çàâòðà âûõîäíîé! ')
volodin-alexander

ваши ошибки:

1) объявление текстовых переменных и неиспользование их.

2) ненужный тип longint, зачем такой большой тип?

типа integer вполне достаточно (-32 768 … 32 767).

3) объявление абсолютно ненужной переменной z.

4) главная ошибка - это непонимание , и соответственно неправильно построенный алгоритм.

попробуйте это, самое оптимальное по времени, минимальное кол-во переменных. использован метод гаусса, можно было и арифм. прогрессию.

var

  n: integer;

  text: text;

begin

  assign(text, 'input.txt'); reset(text);

  readln(text, n); close(text);

   

  if (n > 10000) then exit;

   

  assign(text, 'output.txt'); rewrite(text);

  if n < 0 then writeln(text, + abs(n)) * (abs(n) / 2) - 1))

  else writeln(text, (1 + n) * (n / 2));

  close(text);

end.

ea-office

давайте разберем выражение по порядку. выражение 4^350 = 2 ^ 700 имеет 700 значащихся нулей и одну единицу. прибавляя 8 ^ 340 = 2 ^ 1020 и нас получится 1019 значащихся нулей и две единицы которые стоят в разрядах 1021 и 701. отнимая от этого 2 ^ 320 мы превратим все нули которые стоят в разрядах от 321 до 700 в единицы, а цифра в разряде 701 становится нулем. почему так происходит наглядно демонстрирую в маленьких числах.

например 1024 - 32.

в двоичной записи выглядит так:

100 0000 0000

- 000 0010 0000

011 1 1 10 0000

при отнимании 2^10 - 2^5 все нули в разрядах(с конца) 6 до 10 превратились в единицы.

и так теперь у нас (1019 - 328 + 1) 640 значащихся нулей и 280 единиц.

представим 12 в виде 4 + 8, чтобы легче было отнять.

сначала напомним как выглядит наше выражение.

числа стоящихся в разрядах нули, единицы все нули, 1021 единица.

отнимая 8 мы превратим все нули в разрядах 4 320 в единицы.

теперь у нас 324 значащихся нулей и теперь неважно сколько единиц, ведь нам нужен только количество нулей. у нас остался 4. так как цифра на разряде 4 у нас единица и 8 - 4 = 4, отнимая 4 количество нулей не изменится и итоговый ответ у нас 324.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Что делать если в строке readln (x); выводит ошибку: ожидплся оператор? program dialog; uses crt; var x: string; begin clrscr; writeln ('òû ïîåäåøü ëåòîì â èòàëèþ? '); readln (x); if (x='äà') or (x='äà') or (x='äà') then writeln ('îòëè÷íî, ïîåäåì âìåñòå! '); if (x='íåò') or (x='íåò') or (x='íåò') then writeln ('æàëü, ïîåäó îäíà! '); writeln ('òû ïîéäåøü çàâòðà â øêîëó? ') readln (x); if (x='äà') or (x='äà') or (x='äà') then writeln ('à ó íàñ çàâòðà âûõîäíîé! ') if (x='íåò') or (x='íåò') or (x='íåò') then writeln ('êëàññ! ìîæíî çàâòðà ñõîäèòü ïîãóëÿòü! '); readln; end.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

denis302007
ksuhova
srgymakarov
oskar-pn
Валуева
yurievaalxndra55
zakaz1
Стародубцева_Васильевич485
skvorec3424
svetlanadianowa
dyatchina63
sergey
Irinagarmonshikova
Оксана
Lolira64