C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
Здраво

Може ли некој да ми каже како ќе ја пресметаме вредноста на детерминанта од втор и трет ред?
Детерерминантата се задава од тастатура.
Треба да биде напишана во Dev C++. Фала
еве ти метод за пресметка на инверзна 3х3, пресметана е детерминантата на влезна матрица d во променливата detA. Ова е C#, за C++ во Dev C++, во main преку тастатура внеси матрица и потоа искористи дел од методава за пресметка на 3х3 детерминанта.
За 2х2 детерминанта е полесно.
се откажав од барање на алгоритам за пресметка на инверзна матрица..
се решив да го куцам амалски ( за секој член од матрицата соодветниот производ)
Направив за 3х3, а на ист начин ќе го направам за 4х4. Ако некој му текни некаков алгоритам нека постира, ќе се најде некогаш за некого, јас се откажав од алгоритмот. Ќе одам пешки:icon_lol:
Еве за 3х3
eq23-04.gif

Код:
public static double[,] InverseMatrix(double[,] d)
        {
            double[,] m = d;
            [COLOR=#ff0000]double detA[/COLOR] = m[0, 0] * (m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) - m[0, 1] * (m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) + m[0, 2] * (m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]);
            double det = 1 / (detA);
            double[,] fin = new double[3, 3];
            fin[0, 0] = det * (m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]);
            fin[0, 1] = det * (m[0, 2] * m[2, 1] - m[0, 1] * m[2, 2]);
            fin[0, 2] = det * (m[0, 1] * m[1, 2] - m[0, 2] * m[1, 1]);

            fin[1, 0] = det * (m[1, 2] * m[2, 0] - m[1, 0] * m[2, 2]);
            fin[1, 1] = det * (m[0, 0] * m[2, 2] - m[0, 2] * m[2, 0]);
            fin[1, 2] = det * (m[0, 2] * m[1, 0] - m[0, 0] * m[1, 2]);

            fin[2, 0] = det * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]);
            fin[2, 1] = det * (m[0, 1] * m[2, 0] - m[0, 0] * m[2, 1]);
            fin[2, 2] = det * (m[0, 0] * m[1, 1] - m[0, 1] * m[1, 0]);
            return fin;

        }

за 4х4 еве ги пресметките, треба да ги откуцам вечер.
каде
eq23-06.gif
 
Задача 5 . Да се напише програма која во зависност од внесените симптоми ќе испечати соодветна дијагноза за еден пациент . Сите симптоми се внесуваат така што корисникот кажува дали пациентот го има или го нема симптомот . Можни се следниве симптоми :
1.Зголемено ниво на леукоцити
2 . Главоболка
3 . Мачнина во стомакот
4 . Повраќање
5 . Осетливост на светлина
6 . Матно гледање
Зависно од симптомите , програмата треба да ги даде следните дијагнози :
Стомачен вирус - само 1 и 4
Мигрена - сигурно 6 и барем еден од 2 или 5
Грип - сигурно 1 и некој од симптомите од 2 до 4

Ако може помош малце барем.. никако не ми излева точно.. знам само дека треба со if дека треба и пробувам од преѓеска ама никако не бива.
 
Задача 5 . Да се напише програма која во зависност од внесените симптоми ќе испечати соодветна дијагноза за еден пациент . Сите симптоми се внесуваат така што корисникот кажува дали пациентот го има или го нема симптомот . Можни се следниве симптоми :
1.Зголемено ниво на леукоцити
2 . Главоболка
3 . Мачнина во стомакот
4 . Повраќање
5 . Осетливост на светлина
6 . Матно гледање
Зависно од симптомите , програмата треба да ги даде следните дијагнози :
Стомачен вирус - само 1 и 4
Мигрена - сигурно 6 и барем еден од 2 или 5
Грип - сигурно 1 и некој од симптомите од 2 до 4

Ако може помош малце барем.. никако не ми излева точно.. знам само дека треба со if дека треба и пробувам од преѓеска ама никако не бива.
Значи вака, симптомите ги чуваш во низа, ако немате учено низи тогаш ги чуваш во променливи.
Ќе претпоставам дека немаш учено низи. Ќе имаш 6 променливи.
int simptom1, simptom2.... до simptom6;
Ќе ги иницијализираш сите на одредена вредност, на пример 1 ако го имаат симптомот, 0 ако го немаат.
Да речеме ако има Главоболка ќе ставиш simptom2=1; а ако нема повраќање ќе ставиш simptom4=0; итн за сите симптоми.
Сега ги правиш проверките.
На пример за стомачен вирус ќе биде:
if(simptom1==1 && simptom4==1)
isprintaj : "covekot ima stomacen virus";

Е сега, ако во овој случај се бара да се имаат само овие симптоми и ниедни други, тогаш во if-от ќе треба да додадеш дека сите други симптоми треба да бидат еднакви на 0. Т.е. if-от ќе ти изгледа вака:
if(simptom1==1 && simptom4==1 && simptom2==0 && simptom3==0 && simptom5==0 && simptom6==0)

за Мигрена, ќе провериш:
if(simptom6==1 && (simptom2==1 || simptom5==1))
isprintaj : "covekot ima migrena";
итн....
 
Последно уредено:
еве ти метод за пресметка на инверзна 3х3, пресметана е детерминантата на влезна матрица d во променливата detA. Ова е C#, за C++ во Dev C++, во main преку тастатура внеси матрица и потоа искористи дел од методава за пресметка на 3х3 детерминанта.
За 2х2 детерминанта е полесно.
fala ti mnoguu :D
 
1. Да се напише функција која како аргумент добива цел број. Како резултат функцијата враќа дали цифрите на бројот се во неопаѓачки редослед од десно кон лево.
пр.5431-неопаѓачки
54341-не го задоволува условот
2.Од тастатура се внесуваат непознат број цели броеви. Да се провери дали бројот формиран од цифрата на стотки и десетки е прост. Формирањето на новиот број, како и проверката дали тој е прост да се реализира со посебни функции. На крај да се испечати колку броеви го исполнуваат условот.
пр.2174-17 е прост број
3.Да се напише функција која даден цел број(кој го добива како аргумент) ќе го трансформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. Потоа да се напише главна програма со која се внесуваат 3 броја , кои со помош на функцијата ќе се трансформираат и ќе се отпечатат.
пр.4030221-4322100
Било која од овие задачите ако можете да решите поставете ги тука или на ПП. Фала однапред!
 
1. Да се напише функција која како аргумент добива цел број. Како резултат функцијата враќа дали цифрите на бројот се во неопаѓачки редослед од десно кон лево.
пр.5431-неопаѓачки
54341-не го задоволува условот
2.Од тастатура се внесуваат непознат број цели броеви. Да се провери дали бројот формиран од цифрата на стотки и десетки е прост. Формирањето на новиот број, како и проверката дали тој е прост да се реализира со посебни функции. На крај да се испечати колку броеви го исполнуваат условот.
пр.2174-17 е прост број
3.Да се напише функција која даден цел број(кој го добива како аргумент) ќе го трансформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. Потоа да се напише главна програма со која се внесуваат 3 броја , кои со помош на функцијата ќе се трансформираат и ќе се отпечатат.
пр.4030221-4322100
Било која од овие задачите ако можете да решите поставете ги тука или на ПП. Фала однапред!

Задача 1

int zadaca1(int n)
{
int m=n;
int flag=1;
int prethodnaCifra=-1;
while(m>0)
{
int momentalnaCifra=m%10;
if(prethodnaCifra!=-1) //значи дека имаме претходна цифра, т.е. моменталната цифра не е првата цифра од десно
{
if(momentalnaCifra<prethodnaCifra) //ako uslovot e nekade narusen zaklucuvame deka celiot broj ne go ispolnuva uslovot
{
flag=0;
break;
}
}

prethodnaCifra=momentalnaCifra;

m/=10;
}
if(flag==1)
return 1; //ova znaci deka brojot go zadovoluva uslovot;
else return 0; //brojot ne go zadovoluva uslovot
}

За втората задача, не ми текнува како беше тоа да внесуваш неограничен број броеви, сигурно ги имате учено.Нешто while(scanf) или како и да беше. Ќе земеш ќе ги извадиш потребните цифри. Исто како во while циклусот. Ќе го поделиш прво бројот со 10, после модул 10 и ете ти ја цифрата на десетки, па пак ќе поделиш со 10 па модул 10 и ќе ја добиеш цифрата на стотки. Ќе ги споиш тие така што вторава добиена цифра ќе ја помножиш по 10 и ќе ја собереш со првата. После тоа ќе повикаш функција за пресмета на прост број (сигурно сте учеле, а ако немаш учено побарај на нет).

За третата задача

int zadaca3(int n)
{
int m=n;
int novBroj=0;
int pozicija=1;
int brojNuli=0;
while(m>0)
{
int cifra=m%10;
if(cifra!=0)
{
novBroj=novBroj+cifra*pozicija;
pozicija=pozicija*10;
}
else brojNuli++;
m=m/10;
}
while(brojNuli>0)
{

novBroj=novBroj*10;
brojNuli--;
}
return novBroj;
}

Ако ти се малце нејасни алгоритмите, пробај да ги изведеш на рака. Земи мал број и движи се низ кодот (изврши го рачно, што би се рекло) да видиш што ќе се случува. Немам доволно време да седнам и да ги објаснам, се надевам дека помогнав :)
 
Fala mnogu druze. Tolku mi treba otprilika. Dodeka da se snajdam na pocetok u C.
 
Људи мало помош поврзана со програмите за компајлирање на ц/ц++. Симнав и еклипс и кодблокс и мингв. Ниту во еклипс ниту во кодблокс можам да компајлирам. Да не треба некои други библиотеки нешто да симнам?
 
Последно уредено:
Људи мало помош поврзана со програмите за компајлирање на ц/ц++. Симнав и еклипс и кодблокс и мингв. Ниту во еклипс ниту во кодблокс не можам да компајлирам. Да не треба некои други библиотеки нешто да симнам?
http://www.cprogramming.com/code_blocks/ доколку сакаш да користиш cmd потребно е само дирекцијата на компајлеро да ја додадеш во path, доколку сакаш подетално објаснување само кажи :)
 

Kajgana Shop

Back
На врв Bottom