Jump to content
Sign in to follow this  
pahlawankurus

Illegal Else Without Matching If

Recommended Posts

#include<iostream.h>
void main()

{//open body

int ujian_naik_bukit , ujian_letak_kereta ,ujian_3_penjuru, pemeriksaan_sebelum , lampu_isyarat, selekoh , kelajuan, penggunaan_gear, ujian_letak_kenderaan,jumlah;

cout << "Ujian Naik Bukit[markah untuk lulus ialah 15%]:";
cin >> ujian_naik_bukit;

if (ujian_naik_bukit==15) 

{//open body1
    cout << "\nLulus Ujian Naik Bukit[15%]";
}//close body1

else

{//open body2
    cout << "\nRalat!! Masukkan Sekali Lagi[Markah untuk lulus ialah 15% dan tidak boleh kurang atau lebih daripada 15%]";
    cout << "\nUjian Naik Bukit[markah maksimum ialah 15]:";
    cin >> ujian_naik_bukit;
}//close body2


cout << "\nUjian meletakkan kenderaan[15%]:";
cin >> ujian_letak_kereta;

if ((ujian_letak_kereta>=1) && (ujian_letak_kenderaan<=15))


{//open body3
    cout << "\nUjian tiga penjuru:";
    cin >> ujian_3_penjuru;

    if((ujian_3_penjuru>=1) && (ujian_letak_kenderaan<=20))
    {//open body4
        
        cout << "\nUjian Jalanraya";
        cout << "\n---------------------------------------------------------------------------------------------------";
        cout << "\n---------------------------------------------------------------------------------------------------";
        
        cout << "\n\n- pemeriksaan sebelum memandu:";
        cin >> pemeriksaan_sebelum;
        if((pemeriksaan_sebelum>=1) && (pemeriksaan_sebelum<=15))
        {//open body5
            cout << "\n- Lampu Isyarat:";
            cin >> lampu_isyarat;
            
            if((lampu_isyarat>=1) && (lampu_isyarat<=10))
            {//open body6
                cout << "\n- Selekoh:";
                cin >> selekoh;
                
                if((selekoh>=1) && (selekoh<=5))
                {//open body7
                    cout << "\n- Kelajuan:";
                    cin >> kelajuan;
                    
                    if((kelajuan>=1) && (kelajuan<=10))
                    {//open body8
                        cout << "\n- penggunaan gear:";
                        cin >> penggunaan_gear;
                        
                        if((penggunaan_gear>=1) && (penggunaan_gear<=10))
                        {//open body9
                            jumlah=ujian_naik_bukit + ujian_letak_kereta + ujian_3_penjuru + pemeriksaan_sebelum + lampu_isyarat + selekoh + kelajuan + penggunaan_gear;
                        }//close body9

                        else
                        {//open body10
                            cout << "\nRALAT!! Masukkan Semula kelajuan";
                            cout << "\n - Kelajuan:";
                            cin >> kelajuan;
                        }//close body10
                        
                    }//close body8

                    else
                    {//open body11
                        cout << "\nRALAT!! Masukkan Semula Selekoh";
                        cout << "\n Selekoh:";
                        cin >> selekoh;
                    }//close body11
                    

                }//close body7

                else
                {//open body12
                    cout << "\nRALAT!! Masukkan Semula Lampu Isyarat";
                    cout << "\n- Lampu Isyarat:";
                    cin >> lampu_isyarat;
                }//close body12
                
            else
            {//open body13
                cout << "RALAT!! Masukkan Semula pemeriksaan Sebelum memandu";
                cout << "pemeriksaan sebelum memandu:";
                cin >> pemeriksaan_sebelum;
            }//close body13

                
            }//close body6

        else
        {//open body14
            cout << "RALAT!! Masukkan Semula Pemeriksaan Sebelum Memandu";
            cout << "\n- pemeriksaan sebelum memandu:";
            cin >> pemeriksaan_sebelum;
        }//close body14

        }//close body5

    }//close body4

    else
    {//open body15
    cout << "RALAT!! Masukkan Semula Ujian tiga Penjuru";
    cout << "\nUjian tiga penjuru:";
    cin >> ujian_3_penjuru;
    }//close body15

{//close body3

    else
    {//open body16
    cout << "\nRALAT!! Masukkan Semula meletak kenderaan";
    cout << "\nUjian meletakkan kenderaan[15%]:";
    cin >> ujian_letak_kereta;
    }//close body16




jumlah=ujian_naik_bukit + ujian_letak_kereta + ujian_3_penjuru + pemeriksaan_sebelum + lampu_isyarat + selekoh + kelajuan + penggunaan_gear;

cout << jumlah;


}//close body

ERROR:

C:\Documents and Settings\Administrator\My Documents\CPP\Cpp1.cpp(98) : error C2181: illegal else without matching if

C:\Documents and Settings\Administrator\My Documents\CPP\Cpp1.cpp(128) : error C2181: illegal else without matching if

C:\Documents and Settings\Administrator\My Documents\CPP\Cpp1.cpp(146) : fatal error C1004: unexpected end of file found

Error executing cl.exe.

Cpp1.obj - 3 error(s), 0 warning(s)

akum nak minta tolong sikit.. ada error nie.. ntah macam mana nak fix.. banyak sangat {} hehehe

sori la prog ni lum habis lagi sebenarnya.. tapi leh keluarkan output yang simpel je...aku dah try cari apa sebab dia gini.. maybe kekurangan {} kan? tapi kat mana erk?

ok thankx :)

o ya.. sapa sapa yang mahir dalam c,c++,java or other language ada Ym or msn tak? hehehee maklum la nak belajar.. nak tanya trus ok skit :)

thanks

akum.

Edited by pahlawankurus

Share this post


Link to post
Share on other sites

{//close body3 <-- rupanya yang ini yang salah haadoi... ok skg ada lagi error.. tinggal 1 je..

C:\Documents and Settings\Administrator\My Documents\CPP\Cpp1.cpp(95) : error C2181: illegal else without matching if

Error executing cl.exe.

Share this post


Link to post
Share on other sites

Ni mesti terlebih else daripada if ni.

Sila guna code, bukan codebox untuk code tagging.

Buat indent supaya lebih jelas.

if(true)
{
cout << "\nSusah nak baca";
}
else
{
cout << "\nSusah nak debug";
}
vs.
if(true)
{
    cout << "\nSenang sikit nak baca";
}
else
{
    cout << "\nSenang sikit nak debug";
}

Edited by mchammer

Share this post


Link to post
Share on other sites

Ok, cuba try code kat bawah ni.

Saya ada beberapa komen, nanti saya pos kemudian...

#include <iostream>

using namespace std;

int main()
{//open body
  int ujian_naik_bukit, ujian_letak_kenderaan; 
  int ujian_3_penjuru, pemeriksaan_sebelum;
  int lampu_isyarat, selekoh, kelajuan;
  int penggunaan_gear, jumlah;

  ujian_naik_bukit = ujian_letak_kenderaan = ujian_3_penjuru = 0;
  pemeriksaan_sebelum = lampu_isyarat = selekoh = 0;
  kelajuan = penggunaan_gear = jumlah = 0;

  cout << "Ujian Naik Bukit[markah untuk lulus ialah 15%]:";
  cin >> ujian_naik_bukit;

  if (ujian_naik_bukit==15)
  {//open body1
    cout << "\nLulus Ujian Naik Bukit[15%]";
  }//close body1
  else
  {//open body2
    cout << "\nRalat!! Masukkan Sekali Lagi[Markah untuk lulus ialah 15\% dan tidak boleh kurang atau lebih daripada 15%]";
    cout << "\nUjian Naik Bukit[markah maksimum ialah 15]:";
    cin >> ujian_naik_bukit;
  }//close body2

  cout << "\nUjian meletakkan kenderaan[15%]:";
  cin >> ujian_letak_kenderaan;

  if ((ujian_letak_kenderaan>=1) && (ujian_letak_kenderaan<=15))
  {//open body3
    cout << "\nUjian tiga penjuru:";
    cin >> ujian_3_penjuru;

    if ((ujian_3_penjuru>=1) && (ujian_3_penjuru<=20))
    {//open body4
      cout << "\nUjian Jalanraya";
      cout << "\n---------------------------------------------------------------------------------------------------";
      cout << "\n---------------------------------------------------------------------------------------------------";

      cout << "\n\n- pemeriksaan sebelum memandu:";
      cin >> pemeriksaan_sebelum;

      if ((pemeriksaan_sebelum>=1) && (pemeriksaan_sebelum<=15))
      {//open body5
        cout << "\n- Lampu Isyarat:";
        cin >> lampu_isyarat;
            
        if((lampu_isyarat>=1) && (lampu_isyarat<=10))
        {//open body6
          cout << "\n- Selekoh:";
          cin >> selekoh;
                
          if((selekoh>=1) && (selekoh<=5))
          {//open body7
            cout << "\n- Kelajuan:";
            cin >> kelajuan;
                    
            if((kelajuan>=1) && (kelajuan<=10))
            {//open body8
              cout << "\n- penggunaan gear:";
              cin >> penggunaan_gear;
                        
              if((penggunaan_gear>=1) && (penggunaan_gear<=10))
              {//open body9
                jumlah = ujian_naik_bukit + ujian_letak_kenderaan + ujian_3_penjuru 
                + pemeriksaan_sebelum + lampu_isyarat + selekoh 
                + kelajuan + penggunaan_gear;
              }//close body9
            } //close body8

            else
            {//open body10
              cout << "\nRALAT!! Masukkan Semula kelajuan";
              cout << "\n - Kelajuan:";
              cin >> kelajuan;
            }//close body10
                        
          }//close body7

          else
          {//open body11
            cout << "\nRALAT!! Masukkan Semula Selekoh";
            cout << "\n Selekoh:";
            cin >> selekoh;
          }//close body11

        }//close body6

        else
        {//open body12
          cout << "\nRALAT!! Masukkan Semula Lampu Isyarat";
          cout << "\n- Lampu Isyarat:";
          cin >> lampu_isyarat;
        }//close body12
      }//close body5
                
      else
      {//open body13
        cout << "RALAT!! Masukkan Semula pemeriksaan Sebelum memandu";
        cout << "pemeriksaan sebelum memandu:";
        cin >> pemeriksaan_sebelum;
      }//close body13
                
    }//close body6

    else
    {//open body15
      cout << "RALAT!! Masukkan Semula Ujian tiga Penjuru";
      cout << "\nUjian tiga penjuru:";
      cin >> ujian_3_penjuru;
    }//close body15

  }//close body3

  else
  {//open body16
    cout << "\nRALAT!! Masukkan Semula meletak kenderaan";
    cout << "\nUjian meletakkan kenderaan[15%]:";
    cin >> ujian_letak_kenderaan;
  }//close body16

  jumlah = ujian_naik_bukit + ujian_letak_kenderaan + ujian_3_penjuru 
          + pemeriksaan_sebelum + lampu_isyarat + selekoh 
        + kelajuan + penggunaan_gear;

  cout << jumlah;

  return 0;

}//close body

Edited by mchammer

Share this post


Link to post
Share on other sites

Ni komen saya:

1)

  cout << "Ujian Naik Bukit[markah untuk lulus ialah 15%]:";
  cin >> ujian_naik_bukit;

  if (ujian_naik_bukit==15)
  {//open body1
    cout << "\nLulus Ujian Naik Bukit[15%]";
  }//close body1
  else
  {//open body2
    cout << "\nRalat!! Masukkan Sekali Lagi[Markah untuk lulus ialah 15\% dan tidak boleh kurang atau lebih daripada 15%]";
    cout << "\nUjian Naik Bukit[markah maksimum ialah 15]:";
    cin >> ujian_naik_bukit;
  }//close body2
Dalam kes ujian naik bukit ni, ralat/error akan dipaparkan jika user masukkan nilai selain daripada 15. Nampaknya user tiada pilihan lain; apa kata remove sahaja code ni? Set kan sahaja ujian_naik_bukit = 15. 2) Kebanyakan if statement yang memaparkan ralat/error jika input yg diberi tidak betul adalah lebih sesuai digantikan dengan while statement. Refer code dalam 1), jika user masukkan input selain 15, ralat/error akan dipaparkan dan user diminta untuk memasukkan input yg baru. Masalahnya, jika user tetap memasukkan input yang salah, program akan diteruskan; di mana ujian meletakkan kenderaan pula yang akan ditanya walaupun input untuk ujian naik bukit sudah pun salah. Ini contoh kalau guna while statement:
cout << "Ujian Naik Bukit[markah untuk lulus ialah 15%]:";
cin >> ujian_naik_bukit;

while (ujian_naik_bukit != 15) 
{
  cout << "Input salah:";
  cout << "Ujian Naik Bukit[markah untuk lulus ialah 15%]:";
  cin >> ujian_naik_bukit;
}

Edited by mchammer

Share this post


Link to post
Share on other sites

terima kasih,sebenarnya user memang perlu input 15 sahaja.tidak boleh lebih atau kurang.jika lebih atau kurang ia perlu ulang semua sehingga betul. di sini saya menggunakan if dan else. saya tahu memang ia tidak akan berulang selagi ia betul.walaupun salah ia akan tetap di teruskan... saya bingung untuk menggunakan while di sini.

saya ingin membuat aturcara jika user itu memasukkan lebih atau kurang daripada 15 ialah akan berulang selagi user tidak input 15 program tidak akan di terus kan. adalah saya perlu menggunakan while?

bina satu aturcara yang dapat memaparkankeputusan ujian bagi mendapatkan lesen kenderaan bermotor. antara kriteria kriteria yang perlu di masukkan adalah:

1.Ujian naik bukit (15%)

- lulus =15%

- gagal=0%

2.Ujian meletakkan kenderaan(15%)

3.Ujian tiga penjuru(20%)

4.Ujian jalan raya(50%)

- pemeriksaan sebelum memandu =15%

-lampu isyarat=10%

-selekoh=5%

-kelajuan=10%

-penggunaan gear=10%

Sila nyatakan juga keputusan ujian tersebut lulus ataupun gagal

syarat untuk lulus adalah:

1.Jumlah keseluruhan markah mestilah melebihi 50%

2.Mesti Lulus Ujian naik bukit

diatas quote tersebut adalah soalan yang saya perlu selesaikan.

sy membina 1 prog tetapi lebih kepada menggunakan if else.saya tahu ia tidak begitu baik kepada program ini.

encik mchammer,cadangkan saya menggunakan while kan? sebelum ni saya tidak terfikir pula. thx kerana memberi cadangan itu.

mchammer,boleh tak bagi contoh :

::

syrat untuk lulus ujian naik bukit ialah 15 dan tidak boleh kurang dan lebih.

bagaimanakah penggunaan while dgn betul?

::

::

syarat ujian meletakkan kenderaan >=1 atau <=15 , user tidak boleh input >15 atau <1.

bagaimanakah penggunaan while dgn betul?

::

terima kasih kerana sudi membantu :)

Share this post


Link to post
Share on other sites

Kalau ikutkan soalan, memang syarat untuk lulus ujian naik bukit ialah 15%, tak boleh kurang. Tapi soalan nak kita paparkan keputusan, so tak perlu paparkan error atau loop kalau user masukkan input antara 0 dan 15. Error/loop hanya perlu dipamerkan jika user masukkan input yg tak betul; dalam kes ni, lebih daripada 15 atau kurang daripada 0. Kalau user masukkan input antara 0 dan 15, kita just 'gagalkan' user. Contohnya lebih kurang macam ni:

int gagal_naik_bukit = 0;

cout << "Ujian Naik Bukit[markah untuk lulus ialah 15%]:";
cin >> ujian_naik_bukit;

while (ujian_naik_bukit > 15 || ujian_naik_bukit < 0)
{
  cout << "Input salah:";
  cout << "Ujian Naik Bukit [markah untuk lulus ialah 15%]:";
  cin >> ujian_naik_bukit;
}
if (ujian_naik_bukit != 15)
{
  gagal_naik_bukit = 1;
}

if (gagal_naik_bukit)
{
  cout << "Anda gagal dalam ujian naik bukit";
}

Yang lain pun buat macam tu.

Edited by mchammer

Share this post


Link to post
Share on other sites

#include<iostream.h>

int main(void){

//declaration
int ujian_naik_bukit=0 , ujian_meletakkan_kenderaan=0;
int ujian_tiga_penjuru=0 , pemeriksaan_sebelum_memandu=0;
int lampu_isyarat=0 , kelajuan=0 , selekoh=0;
int penggunaan_gear=0 , jumlah=0 , jumlah2=0 , jumlah3=0;
int jum_keseluruhan=0;

//ujian naik bukit - mula
cout << "\nLULUS = 15%";
cout << "\nGAGAL = 0%";
cout << "\n\nMasukkan Ujian Naik Bukit:";
cin >> ujian_naik_bukit;

while ((ujian_naik_bukit <=14 ) || (ujian_naik_bukit >=16))
{     
        cout << "\nInput Salah!--";
     cout << "\n------------";
     cout << "\nLULUS = 15%";
     cout << "\nGAGAL = 0%";
     cout << "\n\nMasukkan Ujian Naik Bukit:";
     cin >> ujian_naik_bukit;

    if((ujian_naik_bukit <=14 ) || (ujian_naik_bukit >=16))
    {
           cout << "\nInput Salah!";
        cout << "\n------------";
        cout << "\nLULUS = 15%";
        cout << "\nGAGAL = 0%";
        cout << "\n\nMasukkan Ujian Naik Bukit:";
        cin >> ujian_naik_bukit;
    }


}
//ujian naik bukit - tamat

//ujian meletakkan kenderaan - mula
cout << "\nUjian meletakkan kenderaan:";
cin >> ujian_meletakkan_kenderaan;

while ((ujian_meletakkan_kenderaan<0) || (ujian_meletakkan_kenderaan>=16))
{
    cout << "\n\nInput Salah!";
    cout << "\nUjian meletakkan kenderaan:";
    cin >> ujian_meletakkan_kenderaan;

    if((ujian_meletakkan_kenderaan<0) || (ujian_meletakkan_kenderaan>=16))
    {
        cout << "\n\nInput Salah!";
        cout << "\nUjian meletakkan kenderaan:";
        cin >> ujian_meletakkan_kenderaan;
    }
        
}
//ujian meletakkan kenderaan - tamat

//ujian tiga penjuru - mula
cout << "\nUjian Tiga Penjuru:";
cin >> ujian_tiga_penjuru;

while ((ujian_tiga_penjuru<0) || (ujian_tiga_penjuru>=21))
{
    cout << "\n\nInput Salah!";
    cout << "\nUjian Tiga Penjuru:";
    cin >> ujian_tiga_penjuru;

    if((ujian_tiga_penjuru<0) || (ujian_tiga_penjuru>=21))
    {
        cout << "\n\nInput Salah!";
        cout << "\nUjian Tiga Penjuru:";
        cin >> ujian_tiga_penjuru;
    }
}
//ujian tiga penjuru - tamat

//ujian jalan raya - mula
cout << "\nUjian Jalan Raya";

//pemeriksaan sebelum jalan - mula
cout << "\n- Pemeriksaan Sebelum Memandu:";
cin >> pemeriksaan_sebelum_memandu;

while((pemeriksaan_sebelum_memandu<0) || (pemeriksaan_sebelum_memandu>=16))
{
    cout << "\n\nInput Salah!";
    cout << "\n- Pemeriksaan Sebelum Memandu:";
    cin >> pemeriksaan_sebelum_memandu;

    if((pemeriksaan_sebelum_memandu<0) || (pemeriksaan_sebelum_memandu>=16))
    {
    cout << "\n\nInput Salah!";
    cout << "\n- Pemeriksaan Sebelum Memandu:";
    cin >> pemeriksaan_sebelum_memandu;

    }
}
//pemeriksaan sebelum jalan - tamat

//lampu isyarat - mula
cout << "\n- Lampu Isyarat:";
cin >> lampu_isyarat;

while((lampu_isyarat<0) || (lampu_isyarat>=11))
{
    cout << "\n\nInput Salah!";
    cout << "\n- Lampu Isyarat:";
    cin >> lampu_isyarat;

    if((lampu_isyarat<0) || (lampu_isyarat>=11))
    {
    cout << "\n\nInput Salah!";
    cout << "\n- Lampu Isyarat:";
    cin >> lampu_isyarat;
    }
}
//lampu isyarat - tamat

//selekoh - mula
cout << "\n- Selekoh:";
cin >> selekoh;

while((selekoh<0) || (selekoh>=6))
{
    cout << "\n\nInput Salah!";
    cout << "\n- Selekoh:";
    cin >> selekoh;

    if((selekoh<0) || (selekoh>=6))
    {
        cout << "\n\nInput Salah!";
        cout << "\n- Selekoh:";
        cin >> selekoh;
    }
}
//selekoh - tamat

//kelajuan - mula
cout << "\n- Kelajuan:";
cin >> kelajuan;

while((kelajuan<0) || (kelajuan>=11))
{
    cout << "\n\nInput Salah!";
    cout << "\n- Kelajuan:";
    cin >> kelajuan;

    if((kelajuan<0) || (kelajuan>=11))
    {
    cout << "\n\nInput Salah!";
    cout << "\n- Kelajuan:";
    cin >> kelajuan;
    }
}
//kelajuan - tamat

//penggunaan gear - mula
cout << "\n- Penggunaan Gear:";
cin >> penggunaan_gear;

while((penggunaan_gear<0) || (penggunaan_gear>=11))
{
    cout << "\n\nInput Salah!";
    cout << "\n- Penggunaan Gear:";
    cin >> penggunaan_gear;

    if((penggunaan_gear<0) || (penggunaan_gear>=11))
    {    
    cout << "\n\nInput Salah!";
    cout << "\n- Penggunaan Gear:";
    cin >> penggunaan_gear;
    }

}
//penggunaan gear - tamat

cout << "\n------------------------------------";
cout << "\nKEPUTUSAN UJIAN MEMANDU JPJ MALAYSIA";
cout << "\n------------------------------------";

cout << "\n\n----------------------------------";

cout << "\n1. Ujian Naik Bukit              :" << ujian_naik_bukit;
cout << "\n2. Ujian Meletakkan Kenderaan    :" << ujian_meletakkan_kenderaan;
cout << "\n3. Ujian Tiga Penjuru            :" << ujian_tiga_penjuru;
cout << "\n4. Ujian Jalanraya               :";

cout << "\n\t - Pemeriksaan Sebelum Memandu" << "[ " << pemeriksaan_sebelum_memandu << "]";
cout << "\n\t - Lampu Isyarat              " << "[ " << lampu_isyarat               << "]";
cout << "\n\t - Selekoh                    " << "[ " << selekoh                     << "]";
cout << "\n\t - kelajuan                   " << "[ " << kelajuan                    << "]";
cout << "\n\t - Penggunaan Gear            " << "[ " << penggunaan_gear             << "]";

cout << "\n------------------------------------";

jumlah = ujian_naik_bukit + ujian_meletakkan_kenderaan;
jumlah2 = ujian_tiga_penjuru + pemeriksaan_sebelum_memandu;
jumlah3 = lampu_isyarat + kelajuan + selekoh + penggunaan_gear;

jum_keseluruhan = jumlah + jumlah2 +jumlah3;


cout << "\n\nJUMLAH MARKAH KESELURUHAN:"<<jum_keseluruhan;

//keputusan
if(jum_keseluruhan>=50)
{
    cout << " \nANDA GAGAL-LULUS: LULUS ";
}

else
{
    cout << " \nANDA GAGAL-LULUS: GAGAL ";
}


return 0;

}

thanks atas nasihat bro mchammer .... skg saya dah berjaya buat dan lengkapkan prog ini :)

//output belum lengkpa sebenarnya hihihi tapi perjalanan semua lancar :)

Edited by pahlawankurus

Share this post


Link to post
Share on other sites

mengikut penerangan awak, (ujian naik bukit), user sepatutnya boleh masukkan input 0 (means gagal) atau 15 (means lulus), selain dari itu, kena input semula.. so boleh laa buat camni :

do {
 cin >> ujian_naik_bukit;
 if (ujian_naik_bukit != 15 && ujian_naik_bukit != 0) {
  cout << "Input salah"
  continue;
 }
 if (ujian_naik_bukit == 15) cout << "lulus"
 else cout << "gagal";
 break;
} while (true);

or something like that.. ia simple dan lebih jelas rasanya.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...