Совершенно нет, рассмотрим такую вот программу:К примеру программа должна определять, является ли число положительным, предположим что имеется такая функция:
boolian isNumberMoreThenZero(integer num) //функция булевая, т.е. //возращает одно из значений - true/false, принемает на вход число { boolian result; //есть переменная хранящая результат, //или ответ если пожелаете
result = false; //по умолчанию он равен false
if (num <= 0) //тут к примеру ОШИБКА, //проверяем является ли число больше либо равно 0 //(мы допустили ошибку и указали меньше)
{ result = true; //если да, то число положительное и ответ true } return result; //вернуть значение }
Если на входных данных будет 0 - он является положительным числом, программа выведет true - что является правильным ответом.Но если мы введем любое отрицательное число, то ответ так же будет true - что является ошибкой.Подай на вход мы положительное число, то программа выведет false - и это ошибка. Вывод такой:Функция функционирует правильно в часных случаях, к примеру как с 0, однако в других случаях она не вывести правельный ответ.Проще говоря, просто подтверждаем ответ на ваш вопрос - "НЕТ, программа не будет правильно функционировать в целом, а лишь в частных случаях".Производный вопрос - а как этого избежать? ответ: покрыть код программы и все её логические блоки - тестами.
// PascalABC.NET 3.3, сборка 1549 от 17.10.2017 // Внимание! Если программа не работает, обновите версию!
begin var r:=Range(100,1000); Writeln('Сумма четных: ',r.Where(x->x.IsEven).Sum); Writeln('Произведение нечетных: ', r.Where(x->x.IsOdd).Aggregate(BigInteger(1),(x,y)->x*y)) end.
Результат Сумма четных: 248050 Произведение нечетных: 36966544481545882391823230067805385433230065368829576574915631961875951438749314875520891958773465683198309929571713227368698968335498279329362186811130459340459701708143628528300666430241499963363995156875472920823879073796270530674091365457301367694608396460427864525856348256854709381753098272866558646536629626322781887765489939455189437187612366035802205337138797639784505362746964525946343706655765053639253274426077913592271079783658672906924798929301517243147811305368104203869922649498420017010079861449087671086945458864075701800348571856363660191891005745473487285185093263826285985161291672009840401500648116978749473368664914039649974635642316727953613512087059513022266150683907968562889468475751462634414790601916842157202699257750637933476610759209266207736659346632336154863491811161547515391373090783158239924403943495793328563207072814564054863234093687597907376741512012744430337566475185020879095658879920498365311358232252688878619532793045747038932448911025039177711271956296398164256480905110102487991832871736322981910580412208741937654427051439114361588088330674072568693330290186189385005707253104742148887065855866777951156097027659674751631779798799470881931483745574951171875
boolian isNumberMoreThenZero(integer num) //функция булевая, т.е.
//возращает одно из значений - true/false, принемает на вход число
{
boolian result; //есть переменная хранящая результат,
//или ответ если пожелаете
result = false; //по умолчанию он равен false
if (num <= 0) //тут к примеру ОШИБКА,
//проверяем является ли число больше либо равно 0
//(мы допустили ошибку и указали меньше)
{
result = true; //если да, то число положительное и ответ true
}
return result; //вернуть значение
}
Если на входных данных будет 0 - он является положительным числом, программа выведет true - что является правильным ответом.Но если мы введем любое отрицательное число, то ответ так же будет true - что является ошибкой.Подай на вход мы положительное число, то программа выведет false - и это ошибка.
Вывод такой:Функция функционирует правильно в часных случаях, к примеру как с 0, однако в других случаях она не вывести правельный ответ.Проще говоря, просто подтверждаем ответ на ваш вопрос - "НЕТ, программа не будет правильно функционировать в целом, а лишь в частных случаях".Производный вопрос - а как этого избежать? ответ: покрыть код программы и все её логические блоки - тестами.
// Внимание! Если программа не работает, обновите версию!
begin
var r:=Range(100,1000);
Writeln('Сумма четных: ',r.Where(x->x.IsEven).Sum);
Writeln('Произведение нечетных: ',
r.Where(x->x.IsOdd).Aggregate(BigInteger(1),(x,y)->x*y))
end.
Результат
Сумма четных: 248050
Произведение нечетных: 36966544481545882391823230067805385433230065368829576574915631961875951438749314875520891958773465683198309929571713227368698968335498279329362186811130459340459701708143628528300666430241499963363995156875472920823879073796270530674091365457301367694608396460427864525856348256854709381753098272866558646536629626322781887765489939455189437187612366035802205337138797639784505362746964525946343706655765053639253274426077913592271079783658672906924798929301517243147811305368104203869922649498420017010079861449087671086945458864075701800348571856363660191891005745473487285185093263826285985161291672009840401500648116978749473368664914039649974635642316727953613512087059513022266150683907968562889468475751462634414790601916842157202699257750637933476610759209266207736659346632336154863491811161547515391373090783158239924403943495793328563207072814564054863234093687597907376741512012744430337566475185020879095658879920498365311358232252688878619532793045747038932448911025039177711271956296398164256480905110102487991832871736322981910580412208741937654427051439114361588088330674072568693330290186189385005707253104742148887065855866777951156097027659674751631779798799470881931483745574951171875