Pascal требуется посчитать сумму целых чисел, расположенных между числами 1 и n включительно. входные данные в единственной строке входного файла input.txt записано единственное целое число n, не превышающее по абсолютной величине 10^4. выходные данные в единственную строку выходного файла output.txt нужно вывести одно целое число — сумму чисел, расположенных между 1 и n включительно. моё решение: var n, i, s, z: longint; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); z: =0; s: =0; read(n); begin if n< =z then exit; end; for i : = 1 to n do s+=i; write(s); end. но код не принимает система, что может быть не так? ps: // но сложность этой не в вычислении этой суммы и выше алгоритм не проходит на третьем тесте! оказывается, здесь внимательно нужно прочитать условия , особенно ограничения на число n. дело в том, что это число может быть ! учитывая это попробуйте самостоятельно доработать и реализовать верный алгоритм решения этой . upd: забыл условие поставить,что n не должно превышать 10^4 upd2: исправил ошибки, учёл что n< 10000, но все равно " решена неверно" код: var n, i, s, z: longint; begin assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); z: =0; s: =0; read(n); begin if n< =z then exit; end; if n< =10000 then for i : = 1 to n do s+=i else exit; write(s); end.
Ответы на вопрос:
ваши ошибки:
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.
Дії, які можна виконувати з інформацією називають … (інформаційними процесами). Об'єкти, на яких зберігаються повідомлення, називають … (носіями повідомлень).
Объяснение:
НОСІЙ
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
mdebnu28.05.2021 05:31
-
битика10.08.2020 02:16
-
vasta555555512.10.2022 03:09
-
дира313.07.2020 17:00
-
ROMA2K1809.11.2021 05:58
-
милуя07.06.2021 09:52
-
хрустально22.05.2022 10:53
-
001011006.02.2023 08:23
-
никитаррр129.04.2023 01:13
-
ioiaaea3319.02.2020 12:03
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.