Пробное ЕГЭ. Рассудите пожалуйста.
Максимальное число 16-бит INTEGER это "32767", следующее значение 32768 это уже будет "-32768" это легко проверить на стандартном калькуляторе.
- Реклама
В задании сказано:Как минимум, в массиве есть один элемент,удовлетворяющий всем условиям))) Ну разобраться-в середине темы разобралиськошка Муся писал(а):Не буду придираться к оформлению и что макс integer 32768.
1 Подумайте, что выдаст прога, если все числа в массиве или неположительные, или оканчиваются на 7.
2 Не факт, что первое число массива -положительно
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....
- Сообщения: 27069
- Зарегистрирован: Пн фев 09, 2009 22:19:49
- Откуда: Когда-то был прекрасный город для людей
Знаете, ведь по курсу информатики интересует не собственно реализация программного кода, а алгоритма решения.
И вот с этой стороны вопроса меня, как преподавателя вуза, предложенный алгоритм совершенно не устраивает.
Это ведь задача на метод простой сортировки, с дополнительным условием, что в решении то и упущено ( это на догадливость тест еще сюда включен), так что в результате алгоритм стал зависим от реализации языка программирования, транслятора, ОпСист и набора исходных данных.
А на пятерку требуется предложить метод, который работал бы везде и всегда. Что полностью отсутствует. Итого - двойка.
В основном из-за 32768.
И вот с этой стороны вопроса меня, как преподавателя вуза, предложенный алгоритм совершенно не устраивает.
Это ведь задача на метод простой сортировки, с дополнительным условием, что в решении то и упущено ( это на догадливость тест еще сюда включен), так что в результате алгоритм стал зависим от реализации языка программирования, транслятора, ОпСист и набора исходных данных.
А на пятерку требуется предложить метод, который работал бы везде и всегда. Что полностью отсутствует. Итого - двойка.
В основном из-за 32768.
Это всё понятно. Но вот решение как алгоритм для мелких МК - просто отлично. Ни тебе дополнительных переменных-флагов, ни лишних сравнений. Там, где компактность кода главнее переносимости - вполне сойдет. Я периодически провожу собеседования по поводу приёма на работу, если бы соискатель составил бы так алгоритм, а потом ещё и прокомментировал вред "магических констант", он бы у меня 100% прошел бы 
In theory, theory and practice are the same. In practice, they're not.
- Сообщения: 3782
- Зарегистрирован: Чт янв 26, 2012 14:44:34
Можно решить задачу и так:
Код: Выделить всё
Program C2;
const N=70;
var a:array [1..N] of Integer; i,m,j:Integer;
BEGIN
for i:=1 to N do readln(a[i]);
m:=-1;
for i:=1 to N do
if ((a[i]>0) and (a[i] mod 10<>7))
then if ((a[i]<m) or (m<0)) then m:=a[i];
if m<0 then writeln("Неверные входные данные") else writeln(m);
END.Like the eyes of a cat in the black and blue...
- Реклама

