# manipulating array's

i have this so far and want to manipulate them

const int arraySize = 10;

int a[ arraySize ] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

e.g. add array value 3 to array value 9
and
e.g. move array value 2 to array value 6

###### Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
@a_migdal:

> e.g. add array value 3 to array value 9

a[2] += a[8];

> e.g. move array value 2 to array value 6

a[5] = a[1];

What other manipulations did you want?

Hope That Helps,
Dex*
0

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
Arrays are a very great way to arrange data for easy manipulation.  Just to clarify a few things that Dexstar wrote, in C/C++, arrays start at 0, not 1.  That means that the first element is a[0], second is a[1], up to a[9] (10 elements total in your example).

You can do anything to an element of an array that you would do to an integer value.  Addition, multiplication, division, subtraction, or other more complex options are available.  For an example, a[1] is a variable of type int.  Treat it just like you would any integer variable, and you should be able to achieve just about anything you'd like to do.
0
Author Commented:
cheers thats a great start for me, what i' aiming to do is something similar to below but c++ confuses me greatly

Instruction                   Description

MOVE Rx,Ry                  move contents of Rx to Ry

MOVE data_value, Rx                                      move data value into  Rx

ADD Rx, Ry                  add Rx to Ry and store it in Ry

SUB Rx, Ry                                  subtract Rx from Ry and store it in Ry

MOVE1 register to register
MOVE2 data to a register
SUB

so i can type in add 2 5 and array value 2 will be added to array value 5

cheers for help
0
Commented:
Do you mean that you want at run time to be able to type add 2 5 in and it function correctly?  or at programming time?  While writing code, go to Dexstar's examples.  Those should give you a good idea.  If you want to interpret something typed into your program at execution time, that gets a bit harder.

cout << "Enter Operation to do, followed by the two arguments." << endl
<< "Example: add 2 5 is the same as array[5] = array[5] + array[2]" << endl;
cin >> operation >> firstarg >> secondarg;
firstarg--; secondarg--;  //adjust for array starting at 0.
if (operation == "mul"){
a[secondarg] *= a[firstarg];
} else if (operation == "div"){
a[secondarg] /= a[firstarg];
} else if (operation == "add"){
a[secondarg] += a[firstarg];
} else if (operation == "sub"){
a[secondarg] -= a[firstarg];
} else {
cout << "Unknown operation." << endl;
}
//test function to see output at end.
for(int i = 0; i < 10; i++){
cout << a[i] << "  ";
}
0
Commented:
clarification of above...I didn't include variable declarations, but:

string operation;
int firstarg, secondarg;
0
Author Commented:
what you have given me is good tar

how can i input multiple instructions to add subtract etc

but exit on the command exit

this is our loop

while ( operation != 6 ){

if (operation == 1){
s[secondarg] += s[firstarg];

cout << s[secondarg] << "  ";

} else if (operation == 2){
s[secondarg] -= s[firstarg];

cout << s[secondarg] << "  ";

} else if (operation == 3){
s[secondarg] = s[firstarg];

cout << s[secondarg] << "  ";

} else if (operation == 4){
s[secondarg] = firstarg;

cout << s[secondarg] << "  ";

} else if (operation == 5){
// s[secondarg] = firstarg;

cout << s[secondarg] << "  ";
} /*else if (operation == 6){

//s[ 9 ] = 101;

}*/
else {
cout << "Unknown operation." << endl;
}

//s[ 9 ] += 1;

}//end of while

thanks
0
Commented:
I would put input at the bottom of the loop (and since you'll need initial values, once outside the loop).

iint operation(0);
cout << "Enter Operation to do, followed by the two arguments." << endl
<< "Example: add 2 5 is the same as array[5] = array[5] + array[2]" << endl;
cin >> rawOperation >> firstarg >> secondarg;
operation = getOpCode(rawOperation);
while(operation != 6){
...//do usual calculations here
cout << "Enter Operation to do, followed by the two arguments." << endl
<< "Example: add 2 5 is the same as array[5] = array[5] + array[2]" << endl;
cin >> rawOperation >> firstarg >> secondarg;
operation = getOpCode(rawOperation);
}//end of while

the getOpCode function should take the first argument and convert it to a number (since that's what it appears you're trying to do).  I'll leave you to code the body, but here's a prototype for it:

int getOpCode(string inputOperation);

If you'll be using a numerical OpCode instead of the raw string, I'd reccommend just using a switch statement in your main program as it is a little cleaner than a sequence of else if's.
0
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.