Міркуючи логічно, ви можете включити одну лампу, другу вимкнути, а ось що робити з третьої - незрозуміло. Станів лампи всього два: або «включена», або «вимкнена». Найпопулярніший б вирішення полягає в тому, щоб в якості третьої стану додати поділ ламп на «теплі» і «холодні». Потрібно почекати якийсь час, щоб лампи охололи на випадок, якщо вони недавно включалися. Потім включити одну для нагрівання. Вимкнути її назад і включити будь-яку іншу. Зайшовши після цього в кімнату одна лампа буде горіти, друга виключена і холодна, третя виключена і гаряча. Інший варіант додати лампам стан «перегоріла», якщо є можливість подати на перемикач більшу напругу, ніж потрібно. Дальше действовать аналогічно попередньої схеми.
function IsPositive(a:integer):boolean; begin result:=(a>-1); end;
procedure work; var min, max, count:integer; begin count:=0; min:=m[0]; max:=0; for i:=0 to 14 do begin if IsPositive(m[i]) then begin inc(count); if m[i]>max then max:=m[i]; if m[i]<min then min:=m[i]; end; end; writeln('MAX: ', max); writeln('MIN: ', min); writeln('Count: ', count); end;
begin for i:=0 to 14 do begin write('n: '); readln(m[i]); end;
Відповідь:
Міркуючи логічно, ви можете включити одну лампу, другу вимкнути, а ось що робити з третьої - незрозуміло. Станів лампи всього два: або «включена», або «вимкнена». Найпопулярніший б вирішення полягає в тому, щоб в якості третьої стану додати поділ ламп на «теплі» і «холодні». Потрібно почекати якийсь час, щоб лампи охололи на випадок, якщо вони недавно включалися. Потім включити одну для нагрівання. Вимкнути її назад і включити будь-яку іншу. Зайшовши після цього в кімнату одна лампа буде горіти, друга виключена і холодна, третя виключена і гаряча. Інший варіант додати лампам стан «перегоріла», якщо є можливість подати на перемикач більшу напругу, ніж потрібно. Дальше действовать аналогічно попередньої схеми.
Пояснення:
var m:array [0..14] of integer; i:integer;
function IsPositive(a:integer):boolean;
begin
result:=(a>-1);
end;
procedure work;
var min, max, count:integer;
begin
count:=0;
min:=m[0];
max:=0;
for i:=0 to 14 do begin
if IsPositive(m[i]) then begin
inc(count);
if m[i]>max then max:=m[i];
if m[i]<min then min:=m[i];
end;
end;
writeln('MAX: ', max);
writeln('MIN: ', min);
writeln('Count: ', count);
end;
begin
for i:=0 to 14 do begin
write('n: ');
readln(m[i]);
end;
work;
readln;
end.