Tampilkan postingan dengan label Logika Pemrogramamn. Tampilkan semua postingan
Tampilkan postingan dengan label Logika Pemrogramamn. Tampilkan semua postingan

Belajar Logika Pemrograman

Ada suatu model permasalahan dalam logika pemrograman bagi pemula seperti yang diperlihatkan pada gambar berikut ini :

Bagaimana penyelesaiannya ?
  1. Untuk penyelesaian logika program membangun bentuk seperti pada gambar 1 di atas, kita harus melakukan permodelan. Kita mengacu pada baris saja, setiap baris akan merepresentasikan apakah karakter atau angka dicetak atau tidak. Misal, baris ke-1 dicetak hanya 1 angka saja. Baris ke-2 dicetak hanya 2 angka saja, begitu juga seterusnya hingga n baris. Sehingga dapat dibuat suatu logika bahwa jika kolom lebih besar dari baris ke-i maka cetak karakter spasi dan jika tidak maka cetak angka (angka tersebut bertambah satu untuk setiap iterasinya)
  1. Untuk penyelesaian logika program membangun bentuk seperti pada gambar 2 di atas, kita harus melakukan suatu permodelan. Misal, gambar di atas terdiri dari nxn baris dan kolom. Disitu terlihat bahwa nilai n=5 sehingga jumlah baris sebanyak 5 dan jumlah kolom sebanyak 5 pula. Kita harus tahu pola dari angka-angka tersebut. Logika dimulai dari baris ke-1 kemudian kolom ke-j sampai n. Dilanjut lagi dari baris ke-2 kemudian kolom ke-j sampai n. Begitu seterusnya hingga baris ke-n. Berikut ini pola yang terbentuk :
    • Baris ke-1 1 +9 10 +1 11 +9 20 +1 21
    • Baris ke-2 2 +7 9 +3 12 +7 19 +3 22
    • Baris ke-3 3 +5 8 +5 13 +5 18 +5 23

Jika kita perhatikan, setiap kolom ganjil dan genap membentuk suatu pola. Pada kolom ke-1, disesuaikan saja dengan baris ke-i. Namun, pada kolom ganjil berikutnya didapat suatu rumus angka pada kolom sebelumnya + (2 x baris ke-i). Misal, pengisian pada baris ke-2 kolom ke-3. Angka pada kolom sebelumnya yaitu 9 + (2 x 2) = 13. Pada kolom genap didapat suatu rumus angka pada kolom sebelumnya + (jumlah baris x 2 - baris ke-i-1)-baris ke-i. Misal, pada kolom ke-4 baris ke-2. Angka pada kolom sebelumnya yaitu 12 + (5 x 2 - 1)-2 = 19.

Source Code Program

1. Program 1
#include <stdio.h>
#include <stdlib.h>

int main()
{

     int n=5, bil=1;
     int i,j;

     for (i=0; i < n; i++) {
      for (j=0; j < n; j++) {
       if (j > i) {
        printf("%-3s"," ");
       }
       else {
        printf("%-3d",bil);
        bil=bil+1;
       }
      }
     printf("\n");
     }
     return 0;
} 

2. Program 2

#include <stdio.h>
#include <stdlib.h>

int main()
{
     int n=5, bil=0;
     int i,j;
     //baris
     for (i=0; i < n; i++) {
      //kolom
      for (j=0; j < n; j++) {
       //jika kolom genap
       if ((j+1)%2 == 0) {
        bil=bil+(n*2-i)-(i+1);
        printf("%-3d",bil);
       }
       //jika kolom ganjil
       else {
        //jika kolom pertama
        if (j==0) {
         bil=bil+(i+1);
         printf("%-3d",bil);
        }
        else {
         bil=bil+(2*i+1);
         printf("%-3d",bil);
        }
       }
      }
      bil=0;
      printf("\n");
     }
     return 0;
}