В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
егорка93
егорка93
03.05.2023 18:50 •  Информатика

Создайте программу, которая должна вычислять наибольшее из трёх чисел: var a, b: integer;
begin
read('a = '); read(a);
write('b = '); write(b);
read('c = '); read(c);
if a > b then M:=a
else M:= b; end;
if c> b then M:=b
else M:= c; end;
writeln(M);
end.
Выполните отладку программы:
исправьте синтаксические ошибки
определите ситуации, когда она работает неверно
исправьте логические ошибки.

Показать ответ
Ответ:
Минька1
Минька1
30.04.2023 21:47
Привет, код задачи приведен ниже
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 оценок)
Ответ:

16 бит

Объяснение:

I = t * f * i * k, где  

I - информационный объём аудио файла (размер файла, содержащего запись звука)

t - общая длительность звучания (секунды)

f - частота дискретизации (Гц, количество значений амплитуды звука, фиксируемых за одну секунду)

i - глубина звука (разрешение) (число бит, используемых для хранения каждого измеренного значения)

k -  количество каналов записи (1 - моно, 2 - стерео и т.д.)

Дано:

k = 1

f = 10 240 Гц

t = 3 сек

I = 60 Кбайт = 491 520 бит

Найти:

i

I = t * f * i * k

i = I / (t * f * k)

i = 491 520 / (3 * 10 240 * 1) = 491 520 / 30 720 = 16 бит

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