Contoh Percobaan dan Latihan Program C++(Array, Pointer, Struktur)
~~Selamat Membaca~~
A. Contoh Dasar Dari Program Array, Pointer, Struktur dalam C++
Percobaan 1 : Cara memberikan nilai pada array dan mengakses array
Berikut Contoh Source Code nya:
#include <stdio.h>
int main ()
{
int n[ 10 ];
int i,j;
for ( i = 0; i < 10; i++ )
{
n[ i ] = i + 100;
}
for (j = 0; j < 10; j++ )
{
printf("Element[%d] = %d\n", j, n[j] );
}
}
Berikut Output Program nya:
Percobaan 2 : Menghitung total dari nilai yang
terdapat pada array
Berikut Contoh Source Code nya:
#include <stdio.h>
#define SIZE 12
int main()
{
int a[ SIZE ] = { 1, 3, 5, 4, 7, 2, 99,16, 45, 67, 89,
45 };
int i = 0;
int total = 0;
for(i = 0; i<SIZE; ++i)
{
total+=a[i];
}
printf( "Total elemen yang terdapat di array :
%d\n", total );
}
Berikut Output Program nya:
Percobaan 3 : Penggunaan Array pada Bilangan Fibonaci
Berikut Contoh Source Code nya:
#include<stdio.h>
#define MAX 20
int fibo[MAX];
int main()
{
int i;
fibo[1] = 1;
fibo[2] = 1;
for (i=3;i<=MAX;i++)
fibo[i]=fibo[i-2]+fibo[i-1];
printf("%d Bilangan Fibonaci Pertama adalah :
\n",MAX);
for (i=1;i<MAX;i++)
printf("%d",fibo[i]);
}
Berikut Output Program nya:
Percobaan 4 : Cara mengakses array dua dimensi
Berikut Contoh Source Code nya:
#include <stdio.h>
int main ()
{
int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
int i, j;
for ( i = 0; i < 5; i++ )
{
for ( j = 0; j < 2; j++ )
{
printf("a[%d][%d] = %d\n", i,j, a[i][j] );
}
}
}
Berikut Output Program nya:
Percobaan 5 : Program Merubah Isi Variabel melalui Pointer
Berikut Contoh Source Code nya:
#include <stdio.h>
main()
{
int y, x = 87; /* x & y bertipe int */
int *px;
/* var pointer yang menunjuk ke data yang bertipe int
*/
x = 87;
px = &x; /* px diisi dengan alamat dari variabel x
*/
y = *px; /* y diisi dengan nilai yg ditunjuk oleh px
*/
printf("Alamat x = %p\n", &x);
printf("Isi px = %p\n", px);
printf("Isi x = %d\n", x);
printf("Nilai yang ditunjuk oleh px = %d\n",
*px);
printf("Nilai y = %d\n", y);
}
Berikut Output Program nya:
Percobaan 6 : Program Mengakses & Mengubah Isi
Suatu Variabel Pointer
Berikut Contoh Source Code nya:
#include <stdio.h>
main()
{
float d = 54.5f, *pd;
printf("Isi d mula-mula = %g\n", d);
pd = &d;
*pd += 10;
printf("Isi d sekarang = %g\n", d);
}
Berikut Output Program nya:
Percobaan 7 : Mengakses elemen array dengan pointer.
Berikut Contoh Source Code nya:
#include <stdio.h>
int main()
{
int my_array[] = {1,23,17,4,-5,100};
int *ptr;
int i;
ptr = &my_array[0]; /* var pointer ptr menunjuk ke
elemen ke[1]0
dari myarray */
printf("\n\n");
for (i = 0; i < 6; i++)
{
printf("my_array[%d] = %d ",i,my_array[i]);
printf("ptr + %d = %d\n",i, *(ptr + i));
}
}
Berikut Output Program nya:
Percobaan 8 : Meng-copy string menggunakan pointer.
Berikut Contoh Source Code nya:
#include <stdio.h>
char strA[80] = "ABCDE";
char strB[80];
int main()
{
char *pA;
char *pB;
puts(strA);
pA = strA;
puts(pA);
pB = strB;
putchar('\n');
while(*pA != '\0')
{
*pB++ = *pA++;
}
*pB = '\0';
puts(strB);
}
Berikut Output Program nya:
Percobaan 9 : Penggunaan Pointer untuk Bilangan
Fibonaci
Berikut Contoh Source Code nya:
#include<stdio.h>
#include<stdlib.h>
#define MAX 20
int main()
{
int *fibo;
int i;
fibo = (int*)malloc(MAX * sizeof(int));
*(fibo + 1) = 1;
*(fibo + 2) = 1;
for (i=3;i<=MAX;i++)
*(fibo + i)= (*(fibo + i - 2) + *(fibo + i - 1));
printf("%d Bilangan Fibonaci Pertama adalah :
\n",MAX);
for (i=1;i<MAX;i++)
printf("%d",*(fibo+i));
}
Berikut Output Program nya:
Percobaan 10 : Penggunaan Struktur pada Konversi
Koordinat Polar ke Koordinat Cartesian
Berikut Contoh Source Code nya:
#include <stdio.h>
#include <math.h>
struct polar {
double r;
double alpha;
};
struct kartesian {
double x;
double y;
};
int main()
{
struct polar p1;
struct kartesian k1;
printf("Masukkan nilai r untuk koordinat polar :
");
scanf("%lf",&p1.r);
printf("Masukkan nilai alpha untuk koordinat
polar : ");
scanf("%lf",&p1.alpha);
k1.x = p1.r * cos(p1.alpha);
k1.y = p1.r * sin(p1.alpha);
printf("Nilai koordinat kartesian untuk koordinat
polar r=%2.2lf alpha= %2.2lf adalah:\n",p1.r,p1.alpha);
printf("x = %2.2lf y = %2.2lf",k1.x,k1.y);
}
Berikut Output Program nya:
Percobaan 11 : Program Struktur dalam Array
Berikut Contoh Source Code nya:
#include <stdio.h>
#include <string.h>
struct dtnilai
{
char nrp[10];
char nama[20];
double nilai;
};
struct dtnilai data[10];
int j=0;
void tambah_data()
{
char jawab[2];
while(1)
{
fflush(stdin);
printf("NRP
:");scanf("%s",&data[j].nrp);
printf("Nama
:");scanf("%s",&data[j].nama);
printf("Nilai Test
:");scanf("%lf",&data[j].nilai);
printf("Ada data lagi(y/t):");
scanf("%s",&jawab);
if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0))
{
j++;continue;
}
else if
((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))
break;
}
}
void tampil()
{
int i;
printf("Data Mahasiswa yang telah diinputkan
:\n");
printf("NRP\tNama\tNilai\n");
for (i=0;i<=j;i++)
{
printf("%s\t%s\t%6.2f\n",data[i].nrp,data[i].nama,
data[i].nilai);
}
}
int main()
{
tambah_data();
tampil();
}
Berikut Output Program nya:
Percobaan 12 : Mengakses Struktur dengan Pointer
Berikut Contoh Source Code nya:
#include <stdio.h>
#include <string.h>
struct dtnilai
{
char
nrp[10]; char nama[20]; double nilai;
};
int main()
{
struct
dtnilai my_struct = {"10","Yusril",95.3};
struct
dtnilai *st_ptr;
st_ptr=
&my_struct;
printf("\n%s ", st_ptr->nrp);
printf("%s ", st_ptr->nama);
printf("%d\n", st_ptr->nilai);
}
Berikut Output Program nya:
B. Contoh Soal Program Menggunakan Array, Pointer, dan Struktur Dengan C++
1. Terdapat array dengan tipe char yang berisi {'p', 'e', 'n', 's', 'i', 't'}, baliklah array tersebut menjadi tisnep.
Berikut program nya:
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <windows.h>
using namespace std;
int main(){
char kata[100] = {};
int maxStack, i;
cout << " Input Kata Yang Ingin
Dibalik : ";
gets(kata);
maxStack = strlen(kata);
printf("\nHasil.....");
cout << "\nKata Yang Dinput Dibalik
Menjadi :";
for (i = maxStack; i >= 0; i--){
char stack = kata[i];
cout << stack;
}
}
Berikut Output Program nya:
2. Terdapat dua buah matrik dengan ordo n yang direpresentasikan dengan array dimensi dua, lakukan operasi penjumlahan, pengurangan dan perkalian.
Berikut program nya:
#include
<iostream>
using namespace std;
int main(){
cout << endl;
int matriks1[3][3];
int matriks2[3][3];
int pengurangan[3][3];
int pertambahan[3][3];
int perkalian[3][3];
int baris, kolom;
// Matriks Pertama
cout <<
"===================\n";
cout << " Matriks Pertama \n";
cout <<
"===================\n";
for (baris = 0; baris < 3; baris++)
{
for (kolom = 0; kolom < 3; kolom++){
cout << "Input Angka ["
<< baris << "] [" << kolom << "] =
";
cin >> matriks1[baris][kolom];
}
cout << endl;
}
// Matriks Kedua
cout <<
"==================\n";
cout << " Matriks Kedua \n";
cout <<
"==================\n";
for (baris = 0; baris < 3; baris++)
{
for (kolom = 0; kolom < 3; kolom++)
{
cout << "Input Angka ["
<< baris << "] [" << kolom << "] =
";
cin >> matriks2[baris][kolom];
}
cout << endl;
}
// Matriks Jumlah
cout <<
"==============================\n";
cout << "Hasil Pertambahan [3]+[3]
\n";
cout <<
"==============================\n";
for (baris = 0; baris < 3; baris++)
{
for (kolom = 0; kolom < 3; kolom++)
{
pertambahan[3][3] = matriks1[baris][kolom] +
matriks2[baris][kolom];
cout << pertambahan[3][3] <<
" ";
}
cout << endl;
}
// Matriks Kurang
cout <<
"=============================\n";
cout << "Hasil Pengurangan [3]-[3]
\n";
cout <<
"=============================\n";
for (baris = 0; baris < 3; baris++)
{
for (kolom = 0; kolom < 3; kolom++)
{
pengurangan[3][3] = matriks1[baris][kolom] -
matriks2[baris][kolom];
cout << pengurangan[3][3] <<
" ";
}
cout << endl;
}
// Matriks Perkalian
cout <<
"==============================\n";
cout << "Hasil Perkalian [3]x[3]
\n";
cout <<
"==============================\n";
for (baris = 0; baris < 3; baris++)
{
for (kolom = 0; kolom < 3; kolom++)
{
perkalian[3][3] = matriks1[baris][kolom] *
matriks2[baris][kolom];
cout << perkalian[3][3] <<
" ";
}
cout << endl;
}
}
Berikut Output Program nya:
3. Bagaimana output program di bawah ini ?
Program Terlampir:
#include <stdio.h>
main(){
int count = 10, *temp, sum = 7;
temp = &count;
*temp = 32;
temp = ∑
*temp = count;
sum = *temp * 4;
printf("count=%d, *temp=%d,
sum=%d\n", count, *temp, sum);
}
Berikut Output Program
nya:
Misalnya: P1 = 6x8 + 8x7 + 5x5 + x 3 + 15 P2 = 3x9 + 4x7 + 3x4 + 2x3 + 2x 2 + 10 P3 = x 2 + 5 Terdapat empat operasi aritmatika polinom dasar antara lain:
a. Penambahan (P1 + P2 = 3x9 + 6x8 + 12x7 + 5x5 + 3x4 + 3x3 + 2x2 + 25)
b. Pengurangan (P1 - P2 = - 3x9 + 6x8 + 4x7 + 5x5 - 3x4 - x3 - 2x2 + 5)
c. Perkalian (P1 * P3 = 6x10 + 8x 9 + 5x7 + x 5 + 15x 2 + 30x8 + 40x7 + 25x5 + 5x3 + 75 = 6x 10 + 8x9 + 30x8 + 45x7 + 26x5 + 5x3 + 15x2 + 75)
d. Turunan (P2' = 27x8 + 28x6 + 12x3 + 6x2 + 4x)
Representasikan bilangan polinom dengan array dan buatlah prosedur-prosedur yang melakukan kelima operasi aritmatika di atas.
Berikut Program nya:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int pol1[100];
int pol2[100];
int pol3[100];
int i1;
int p = 0;
int maxP1;
cout << " ARITMATIKA POLINOM
\n\n";
cout << " Masukkan Batas Polinom
Persamaan 1= ";
cin >> maxP1;
for (i1 = 0; i1 <= maxP1 - 1; i1++)
{
cout << " Masukkn Nilai Koeffisien Polinom X^" <<
p << " = ";
cin >> pol1[i1];
p++;
}
cout << " Jadi P1 : ";
for (i1 = maxP1 - 1; i1 >= 0; i1--)
{
p--;
cout << " + (" << pol1[i1] << "X^"
<< p << ")";
}
for (; maxP1 <= 11; maxP1++)
{
pol1[maxP1] = 0;
}
int i2;
p = 0;
do
{
cout << "\n\n Masukkan Batas Polinom Persamaan 2= ";
cin >> maxP1;
} while (maxP1 > 11);
for (i2 = 0; i2 <= maxP1 - 1; i2++)
{
cout << " Masukkn Nilai Koeffisien Polinom X^" <<
p << " = ";
cin >> pol2[i2];
p++;
}
cout << " Jadi P2 : ";
for (i2 = maxP1 - 1; i2 >= 0; i2--)
{
p--;
cout << " + (" << pol2[i2] << "X^"
<< p << ")";
}
for (; maxP1 <= 11; maxP1++)
{
pol2[maxP1] = 0;
}
int i3;
p = 0;
do
{
cout << "\n\n Masukkan Batas Polinom Persamaan 3= ";
cin >> maxP1;
} while (maxP1 > 11);
for (i3 = 0; i3 <= maxP1 - 1; i3++)
{
cout << " Masukkn Nilai Koeffisien Polinom X^" <<
p << " = ";
cin >> pol3[i3];
p++;
}
cout << " Jadi P3 : ";
for (i3 = maxP1 - 1; i3 >= 0; i3--)
{
p--;
cout << " + (" << pol3[i3] << "X^"
<< p << ")";
}
for (; maxP1 <= 11; maxP1++)
{
pol3[maxP1] = 0;
}
cout <<
"\n\n================================================================";
cout << "\n Hasil EMPAT OPERASI
ARITMATIKA dasar antara lain : ";
cout << "\n================================================================";
cout << "\n\n Penambahan :
\n";
cout << " P1 + P2 = " <<
pol1[10] << "x^10 + " << pol1[9] + pol2[9] <<
"x^9 + " << pol1[8] + pol2[8] << "x^8 + "
<< pol1[7] + pol2[7] << "x^7 + " << pol1[6] +
pol2[6] << "x^6 + " << pol1[5] + pol2[5] <<
"x^5 + " << pol1[4] + pol2[4] << "x^4 + "
<< pol1[3] + pol2[3] << "x^3 + \n " << pol1[2] +
pol2[2] << "x^2 + " << pol1[1] + pol2[1] <<
"x^1 + " << pol1[0] + pol2[0] << "x^0 ";
cout << "\n\n Pengurangan :
\n";
cout << " P1 + P2 = " <<
pol1[10] << "x^10 + " << pol1[9] - pol2[9] <<
"x^9 + " << pol1[8] - pol2[8] << "x^8 + "
<< pol1[7] - pol2[7] << "x^7 + " << pol1[6] -
pol2[6] << "x^6 + " << pol1[5] - pol2[5] <<
"x^5 + " << pol1[4] - pol2[4] << "x^4 + "
<< pol1[3] - pol2[3] << "x^3 + \n " << pol1[2] -
pol2[2] << "x^2 + " << pol1[1] - pol2[1] <<
"x^1 + " << pol1[0] - pol2[0] << "x^0 ";
cout << "\n\n Perkalian : \n";
cout << " P1 * P3 = " <<
pol1[10] * pol3[1] << "x^11 + " << pol1[9] * pol3[1]
<< "x^10+ " << pol1[8] * pol3[1] << "x^9 +
" << pol1[7] * pol3[1] << "x^8 + " << pol1[6]
* pol3[1] << "x^7 + " << pol1[5] * pol3[1] <<
"x^6 + " << pol1[4] * pol3[1] << "x^5 + "
<< pol1[3] * pol3[1] << "x^4 + \n " << pol1[2] *
pol3[1] << "x^3 + " << pol1[1] * pol3[1] <<
"x^2 + " << pol1[0] * pol3[1] << "x^1 "
<< pol1[10] * pol3[0] << "x^10 + " << pol1[9] *
pol3[0] << "x^9+ " << pol1[8] * pol3[0] <<
"x^8 + \n " << pol1[7] * pol3[0] << "x^7 + "
<< pol1[6] * pol3[0] << "x^6 + " << pol1[5] *
pol3[0] << "x^5 + " << pol1[4] * pol3[0] <<
"x^4 + " << pol1[3] * pol3[0] << "x^3 + "
<< pol1[2] * pol3[0] << "x^2 + " << pol1[1] *
pol3[0] << "x^1 + \n " << pol1[0] * pol3[0] <<
"x^0 ";
cout << "\n\n Turunan : \n";
cout << " P2' = " <<
pol2[9] * 9 << "x^8 + " << pol2[8] * 8 << "x^7
+ " << pol2[7] * 7 << "x^6 + " << pol2[6] * 6
<< "x^5 + " << pol2[5] * 5 << "x^4 + "
<< pol2[4] * 4 << "x^3 + " << pol2[3] * 3 <<
"x^2 + \n " << pol2[2] * 2 << "x^1 + " <<
pol2[1] * 1 << "x^0 + ";
}
Berikut Output Program
nya:
5. Bilangan kompleks berbentuk a + bi, dimana a dan b adalah bilangan nyata dan i 2 = -1.
Terdapat empat operasi aritmatika dasar untuk bilangan kompleks, yaitu:
• Penambahan : (a+bi) + (c+di) = (a+c) + (b+d)i
• Pengurangan : (a+bi) - (c+di) = (a-c) + (b-d)i
• Perkalian : (a+bi) * (c+di) = (ac-bd) + (ad+bc)i
• Pembagian : (a+bi) / (c+di) = [(ac+bd) / (a 2 +b2 )] + [(bc-ad)/(c 2 +d2 )]i
Tulis program yang membaca dua
bilangan kompleks dan simbol operasi yang perlu dilakukan, kemudian lakukan
operasi yang diminta. Gunakan struktur untuk merepresentasikan bilangan
kompleks dan gunakan prosedur untuk implementasi tiap operasi.
Berikut Program nya:
#include <conio.h>
#include <iostream>
using namespace std;
struct bilangan
{
int riil[2];
int imj[2];
} kmp;
void pengurangan(bilangan &kmp)
{
int r, i;
r = kmp.riil[0] - kmp.riil[1];
i = kmp.imj[0] - kmp.imj[1];
cout << "\nHasil Pengurangan Dua
Bilangan Komlpeks : " << r << " + " << i
<< "i";
}
void penjumlahan(bilangan &kmp)
{
int r, i;
r = kmp.riil[0] + kmp.riil[1];
i = kmp.imj[0] + kmp.imj[1];
cout << "\nHasil Penjumlahan Dua
Bilangan Komlpeks : " << r << " + " << i
<< "i";
}
void perkalian(bilangan &kmp)
{
int a, a2, b, b2;
a = kmp.riil[0] * kmp.riil[1];
a2 = kmp.imj[0] * kmp.imj[1];
b = kmp.riil[0] * kmp.imj[1];
b2 = kmp.imj[0] * kmp.riil[1];
cout << "\nHasil Perkalian Dua
Bilangan Komlpeks:"
<< "(" << a << "-" << a2
<< ")"
<< "+"
<< "(" << b << "+" << b2
<< ")"
<< "i";
}
void pembagian(bilangan &kmp)
{
int a, a2, b, b2, c, c2, d, d2;
a = kmp.riil[0] * kmp.riil[1];
a2 = kmp.imj[0] * kmp.imj[1];
b = kmp.riil[0] * kmp.imj[1];
b2 = kmp.imj[0] * kmp.riil[1];
c = kmp.riil[0] * kmp.riil[0];
c2 = kmp.imj[0] * kmp.imj[0];
d = kmp.riil[1] * kmp.riil[1];
d2 = kmp.imj[1] * kmp.imj[1];
cout << "\nHasil Pembagian Dua
Bilangan Komlpeks:"
<< "["
<< "(" << a << "+" << a2
<< ")"
<< "/"
<< "(" << c << "+" << c2
<< ")"
<< "]"
<< "+"
<< "["
<< "(" << b << "-" << b2
<< ")"
<< "/"
<< "(" << d << "+" << d2
<< ")"
<< "]"
<< "i";
}
int main()
{
cout << endl
<< endl;
cout << "\t\t\tProgram Operasi
Bilangan Kompleks";
cout << endl
<< endl
<< endl;
bilangan kmp;
for (int a = 0; a < 2; a++)
{
cout << "Masukkan Bilangan Kompleks yamg ke " << a
+ 1 << endl;
cout << "Bilangan Riil : ";
cin >> kmp.riil[a];
cout << "Bilangan Imajiner : ";
cin >> kmp.imj[a];
}
for (int a = 0; a < 2; a++)
{
cout << "\nBilangan Kompleks yang ke " << a + 1
<< " : " << kmp.riil[a] << " + " <<
kmp.imj[a] << "i";
}
cout << endl
<< endl;
penjumlahan(kmp);
pengurangan(kmp);
perkalian(kmp);
pembagian(kmp);
getch();
}
Berikut Output Program
nya:
0 comments:
Posting Komentar