Witam!
Otóż napisałem parę kodów do tego zadania(6.5.2) i chciałbym się was zapytać który kod jest wydajniejszy. I żebyście to uzasadnili ponieważ jestem początkujący i chciałbym się dowiedzieć czym się kierować itd. według doświadczonych formułowiczów.
Treść:
Sposób 1: ( 8 zmiennych)
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
short a, b, c, d, a1, b1, c1, d1;
a = 2 + 7 * 16 - 8;
b = 22 * 2 / 11;
c = 8383 - 222 + 292 * 8;
d = 5 * 2 * 4;
a1 = a * 2 - 13;
b1 = b - 4 + 1;
c1 = c + 88 - 250;
d1 = d + a1 + b1 + c1;
short Tab[ 2 ][ 4 ] = {
{ a, b, c, d },
{ a1, b1, c1, d1 },
};
cout
<< "a= " << Tab[ 0 ][ 0 ]
<< "\nb= " << Tab[ 0 ][ 1 ]
<< "\nc= " << Tab[ 0 ][ 2 ]
<< "\nd= " << Tab[ 0 ][ 3 ]
<< "\n\na1(a * 2 - 13)= " << Tab[ 1 ][ 0 ]
<< "\nb1(b - 4 + 1)= " << Tab[ 1 ][ 1 ]
<< "\nc1(c + 88 - 250)= " << Tab[ 1 ][ 2 ]
<< "\nd1(d + a1 + b1 + c1)= " << Tab[ 1 ][ 3 ] << endl;
}
Sposób 1a: ( Tylko sama tablica 1 wymiarowa i 2 wymiarowa)
#include <iostream>
#include <conio.h>
using namespace std;
int main() {
short Tab[ 8 ] = {
2 + 7 * 16 - 8,
22 * 2 / 11,
8383 - 222 + 292 * 8,
5 * 2 * 4,
Tab[ 0 ] * 2 - 13,
Tab[ 1 ] - 4 + 1,
Tab[ 2 ] + 88 - 250,
Tab[ 3 ] + Tab[ 4 ] + Tab[ 5 ] + Tab[ 6 ]
};
cout
<< "a= " << Tab[ 0 ]
<< "\nb= " << Tab[ 1 ]
<< "\nc= " << Tab[ 2 ]
<< "\nd= " << Tab[ 3 ]
<< "\n\na1(a * 2 - 13)= " << Tab[ 4 ]
<< "\nb1(b - 4 + 1)= " << Tab[ 5 ]
<< "\nc1(c + 88 - 250)= " << Tab[ 6 ]
<< "\nd1(d + a1 + b1 + c1)= " << Tab[ 7 ]
<< endl;
}
Sposób 2a: ( 2x jednowymiarowa tablica, 4 zmienne)
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
short a, b, c, d;
a = 2 + 7 * 16 - 8;
b = 22 * 2 / 11;
c = 8383 - 222 + 292 * 8;
d = 5 * 2 * 4;
short Tab[ 4 ] = { a, b, c, d };
cout
<< "a= " << Tab[ 0 ]
<< "\nb= " << Tab[ 1 ]
<< "\nc= " << Tab[ 2 ]
<< "\nd= " << Tab[ 3 ] << endl;
( a *= 2 ) -= 13;
( b -= 4 ) += 1;
( c += 88 ) -= 250;
( d += a ) += b + c;
short Tab1[ 4 ] = { a, b, c, d };
cout
<< "\na1(a * 2 - 13)= " << Tab1[ 0 ]
<< "\nb1(b - 4 + 1)= " << Tab1[ 1 ]
<< "\nc1(c + 88 - 250)= " << Tab1[ 2 ]
<< "\nd1(d + a1 + b1 + c1)= " << Tab1[ 3 ] << endl;
}
Oraz który algorytm jest lepszy:
2aa
( a *= 2 ) -= 13;
( b -= 4 ) += 1;
( c += 88 ) -= 250;
( d += a ) += b + c;
2ab
a = a * 2 - 13;
b = b - 4 + 1;
c = c + 88 - 250;
d = d + a + b + c;
Sposób 2b: ( 2x jednowymiarowa tablica)
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
short Tab[ 4 ] = {
2 + 7 * 16 - 8,
22 * 2 / 11,
8383 - 222 + 292 * 8,
5 * 2 * 4
};
cout
<< "a= " << Tab[ 0 ]
<< "\nb= " << Tab[ 1 ]
<< "\nc= " << Tab[ 2 ]
<< "\nd= " << Tab[ 3 ] << endl;
short Tab1[ 4 ] = {
( Tab[ 0 ] *= 2 ) -= 13,
( Tab[ 1 ] -= 4 ) += 1,
( Tab[ 2 ] += 88 ) -= 250,
( Tab[ 3 ] += Tab[ 0 ] ) += Tab[ 1 ] + Tab[ 2 ]
};
cout
<< "\na1(a * 2 - 13)= " << Tab1[ 0 ]
<< "\nb1(b - 4 + 1)= " << Tab1[ 1 ]
<< "\nc1(c + 88 - 250)= " << Tab1[ 2 ]
<< "\nd1(d + a1 + b1 + c1)= " << Tab1[ 3 ]
}
I który algorytm jest lepszy
2aa
short Tab1[ 4 ] = {
Tab[ 0 ] = Tab[ 0 ] * 2 - 13;
Tab[ 1 ] = Tab[ 1 ] - 4 + 1;
Tab[ 2 ] = Tab[ 2 ] + 88 - 250;
Tab[ 3 ] = Tab[ 3 ] + Tab[ 0 ] + Tab[ 1 ] + Tab[ 2 ];
};
2ab
short Tab1[ 4 ] = {
( Tab[ 0 ] *= 2 ) -= 13,
( Tab[ 1 ] -= 4 ) += 1,
( Tab[ 2 ] += 88 ) -= 250,
( Tab[ 3 ] += Tab[ 0 ] ) += Tab[ 1 ] + Tab[ 2 ]
};
@Chyba to wszystko jak nie to szybko z edytuje
@Down
Ok. Dzięki :)