Translate

Senin, 27 Februari 2017

Pencarian Aray 2D (Matriks), Ganjil Genap, dan Huruf. Pemrograman C++

soal 1.
Buatlah program untuk mencari data pada array 2 dimensi (opsional: tambahkan kode program untuk memberi inputan data dan ukuran array,) Contoh data array: 
1     3    2 
10   5    8 
15  24  10 
yang dicari: 24 
output : data 24 berada pada posisi [2][1] 
yang dicari: 2 
output:  data 2 berada pada posisi [0][2] 
petunjuk: gunakan sequential search, karena data tidak diurutkan, terdapat 2 looping untuk proses pencarian. 

soal 2.
Buat program untuk mencari data berupa huruf pada inputan yang berupa kalimat. (Opsional: hitung jumlah konsonan, dan vokal). 

soal 3.
Buat program untuk mencari bilangan ganjil dan bilangan genap dari data angka yang diinputkan oleh user (opsional: berikan indeks untuk setiap data yang ditemukan). 

PEMECAHAN MASALAH
soal 1.

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

int main()
{
    cout<<"SOAL NO 1"<<endl;
    cout<<"+----------------------+"<<endl;
    cout<<"|Muh. Budi Dharmawan P |"<<endl;
    cout<<"|E1E1 15 034           |"<<endl;
    cout<<"+----------------------+\n"<<endl;
   
    ulang://untuk kembali memasukkan matrix
    cout<<"\n=====================***=======================\n"<<endl;
    int baris,kolom,i,j,cari,flag=0;

    cout<<"Masukan panjang matrikx     : ";cin>>baris;
    cout<<"Masukan lebar matrix        : ";cin>>kolom;
    cout<<endl;
    int mtrx[baris][kolom];

    for ( i=0;i<baris;i++)
    {
        for ( j=0;j<kolom;j++)
        {

            cout<<"Masukan nilai matrix ["<<i<<"]["<<j<<"] : ";cin>>mtrx[i][j];
        }
    }
   
        cout<<"\nMATRIX ANDA : "<<endl;
        for ( i=0;i<baris;i++)
        {
            cout<<endl;
            for ( j=0;j<kolom;j++)
            {
                cout<<"\t"<<mtrx[i][j]<<"\t";
            }
            cout<<endl;
        }
   
            char tanya;
            cout<<"\nApakah anda ingin mengganti data ? (y/n) : ";cin>>tanya;
            if (tanya=='n')
            {
                cout<<"\nMasukan nilai yang dicari : ";cin>>cari;
                    for ( i=0;i<baris;i++)
                    {
                        for ( j=0;j<kolom;j++)
                        {
               
                            if(mtrx[i][j]==cari)
                            {
                                flag=1;
                            }
                            if(flag==1)
                                cout<<"\nData "<<cari<<" ditemukan pada index["<<i<<"]["<<j<<"]";
                        }
                    }
                    if(flag!=1)
                    cout<<"\nData tidak ada...";
            }
           
            else
            {
                goto ulang;
            }
   
    goto ulang;
   
getch();
return 0;

}











soal 2.
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;

int main()
{
    cout<<"SOAL NO 2"<<endl;
    cout<<"+----------------------+"<<endl;
    cout<<"|Muh. Budi Dharmawan P |"<<endl;
    cout<<"|E1E1 15 034           |"<<endl;
    cout<<"+----------------------+\n"<<endl;
   
    ulang://untuk kembali inputan kata kembali, namun masih tidak berfungsi sesuai harapan
    cout<<"\n=====================***=======================\n"<<endl;
   
    int vokal=0, konsonan=0, spasi=0, flag=0, i, batas;
    char kata[2000],cari;
    cout <<"Input : "; gets(kata);
    cout <<"Output : "<<endl;
        for(i=0;i<kata[i];i++)
            {
                if(kata[i]=='a'||kata[i]=='i'||kata[i]=='u'||kata[i]=='e'||kata[i]=='o') {
                    vokal++;
                }
                else if(kata[i]==' '){
                    spasi++;
                }
                else
                    konsonan++;
            }
            cout<<endl;
           
    cout<<"\tVocal = "<<vokal<<" = ";
        for(i=0;i<kata[i];i++)
            {
                   if(kata[i]=='a'||kata[i]=='i'||kata[i]=='u'||kata[i]=='e'||kata[i]=='o')
                {
                    cout<<kata[i]<<" ";
                }
            }
            cout<<endl;
   
    cout<<"\tKonsonan = "<<konsonan<<" = ";
        for(i=0;i<kata[i];i++)
            {
                if(kata[i]=='a'||kata[i]=='i'||kata[i]=='u'||kata[i]=='e'||kata[i]=='o'){
                    cout<<"";
                }
                else if(kata[i]==' '){
                    cout<<"";
                }
                else
                    cout<<kata[i]<<" ";
            }
            cout<<endl;
           
    char tanya;
    cout<<"\nApakah anda ingin mengganti kata/kalimat? (y/n) : ";cin>>tanya;
    if (tanya=='n')
    {
        cout<<"\n\tMasukkan data yang akan anda cari : "; cin>>cari;
        for(i=0;i<kata[i];i++)
            {
                if(kata[i]==cari)
                flag=1;
            }
       
                if(flag==1)
                {
                        cout<<"\tData ditemukan!";
                }
                else
                {
                        cout<<"\tData tidak ada...\n";
                }
    }
    else
    {
        goto ulang;//pada perulangan ini tidak bekerja sesuai harapan, masih ada kesalahan penggunaan kode
    }
           
    getch();
    return 0;
}















soal 3.


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

int main()
{
    cout<<"SOAL NO 3"<<endl;
    cout<<"+----------------------+"<<endl;
    cout<<"|Muh. Budi Dharmawan P |"<<endl;
    cout<<"|E1E1 15 034           |"<<endl;
    cout<<"+----------------------+\n"<<endl;
   
    ulang://untuk kembali memasukkan matrix
    cout<<"\n=====================***=======================\n"<<endl;

    int data[100],batas,ganjil[100],genap[100],jil[100],nap[100];
    int a=0,b=0;
    string pilih,tanya;

    cout<<"Masukkan batas memory : ";cin>>batas;
    cout<<"\nMasukkan angka anda!\n";
    for(int i=0;i<batas;i++)
    {
        cout<<"\tmemory "<<i<<" = ";cin>>data[i];
    }

        cout<<"Angka yang anda miliki : "<<endl;
       
        for(int i=0;i<batas;i++)
        {
            cout<<"\t"<<data[i];
        }
   
        for(int i=0;i<batas;i++)
        {
            if(data[i]%2==0)
            {
                genap[b]=data[i];
                nap[b]=i;
                b++;
            }
            else
            {
                ganjil[a]=data[i];
                jil[a]=data[i];
                a++;
            }
        }
       
        cout<<"\nUbah data? (y/n) : ";cin>>tanya;
        if (tanya=="y")
        {
            goto ulang;
        }
        else
        {
           
            cout<<"\n\nApakah anda ingin mencari data ganjil? (y/n): ";cin>>pilih;
            if(pilih=="y"||pilih=="yes"||pilih=="Y")
            {
                cout<<"\n\tBilangan ganjil anda"<<endl;
                if(a<1)
                {
                    cout<<"\tData tidak ditemukan...";
                }
                else
                for(int i=0;i<a;i++)
                {
                    cout<<"\tIndex ke-"<<jil[i]-1<<" : "<<ganjil[i]<<endl;
                }
       
            }
            if(pilih=="n"||pilih=="no"||pilih=="N")
            {
                   cout<<"\n\tbilangan genap anda"<<endl;
                if(b<1)
                {
                    cout<<"\tData di temukan!"<<endl;
                }
                else
                for(int i=0;i<b;i++)
                {
                    cout<<"\tIndex ke-"<<nap[i]<<" : "<<genap[i]<<endl;
                }
            }
           
        }

    goto ulang;          

    getch();
    return 0;
}
 



Tidak ada komentar:

Posting Komentar