Monday, December 26, 2016

Bab 2. Soal & Penyelesaian C++


FILE





Soal & Penyelesaian
1.       Tulislah sebuah program C++ untuk mendemonstrasikan pembacaan dari dan penulisan ke suatu file.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//FileBacaTulis.cpp
//Membaca tiga angka dari file infile.dat, menjumlahkan ketiganya,
//dan menuliskannya ke file outfile.dat.
#include <fstream>
#include <conio.h>

int main( )
{
    using namespace std;
    ifstream aliran_masuk;
    ofstream aliran_keluar;

    aliran_masuk.open("infile.dat");
    aliran_keluar.open("outfile.dat");

    int pertama, kedua, ketiga;
    aliran_masuk >> pertama >> kedua >> ketiga;
    aliran_keluar << "Penjumlahan atas 3 angka \n"
               << "dalam infile.dat\n"
               << "adalah " << (pertama + kedua + ketiga)
               << endl;

    aliran_masuk.close( );
    aliran_keluar.close( );

    getch();
    return 0;
}


2.       Tulislah program C++ yang lebih baik daripada pada soal nomor 1.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//FileBacaTulisBaik.cpp
//Membaca tiga angka dari file infile.dat, menjumlahkan ketiganya,
//dan menuliskannya ke file outfile.dat.

#include <fstream>
#include <iostream>
#include <cstdlib>

int main( )
{
    using namespace std;
    ifstream aliran_masuk;
    ofstream aliran_keluar;
    aliran_masuk.open("infile.dat");

    if (aliran_masuk.fail( ))
    {
        cout << "Pembukaan file masukan gagal.\n";
        exit(1);
    }

    aliran_keluar.open("outfile.dat");

    if (aliran_keluar.fail( ))
    {
        cout << "Pembukaan file keluaran gagal.\n";
        exit(1);
    }

    int pertama, kedua, ketiga;
    aliran_masuk >> pertama >> kedua >> ketiga;
    aliran_keluar << "Penjumlahan atas 3 angka \n"
               << "dalam infile.dat\n"
               << "adalah " << (pertama + kedua + ketiga)
               << endl;

    aliran_masuk.close( );
    aliran_keluar.close( );

    return 0;
}

3.       Tulislah sebuah program C++ untuk membaca tiga angka dari suatu file yang dientrikan oleh pengguna, menjumlahkan ketiganya, dan menuliskannya pada file lain yang juga dientrikan oleh pengguna.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//BacaTulisFileLain.cpp
#include <fstream>
#include <iostream>
#include <cstdlib>

int main( )
{
    using namespace std;
    char nama_file_masukan[16], nama_file_keluaran[16];
    ifstream aliran_masuk;
    ofstream aliran_keluar;

    cout << "Saya akan menjumlahkan ketiga angka yang diambil dari sebuah \n"
         << "file masukan dan menuliskan hasil penjumlahannya pada file keluaran.\n";

    cout << "Masukkan nama file masukan (maksimum 15 karakter):\n";
    cin >> nama_file_masukan;

    cout << "Masukkan nama file keluaran (maksimum 15 karakter):\n";
    cin >> nama_file_keluaran;

    cout << "Saya akan membaca angka-angka dari file "
         << nama_file_masukan << " dan\n"
         << "menempatkan hasil penjumlahannya pada file "
         << nama_file_keluaran << endl;

    aliran_masuk.open(nama_file_masukan);
    if (aliran_masuk.fail( ))
    {
        cout << "Pembukaan file masukan gagal.\n";
        exit(1);
    }

    aliran_keluar.open(nama_file_keluaran);
    if (aliran_keluar.fail( ))
    {
        cout << "Pembukaan file keluaran gagal.\n";
        exit(1);
    }

    int pertama, kedua, ketiga;
    aliran_masuk >> pertama >> kedua >> ketiga;
    aliran_keluar << "Penjumlahan atas 3 angka \n"
               << "dalam infile.dat\n"
               << "adalah " << (pertama + kedua + ketiga)
               << endl;

    aliran_masuk.close( );
    aliran_keluar.close( );

    cout << "Akhir Program.\n";
    return 0;
}


4.       Tulislah sebuah program C++ untuk mendemonstrasikan pemformatan keluaran pada file maupun pada monitor.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//formatFileKeluaran.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <iomanip>
#include <conio.h>
using namespace std;

void buat_bersih(ifstream& file_berantakan, ofstream& file_rapi,
    int jumlah_dijit_dibelakang_titik_desimal, int lebar_bidang);

int main( )
{
    ifstream fin;
    ofstream fout;

    fin.open("datamentah.dat");
    if (fin.fail( ))
    {
        cout << "Pembukaan file masukan gagal.\n";
        exit(1);
    }

    fout.open("datarapi.dat");
    if (fout.fail( ))
    {
        cout << "Pembukaan file keluaran gagal.\n";
        exit(1);
    }

    buat_bersih(fin, fout, 5, 12);

    fin.close( );
    fout.close( );

    cout << "Akhir program.\n";

    getch();
    return 0;
}

void buat_bersih(ifstream& file_berantakan, ofstream& file_rapi,
    int jumlah_dijit_dibelakang_titik_desimal, int lebar_bidang)
 {
    file_rapi.setf(ios::fixed);
    file_rapi.setf(ios::showpoint);
    file_rapi.setf(ios::showpos);
    file_rapi.precision(jumlah_dijit_dibelakang_titik_desimal);

    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.setf(ios::showpos);
    cout.precision(jumlah_dijit_dibelakang_titik_desimal);

    double brktnya;
    while (file_berantakan >> brktnya)
    {
        cout << setw(lebar_bidang) << brktnya << endl;
        file_rapi << setw(lebar_bidang) << brktnya << endl;
    }
}


   +10.37000
    -9.89897
    +2.31300
    -8.95000
   +15.00000
    +7.33333
   +92.87650
  -123.75684
Akhir program.

5.       Tulislah sebuah program C++ untuk mengedit suatu file teks.
Penyelesaian:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//editFileTeks.cpp
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <conio.h>
using namespace std;

void tambah_plus_plus(ifstream& aliran_masuk, ofstream& aliran_keluar);

int main( )
{
    ifstream fin;
    ofstream fout;

    cout << "Mulai mengedit file.\n";
    fin.open("asli.dabt");
    if (fin.fail( ))
    {
        cout << "Pembukaan file masukan gagal.\n";
        exit(1);
    }

    fout.open("edit.dat");
    if (fout.fail( ))
    {
        cout << "Pembukaan file keluaran gagal.\n";
        exit(1);
    }

    tambah_plus_plus(fin, fout);
    fin.close( );
    fout.close( );
    cout << "Akhir pengeditan file.\n";

    getch();
    return 0;
}

void tambah_plus_plus(ifstream& aliran_masuk, ofstream& aliran_keluar)
{
    char brktnya;
    aliran_masuk.get(brktnya);
    while (! aliran_masuk.eof( ))
    {
        if (brktnya == 'C')
            aliran_keluar << "C++";
        else
            aliran_keluar << brktnya;

        aliran_masuk.get(brktnya);
    }
}


a mengerti contoh ini!

No comments:

Post a Comment