C/C++

Член од
21 октомври 2009
Мислења
1.529
Поени од реакции
2.394
Здраво

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

Код:
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 еве ги пресметките, треба да ги откуцам вечер.
каде
 
Член од
15 август 2014
Мислења
28
Поени од реакции
30
Задача 5 . Да се напише програма која во зависност од внесените симптоми ќе испечати соодветна дијагноза за еден пациент . Сите симптоми се внесуваат така што корисникот кажува дали пациентот го има или го нема симптомот . Можни се следниве симптоми :
1.Зголемено ниво на леукоцити
2 . Главоболка
3 . Мачнина во стомакот
4 . Повраќање
5 . Осетливост на светлина
6 . Матно гледање
Зависно од симптомите , програмата треба да ги даде следните дијагнози :
Стомачен вирус - само 1 и 4
Мигрена - сигурно 6 и барем еден од 2 или 5
Грип - сигурно 1 и некој од симптомите од 2 до 4

Ако може помош малце барем.. никако не ми излева точно.. знам само дека треба со if дека треба и пробувам од преѓеска ама никако не бива.
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
Задача 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";
итн....
 
Последно уредено:
Член од
6 октомври 2014
Мислења
3
Поени од реакции
0
еве ти метод за пресметка на инверзна 3х3, пресметана е детерминантата на влезна матрица d во променливата detA. Ова е C#, за C++ во Dev C++, во main преку тастатура внеси матрица и потоа искористи дел од методава за пресметка на 3х3 детерминанта.
За 2х2 детерминанта е полесно.
fala ti mnoguu :D
 
Член од
19 јуни 2014
Мислења
179
Поени од реакции
158
1. Да се напише функција која како аргумент добива цел број. Како резултат функцијата враќа дали цифрите на бројот се во неопаѓачки редослед од десно кон лево.
пр.5431-неопаѓачки
54341-не го задоволува условот
2.Од тастатура се внесуваат непознат број цели броеви. Да се провери дали бројот формиран од цифрата на стотки и десетки е прост. Формирањето на новиот број, како и проверката дали тој е прост да се реализира со посебни функции. На крај да се испечати колку броеви го исполнуваат условот.
пр.2174-17 е прост број
3.Да се напише функција која даден цел број(кој го добива како аргумент) ќе го трансформира така што нулите ќе ги смести како најмалку значајни цифри во бројот. Потоа да се напише главна програма со која се внесуваат 3 броја , кои со помош на функцијата ќе се трансформираат и ќе се отпечатат.
пр.4030221-4322100
Било која од овие задачите ако можете да решите поставете ги тука или на ПП. Фала однапред!
 

Amaterasu

123123113
Член од
17 април 2012
Мислења
1.143
Поени од реакции
1.092
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;
}

Ако ти се малце нејасни алгоритмите, пробај да ги изведеш на рака. Земи мал број и движи се низ кодот (изврши го рачно, што би се рекло) да видиш што ќе се случува. Немам доволно време да седнам и да ги објаснам, се надевам дека помогнав :)
 
Член од
13 мај 2009
Мислења
687
Поени од реакции
283
Људи мало помош поврзана со програмите за компајлирање на ц/ц++. Симнав и еклипс и кодблокс и мингв. Ниту во еклипс ниту во кодблокс можам да компајлирам. Да не треба некои други библиотеки нешто да симнам?
 
Последно уредено:
D

Drima94

Гостин
Људи мало помош поврзана со програмите за компајлирање на ц/ц++. Симнав и еклипс и кодблокс и мингв. Ниту во еклипс ниту во кодблокс не можам да компајлирам. Да не треба некои други библиотеки нешто да симнам?
http://www.cprogramming.com/code_blocks/ доколку сакаш да користиш cmd потребно е само дирекцијата на компајлеро да ја додадеш во path, доколку сакаш подетално објаснување само кажи :)
 
Член од
13 мај 2009
Мислења
687
Поени од реакции
283
D

Drima94

Гостин
Process terminated with status -1073741510
за кој било код ми печати тоа Hello world
прати ај screenshot да видиме од било кој код ..
http://forum.openframeworks.cc/t/process-terminated-with-status-1073741819-0-minutes-6-seconds-with-examples/11531/13 разгледај исто така некои одговори на форумов си велам ќе се снајдиш .
 
Член од
13 мај 2009
Мислења
687
Поени од реакции
283

Kajgana Shop

На врв Bottom