-->

I'M Bayu Pradika

Graphic Designer . Web Developer . Programmer

Minggu, 21 Agustus 2022

Contoh Percobaan dan Latihan Program C++(Alokasi memori)




A. Contoh Program Mudah Menggunakan Alokasi Memori Pada C##

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:



~~Terima kasih~~

 

 

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna Veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

0 comments:

Categories

Contact Us

BAYU
+62 896-2690-9619
Kampar, Riau, Indonesia