LilauSen
13.04.2021 16:22

Help pls
Задание на скриншоте,
a=12

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
VIDJER
08.05.2021 19:49
Type tbank=record
name:string;
curs:real;
end;
var banks:array[1..15] of tbank;
max,dollars:real;
i,mi:longint;
Begin
Write('You have: ');
readln(dollars);
for i:=1 to 15 do Begin
Write('Bank name: ');
readln(banks[i].name);
write('Curs: ');
readln(banks[i].curs);
end;
max:=dollars*banks[1].curs;
mi:=1;
for i:=2 to 15 do
Begin
if(dollars*banks[i].curs>max) then Begin
max:=dollars*banks[i].curs;
mi:=i;
end;
end;
writeln('Best bank name: ',banks[mi].name,', curs is :',banks[mi].curs:2:2,', we will get: ',max:2:2,', rub.');
end.
0,0(0 оценок)
Ответ:
matveq888
25.09.2021 19:41
Привет, код задачи приведен ниже
1. Отметь ответ как лучший (поставь 5 звезд).
2. Нажми кнопочку " " тут и в моем аккаунте

(За 8 былов такое никто не делает кроме меня будь благодарен в ответ)

Код прокомментирован, за дополнительными вопросами или информацией
* Обращайся в комментарии, я отвечу на вопросы.
* Зайди ко мне в профиль, в моих записях ты найдешь ссылки на полезные ресурсы.

FILE: CFraction.hpp

#ifndef CFRACTION_HPP
#define CFRACTION_HPP

//Это класс дроби, тут мы храним чеслитель, знаменатель и функцию nesokr().
class CFraction
{
   public:

      CFraction();   //Конструктор класа

      //"Геттеры" класса для получения значений приватных полей
      const unsigned int& getNumerator() const;
      const unsigned int& getDenumerator() const;

      //"Сеттеры" класса для задани значений приватным полям
      void setNumerator(const unsigned int& value);
      void setDenumerator(const unsigned int& value);

      //Функция заданная по заданию для сокращения дроби
      void nesokr();

   private:

      //Функция реализующая поиск найбольшего общего делителя по алгоритму Евклида
      const unsigned int getGreatestCommonDivisor() const;
      //Функция проверяющая, есть ли необходимость искать НОД
      const bool isRequireCalculationGCD() const;

   private:

      unsigned int mFirst;    //Поле для числителя
      unsigned int mSecond;   //Поле для знаменателя
};

#endif //CFRACTION_HPP

FILE: CFraction.cpp

#include "CFraction.hpp"

CFraction::CFraction()
: mFirst(0)    //Числитель инициализируем нулем
, mSecond(1)   //Знаменатель по умолчанию инициализируем единицей
{

}

//Возращение значений происходит по константной ссылке.
//Благодаря этому избегается копирование переменной,
//а так же её модификация по ссылке.
const unsigned int& CFraction::getNumerator() const
{
   return mFirst;
}

//Функция имеет в конце себя слово const сигнализирующее компилятору,
//что метод не модифицировать поля класса.
const unsigned int& CFraction::getDenumerator() const
{
   return mSecond;
}

//Передача аргумента в функцию так же реализуется по константной ссылке,
//из тех же соображений что и возращение поля по константной ссылке.
void CFraction::setNumerator(const unsigned int& value)
{
   mFirst = value;
}

void CFraction::setDenumerator(const unsigned int& value)
{
   //Проверяем значение на 0, знаменатель не может быть равнм нулю.
   //Значение не проверяется на знак отрицания, по тому, что везде используется
   //беззнаковый целочисленный тип данных unsigned int.
   if (0 != value)
   {
      mSecond = value;
   }
}

void CFraction::nesokr()
{
   //Если есть необходимость проводить расчёты и сокращать дробь, то
   //находим НОД и делим на него чеслитель и знаменатель.
   if ( isRequireCalculationGCD() )
   {
      unsigned int greatestCommonDivisor = getGreatestCommonDivisor();

      mFirst /= greatestCommonDivisor;
      mSecond /= greatestCommonDivisor;
   }
}

const bool CFraction::isRequireCalculationGCD() const
{
   //Проверяем, не является, ли знаменатель равным единице,
   //иначе нет смысла проводить безсмысленную работу, т.к. в любом случаи НОД
   //будет единица, то же самое делаем с числителем.
   return ( (1 != mSecond || 1 != mFirst) || (1 != mSecond && 1 != mFirst) );
}

const unsigned int CFraction::getGreatestCommonDivisor() const
{
   //Алгоритм поиска НОД называется алгоритмом Евклида
   unsigned int remainder(1);

   //Для его реадизации берем два числа и выделяем из них большее и меньшее.
   unsigned int gretestNumber = (mFirst > mSecond ? mFirst : mSecond);
   unsigned int leastNumber   = (mFirst < mSecond ? mFirst : mSecond);

   while (0 != remainder)
   {
      remainder = gretestNumber % leastNumber;

      //Если остаток деления большего на меньшее равен нулю,
      //то НОД является меньшее из этих чисел
      if (0 != remainder)
      {
         //Если же остаток не равен нулю,
         //то большим числом становится предыдущее меньшее,
         //а меньшим становится остаток от леления.
         gretestNumber = leastNumber;
         leastNumber   = remainder;
      }
   }

   return leastNumber;
}

FILE: main.cpp

#include <iostream>
#include "CFraction.hpp"

int main()
{
   CFraction example;
   
   example.setNumerator(15);
   example.setDenumerator(255);
   
   std::cout << "Fraction before simplification:" << std::endl;
   std::cout << "Fraction numerator:   " << example.getNumerator() << std::endl;
   std::cout << "Fraction denumerator: " << example.getDenumerator() << std::endl;
   
   example.nesokr();
   std::cout << "" << std::endl;
   
   std::cout << "Fraction after simplification:" << std::endl;
   std::cout << "Fraction numerator:   " << example.getNumerator() << std::endl;
   std::cout << "Fraction denumerator: " << example.getDenumerator() << std::endl;

   return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота