М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
TN02122002
TN02122002
01.08.2022 09:47 •  Информатика

Составить алгоритм решения следующей : сколько можно купить быков,коров и телят,платя за быка 10р,за корову -5р,а за телёнка -0.5р,если на 100 рублей надо купить 100 голов скота?

👇
Ответ:
Zhanna278
Zhanna278
01.08.2022
Пусть 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
4,4(78 оценок)
Открыть все ответы
Ответ:
kutirev123p
kutirev123p
01.08.2022
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>

int main() {
   double a, b, y;
   int x;

   a = 6.72f;
   b = 4.85f;
   printf("vvedite x=");
   scanf("%d", &x);

   switch (x) {
       case 1: y = 1 + sqrt(a + abs(x)); break;
       case 7: y = 2 + a*a*x*x + exp(x); break;
       case 5: y = x*sqrt(1+b*log(a*a*x)); break;
       default:
          printf("znachenie x zadano neverno\n");
          printf("nagmi Enter\n");
          getch();
          return 0;
   }

   printf("x=%2dy=%5.2lf", x, y);
   getch();
   return 0;
}
4,5(26 оценок)
Ответ:
11UmNiK111
11UmNiK111
01.08.2022
#include <cstdlib>#include <iostream>#include <iomanip>#include <cmath>
using namespace std;
int main(){    setlocale(0, "");    double x, y, a, b, xk, xn, dx;    a = 1.4;    b = 2.5;    cout << "Ââåäèòå xn,xk, dx = " << endl;    cin >> xn; cin >> xk; cin >> dx;    x = xn;    cout << "Tabl" << endl;    cout << "+-----------+" << endl;    cout << "¦ x ¦ y ¦" << endl;    while (x <= xk)          {             y = (log10(a*x*x+b))/(a*x+1);             cout << "+-----+-----¦" << endl;             cout.setf(ios::fixed);             cout.precision(3);             cout << "¦" << x << "¦"<< y << "¦" << endl;             x = x + dx;          }    cout << "+-----------+";    system("pause");}
Переделать программу паскаль в си program lab3; var x,y,a,b,xk,xn, dx: real; begin a: =1.4; b: =2.5;
4,7(41 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ