Исполнитель Вычислитель работает с трем командами, которым
присвоены номера:
1. Умножить на 2
2. Вычесть 1
3. Прибавить X (X неизвестное натуральное число ; Х ≥ 2)
Выполняя первую из них, Вычислитель удваивает число на экране, выполняя
вторую – уменьшает число на экране на единицу, а выполняя третью –
увеличивает число на Х. Программа для исполнителя Вычислитель – это
последовательность номеров команд. Известно, что программа 31213
переводит число 1 в число 27.
Объяснение:
Сжатие данных без потерь (англ. lossless data compression) — класс алгоритмов сжатия данных (видео, аудио, графики, документов, представленных в цифровом виде, программ на языках программирования и в машинных кодах и многих других видов данных), при использовании которых закодированные данные однозначно могут быть восстановлены с точностью до бита, пикселя, вокселя и т.д. При этом оригинальные данные полностью восстанавливаются из сжатого состояния. Этот тип сжатия принципиально отличается от сжатия данных с потерями. Для каждого из типов цифровой информации, как правило, существуют свои оптимальные алгоритмы сжатия без потерь.
Сжатие данных без потерь используется во многих приложениях. Например, оно используется во всех файловых архиваторах. Оно также используется как компонент в сжатии с потерями.
Сжатие без потерь используется, когда важна идентичность сжатых данных оригиналу. Обычный пример — исполняемые файлы и исходный код. Некоторые графические файловые форматы (например PNG) используют только сжатие без потерь, тогда как другие (TIFF, FLIF или GIF) могут использовать сжатие как с потерями, так и без потерь.
#define _USE_MATH_DEFINES
#include <iostream>
#include <math.h>
int main()
{
setlocale(LC_ALL, "rus");
double x, y, z, result;
std::cout << "Введите x,y,z: \n";
std::cin >> x >> y >> z;
result = tan(x + y) - pow(M_E, y - z) * sqrt(cos(pow(x, 2)) + sin(pow(z, 2)));
std::cout << "Результат: " << result;
}
Этот код не проверяет корректность введённых данных.
То есть если x+y будет равен π/2 или выражение под корнем будет отрицательным, будет ошибка приложения
Такой вариант с обработкой исключений
#define _USE_MATH_DEFINES
#include <iostream>
#include <math.h>
int main()
{
setlocale(LC_ALL, "rus");
double x, y, z, result, result2;
std::cout << "Введите x,y,z: \n";
std::cin >> x >> y >> z;
try
{
result2 = cos(pow(x, 2)) + sin(pow(z, 2));
if (result2 < 0) throw "подкоренное выражение меньше нуля";
if ((x + y) == M_PI_2) throw "тангенс не определён";
result = tan(x + y) * pow(M_E, y - z) * sqrt(result2);
std::cout << "Результат: " << result;
}
catch(const char* exception)
{
std::cout << "Результат не может быть вычислен поскольку " << exception;
}
}