N = int(input("Введите количество элементов в списке: "))
a = []
pl,ot,sumsch = 0,0,0
for i in range(N):
a.append(int(input()))
for i in range(0,N,2):
print(a[i],end=" ")
for i in range(N):
if a[i] > 0:
pl += 1
elif a[i] < 0:
ot += 1
print("Количество положительных элементов:",pl)
print("Количество отрицательных элементов:",ot)
for i in range(N):
if a[i] % 2 == 0:
sumsch += a[i]
print("Сумма четных элементов:",sumsch)
for i in range(N):
for j in range(N-1):
if a[j] < a[j+1]:
d = a[j]
a[j] = a[j+1]
a[j+1] = d
print("Отсортированный список:",a)
Всё просто.
Объяснение:
4
1524 (10) = 5F4 (16)
5
а) 1110 (2) + 1011 (2) = 14 (10) + 11 (10) = 25 (10) = 11001 (2);
б) 11010 (2) + 11101 (2) = 26 (10) + 29 (10) = 55 (10) = 110111 (2);
в) 1101 (2) * 101 (2) = 13 (10) + 5 (10) = 18 (10) = 10010 (2).
6
( x & -y ) ∨ ( -x & y )
0 0 0 0 0 0
0 1 1 0 1 1
1 0 1 1 0 1
0 0 1 0 0 1
begin
var F,G:file of integer;
Assign(F,'FFile.dat'); Rewrite(F);
for var i:=1 to 30 do Write(F,Random(-20,20));
// Файл F создан и заполнен
Assign(G,'GFile.dat'); Rewrite(G);
F.Seek(0);
var e:integer;
Print('F:');
while not F.Eof do begin
Read(F,e); Print(e);
if e>0 then Write(G,e)
end;
F.Seek(0);
while not F.Eof do begin
Read(F,e);
if e<0 then Write(G,e)
end;
F.Seek(0);
while not F.Eof do begin
Read(F,e);
if e=0 then Write(G,e)
end;
F.Close;
Writeln;
Print('G:');
G.Seek(0);
while not G.Eof do begin
Read(G,e); Print(e)
end;
G.Close
end.
Тестовое решение:
F: -14 15 -16 0 7 0 18 19 -12 -10 6 15 -19 -14 -15 -1 -6 -4 -20 12 10 4 3 16 -14 -20 3 10 -13 -16
G: 15 7 18 19 6 15 12 10 4 3 16 3 10 -14 -16 -12 -10 -19 -14 -15 -1 -6 -4 -20 -14 -20 -13 -16 0 0
Данное решение неоптимально по времени, поскольку файл читается трижды. Можно сделать иной вариант, читая данные за один проход и помещая в две вс структуры памяти отрицательные и нулевые элементы.
// PascalABC.NET 3.1, сборка 1204 от 24.03.2016
begin
var F,G:file of integer;
Assign(F,'FFile.dat'); Rewrite(F);
for var i:=1 to 30 do Write(F,Random(-20,20));
// Файл F создан и заполнен
Assign(G,'GFile.dat'); Rewrite(G);
var n:=F.FileSize;
var neg,zer:array of integer;
SetLength(neg,n); SetLength(zer,n);
F.Seek(0);
var e:integer;
var ineg:=0;
var izer:=0;
Print('F:');
while not F.Eof do begin
Read(F,e); Print(e);
if e>0 then Write(G,e)
else
if e<0 then begin neg[ineg]:=e; Inc(ineg) end
else begin zer[izer]:=e; Inc(izer) end
end;
F.Close;
Writeln;
SetLength(neg,ineg);
foreach e in neg do Write(G,e);
SetLength(zer,izer);
foreach e in zer do Write(G,e);
Print('G:');
G.Seek(0);
while not G.Eof do begin
Read(G,e); Print(e)
end;
G.Close
end.
Тестовое решение:
F: 7 5 -14 6 -11 -9 5 -1 5 -5 -7 -1 4 -20 17 -19 0 -3 0 6 20 1 -2 -18 9 20 0 -2 3 -13
G: 7 5 6 5 5 4 17 6 20 1 9 20 3 -14 -11 -9 -1 -5 -7 -1 -20 -19 -3 -2 -18 -2 -13 0 0 0