ruslanchikagadzhanov
?>

с задачей: Имеется 33 одинаковых на вид монет, из которых одна фальшивая (легче настоящих) и чашечные время. Каждую монету разрешается класть на весы не более двух раз. За какое минимальное время взвешиваний можно определить фальшивую монету? Каким образом? очень

Информатика

Ответы

yurovolga

Ағылшын

Объяснение:

1234567891011121314151517181920

Vuka91
  Только решу задачку - Интер вырубается

А получилось вот что:

uses Crt;
const N=30;
type Mas=array [1..N]  of integer;
 var i, j , SumPol, SumOtr: integer;
     A: Mas;
begin
 ClrScr;
 SumPol:=0;
 SumOtr:=0;
  WriteLn(' Sposob 1:');
  WriteLn;
 for i:=1 to N do
     begin
          A[i]:=-10+random(21);
          Write (A[i]:4);
     end;
 WriteLn;
 for i:=1 to N do
 begin
       if (A[i]>0) then SumPol:=SumPol+A[i];
       if (A[i]<0) then SumOtr:=SumOtr+A[i];
 end;
 WriteLn(' SumPol =', SumPol);
 WriteLn(' SumOtr =', SumOtr);
 WriteLn;
 WriteLn (' Sposob 2:') ;
 SumPol:=0;
 SumOtr:=0;
 i:=1;
 repeat
   if (A[i]>0) then SumPol:=SumPol+A[i];
   if (A[i]<0) then SumOtr:=SumOtr+A[i];
   i:=i+1;
 until i>30;
 WriteLn(' SumPol =', SumPol);
 WriteLn(' SumOtr =', SumOtr);
 ReadLn;
end.
Сергеевич
{uses Crt;}
{Для древних сред Паскаль, работающих в DOS-режиме, снять комментарии
 в операторах uses, ClrScr, ReadKey }
const
  n = 9;
var
  x: array[1..n, 1..n] of real;
  y: array[1..n*(n-1) div 2] of real;
  i, j, k: integer;
  max, min, d: real;

begin
  Randomize;
  {ClrScr;}
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    for j := 1 to n do
    begin
      x[i, j] := 100*Random - 50;
      Write(x[i, j]:4:0)
    end;
    Writeln
  end;
  { задание 1 }
  k:=0;
  for i:=2 to n do
    for j:=1 to i-1 do
      if x[i,j]<0 then begin Inc(k); y[k]:=x[i,j] end;
  Writeln('Сформированный одномерный массив');
  for i:=1 to k do Write(y[i]:4:0);
  Writeln;
  { задание 2 }
  max:=y[1]; min:=max;
  for i:=2 to k do
    if y[i]>max then max:=y[i]
    else
      if y[i]<min then min:=y[i];
  d:=max-min;
  i:=1;
  while (abs(y[i])<=d) and (i<=k) do Inc(i);
  if i<=k then
    begin d:=y[1]; y[1]:=y[i]; y[i]:=d end;
  Writeln('Результирующий одномерный массив');
  for i:=1 to k do Write(y[i]:4:0);
  Writeln;
  {ReadKey}
end.

Тестовое решение:
Исходный массив
  37 -45 -17 -26  -6 -22  -1 -33  -3
 -27  33 -15 -14  33  37  28 -12 -36
   1  14  48  -2 -43  -1  17  34  -7
 -11  45  -5 -16  32  -8  32  -1 -40
  18  43 -13 -28  30  45  44 -38 -28
  38   0  10  48  28 -43 -12 -29 -44
   2 -11  48  33   7  10  35 -40 -28
 -48  39 -49  42   5 -16  26 -40  -5
  27 -21  34 -46   4  45 -22  29 -16
Сформированный одномерный массив
 -27 -11  -5 -13 -28   0 -11 -48 -49 -16 -21 -46 -22
Результирующий одномерный массив
 -49 -11  -5 -13 -28   0 -11 -48 -27 -16 -21 -46 -22

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

с задачей: Имеется 33 одинаковых на вид монет, из которых одна фальшивая (легче настоящих) и чашечные время. Каждую монету разрешается класть на весы не более двух раз. За какое минимальное время взвешиваний можно определить фальшивую монету? Каким образом? очень
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

cutur3414
antongenfon
shakmeev
cochana
Оксана170
yuklimochkina3
juliavovo
tip36
Vladimir1172
Nikolaevich824
gub191025
zmlavra
ЕленаГерасимова
mir5552
gabbro19975650