Задача 1.Разделим монеты на 3 кучки по 9 монет. Положим на чаши весов первую и вторую кучки; по результату этого взвешивания мы точно узнаем, в какой из кучек находится фальшивка (если весы покажут равенство, то она - в третьей кучке). Теперь, аналогично, разделим выбранную кучку на три части по три монеты, положим на весы две из этих частей и определим, в какой из частей находится фальшивая монета. Наконец, остается из трех монет определить более тяжелую; кладем на чаши весов по 1 монете -фальшивкой является более тяжелая; если же на весах равенство, то фальшивой является третья монета из части.
Задача 2. 1). Наполняем (4), переливаем в (3), в (4) остался 1л. 2). Выливаем из (3), переливаем из (4) в (3), теперь в (3) 1л 3). Наполняем (4) и переливаем в (3) до заполнения. т.е. 2л. В (4) останется 4-2=2л.
Uses crt; const q=1000;var a:array[1..q,1..q]of integer; m,n,i,j,c,k,buf:integer; b:array[1..q]of integer; begin writeln('n,m ?') ; readln(n,m); writeln('как заполнять матрицу ?'); writeln(' Нажмите 1 при датчика, 2 - ввод с клавиатуры'); {выбор действия при заполнении} readln(c); case c of 1:for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end; 2: begin for i:=1 to n do begin for j:=1 to m do readln(a[i,j]); end; clrscr; for i:=1 to n do begin for j:=1 to m do write(a[i,j]:4); writeln; end; end; end; writeln('формирование массива'); for i:=2 to n do begin if i mod 2=0 then for j:=1 to m do if a[i,j]>2 then begin k:=k+1; b[k]:=a[i,j]; end; end; writeln; for i:=1 to k do write(b[i]:4); writeln; {сортировка} for i:=1 to k -1 do for j:=i+1 to k do if b[i]<b[j]then begin buf:=b[i]; b[i]:=b[j]; b[j]:=buf; end; {вывод массива} for i:=1 to k do write(b[i]:4); end.
Задача 2. 1). Наполняем (4), переливаем в (3), в (4) остался 1л.
2). Выливаем из (3), переливаем из (4) в (3), теперь в (3) 1л
3). Наполняем (4) и переливаем в (3) до заполнения. т.е. 2л.
В (4) останется 4-2=2л.
const
q=1000;var
a:array[1..q,1..q]of integer;
m,n,i,j,c,k,buf:integer;
b:array[1..q]of integer;
begin
writeln('n,m ?') ;
readln(n,m);
writeln('как заполнять матрицу ?');
writeln(' Нажмите 1 при датчика, 2 - ввод с клавиатуры');
{выбор действия при заполнении}
readln(c);
case c of
1:for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(100);
write(a[i,j]:4);
end;
writeln;
end;
2:
begin
for i:=1 to n do
begin
for j:=1 to m do
readln(a[i,j]);
end;
clrscr;
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:4);
writeln;
end;
end;
end;
writeln('формирование массива');
for i:=2 to n do
begin
if i mod 2=0 then
for j:=1 to m do
if a[i,j]>2 then
begin
k:=k+1;
b[k]:=a[i,j];
end;
end;
writeln;
for i:=1 to k do
write(b[i]:4);
writeln;
{сортировка}
for i:=1 to k -1 do
for j:=i+1 to k do
if b[i]<b[j]then
begin
buf:=b[i];
b[i]:=b[j];
b[j]:=buf;
end;
{вывод массива}
for i:=1 to k do
write(b[i]:4);
end.