Ñ-Blu Blog

Shout This Box





Solusi Modul 3 FTTM B PDF Print E-mail
Written by Administrator   
Sunday, 05 April 2009 06:31

 

Ini solusi Praktikum ke-3 PTI FTTM Shift B yang dilaksanakan pada tanggal 30 Maret 2009, dan tentu saja versi saya lho...  CMIIW

 

Soal 1 (Barisan bilangan kuadrat sempurna).

 

Buatlah  sebuah  program  yang  menerima  masukan  sebuah  bilangan  integer. Setelah itu, program akan menampilkan output seperti dibawah ini.

 

Contoh tampilan:

 

Masukan sebuah nilai : 4

1              4              9              16

 

Contoh tampilan 2:

 

Masukan sebuah nilai : 6

1              4              9              16           25           36

 

Jadi,          peserta         praktikum         diminta         untuk       membuat          barisan         bilangan kuadrat.

 

Source codenya:

/****************************

 *Program Barisan Kuadrat   *

 *by Pribadi Mumpuni Adhi   *

 *http://nicedaysblue.web.id*

 ***************************/

 

#include <iostream>

#include <conio.h>

using namespace std;

int main ()

{

    int i, j, k;

   

  

    cout <<"masukkan sebuah nilai : ";cin>>j;

    cout <<"yg ini pake for loh...\n";

    for (i=1 ; i<=j ; i++)

    {

        k = i*i;

        cout<<k<<"  ";

    }

    cout <<"\n\n";

    cout <<"kalo yg ini pake while dong...\n\n";

    i = 1;

    while (i<=j)

    {

        k = i*i;

        cout<<k<<"  ";

        i++;

    }

    //please don't remove the code below this line   

    cout<<"\n\n\nplease visit http://nicedaysblue.web.id";     

    getch ();

    return 0;

}

 

Penjelasan singkat

Dalam source code di atas diberikan solusi pengerjaan baik menggunakan ‘for’ maupun ‘while’, secara prinsip penggunaannya sama saja, hanya syntax-nya yang berbeda.

k=i*i  berarti nilai k akan sama dengan i kuadrat dengan i mulai dari 1 sampai j

 

Soal 2 (Spinning N).

 

Buatlah sebuah program yang menerima masukan input sebuah nilai integer. Setelah itu, program akan menampilkan output seperti dibawah ini.

 

Contoh tampilan:

 

Masukan sebuah nilai : 4

 

4

3

2

1

1

2

3

4

4

3

2

1

1

2

3

4

 

Jadi,  program  akan  menampilkan  angka  dari  1  sampai  N  (N  adalah

masukan  user).  Tetapi,  penampilan  barisannya  bergantian  dari  kecil  ke

besar dan besar ke kecil.

 

Source codenya:

/****************************

 *Program Spinning N        *

 *by Pribadi Mumpuni Adhi   *

 *http://nicedaysblue.web.id*

 ***************************/

#include <iostream>

#include <conio.h>

using namespace std;

int main ()

{

    int i, j, k;   

    cout <<"masukan sebuah nilai : ";cin>>j;

   

    for (i=1 ; i<=j; i++)

    {  

        if (i%2==1)//untuk i=ganjil

        {  

            for (k=j; k>0; k--)

            {

                 cout<<k<<" ";

            }

            cout<<"\n";

        }

        else //yang ini untuk i=genap

        {

             for (k=1; k<=j; k++)

             {

                 cout<<k<<" ";

             }

             cout<<"\n";

        }  

    }

    //please don't remove the code below this line   

    cout<<"\n\n\nplease visit http://nicedaysblue.web.id";     

    getch ();

    return 0;

}

 

Penjelasan singkat

sesuai dengan contoh tampilan di soal, kalau ganjil maka urutannya dari besar ke kecil

kalau genap dari kecil ke besar... (yg gw tangkep sih itu bung!)

so..

utk ganjil dilakukan decrement menggunakan:

    for (k=j; k>0; k--)

    {

         cout<<k<<" ";

    }   

nilai k yg pertama akan sama dgn input kita yaitu j,

akan terus diulang sampe nilai k>0, dan nilai k akan terus berkurang 1.

bila yg diinput j=4 yang tampil di layar adalah

4 3 2 1  

 

untuk genap dilakukan increment, nilai  k akan terus bertambah 1,

hal ini akan terus diulang apabila k<=j, dengan j nilai input kita.

    for (k=1; k<=j; k++)

    {

         cout<<k<<" ";

    }

 

Soal bonus (Bilangan Masukan Minimum).

 

Buatlah sebuah program yang meminta input sebuah bilangan integer. Setelah itu,  program  akan  melakukan  perulangan  sebanyak  nilai  bilangan  tersebut. Proses  yang  dilakukan  ketika  melakukan  perulangan  tersebut  adalah  meminta masukan  nilai  yang  ditampung  dalam  variabel.  Setelah  itu,  program  akan menghasilkan output berupa nilai terkecil yang dimasukkan oleh user tadi.

 

Contoh program :

 

Masukan sebuah nilai integer : 5

 

Masukan nilai 1 : 3

 

Masukan nilai 2 : 7

 

Masukan nilai 3 : 2

 

Masukan nilai 4 : 20

 

Masukan nilai 5 = 12

 

Nilai terkecil yang dimasukkan user = 2

 

Hint   :    Pada     saat     perulangan,       gunakanlah       hanya     sebuah      variabel

(katakanlah  variabel  A)  yang  menampung  masukan  user.  Variabel  itu akan terus diisi ulang oleh perintah CIN >> . Artinya, setiap kali masukan user di perulangan, isi variabel ini selalu berubah sesuai dengan masukan user  tersebut.  Kemudian,  gunakanlah  variabel  lain  (katakanlah  variabel

B)  yang  akan  membandingkan  nilai  dengan  variabel  A.  Dan  hasil  akhir ada di variabel B tersebut.

 

Source codenya:

/*****************************

 *Program Bil masukan minimum*

 *oleh Pribadi M. Adhi       *

 *http://nicedaysblue.web.id *

 *****************************/

 

#include <iostream>

#include <conio.h>

using namespace std;

 

int main ()

{

    int bil, a, b, i;

    cout<<"Masukan sebuah nilai integer : ";cin>>bil;

    for (i=1; i<=bil; i++)

    {                    

         cout<<"Masukan nilai "<<i<<" : ";cin>>a;  

         if (i==1)

             b=a+1;    

         if (b>a)  

             b=a;

         else

             continue;

    }

//please don't remove the code below this line

    cout<<"Nilai terkecil yang dimasukkan user = "<<b;

    cout<<"\n\n\nplease visit http://nicedaysblue.web.id";     

    getch();

    return 0;

}

 

Penjelasan singkat

Soal bonus ini bisa dibilang sangat mengerikan, karena agak-agak tricky, nyebelin memang. Gw baru ingat bahwa di modul 3 dibahas juga masalah ‘break’ dan ‘continue’. Setelah diuji coba (plus baca bukunya)ternyata yang mempan pake ‘continue’. Untuk penjelasan perbedaan break dan continue baca aja buku C++ atau modul praktikum 3.

 

Kuncinya ada pada blok statement di bawah ini

if (i==1)

    b=a+1;

Jadi pada saat i=1 nilai b akan selalu lebih besar dari nilai a.

 

if (b>a)  

    b=a;

else

    continue;

Nilai masukan a yang pertama selalu disimpan sebagai nilai terkecil (sementara waktu saja).

Saat input berikutnya bila nilai b masih lebih besar dari nilai a yg kedua maka nilai b akan menjadi nilai a. Namun bila nilai b lebih kecil dari a maka program tidak akan menyimpan nilai a sebagai b, di situlah bergunanya kata kunci continue. Sehingga hanya nilai a terkecil saja yang disimpan.

 

Hati-hati jangan sampai tertukar menjadi

if (b<a)

    b=a;

else

   continue;

dijamin akan muncul sederetan angka yang aneh di layar kompi anda... Believe me!!!

 

Last Updated ( Wednesday, 08 April 2009 23:40 )
 

Comments

avatar qie
0
 
 
hueks, puyeng bacanya...
B
i
u
Quote
Code
List
List=
[*]
URL
Name *
Email (For verification & Replies)
URL
Code   
ChronoComments by Joomla Professional Solutions
Submit Comment
Cancel
avatar qie
0
 
 
sama.. jgn ngepost ginian np..
B
i
u
Quote
Code
List
List=
[*]
URL
Name *
Email (For verification & Replies)
URL
Code   
ChronoComments by Joomla Professional Solutions
Submit Comment
Cancel
avatar qie
0
 
 
sama.. jgn ngepost ginian np..
B
i
u
Quote
Code
List
List=
[*]
URL
Name *
Email (For verification & Replies)
URL
Code   
ChronoComments by Joomla Professional Solutions
Submit Comment
Cancel
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