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;
}
 
sumber:http://ptik-rizalyugo.blogspot.com/2012/01/ada-suatu-model-permasalahan-dalam.html
 

0 comments:

Posting Komentar

 

LIBRARI Copyright © 2011-2012 | Powered by Blogger