Wednesday, December 7, 2016

pointer 2

#include <iostream>
using namespace std;
void my_int_func(int x)
{
    cout<<x;
}
int main()
{
    void (*foo)(int);
    foo = &my_int_func;  /* call my_int_func (note that you do not need to write (*foo)(2) ) */
    foo( 2 ); /* but if you want to, you may */
    (*foo)( 2 );

    return 0;

}


#include <iostream>
#include <math.h>
using namespace std;

int double_it(int *a, int *b) //fungsi dobel
{
    *a *= 2; //pengalamatan dan pengembalian nilai dimisalkan inputan dikalikan 2
    *b *= 2; //pengalamatan dan pengembalian nilai dimisalkan inputan dikalikan 2
}
int pangkat_it(int *x, int *y) //fungsi pangkat
{
    *x =(*x)*(*x); //pengalamatan dan pengembalian nilai dan perhitungan pangkat (*x)*(*x)
    *y =(*y)*(*y); //pengalamatan dan pengembalian nilai dan perhitungan pangkat (*y)*(*y)
}


int main() //program utama
{
    int x, y;
           
    cout << "Masukkan dua angka(dipisah dengan'enter') " << endl;
    cin >> x >> y;
           
    double_it(&x, &y); //pemanggilan fungsi dobel
    cout << "di double kan" <<endl;
    cout << "angka pertama \t = \t" << x << endl;
    cout << "angka kedua   \t = \t" << y <<endl;
           
                pangkat_it(&x, &y); //pemanggilan fungsi pangkat
    cout << "Setelah dipangkatkan" <<endl;
    cout << "angka pertama \t = \t" << x << endl;
    cout << "angka kedua \t = \t" << y <<endl;
}

Penjelasan program
Program yang penting disini yaitu pada bagian fungsi double dan fungsi pangkat(bias dilihat di source code) . *a *= 2; disini maksunya input dikalikan dua atau double  sesuai dengan definisinya “*” menghasilkan nilai yang berada disebuah alamat yang ditujukan oleh “&”(bias dilihat di program utama) nah dapat disimpulkan apapun nilai yang nantinya dihasilkan “*a” maka akan dikalikan “2”



No comments:

Post a Comment