• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите, пожалуйста решить в С++

DeviL_Hell99

Ученик
Регистрация
5 Окт 2017
Сообщения
11
Реакции
0
Баллы
0
Помогите, пожалуйста решить в С++

Даны действительные числа.Верно ли ,что |a1b2-a2b1|>=0.0001,и если верно , то найти решение системы уравнений
a1x+b1y+c1=0
a2х+b2y-c2=0
 
Даны действительные числа.Верно ли ,что |a1b2-a2b1|>=0.0001,и если верно , то найти решение системы уравнений
a1x+b1y+c1=0
a2х+b2y-c2=0

Сразу скажу, если a1=b2, a2=b1 тогда выходит: |a1b2-a2b1|=0. Т.е. уже первое утверждение не верно.
 
Дубликаты удалил, не думайте, что размещение множества однотипных тем в разных разделах вы ускорите решение вашего вопроса.

Сразу скажу, если a1=b2, a2=b1 тогда выходит: |a1b2-a2b1|=0. Т.е. уже первое утверждение не верно
С чего вы это взяли?

В условии модуль. Модуль этот раскрывается как система из двух неравенств:
a1b2-a2b1>=0,0001 ИЛИ a2b1-a1b2>=0,0001

Алгоритм решения следующий:

Запрашиваем коэффициенты.
При соблюдении истинности системы неравенств (структура IF со сложным условием) приступаем к решению данной системы уравнений.
Выводим результаты.
 
Дубликаты удалил, не думайте, что размещение множества однотипных тем в разных разделах вы ускорите решение вашего вопроса.
Ага. Удалил. А товарищ тут же отшлёпал новый дубликат. Этот уже я удалил. Продолжение следует?
В условии модуль. Модуль этот раскрывается как система из двух неравенств: a1b2-a2b1>=0,0001 ИЛИ a2b1-a1b2>=0,0001
Лёша, а что, в С нету оператора типа паскалевского ABS?
 
Есть, конечно, он так пишется, функция ABS(n) из библиотеки cmath.
Это я для совсем умных людей модуль раскрыл :)
 
Помогите написать код
Многоуважаемый Дьявол девяносто девятого ада!
Если Вы не поняли — объясняю: здесь мы оказываем помощь начинающим программистам. Помощь! А не штампуем за лоботрясов готовые решения. И то, что Вы не желаете даже попытаться освоить азы программирования — беда прежде всего для Вас. И скоро Вы это поймёте. Потому что насторой на "вы пишите — я тупо скатаю" — это путь в тупик, в никуда, к отчислению.
Сейчас начало октября, ещё не поздно взяться за ум. За собственный.
Успехов!
 
я писал код , но он не запускается , я не пойму где я ошибку допускаю
 
я писал код , но он не запускается , я не пойму где я ошибку допускаю
Так выложите этот код! И желательно с сообщениями транслятора об ошибках. Со своей стороны помощи не гарантирую, я паскалист, СИ знаю плохо, но попробовать можно. Может быть, ещё кто подключится.
 
НЕ пойму что не так

#include "stdafx.h"
#include<iostream>
using namespace std;


int main()
{
int x, y, a1, a2, b1, b2, c1, c2;
cin >> x >> y >> a1 >> a2 >> b1 >> b2 >> c1 >> c2;
if (a1*b2-a2*b1>=0.0001||abs())
{
cout << a1*x + b1*y + c1 = 0;
cout << a2*x + b2*y - c2 = 0;

}
system("pause");
return 0;
}
 
Сударь, извините, но Вы пытаетесь вывести какую-то чушь.
Прежде всего, х и у вводить не надо — программа их должна НАЙТИ и вывести.
Вообще программа должна строиться так:
1. Вводим коэффициенты.
2. Ищем главный определитель системы (det) и еще два: detX и detY (вспоминаем школу, правило Крамера и т.п.)
3. Если главный определитель по абсолютной величине превышает 0.0001, то выводим
x = detX/det; y = detY/det.
Всё!
 
Не знаю почему, но мне вдруг вспомнилось как я узнал, что существует корень из -1)
 
#include "stdafx.h"
#include<iostream>
using namespace std;


int main()
{
int x, y, a1, a2, b1, b2, c1=0, c2=0;
cin >> x >> y >> a1 >> a2 >> b1 >> b2 >> c1 >> c2;
if (a1*b2 - a2*b1 >= 0.0001&&a2*b1 - a1*b2 >= 0.0001)
{
cout << a1*x + b1*y + c1;
cout << a2*x + b2*y - c2;

}
system("pause");
return 0;
}
 
И для чего и для кого я, спрашивается, распинался про решение системы, определители и т.п?..
Всё — мимо.
Ну как знаете.

Ну бред же кромешный!!!
Значит, так.
Приведу решение Вашей задачи на языке Паскаль (на СИ, к сожалению, не пишу). Может быть, поможет разобраться:
Код:
Var
  a1,b1,a2,b2,c1,c2,det,detX,detY:Real;

Begin
 Readln(a1,a2,b1,b2,c1,c2);
 det:=a1*b2-a2*b1;
 detX:=c1*b2-c2*b1;
 detY:=a1*c2-a2*c1;
 If Abs(det)>0.0001 then
  begin
   writeln('x = ',detX/det:0:5);
   writeln('y = ',detY/det:0:5);
  end
 else
  writeln('No solution!');
 Readln
End.
Результат работы программы:
AA01.webp
 
#include "stdafx.h"
#include<iostream>
using namespace std;


int main()
{
int x, y, a1, a2, b1, b2, c1, c2,x1;
cin >> a1 >> a2 >> b1 >> b2 >> c1 >> c2;
x1 = a1*b2 - a2*b1;
x = c1*b2 - c2*b1;
y= a1*c2 - a2*c1;
if (x1 >= 0.0001);
{
cout << 'x==',c1*b2-c2*b1/ a1*b2 - a2*b1;
cout << 'y==', a1*c2 - a2*c1/ a1*b2 - a2*b1;

}
system("pause");
return 0;
 
это правильно ?
Нет!
1. Зачем для определителей и искомых величин использовать одни и те же переменные? Что мешает, как я предлагаю, ввести
int x, y, a1, a2, b1, b2, c1, c2, det,detX,detY;
2. Тогда определители запишутся так:
det = a1*b2 - a2*b1;
detX= c1*b2 - c2*b1;
detY= a1*c2 - a2*c1;
3. Вот это:
cout << 'x==',c1*b2-c2*b1/ a1*b2 - a2*b1;
cout << 'y==', a1*c2 - a2*c1/ a1*b2 - a2*b1;
совсем никуда не годится! Потому что без скобок машина поймёт это так:
В первой строке сосчитает c1*b2, затем из полученного результата вычтет (c2*b1/ a1*b2) и, наконец, вычтет a2*b1. Правильно так:
cout << 'x==',(c1*b2 - c2*b1)/(a1*b2 - a2*b1);
cout << 'y==',(a1*c2 - a2*c1)/(a1*b2 - a2*b1);
3. Но главное — если уж Вы уже сосчитали определители, зачем же это делать повторно?! Можно просто и компактно:
if (det >= 0.0001); {тут, правда, надо не det, a |det|. Как это оформить в СИ — не знаю, Вы уж сами}
{
cout << 'x==', detX/det;
cout << 'y==', detY/det;

}

(За правильность СИ-шного синтаксиса не отвечаю, но, в принципе, как-то так).
 
Назад
Сверху