Ñ-Blu Blog

Shout This Box





Solusi Modul 4-FTTM A 2010 PDF Print E-mail
Written by Administrator   
Friday, 16 April 2010 23:44

Soal 1 (keluarkan array level1).
Peserta praktikum diminta untuk membuat sebuah program yang bisa mengeluarkan nilai array
dimensi 1.
User memasukkan bilangan berapapun yang dia mau, berapa kalipun user mau. Lalu saat user
memasukkan bilangan 9999 program berhenti meminta masukan user, dan program
menampilkan semua angka dari masukan user tersebut.


Soal 2 (Keluarkan array level 2).
Peserta praktikum diminta untuk membuat sebuah program yang bisa mengeluarkan nilai array
dimensi 2.
User memasukkan jumlah baris dan jumlah kolom, lalu memasukkan nilai-nilai dalam matriks
tersebut, lalu program menampilkan angka-angka seperti masukan user dalam bentuk matriks.


Soal 3 (Max dan Min matrix).
Peserta praktikum diminta untuk membuat sebuah program yang bisa mengeluarkan 2 nilai
maksimal dan minimal dari matriks.
User memasukkan jumlah baris dan jumlah kolom, lalu memasukkan nilai-nilai dalam matriks
tersebut, lalu program menampilkan angka-angka seperti masukan user dalam bentuk matriks
dan 2 nilai tertinggi dalam matriks tersebut dan 2 nilai terendah dalam matriks tersebut.

Jawaban :

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


int main()
{
int a[100];
int counter=0;
cout<<"masukkan isi array <berhenti sampai 100 atau memasukkan 9999: "; cin >>a[counter];
while((a[counter]!=9999) && (counter<100))
{
counter++;
cout<<"masukkan isi array <berhenti sampai 100 atau memasukkan 9999: "; cin >>a[counter];
}


for(int i=0;i<counter;i++){
cout<<a[i]<<" ";
}

getch();
return 0;
}

alternatif soal no 1 

SOAL 1
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    int nilai[100];
    int i=0;
    while (i<100)
    {
           cout <<"masukan isi array (berhenti sampai 100 atau 9999): ";
           cin>>nilai[i];
           if (nilai[i]==9999)
               break;
           i++;
    }
    cout<<"keluaran\n";
    for (int j=0; j<i; j++)
    {
         cout<<nilai[j]<<"\t";
         }
    getch();
    return 0;
}

dengan menggunakan break, atau continue, alur logika program yang sebenarnya jadi kurang terlihat. dengan memanfaatkan while () mungkin akan lebih terlihat alur logika programnya.

SOAL 2

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

int main ()
{
    int n;
    cout<<"masukan tinggi segitiga: ";cin>>n;
    for (int i=1; i<=n; i++)
    {
        for (int j=1; j<=i; j++)
            cout<<"*";
        cout<<endl;
    }
    getch();
    return 0;
   
}

SOAL 3

pada contoh program yang diberikan tim pembuat soal jika nilai terbesar pertama dan kedua sama, maka tidak bisa tertangani. begitu juga jika nilai terkecil pertama dan kedua sama maka tidak tertangani juga.

source code berdasarkan contoh program

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

int main ()
{
    int n,m;
    int max1;
    int max2;
    int min1;
    int min2;
   
    cout<<"masukan nilai kolom :";cin>>n;
    cout<<"masukan nilai baris :";cin>>m;
    int matrix[m][n];
   
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout<<"masukan isi matriks ["<<i+1<<"]["<<j+1<<"] : ";
            cin >>matrix[i][j];
        }
    }
    //mencari nilai max1
    max1 = matrix[0][0];
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (matrix[i][j]>max1)
               max1=matrix[i][j];
        }
    }
    //mencari nilai max 2
    max2 = matrix[0][0];
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (matrix[i][j]>max2 && matrix[i][j]!=max1)
               max2=matrix[i][j];
        }
    }
    //mencari nilai min1
   min1 = matrix[0][0];
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (matrix[i][j]<min1)
               min1=matrix[i][j];           
        }
    }
     //mencari nilai min2
   min2 = matrix[0][0];
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            if (matrix[i][j]<min2 && matrix[i][j]!=min1)
               min2=matrix[i][j];
        }
    }
    //menampilkan matriks
    cout<<"matrix :\n";
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout<<matrix[i][j]<<"\t";
        }
        cout<<endl;
    }
    cout<<endl;
    cout<<"nilai terbesar 1:"<<max1<<endl;
    cout<<"nilai terbesar 2:"<<max2<<endl;
    cout<<"nilai terkecil 1:"<<min1<<endl;
    cout<<"nilai terkecil 2:"<<min2<<endl;
    getch();
    return 0;
}

alternatif lainnya yang lebih baik'

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


int main()
{
int columnSize, rowSize;
int Min, previousMin, Max, previousMax;

cout<<"masukkan panjang baris matriks: "; cin>>rowSize;
cout<<"masukkan panjang kolom matriks: "; cin>>columnSize;
int Matriks[rowSize][columnSize];

//masukkan nilai PER BARIS
// Matriks[1][2], BARIS PERTAMA KOLOM KEDUA
for(int i=0;i<rowSize;i++){
for(int j=0;j<columnSize;j++){
cout<<"masukkan isi matriks["<<i<<"]["<<j<<"]: "; cin>>Matriks[i][j];
}
}

//MENCARI NILAI MAKSIMUM
Max=Matriks[0][0];
previousMax = Matriks[0][0];
for(int i=0;i<rowSize;i++){
for(int j=0;j<columnSize;j++){
if(Matriks[i][j]>=Max)
{
previousMax = Max;
Max = Matriks[i][j];
}else if(Matriks[i][j]>=previousMax){//harus dicek lagi, ada kemungkinan Matriks[i][j] lebih besar dari previous Max walaupun lebih kecil dari Max
previousMax = Matriks[i][j];
}
}
}

//MENCARI NILAI MINIMUM
Min=Matriks[0][0];
previousMin = Matriks[0][0];
for(int i=0;i<rowSize;i++){
for(int j=0;j<columnSize;j++){
if(Matriks[i][j]<=Min)
{
previousMin = Min;
Min = Matriks[i][j];
} else if(Matriks[i][j]<=previousMin){//harus dicek lagi, ada kemungkinan Matriks[i][j] lebih kecil dari previous Min walaupun lebih besar dari Min
previousMin = Matriks[i][j];
}
}
}

//TAMPILKAN HASIL
for(int i=0;i<rowSize;i++){
for(int j=0;j<columnSize;j++){
cout<<Matriks[i][j]<<"\t";
}
cout<<"\n";
}

cout<<"\n nilai maksimum 1: "<<Max;
cout<<"\n nilai maksimum 2: "<<previousMax;
cout<<"\n nilai minimum 1 : "<<Min;
cout<<"\n nilai minimum 2 : "<<previousMin;

getch();
return 0;
}

spesial credit untuk Pranoto Budi 13506098 atas koreksi alternatif jawabannya

 

Comments

B
i
u
Quote
Code
List
List=
[*]
URL
Name *
Email (For verification & Replies)
URL
Code   
ChronoComments by Joomla Professional Solutions
Submit Comment
Working....
Finished
Failed