Contoh Percobaan dan Latihan Program C++(Alokasi memori)
Percobaan 1 : Tampilkan bilangan Fibonacci
pertama sampai ke-n menggunakan Pointer dengan Malloc, dimana n
dimasukkan oleh user. Gunakan pengecekan pengalokasian dan fungsi free
di akhir program
Berikut Contoh Program
nya:
#include <cstdio>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char
**argv)
{
//inisiasi variable
int *fibo;
int n;
printf("=============================================\n\n");
printf("= Program Print Bilangan
Fibonacci Pertama =\n\n");
printf("=============================================\n\n");
printf("Silahkan masukan jumlah bilangan:
");
scanf("%d", &n);
//Scan Hasil Inputan User
fibo = (int*)malloc(n * sizeof(int));
*(fibo + 1) = 1;
*(fibo + 2) = 1;
//fungsi pencarian bilangan fibonachi
for (int i = 3; i <= n; i++)
{
*(fibo + i) = (*(fibo + i - 2) + *(fibo + i -
1));
}
//Fungsi pengeprinan bilangan fibonachi
printf("%d Bilangan Fibonaci Pertama
adalah : \n", n);
for (int i = 1; i <= n; i++)
{
printf("%d ", *(fibo + i));
}
putchar('\n');
free(fibo);
return 0;
}
Berikut Output Programnya:
Percobaan 2 : Tampilkan bilangan Prima
pertama sampai ke-n menggunakan Pointer dengan Malloc, dimana n
dimasukkan oleh user. Gunakan fungsi realloc() untuk mengalokasikan ukuran memori yang baru (m), dimana m
dimasukkan oleh user.
Berikut Contoh Program nya:
#include
<cstdio>
#include
<stdio.h>
#include
<stdlib.h>
#include
<vector>
int
main(int argc, char **argv)
{
int *prime;
int n, m;
int cek = 1;
std::vector<int> temp;
printf("===============================================\n\n");
printf("= Program Print Bilangan Prima Pertama =\n\n");
printf("===============================================\n\n");
printf("Batasan Bilangan (n) : ");
scanf("%d", &n);
printf("Input ukuran memori yang ingin
dialokasikan(m) :");
scanf("%d", &m);
prime = (int*)malloc(sizeof(int));
realloc(prime, m * sizeof(int));
temp.push_back(1);
temp.push_back(2);
temp.push_back(3);
for (int i = 4; i <= 1000; i++)
{
for (int j = 2; j < i; j++)
{
if((i % j) == 0)
{
cek = 0;
break;
}
}
if (cek == 1)
temp.push_back(i);
else
cek = 1;
if (temp.size() == n)
break;
}
for (int i = 0; i < temp.size(); i++)
{
*(prime + i + 1) = temp[i];
}
printf("\n%d Bilangan Prima Pertama
adalah : \n", n);
for (int i = 1; i <= n; i++)
{
if(*(prime + i) != 0)
printf("%d ", *(prime + i));
}
putchar('\n');
free(prime);
return 0;
}
Berikut Output Program nya:
B. Soal Latihan Tentang Alokasi Memori
1. Dengan pointer menggunakan malloc tampilkan deret angka dengan rumus di bawah ini, dimana inputnya berupa bilangan untuk batas ( n).
Cn = 2
Cn-1 + 1 jika C0 = 1
Sn = Sn-1 + n – 1 jika S1 = 0
Berikut
Program nya:
#include
<cstdio>
#include
<stdio.h>
#include
<stdlib.h>
int
main(int argc, char **argv)
{
int *ce, *es;
int n;
printf("=============================================\n\n");
printf("= Program Print deretan angka
suaturumus =\n\n");
printf("=============================================\n\n");
printf("input batas bilangan (n) :
");
scanf("%d", &n);
//Fungsi pencarian rumusnya
ce = (int*)malloc(n+1 * sizeof(int));
es = (int*)malloc(n+2 * sizeof(int));
*(ce + 1) = 1;
*(es + 2) = 0;
for (int i = 2; i <= n+1; i++)
{
*(ce + i) = (2 * *(ce + i - 1)) + 1;
}
for (int i = 3; i <= n+2; i++)
{
*(es + i) = *(es + i - 1) + i - 1 - 1;
}
printf("\nDeretan Angka pada rumus Cn
adalah : \n", n);
for (int i = 2; i <= n+1; i++)
{
printf("%d ", *(ce + i));
}
printf("\nDeretan Angka pada rumus Sn
adalah : \n", n);
for (int i = 2; i <= n+1; i++)
{
printf("%d ", *(es + i));
}
putchar('\n');
return 0;
}
Berikut Output Programnya:
0 comments:
Posting Komentar