алсу150
23.03.2020 19:01

В таблице Dat хранятся данные о количестве детских праздников, которые проводило кафе за последний год (Dat[1]-кол-во детских праздников в январе, Dat[2]-кол-во детских праздников в феврале и тд) Определите, что будет напечатано в результате выполнения следующего алгоритма

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
SERYK11
15.02.2021 12:00
Пусть b - количество быков, k - количество коров, t - количество телят.
Тогда можно составить систему уравнений

Два уравнения, три неизвестных. Придется решать перебором вариантов.
Но прямой перебор - это неинтересно. Попробуем оптимизировать.
На 100 рублей можно купить максимум 100/10=10 быков, или 100/5=20 коров, или 100/0.5=200 телят. Без телят не обойтись, даже 18 коров и бык - это 19 голов, а нужно 100. Подбирать нужное количество из 200 хуже, чем из 20 или 10, поэтому сделаем замену, чтобы избавиться от t.
Из второго уравнения следует, что t=100-b-k.    (1)
Подставим значение t в первое уравнение:
10b+5k+0.5(100-b-k)=100;
10b+5k+50-0.5b-0.5k=100;
9.5b+4.5k=50;
19b+9k=100 ⇒ k=(100-19b)/9    (2)
Укрупненный алгоритм:
Перебираем b от 0 до 9 (10 нельзя, истратим все 100 рублей, а телят покупать надо!).
Для каждого b находим k по формуле (2). Если оно целочисленное, находим t по формуле (1). Решение найдено. Иначе перебор продолжается.

var
  b,k,t:integer;
  v:real;
    
begin
  for b:=0 to 9 do
    if (100-19*b) mod 9=0 then begin
      k:=(100-19*b) div 9;
      t:=100-b-k;
      Writeln('Быков ',b,', коров ',k,', телят ',t);
      break
      end;
end.

Решение
Быков 1, коров 9, телят 90
0,0(0 оценок)
Ответ:
89681355832
07.11.2021 16:14
Const
   N = 6;
   M = 7;
Var
   A:array[1..N,1..M] of integer;
   i,j,k,MM,B:integer;
Begin
Randomize;
WriteLn('Исходный массив:');
For i:= 1 to N do
    Begin
    For j:= 1 to M do
        Begin
        A[i,j]:=random(21)-10;
        Write(A[i,j]:3,' ')
        End;
    WriteLn
    End;
WriteLn;
WriteLn('Отсортированный массив:');
For i:= 1 to N do
    Begin
    For j:= 1 to M do
        Begin
        MM:=j;
        if i mod 2 = 0 then
           Begin
           For k:= j+1 to M do
               if A[i,MM] > A[i,k] then MM:=k
           End
        else
           For k:= j+1 to M do
               if A[i,MM] < A[i,k] then MM:=k;
        B:=A[i,MM];
        A[i,MM]:=A[i,j];
        A[i,j]:=B;
        Write(A[i,j]:3,' ')
        End;
    WriteLn
    End
End.

Пример работы программы:

Исходный массив:
  9  -5   6   0  -9   0   9
  3  -9  -4  10  -8  10   3
 -2   1   2   3   3   0  10
-10   1   8  -3  -4  -3   4
 -9  -7  -3  -9   2  -1  -3
  7 -10  10  -3   4  10   0

Отсортированный массив:
  9   9   6   0   0  -5  -9
 -9  -8  -4   3   3  10  10
 10   3   3   2   1   0  -2
-10  -4  -3  -3   1   4   8
  2  -1  -3  -3  -7  -9  -9
-10  -3   0   4   7  10  10
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота