5
.NET Bootcamp: Sprint 1 – C# Fundamental Exam 1 Semua soal di dalam exam ini, input dan outputnya berupa file. Pastikan lokasi input dan output file tidak dihardcode (dipantek) di dalam code, melainkan menggunakan app.config. 1. String yang Lucu Diketahui sebuah string S dengan panjang N yang tiap hurufnya mempunyai indeks i dari 0 sampai N-1, dan sebuah string R yang merupakan urutan huruf terbalik dari S . String S dikatakan lucu jika memenuhi kondisi | S i – S i-1 | = |R i – R i-1 | untuk semua i dari 1 sampai N-1. Input Output Berupa sebuah file yang baris pertamanya adalah jumlah string yang akan diperiksa, dan diikuti oleh string yang akan diperiksa (dipisahkan dengan newline). Contoh: 2 acxz bcxz Lucu Tidak Lucu Penjelasan: Untuk acxz: |c-a | = | x-z | = 2 |x-c | = | c-x | = 21 |z-x | = | a-c | = 2 Maka acxz adalah string yang Lucu. Untuk bcxz: |c-b| != |x-z| Maka bcxz adalah string yang Tidak Lucu. 2. Kalimat Pangrams Sebuah kalimat dikatakan kalimat pangrams apabila di dalam kalimat tersebut menggunakan semua huruf dalam alfabet (A sampai Z) masing- masing huruf minimal muncul 1 kali. Diasumsikan di sini kalimat yang digunakan adalah kalimat dalam bahasa inggris. Input Output Berupa sebuah file yang berisi Pangrams

Exam 1

Embed Size (px)

DESCRIPTION

--

Citation preview

Page 1: Exam 1

.NET Bootcamp: Sprint 1 – C# Fundamental

Exam 1Semua soal di dalam exam ini, input dan outputnya berupa file. Pastikan lokasi input dan output file tidak dihardcode (dipantek) di dalam code, melainkan menggunakan app.config.

1. String yang LucuDiketahui sebuah string S dengan panjang N yang tiap hurufnya mempunyai indeks i dari 0 sampai N-1, dan sebuah string R yang merupakan urutan huruf terbalik dari S . String S dikatakan lucu jika memenuhi kondisi | Si – Si-1 | = |Ri – Ri-1| untuk semua i dari 1 sampai N-1.

Input OutputBerupa sebuah file yang baris pertamanya adalah jumlah string yang akan diperiksa, dan diikuti oleh string yang akan diperiksa (dipisahkan dengan newline).

Contoh:2acxz bcxz

LucuTidak Lucu

Penjelasan:Untuk acxz:|c-a | = | x-z | = 2|x-c | = | c-x | = 21|z-x | = | a-c | = 2Maka acxz adalah string yang Lucu.

Untuk bcxz:|c-b| != |x-z|Maka bcxz adalah string yang Tidak Lucu.

2. Kalimat PangramsSebuah kalimat dikatakan kalimat pangrams apabila di dalam kalimat tersebut menggunakan semua huruf dalam alfabet (A sampai Z) masing-masing huruf minimal muncul 1 kali. Diasumsikan di sini kalimat yang digunakan adalah kalimat dalam bahasa inggris.

Input OutputBerupa sebuah file yang berisi daftar kalimat dalam bahasa inggris yang akan dicek apakah termasuk pangrams atau bukan pangrams. Setiap kaliimat dipisahkan dengan newline.Contoh:The quick brown fox jumps over the lazy dogWe promptly judge antique ivory buckles for the prize

PangramsBukan pangrams

3. Pasangan yang Tak TerpisahkanDiketahui sepasang string A dan B. Carilah substring yang terdapat di A dan B.

Page 2: Exam 1

.NET Bootcamp: Sprint 1 – C# Fundamental

Berikan jawaban YES apabila terdapat substring yang terdapat dalam pasangan string tersebut dan sebutkan huruf yang terdapat di dalam pasangan string itu. Berikan jawaban NO apabila tidak terdapat substring dalam pasangan string tersebut.

Input OutputBerupa sebuah file yang baris pertamanya adalah jumlah string yang akan diperiksa, lalu diikuti dengan string yang akan diperiksa yang dipisahkan dengan new line.Contoh:2HelloWorldHiWorld

YES: o,lNO

4. Si Dosen PemarahDi kampus Indocyber ada seorang dosen yang sangat disiplin, jika ada sejumlah mahasiswa yang terlambat, maka ia akan membatalkan kelasnya walaupun ada mahasiswa lain yang datang tepat waktu.

Tugas Anda adalah membuat code untuk menentukan apakah si dosen tersebut akan membatalkan kelasnya atau tidak.

Input OutputBerupa sebuah file yang terdiri dari:- Baris pertama adalah jumlah kondisi- Baris kedua adalah jumlah dari mahasiswa

yang akan dicek waktu kedatangannya dan batas jumlah mahasiswa yang harus datang tepat waktu

- Baris ketiga adalah waktu kedatangan mahasiswa dalam menit. Jika minus artinya mahasiswa datang sebelum kelas dimulai, jika plus artinya mahasiwa datang setelah kelas dimulai. Jika nol dianggap mahasiswa datang sebelum kelas dimulai.

Contoh:24 3-1 -3 4 24 20 -1 2 1

Kelas dibatalkanKelas dimulai

2Artinya ada 2 jumlah kondisi yang harus diperiksa, yaitu:

* Kondisi 1 *4 3 : artinya ada 4 mahasiswa yang akan hadir dan harus ada 3 mahasiswa yang datang tepat waktu

-1 -3 4 2 : artinya mahasiswa ke-1 datang 1 menit sebelum kelas dimulai, mahasiswa ke-2 datang 3 menit sebelum kelas dimulai, dst.

* Kondisi 2 *4 2 : artinya ada 4 mahasiswa yang akan hadir dan harus ada 2 mahasiswa yang datang tepat waktu

Page 3: Exam 1

.NET Bootcamp: Sprint 1 – C# Fundamental

0 -1 2 1: artinya mahasiswa ke-1 datang tepat waktu sebelum kelas dimulai, mahasiswa ke-2 datang 1 menit sebelum kelas dimulai, dst.

5. Credit CardAnda sebagai programmer diminta untuk membuat code untuk melakukan pemeriksaan apakah sebuah nomor kartu kredit adalah valid atau tidak. Algoritma yang digunakan adalah algoritma Luhn.

Misal nomor kartu kredit berikut:

4 0 1 2 8 8 8 8 8 8 8 8 1 8 8 1

Hapus digit paling belakang sehingga menjadi 4 0 1 2 8 8 8 8 8 8 8 8 1 8 8

Kalikan dengan dua untuk setiap digit indeks ganjil (digit paling kiri adalah digit ke-1)

4 0 1 2 8 8 8 8 8 8 8 8 1 8 8*2 *2 *2 *2 *2 *2 *2 *28 2 16 16 16 16 2 16

Jika ada hasil lebih dari 1 digit, jumlahkan kedua digit tersebut:

4 0 1 2 8 8 8 8 8 8 8 8 1 8 8*2 *2 *2 *2 *2 *2 *2 *28 2 7 7 7 7 2 7

Dengan menggunakan kembali digit paling belakang yang dihapus sebelumnya, jumlahkan digit indeks ganjil di atas dengan digit indeks genap

4 0 1 2 8 8 8 8 8 8 8 8 1 8 8 1*2 *2 *2 *2 *2 *2 *2 *28 2 7 7 7 7 2 7

0 2 8 8 8 8 8 18+0+2+2+7+8+7+8+7+8+7+8+2+8+7+1 = 90

Jika hasil penjumlahan adalah kelipatan 10 maka nomor kartu kredit tersebut valid.

Berikut adalah contoh nomor kartu kredit yang valid:

4556652522428968 5362497236119466 33374971113474034485248183644179 5572210120034212 31580547669412574556117092127010 5287429580012379 3337950483462838

Page 4: Exam 1

.NET Bootcamp: Sprint 1 – C# Fundamental

Input adalah berupa sebuah file yang berisi daftar nomor kartu kredit. Anda harus membuat file baru yang berisi hasil pemeriksaan apakah kartu kredit valid atau tidak.

6. Shopping TimeIndocyber membuka toko kue yang pricelistnya dapat dilihat di file barang.txt. Setiap ada pembelian akan dicatat dalam file pembelian.txt

Tugas Anda adalah membuat laporan penjualan kue seperti di contoh hasil output.txt. Perhatikan posisi tiap kolom yang ada di contoh hasil ini, menggunakan pola fixed width text file.

7. Plus MinusAnda mempunyai sekumpulan bilangan bulat (integer). Anda harus menghitung jumlah bilangan bulat positif, negatif, dan nol terhadap total bilangan.

Input OutputSebuah file yang isinya ada 2 baris, yaitu:- Baris pertama adalah jumlah angka yang akan

dihitung- Baris kedua adalah angka-angka yang akan

dihitung dipisahkan dengan spasiContoh:6-4 3 -9 0 4 1

0.500000.333330.16667

Penjelasan:Ada 6 bilangan yang diperiksaAda 3 angka bulat positif (3, 4, 1) sehingga3/6 = 0.5Ada 2 angka bulat negatif (-4, -9) sehingga2/6 = 0.33333Ada 1 angka nol sehingga1/6 = 0.16667

Gunakan ToString("##0.00000") untuk melakukan format desimal.