Спрашивали - отвечу. Для начала необходимо определить термины. Для того, чтобы ответ был понятнее. Глагол "сломаться" обозначает прийти в негодность под воздействием какой либо силы. Компьютерная программа - это набор или комбинация инструкций (команд) и данных изменяемых с помощью этих инструкций. Внешнее воздействие на компьютерную программу, как правило - это динамическое изменение алгоритма либо кода программы, тех самых инструкций. Работать безошибочно - это значит полностью соответствовать ожидаемому результату, без неожиданных, не спланированных и не предусмотренных действий программы. Из всего выше перечисленного, можно сделать теоретический вывод: " При соблюдении условий, отсутствия внешних сил и проверенного, на соответствие задуманному, программного кода - Да , компьютерная программа будет работать вечно". Причем, чем проще задумка, тем реальнее добиться такого результата. Теперь спустимся от теории к практике. Я не знаю ни одну компьютерную программу которая бы работала сама по себе, только набором инструкций. Набор инструкций - это хорошо, но код сам по себе бесполезен. К компьютерной программе нужны, средства ввода информации, средства её визуализации, хранения и передачи. Исходя из того, что этим занимаются миллионы людей по всему миру. Любое отклонение от задуманного алгоритма, умноженное на миллионы поправок и изменений, ведет к тому, что необходимо принимать компромиссные решения, либо к сроку за деньги либо когда получиться "безошибочное решение", но бесплатно. Таким образом на практике ответ - Нет, компьютерная программа не может работать вечно и обязательно сломается, так как зависит от внешнего окружения. Причём поломка случится именно в тот момент, когда закончиться срок гарантии. Как так. Паутов Сергей.
сравнение идеального мира и реального не всегда устраивает вопрошающего вечных истин )))
Кандзюба Евгений, Не проявляющееся в реальности не может быть идеалом.
Возьмем простейший случай:колонка цифр и арифметические действия над ними,программа(калькулятор,грубо говоря),всегда будет выдавать правильный результат или может выдать неправильный?
Уважаемый Вадим приведу пример из практики с программой SuperCalc 4 установленной на компьютере IBM PC XT c процессором Intel 8088 и операционной системой MS DOS в далеком 1989 году. Программа прекрасно считала цифры из строчек и колонок и выполняла арифметические действия над ними. Потом перестала считать правильно и выдавала ошибку на некоторых действиях, сейчас уже не помню на каких. Когда стали выяснять и сравнили код программы с оригиналом оказалось он был изменён. Переустановили программу, однако опять примерно через месяц и программа SuperCalc и другие программы стали выдавать ошибки при работе. Всё оказалось банально просто, на компьютере лежал сильный магнит для скрепок, под которым был HDD жесткий магнитный диск. Код программы под внешним воздействием случайно изменился. Однако это уже повторение моего ответа. По этому отвечу с другой стороны. Иногда правильно - это поздно, а неправильно к месту. Далее текст из Интернета.
Вступительный экзамен по математике. Преподаватели приглашают первого абитуриента:
— Сколько будет два плюс два?
— Три! — Нет! — Пять! — Нет! — Шесть!
— Неправильно! Да… дурак, но ищущий… берем!
Заходит второй абитуриент:
— Сколько будет два плюс два?
— Три! — Нет! — Три! — Нет! — Три!
— Неправильно! Да… дурак, но настырный… берем!
Заходит третий абитуриент:
— Сколько будет два плюс два?
— Четыре, конечно!
— Да… умный. Но мест уже нет!
Это внешнее воздействие,а если его нет,Вы уверены,что две две одинаковые программы(близнецы),обрабатывая одни и те же данные,в одних и тех же условиях всегда будут выдавать один и тот же результат?
Уважаемый Вадим. Повторю ещё раз. Программа без внешнего воздействия может существовать только в теории. Для теории ответ ДА, будет работать вечно, выдавая одинаковый результат, на одинаковом массиве данных. На практике Нет, сломается либо результат рано или поздно будет не правильный. Далее без обид, посоветую вам поработать на сборочном конвейере. Во первых, там вы получите ответ на ваш вопрос. Во вторых разовьете остроту зрения, и сможете безошибочно определить среди сотни гаек-близнецов - беспартийную. Паутов Сергей.
Элементов круга в реальности не существует?
В основе расчета любой кривизны не лежит рассмотрение круга?
Какая академическая каша. Просто жуть. Программа и алгоритм - это не одно и то же. Хранение программы, выполнение программы - это разные понятия.
Исполнение программы на каком-либо языке - это ее представление в виде кода, но не сам код!
Вас не смущает, что существует фраза "на каком языке написана программа?" То есть есть программа, которая состоит из алгоритмов и она реализована на каком-то языке, потом помещена на устройство выполнения уже в машинном виде и там выполняется. Где программа, а где устройство?
Пусть будет 1 мб кода и одно сообщение об ошибке при запуске программы. Значит эта программа имеет 1 мб кода и выводит сообщение об ошибке при запуске - все. это такая программа, ни плохая, ни хорошая, ни со смыслом, не бессмысленная.
А качественная оценка в контексте цифровых технологий, это философия какая-то.
Ответу можно верить.
Простейшая арифметическая программа всегда будет выдавать правильный результат?
Может, если в ней не предусмотрена возможность изменения формата входных данных или ограничений по вводу. Например, "проблема 2000" года. Тогда действительно некоторые программы "сломались", не позволяя ввести верную дату. Так же мы постоянно видим "сломанные" программы в Windows, когда в выводе командной строки получаем кракозябры в кодировке 866
Код тоже сломается рано или поздно. Любой электронный носитель подвержен деградации.