Jumat, 06 Mei 2016

Tugas Martikulasi Analisa dan desain Algoritma


TUGAS MARTIKULASI
ANALISA DAN DESAIN ALGORITMA




   
Oleh :
    Nim        :1411601881
                                     Nama : Muhammad Alfi Mahyuarsony
    Kelas          : XB


PROGRAM STUDI MAGISTER ILMU KOMPUTER (MKOM)
FAKULTAS PASCASARJANA
UNIVERSITAS BUDI LUHUR
                                                  Februari 2015


Daftar Isi


Cover..........................................................................................................................i
Daftar Isi...................................................................................................................ii
Soal no 1....................................................................................................................1
Program dalam bahasa C++......................................................................................1
Hasil Programnya......................................................................................................4
Soal no 2...................................................................................................................4
Program dalam bahasa C++.....................................................................................5
Hasil Programnya.....................................................................................................6
Soal no 3...................................................................................................................6
Program dalam bahasa C++......................................................................................7
Hasil Programnya......................................................................................................8










                                                                                                                                    


Soal-1.

Titik A dan titik B dihubungkan hanya oleh sebuah jalan yang panjangnya = 1100 m. Ali berangkat dari titik A menuju titik B tepat jam 08:00:00 pagi dengankecepatan tetap 10 m/detik. Sepuluh detik kemudian, yaitu pukul (08:00:10) Badu berangkat dari titik B menuju titik A dengan kecepatan awal 5 m/detik.  Tetapi 10 detik kemudian, kecepatannya naik 2m/detik menjadi 7m/detik. Demikian seterusnya, setiap 10 detik kecepatan Ali naik2m/detik.
Susun algoritma untuk mencetak pukul berapa (Jam : Menit : Detik ) Ali dan Badu bertemu, berpapasan di jalan.Bila Ali dan Badu berpapasan di titik C, cetak jarak Titik A dengan Titik C.

Jawab :

Program dalam Bahasa C++ :
#include
void main ()
{
int jarak, det, ketemu, stat, V1, V2, T0, sb, TV1, bb, ta, stv;
jarak = 1100;
V1 = 5;
V2 = 10;
T0 = 10;
sb = 0;
TV1 = V1+2;

bb = 0;
stv = jarak;
stat = 0;
ta = 0;
cout << "Jarak Antara Titik A dan Titik B = " << jarak << "meter" ;
cout<< "\nKecepatan Awalbadu = " << V1 << "m/dt";
cout << "\nKecepatan badu Naik menjadi = " << TV1 << "m/dt";
cout << "\nKecepatan Awal ali = " << V2 << "m/dt";
cout << "\nSelang Waktu Perubahan ali = " << T0 << "detik \n";
for(det=1; ; det++)
{
if(ta <= jarak || stv >= 0)
{
if(ta <= jarak)
{
ta += V1;
}
if(stv >= 0)
{
stv -= V2;
}
if(ta >= stv && stat == 0)
{
ketemu = det;
stat = 1;
}
if(T0 != 0)
{
if(det % T0 == 0)
{
V1 += TV1;
}
}
if(sb != 0)
{
if(det % sb == 0)
{
V2 += bb;
}
}
}
else break;
}
cout << "\nJadi Pertemuan Ali dan Badu pada waktu ke :" <


  int Waktu, Jam, JlhJam, Selisih, Menit, JlhMenit, Detik,Tiba;

  Jam = ketemu / 3600;
  JlhJam = Jam * 3600;
  Selisih  = ketemu - JlhJam;
  Menit  = Selisih / 60;
  JlhMenit = Menit * 60;
  Detik  = Selisih - JlhMenit;
 Tiba  = Jam + 8;

  cout << "\nali bertemu,berpapasan jalan pada pukul = " << Tiba << ":" << Menit << ":" <
intvc;
vc=ketemu*V2;
cout<< "\nJarakAntaraTitik A dengan C ="<
}









Hasil Programnya :


Soal-2.
Sebuah kebun besar ditanami pohon bibit sebanyak n baris. Setiap baris terdiridari n pohon, sehingga kebun besar ini dapat kita sebut ukurannya = n x n. Pohon-pohon tersebut kemudian dicabut dan ditanam ulang menjadi 13 buah kebundengan ukuran lebih kecil yaitu setiap kebun kecil terdiri dari m baris dan setiapbaris terdiri dari m pohon,sehingga kebun kecil ini kita sebut berukuran m x m.Setelah terbentuk 13 kebun kecil ukuran m x m, ternyata pada kebun besar masih tersisa 1 pohon. Susun program untuk mencetak berapa jumlah pohon semula yang ada di kebun besar.



Jawab :
Program dalam Bahasa C++ :
#include
#include
#include
#include
#pragma argsused
int main(int argc, char* argv[])
{
int a, b, n[400], m, index, status;
status = 0;
for(a=0; a<400 a="" o:p="">
n[a] = a*a;
for(b=1; b<400 b="" o:p="">
{
m = (b * b * 13) + 1;
printf("=> Untuk m = %d, maka jumlah pohon di kebun besar =%d\n",abs(b),abs(m));
}
for(a=1; a<400 a="" o:p="">
{
for(b=1; b<400 b="" o:p="">
{
m = (b * b * 13) + 1;
if(m == n[a])
{
printf("=> m Pada kebun kecil = %d \n",b);
printf("=> n Pada kebun besar = %d \n",a);
printf("=> Jumlah pohon di kebun besar = %d\n",abs(n[a]));
status = 1;
break;
}
}
if(status == 0)
{
printf("Sampai dengan bilangan ke %d tidak ditemukan kombinasi yang cocok.",b);
}
getch();
return 0;
}
}
Hasil Programnya :

Soal-3.
Susun program (penggalan program) untuk menginputkan dua buah bilangan long integer yang berbeda, lebih besar dari nol, misal disimpan dalam varibel A dan B.
Kemudian cari dan cetak pembagi persekutuan terbesar kedua buah bilangan tersebut:
Contoh : Bila A=75 dan  B = 105 maka tercetak : 15

Keterangan : 75 dan 105 habis dibagi oleh : 1,3,5,15.
Yang terbesar adalah 15, ini yang dicetak.

105 habis dibagi 35, tapi75 tidak habis dibagi 35,
Jadi 35 tidak termasuk dalam persekutuan pembagi habis

75 habis dibagi 25, tapi 105 tidak habis dibagi 25,
Jadi 25 tidak termasuk dalam persekutuan pembagi habis

Jawab :
Program dalam bahasa C++ :
#include
#include


/* Standard C Function: Greatest Common Divisor */
int
gcd ( int a, int b )
{
  int c;
  while ( a != 0 ) {
              c = a; a = b%a;  b = c;
  }
  return b;
}

/* Recursive Standard C Function: Greatest Common Divisor */
int
gcdr ( int a, int b )
{
  if ( a==0 ) return b;
  return gcdr ( b%a, a );
}

int
main(void)

{
  int a,b;


 {
                          cout << "masukkan bilangan a : "; //tampilkan ke layar
            cin >> a; //memasukkan nilai inputan user ke variabel a
            cout << endl;
             }
              {
                          cout << "masukkan bilangan b : "; //tampilkan ke layar
            cin >> b; //memasukkan nilai inputan user ke variabel b
            cout << endl;
             }
  printf("bilangan a=%d dan b=%d\n\n", a,b);

  printf("gcd(a,b)=gcd(%d,%d)=%d\n", a, b, gcd(a,b));

  return 0;


}

0 komentar:

Labels

 

Copyright 2018 All Rights Reserved @ Sistem Informasi|Fasilkom Unsri| Mkom Budi Luhur |