Blog Archives

C Program – Mencari nilai eksponensial dengan deret MacLaurin


Ilustrasi deret maclaurin

#include <stdio.h>
#include <stdlib.h>
float pangkat(int x, int y);
int faktorial(int x);
float eksponen(int x);
int main()
{
    int nilaiX;
    float nilaiEksponen;
    printf("n Eksponensial dengan deret McLaurin"
                 "n =============================================n"
           "n Masukan nilai x : ");
           scanf("%d",&nilaiX);
           nilaiEksponen=eksponen(nilaiX);
           printf("n Hasil e^x jika x = %d adalah %.3f",nilaiX,nilaiEksponen);
    return 0;
}
float eksponen(int x){
    int i,jumlahDeret = 11;
    float hasil;
    hasil=1+x;
    for(i=1;i<=jumlahDeret;i++){
        hasil += (float)(pangkat(x,i+1)/faktorial(i+1));
    }
    return hasil;
}
float pangkat(int x,int y){
    int a;float hasil=1;
    if(y==0)
        hasil=1;
    if(y>0)
    for(a=1;a<=y;a++){
        hasil*=x;
    }
    if(y<0){
        int yy=-(y);
        for(a=1;a<=yy;a++){
        hasil*=x;
        }
        hasil = (float)1/hasil;
    }
    return hasil;
}

int faktorial(int x){
if (x == 1 || x == 0) return 1;
return x * faktorial(x-1);
}

C Program – Fungsi faktorial secara manual(looping) dan rekursif

File 1 adalah contoh fungsi untuk mencari nilai faktorial yang di buat dengan cara looping, di dalam proses looping terjadi proses pengurangan pada bilangan yang di faktorialkan sehingga, n*n-1*n-2*n-3*…*1, looping akan berhenti saat kondisi while pada angka 1.

#include <stdio.h>
#include <stdlib.h>
int faktorial(int x);
int main()
{
    int x,hasil;
    printf("n Fungsi Faktorial n ===================n");
    printf("n Untuk fungsi x! masukan nilai x : ");
    scanf("%d",&x);
    hasil=faktorial(x);
    printf("n Hasil dari %d! : %d",x,hasil);
    return 0;
}
int faktorial(int x){
    int xtmp=x,hasil=x;
    while(xtmp!=1){
        if(x==0)
        {
            hasil=1;
            break;
        }
        hasil*=xtmp-1;
        xtmp--;
    }
    return hasil;
}

File 2. Konsep fungsi rekursif adalah fungsi yang memanggil dirinya sendiri di dalam fungsi tersebut hingga suatu keadaan terpenuhi. Contoh kedua ini mekanismenya hampir sama yaitu dengan mengurangi bilangan yang difaktorialkan, bedanya cara kedua menggunakan metode rekursif.

#include <stdio.h>
#include <stdlib.h>
int faktorial(int x);
int main()
{
    int x,hasil;
    printf("n Fungsi Faktorial n ===================n");
    printf("n Untuk fungsi x! masukan nilai x : ");
    scanf("%d",&x);
    hasil=faktorial(x);
    printf("n Hasil dari %d! : %d",x,hasil);
    return 0;
}
int faktorial(int x){
if (x == 1 || x == 0) return 1;
return x * faktorial(x-1);
}

*) keterangan : Aplikasi yang saya gunakan Codeblock versi 10.05

C – Stack of array

Pada dasarnya STACK atau tumpukan itu hampir sama dengan array, hanya saja dalam stack, prinsip ketersediaan ruang didefinisikan dalam konstanta. Dan pengambilan data tidak dapat langsung diambil di index yang dituju seperti pada array, tetapi diambil dari data teratas terlebih dahulu. Sistemnya adalah data yang terakhir masuk adalah yang pertama keluar. Seperti pada contoh program sederhana berikut.

#include <stdio.h>
#include <stdlib.h>#define MAX 6
void push();
void pop();
int isFull();
int isEmpty();
void display();
int stack[6], TOP= -1;
int main() {
int stack[6], TOP= -1, choice;
printf("\nENter the choice\n");
printf("1. PUSH\n");
printf("2. POP\n");
printf("3. DISPLAY\n");
scanf("%d",&choice);
switch(choice){
case 1: push(); break;
case 2: pop(); break;
case 3: display();default : printf("invalid choice");
}
main();
return 0;
}
int isFull(){
if(TOP==MAX-1) return 1;
else return 0;
}
int isEmpty(){
if(TOP==-1) return 1;
else return 0;
}
void push(){
if(isFull()==1) printf("Overflow");
else {
int item;
printf("Enter the item :");
scanf("%d", &item);
TOP=TOP+1;
stack[TOP]=item;
}
}
void pop(){
int temp;
if(isEmpty()==1) printf("under flow");
else{
temp=stack[TOP];
TOP=TOP-1;
}
}
void display(){
int i, temp=TOP;
if(isEmpty()==1)printf("\nNo data");
else{
printf("\nStack contens are\n");
printf("\n\tLocation data\n");
printf("\n-------------\nTOP->");
for(i=TOP;i>=0;i--){
printf("\t%d\t->%d",temp--,stack[i]);
printf("\n\t------------\n");
}
}
}