Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2020, 16:44   #1
Randy4k
Пользователь
 
Регистрация: 26.11.2019
Сообщений: 20
По умолчанию Решить уравнения

Сделал проверку но ответ не правильный
Может где-то есть ошибка , помогите
Код:
#include <iostream>
#include <clocale>
using namespace std;
int main()
{
	cout << "Enter number";
	int a, c, b, d, x;
	cin >> a;
	cin >> b;
	cin >> c;
	cin >> d;
	x = (a << 5) + (a << 1) + (a << 3) + (a << 1) + (c << 4)- (c >> 2) >> 8 - (b << 50) + (b << 8) - (b >> 2) + (d << 10) + (d << 6) + (d >> 3) - (c << 3) + (c << 3);
		cout << "Result=" <<x; 
	return 0;
}
Изображения
Тип файла: png unknown.png (3.6 Кб, 36 просмотров)
Randy4k вне форума Ответить с цитированием
Старый 02.12.2020, 17:26   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Сдвиг на 8, это деление на 256, а не 64. Не хватает скобок. d ни на что не делится в формуле, а у вас есть d с правым сдвигом.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.12.2020, 18:37   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от Randy4k Посмотреть сообщение
x = (a << 5) + (a << 1) + (a << 3) + (a << 1) + (c << 4)- (c >> 2) >> 8 - (b << 50) + (b << 8) - (b >> 2) + (d << 10) + (d << 6) + (d >> 3) - (c << 3) + (c << 3);
А это вообще зачем так? Препод требует, или кто-то прикололся, кто вам эту задачу делал?
Arigato вне форума Ответить с цитированием
Старый 02.12.2020, 21:10   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Уж сколько раз твердили миру: здесь не "решить уравнение", а "вычислить выражение" . Решить уравнение
f(x) = 0 - это найти такое значение x, при котором выражение обращается в тождество 0=0 .
3x-12 = 0;
x = 12/3 = 4.
Алгебра, 4-й класс (или теперь, может, уже 2-й?)
А что, кроме сдвигов этот автомат Тьюринга ничего не умеет? Банальное умножение/деление уже вне закона?

Последний раз редактировалось digitalis; 02.12.2020 в 21:15.
digitalis вне форума Ответить с цитированием
Старый 02.12.2020, 22:49   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Банальное умножение/деление уже вне закона?
Оно медленней сдвига
waleri вне форума Ответить с цитированием
Старый 03.12.2020, 11:05   #6
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

При (современном развитии печатного дела на Западе ©) современных скоростях процессоров выиграть несколько микросекунд - такие пустяки, за которые нет и речи. Кстати, не факт, что умный компилятор не заменит деление на 256 сдвигами. Или даже SWAP

Последний раз редактировалось digitalis; 03.12.2020 в 17:17.
digitalis вне форума Ответить с цитированием
Старый 03.12.2020, 12:19   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
умный компилятор
Так я поэтому смайлик и поставил на конце...
waleri вне форума Ответить с цитированием
Старый 04.12.2020, 07:16   #8
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Цитата:
Сообщение от Randy4k Посмотреть сообщение
Может где-то есть ошибка
выражение нужно записать математически с использованием человеческого умножения и деления.
Компилятор сам сделает сдвиги, если сочтёт нужным, зато отлаживать приятно. В итоге сделать будет легко, а работать будет быстрее
Алексей1153 вне форума Ответить с цитированием
Старый 04.12.2020, 11:10   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Ну а ежели ему в задании такое дали? Задания для стьюдней иногда поражают своей нелогичностью и вычурностью. "Вот это и это - не использовать. Забивать гол только пяткой левой ноги"
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача вычисления уравнения с использованием сопроцессора. Помогите решить.. snapsik Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 02.01.2019 21:42
Маткад решить уравнения варинт№2 задание 2.1 и 2.2 Пророк 79 Помощь студентам 1 21.04.2017 21:16
Mathcad Решить дифференциальные уравнения и построить график. Kuboslav12 Фриланс 1 22.03.2017 18:41
решить нелинейное уравнение методом секущих (хорд). Нелинейные уравнения (Lazarus) Loonas Lazarus, Free Pascal, CodeTyphon 2 24.04.2014 21:45
Решить систему уравнения методом Гаусса,применяя схему единственного деления Капризуля Помощь студентам 1 04.06.2013 15:15