N - количество чисел в последовательности, i - для организации цикла for, x - очередное число из последовательности В начале задаем значение max = 0, потому что рассматриваем последовательность натуральных чисел ( 1 и больше), то есть первое же натуральное четное будет записано в max В конце выводим ьфч только если он не равен нулю, тоесть в последовательности было натуральное четное число! program z1;var n, i, x, max: integer;beginmax := 0;readln(n);for i := 1 to n dobegin read(x); if (x mod 2 = 0) and (x > max) then max := x;end;if max > 0 then writeln(max) else writeln ('Не таких чисел');end.
// Использование указателей для создания односвязного списка // Сделано на базе демонстрационного примера PascalABC.Net // // PascalABC.NET 3.2, сборка 1325 от 19.10.2016 type PNode=^TNode; TNode=record data:integer; next:PNode; end;
function NewNode(d:integer;n:PNode):PNode; begin New(Result); Result^.data:=d; Result^.next:=n; end;
procedure WriteNode(a:PNode); // Вывод односвязного списка begin Writeln('Содержимое односвязного списка: '); var p:=a; while p<>nil do begin Write(p^.data,' '); p:=p^.next; end; Writeln end;
function SeekNode(k:integer;a:PNode):PNode; // Поиск элемента со значением k в списке begin var p:=a; Result:=Nil; while p<>nil do begin if p^.data=k then begin Result:=p; break end; p:=p^.next end end;
function PredNode(a,f:PNode):PNode; // Поиск предшественника f среди a begin var p:=a; while p^.next<>f do p:=p^.next; Result:=p end;
procedure Clear(a:pNode); // Разрушение односвязного списка begin var p:=a; while p<>nil do begin var p1:=p; p:=p^.next; Dispose(p1); // Память обязательно возвращать end end;
var first,found,father,grandfather,greatgrandfather:PNode;
begin Randomize; first:=nil; for var i:=1 to 10 do first:=NewNode(Random(100),first); WriteNode(first); // первоначальное состояние списка var k:=ReadInteger('Введите число для поиска в списке'); found:=SeekNode(k,first); if found<>nil then begin father:=PredNode(first,found); // отец grandfather:=PredNode(first,father); // дед greatgrandfather:=PredNode(first,grandfather); // прадед greatgrandfather^.next:=father; Writeln('Элемент ',grandfather^.data, ' удален'); Dispose(grandfather); WriteNode(first); k:=ReadInteger('Введите число для вставки'); father^.next:=NewNode(k,found); WriteNode(first); end else Writeln('Такого числа в списке нет'); Clear(first) end.
Пример Содержимое односвязного списка: 11 75 44 86 88 83 92 18 4 23 Введите число для поиска в списке 88 Элемент 44 удален Содержимое односвязного списка: 11 75 86 88 83 92 18 4 23 Введите число для вставки 40 Содержимое односвязного списка: 11 75 86 40 88 83 92 18 4 23
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку