Program mencari nilai exponential

Berikut ini adalah source code program C++ untuk mencari nilai exponential, dari masukkan variable basis dan pangkatnya. Bila nilai pangkat sama dengan nol maka hasilnya adalah satu.



<img src="execute.jpg" alt="execute">

Gambar Eksekusi program exponential. Dibawah source code program mencari exponential nilainya.

/*
Program untuk menghitung nilai pangkat suatu nilai
Dengan masukkan nilai basis dan pangkatnya
Loki Lang
*/
#include <iostream>
using namespace std;
int exp (int b, int e)
{
    int result;
    result = 1;
    while (e != 0)
    {
        result = result * b;
        e = e - 1;
    }
    return(result);
}

int main()
{
    int b, e;
    cout<<"Masukkan nilai basis: "<<endl;
    cin>>b;
    cout<<"Masukkan nilai pangkat: "<<endl;
    cin>>e;
    cout<<b<<" pangkat "<<e<<" = "<<exp(b,e)<<endl;
    return(0);
}

Lihat juga program mencari nilai bilangan fibonacci, factorial, dan mencari akar dari suatu nilai.

c++ Konversi waktu detik dalam hari

Berikut ini source code program C++ untuk mengkonversi nilai masukkan variable bebas skala detik menjadi output variable terikat skala hari, jam, menit, dan detik. Jangkauan nilai masukkan skala detik antara 0 hingga 2147483647.


/*
Program menghitung lama detik dalam hari, jam, menit, dan detik
batas atas masukkan nilai detik adalah 2147483647
sedangkan batas bawah nilai detik adalah 0
Loki Lang
*/
#include <iostream>
using namespace std;
void error();
void over();
void count();
long int second, seconds, minute, minutes, hour, hours, days;
int main()
{
    cout<<"Masukkan jumlah detik:"<<endl;
    cin>>second;
    if (second < 0)
    error();
    else
    if (second > 2147483647)
    over();
    else
    count();
    return 0;
}
void error()
{
    cout<<"Error, masukkan nilai detik tidak valid."<<endl;
    main();
}
void over()
{
    second = 2147483647;
    count();
}
void count()
{
    days = second / 86400;
    hour = second % 86400;
    hours = hour / 3600;
    minute = hour % 3600;
    minutes = minute / 60;
    seconds = second % 60;
    cout<<second<<" detik setara dengan "<<days<<" hari "
    <<hours<<" jam "<<minutes<<" menit "<<seconds<<" detik."<<endl;
}


Berikut ini adalah gambar eksekusi program mengubah satuan detik dalam hari.

<img src="execute.jpg" alt="execute">

coding C++ pembalik kalimat / kata



#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
 clrscr();
 char kata[99];
 int i; char balik[99];int p,j=0,hasil;
 printf("*******************************************************************************");
 printf("\n*******************************************************************************");
 printf("\n\n| | | | | | | |  P R O G R A M   M E M B A L I K  K A L I M A T  | | | | | | | |");
 printf("\n\n*******************************************************************************");
 printf("\n*******************************************************************************");
 printf("\n\nPROGRAM  INI  AKAN  MENSELEKSI  KALIMAT / KATA TERSEBUT PALINDROM ATAU BUKAN");
 printf("\n\nMASUKAN KATA / KALIMAT    :");//akan ada bekas kalimat sebelumnya, jika kalimat yang dimasukan sebelumnya lebih panjang dari kalimat yang akan dimasukan, TC harus restart
 gets(kata);
 p=strlen(kata)-1;
 for(i=p;i>=0;i--)
 {balik[j]=kata[i];j++;}
 printf("\nKEBALIKAN    :%s",balik);
 hasil = strcmp(kata,balik);
 if(hasil>0)
  printf("\nSALAH, BUKAN PALINDROM");
  else
  if(hasil==0)
  printf("\nPALINDROM");
  else
  printf("\nSALAH, BUKAN PALINDROM");
 getch();
}

Membuat pohon natal dengan c++

#include<stdio.h>
#include<conio.h>
void main()
{
  clrscr();
  int x,y,z;
  for(x=1;x<=5;x++)
  {for(y=5;y>=x;y--)
   {printf(" ");}
    for(z=1;z<=x;z++)
     {printf(" *");}
      printf("\n");}
  getch();
}

cara mengotomatisasi Microsoft Word dengan Microsoft Visual C++ untuk mengambil kembali dan manipulasi properti dokumen

Untuk membangun aplikasi konsol Visual C++ 6.0 sederhana yang mengotomatisasi Microsoft Word menggunakan Visual C++, ikuti langkah-langkah berikut:
  1. Mulai Visual C++ 6.0, dan membuat aplikasi konsol Win32 baru yang bernama AutoWord. Pilih aplikasi "Halo, dunia!" dasar, dan kemudian klik selesai.
  2. Buka berkas AutoWord.cpp dihasilkan, dan kemudian ganti isinya dengan kode berikut:
    #include "stdafx.h"
    #include <ole2.h>
    
    // 
    // AutoWrap() - Automation helper function...
    // 
    HRESULT AutoWrap(int autoType, VARIANT *pvResult, IDispatch *pDisp, 
          LPOLESTR ptName, int cArgs...) 
    {
          // Begin variable-argument list...
          va_list marker;
          va_start(marker, cArgs);
    
          if(!pDisp) {
                MessageBox(NULL, "NULL IDispatch passed to AutoWrap()", 
                           "Error", 0x10010);
                _exit(0);
          }
    
          // Variables used...
          DISPPARAMS dp = { NULL, NULL, 0, 0 };
          DISPID dispidNamed = DISPID_PROPERTYPUT;
          DISPID dispID;
          HRESULT hr;
          char buf[200];
          char szName[200];
       
          // Convert down to ANSI
          WideCharToMultiByte(CP_ACP, 0, ptName, -1, szName, 256, NULL, NULL);
       
          // Get DISPID for name passed...
          hr = pDisp->GetIDsOfNames(IID_NULL, &ptName, 1, LOCALE_USER_DEFAULT, 
                                    &dispID);
          if(FAILED(hr)) {
                sprintf(buf, 
                        "IDispatch::GetIDsOfNames(\"%s\") failed w/err0x%08lx",
                        szName, hr);
                MessageBox(NULL, buf, "AutoWrap()", 0x10010);
                _exit(0);
                return hr;
          }
       
          // Allocate memory for arguments...
          VARIANT *pArgs = new VARIANT[cArgs+1];
    
          // Extract arguments...
          for(int i=0; i<cArgs; i++) {
                pArgs[i] = va_arg(marker, VARIANT);
          }
       
          // Build DISPPARAMS
          dp.cArgs = cArgs;
          dp.rgvarg = pArgs;
       
          // Handle special-case for property-puts!
          if(autoType & DISPATCH_PROPERTYPUT) {
                dp.cNamedArgs = 1;
                dp.rgdispidNamedArgs = &dispidNamed;
          }
       
          // Make the call!
          hr = pDisp->Invoke(dispID, IID_NULL, LOCALE_SYSTEM_DEFAULT, autoType, 
                             &dp, pvResult, NULL, NULL);
          if(FAILED(hr)) {
                sprintf(buf,
                        "IDispatch::Invoke(\"%s\"=%08lx) failed w/err 0x%08lx", 
                        szName, dispID, hr);
                MessageBox(NULL, buf, "AutoWrap()", 0x10010);
                _exit(0);
                return hr;
          }
          // End variable-argument section...
          va_end(marker);
       
          delete [] pArgs;
       
          return hr;
    
    }
    
    int main(int argc, char* argv[])
    {
          // Initialize COM for this thread...
          CoInitialize(NULL);
    
          // Get CLSID for Word.Application...
          CLSID clsid;
          HRESULT hr = CLSIDFromProgID(L"Word.Application", &clsid);
          if(FAILED(hr)) {
                ::MessageBox(NULL, "CLSIDFromProgID() failed", "Error", 
                             0x10010);
                return -1;
          }
    
          // Start Word and get IDispatch...
          IDispatch *pWordApp;
          hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, 
                                IID_IDispatch, (void **)&pWordApp);
          if(FAILED(hr)) {
                ::MessageBox(NULL, "Word not registered properly", 
                             "Error", 0x10010);
                return -2;
          }
    
          // Make Word visible
          {
                VARIANT x;
                x.vt = VT_I4;
                x.lVal = 1;
                AutoWrap(DISPATCH_PROPERTYPUT, NULL, pWordApp, L"Visible", 1, 
                         x);
          }
    
          // Get Documents collection
          IDispatch *pDocs;
          {
                VARIANT result;
                VariantInit(&result);
                AutoWrap(DISPATCH_PROPERTYGET, &result, pWordApp, L"Documents", 
                         0);
    
                pDocs = result.pdispVal;
          }
    
          // Call Documents.Open() to open C:\Doc1.doc
          IDispatch *pDoc;
          {
                VARIANT result;
                VariantInit(&result);
                VARIANT x;
                x.vt = VT_BSTR;
                x.bstrVal = ::SysAllocString(L"C:\\Doc1.doc");
    
                AutoWrap(DISPATCH_METHOD, &result, pDocs, L"Open", 1, x);
                pDoc = result.pdispVal;
                SysFreeString(x.bstrVal);
          }
    
          // Get BuiltinDocumentProperties collection
          IDispatch *pProps;
          {
                VARIANT result;
                VariantInit(&result);
                AutoWrap(DISPATCH_PROPERTYGET, &result, pDoc, 
                         L"BuiltinDocumentProperties", 0);
                pProps = result.pdispVal;
          }
    
          // Get "Subject" from BuiltInDocumentProperties.Item("Subject")
          IDispatch *pPropSubject;
          {
                VARIANT result;
                VariantInit(&result);
                VARIANT x;
                x.vt = VT_BSTR;
                x.bstrVal = ::SysAllocString(L"Subject");
                AutoWrap(DISPATCH_PROPERTYGET, &result, pProps, L"Item", 1, x);
                pPropSubject = result.pdispVal;
                SysFreeString(x.bstrVal);
          }
    
          // Get the Value of the Subject property and display it
          {
                VARIANT result;
                VariantInit(&result);
                AutoWrap(DISPATCH_PROPERTYGET, &result, pPropSubject, L"Value",
                         0);
                char buf[512];
                wcstombs(buf, result.bstrVal, 512);
                ::MessageBox(NULL, buf, "Subject", 0x10000);
    		 
          }
    
          // Set the Value of the Subject DocumentProperty
          {
                VARIANT x;
                x.vt = VT_BSTR;
                x.bstrVal = ::SysAllocString(L"This is my subject");
                AutoWrap(DISPATCH_PROPERTYPUT, NULL, pPropSubject, L"Value", 1, 
                         x);
                ::MessageBox(NULL, 
                             "Subject property changed, examine document.",
                             "Subject", 0x10000);
                SysFreeString(x.bstrVal);
          }
    
          // Get CustomDocumentProperties collection
          IDispatch *pCustomProps;
          {
                VARIANT result;
                VariantInit(&result);
                AutoWrap(DISPATCH_PROPERTYGET, &result, pDoc, 
                         L"CustomDocumentProperties", 0);
                pCustomProps = result.pdispVal;
          }
    
          // Add a new property named "CurrentYear"
          {	  	
                VARIANT parm1, parm2, parm3, parm4;
                parm1.vt = VT_BSTR;
                parm1.bstrVal = SysAllocString(L"CurrentYear");
                parm2.vt = VT_BOOL;
                parm2.boolVal = false;
                parm3.vt = VT_I4;
                parm3.lVal = 1; //msoPropertyTypeNumber = 1
                parm4.vt = VT_I4;
                parm4.lVal = 1999;
    
                AutoWrap(DISPATCH_METHOD, NULL, pCustomProps, L"Add", 4, parm4,
                         parm3, parm2, parm1);
                ::MessageBox(NULL, "Custom property added, examine document.",
                             "Custom Property", 0x10000);
                SysFreeString(parm1.bstrVal);
          }
    
          // Get the custom property "CurrentYear" and delete it
          IDispatch *pCustomProp;
          {
                VARIANT result;
                VariantInit(&result);
                VARIANT x;
                x.vt = VT_BSTR;
                x.bstrVal = ::SysAllocString(L"CurrentYear");
                AutoWrap(DISPATCH_PROPERTYGET, &result, pCustomProps, L"Item",
                         1, x);
                pCustomProp = result.pdispVal;
                SysFreeString(x.bstrVal);
                AutoWrap(DISPATCH_METHOD, NULL, pCustomProp, L"Delete", 0);
                ::MessageBox(NULL,
                             "Custom property removed, examine document.",
                             "Custom Property", 0x10000);
          }
    	  
          // Close the document without saving changes and quit Word
          {
                VARIANT x;
                x.vt = VT_BOOL;
                x.boolVal = false;
                AutoWrap(DISPATCH_METHOD, NULL, pDoc, L"Close", 1, x);
                AutoWrap(DISPATCH_METHOD, NULL, pWordApp, L"Quit", 0);
          }
    
          // Cleanup
          pCustomProp->Release();
          pCustomProps->Release();
          pPropSubject->Release();
          pProps->Release();
          pDoc->Release();
          pDocs->Release();
          pWordApp->Release();
    
    
          // Uninitialize COM for this thread...
          CoUninitialize();
    
          return 0;
    }
    					
  3. Menggunakan Microsoft Word untuk membuat dokumen baru, dan menyimpan dokumen baru sebagai C:\Doc1.doc.Jika tidak, galat 0x800A1436 (-2146823114) akan ditampilkan. Galat ini menunjukkan bahwa "file yang tidak ada" ketika mencoba kode untuk membukanya.
  4. Kompilasi dan jalankan.
Kode menunjukkan membaca dan menulis properti dokumen internal dan properti kustom dokumen. Ketika menjalankan, kode menampilkan nilai properti subjek internal, perubahan nilai ini adalah subjek saya, dan membuat properti kustom dokumen baru yang bernama CurrentYearSaat Anda diminta untuk Memeriksa dokumen dengan kode, beralih ke Microsoft Word, dan kemudian klik properti pada File menu. Ketika selesai, membaca komentar kode untuk mempelajari cara kerjanya.

Catatan Tujuan fungsi AutoWrap dalam contoh ini adalah untuk membungkus panggilan GetIDsOfNames dan Invoke untuk memfasilitasi otomatisasi dengan lurus C++. Ketika Anda membuat struktur DISPPARAMS untuk panggilan ke Invoke, unsur-unsur sebenarnya disampaikan dalam urutan terbalik dari apa mengharapkan fungsi yang terlibat. Oleh karena itu, ketika Anda menggunakan panggilan AutoWrap untuk memanggil fungsi dengan lebih dari satu argumen, Anda harus melewati mereka dalam urutan terbalik seperti digambarkan dalam contoh dengan panggilan untuk memanggil DocumentProperties::Add:

      AutoWrap(DISPATCH_METHOD, NULL, pCustomProps, L"Add", 4, parm4,
               parm3, parm2, parm1);

Otomatisasi office dengan visual c++

  1. Apa itu otomatisasi?

    Otomatisasi (sebelumnya OLE otomatisasi) adalah teknologi yang memungkinkan Anda untuk memanfaatkan fungsionalitas program yang sudah ada dan dimasukkan ke dalam aplikasi Anda sendiri. Misalnya, Anda dapat menggunakan Microsoft Word ejaan dan tata bahasa memeriksa kemampuan ke dalam aplikasi Anda tanpa Microsoft Word dapat dilihat oleh pengguna. Anda bahkan dapat menggunakan semua Microsoft Excel membuat bagan, pencetakan dan data alat analisis. Teknologi ini dapat sangat menyederhanakan dan mempercepat pengembangan Anda.
  2. Saya baru untuk otomatisasi, di mana saya dapat menemukan sumber daya yang baik untuk mempelajari selengkapnya?Bab 24 David Kruglinski "di dalam Visual C++" (ISBN:1-57231-565 - 2) menyediakan Ikhtisar umum serta beberapa contoh besar. Selain itu, di Pangkalan Pengetahuan Microsoft adalah sumber informasi yang baik. Artikel ini sendiri adalah awal yang baik, dan Anda dapat menemukan referensi lebih spesifik dalam artikel Basis Pengetahuan Microsoft:
    152023 Mencari sumber daya untuk belajar Otomasi OLE
    Jika Anda lebih suka belajar dengan contoh, lihat artikel berikut ini di Pangkalan Pengetahuan Microsoft:
    179706 HOWTO gunakan MFC untuk mengotomatisasi Excel & membuat/Format buku kerja baru
  3. Apakah ada cara yang berbeda yang dapat menggunakan otomatisasi?

    Ada tiga cara dasar yang dapat Anda gunakan otomatisasi: MFC, #import, dan C C++:
    • Dengan MFC, menggunakan Visual C++ ClassWizard untuk menghasilkan "pembungkus kelas" dari perpustakaan jenis Microsoft Office. Kelas ini, serta kelas MFC lainnya, seperti COleVariant, COleSafeArray, COleException, menyederhanakan tugas otomatisasi. Metode ini biasanya disarankan atas yang lain, dan banyak contoh Pangkalan Pengetahuan Microsoft menggunakan MFC.
    • #import, petunjuk baru yang menjadi tersedia dengan Visual C++ 5.0 menciptakan VC ++ "smart pointer" dari perpustakaan jenis tertentu. Kuat, tetapi sering tidak disarankan karena ada referensi - masalah menghitung yang biasanya terjadi ketika digunakan dengan aplikasi Microsoft Office.
    • C C++ otomatisasi adalah banyak lebih sulit, tetapi kadang-kadang diperlukan untuk menghindari beban dengan MFC, atau masalah dengan #import. Pada dasarnya, Anda bekerja dengan api tersebut sebagai fungsi CoCreateInstance, dan COM antarmuka seperti IDispatch dan IUnknown.
    Penting untuk dicatat bahwa ada beberapa sedikit perbedaan antara otomatisasi dari C++ dibandingkan polos C, karena COM dirancang di kelas C++. Untuk informasi selengkapnya, baca artikel berikut di Pangkalan Pengetahuan Microsoft untuk contoh C:
    181473 HOWTO: Menggunakan Otomasi OLE dari aplikasi C
  4. Apa itu COM?

    Otomatisasi didasarkan pada Model objek komponen (COM). COM adalah perangkat lunak standar arsitektur didasarkan pada antarmuka, dan dirancang untuk memiliki kode dipisahkan ke objek mandiri. Menganggapnya sebagai ekstensi paradigma pemrograman berorientasi objek berorientasi pemrograman (objek), namun dapat diterapkan untuk memisahkan aplikasi. Setiap objek memperlihatkan serangkaian antarmuka, dan semua komunikasi ke objek, seperti inisialisasi, pemberitahuan, dan data transfer, terjadi melalui antarmuka ini.

    COM juga adalah serangkaian layanan yang disediakan oleh pustaka tautan dinamis (dll) yang diinstal dengan sistem operasi. Otomatisasi menggunakan banyak layanan tersebut. Salah satu contoh adalah layanan "Menyusun", yang paket aplikasi klien panggilan ke fungsi antarmuka aplikasi server anggota dan melewati mereka, dengan argumen mereka, untuk aplikasi server. Membuatnya terlihat antarmuka server yang terkena di ruang memori klien yang tidak terjadi apabila klien .exe dijalankan dalam ruang proses. Marshalling juga mendapatkan kembali nilai-nilai dari server metode kembali seluruh proses batas dan aman tangan panggilan klien. Ada banyak layanan lain yang penting untuk otomatisasi yang disediakan oleh Perpustakaan COM berbagai. Sumber informasi tentang tersebut termasuk "Di dalam Ole – Second Edition" oleh Kraig Brockschmidt, ISBN 1-55615-843-2, "Di dalam COM" oleh Dale Rogerson - ISBN 1-57231-349-8, dan "Otomatisasi Programmer referensi," ISBN 1-57231-584-9.
  5. Bagaimana melampirkan ke contoh menjalankan aplikasi Office?

    Gunakan GetActiveObject() API. Server otomatisasi mendaftarkan diri di ROT (menjalankan tabel objek), melalui RegisterActiveObject() API. Klien otomatisasi bisa mendapatkan pada contoh berjalan dengan kode seperti:
          // Translate server ProgID into a CLSID. ClsidFromProgID
          // gets this information from the registry.
          CLSID clsid;
          CLSIDFromProgID(L"Excel.Application", &clsid);  
    
          // Get an interface to the running instance, if any..
          IUnknown *pUnk;
          HRESULT hr = GetActiveObject(clsid, NULL, (IUnknown**)&pUnk);
    
          ASSERT(!FAILED(hr));
    
          // Get IDispatch interface for Automation...
          IDispatch *pDisp;
          hr = pUnk->QueryInterface(IID_IDispatch, (void **)&pDisp);
          ASSERT(!FAILED(hr));
    
          // Release the no-longer-needed IUnknown...
          pUnk->Release();
    
    						
    Catatan: jika ada banyak contoh menjalankan aplikasi Office yang ingin Anda pasang, Anda hanya dapat melampirkan ke contoh pertama yang diluncurkan menggunakan GetActiveObject() API.

    Secara teoretis, Anda dapat mengulang ROT untuk setiap hal yang masing-masing, namun aplikasi Office tidak mendaftarkan diri jika item lainnya sedang MEMBUSUK karena moniker sendiri tidak selalu sama (itu tidak dapat dibedakan tetap). Ini berarti bahwa Anda tidak dapat melampirkan contoh apa pun kecuali untuk yang pertama. Namun, karena aplikasi Office juga mendaftar dokumen di ROT, Anda dapat berhasil melampirkan item lain dengan iterasi ROT mencari dokumen khusus, melampirkan, kemudian mendapatkan objek aplikasi dari itu. Ada beberapa kode di artikel Pangkalan Pengetahuan Microsoft berikut ini untuk iterasi ROT dan Cari nama dokumen:
    190985 HOWTO: Mendapatkan IDispatch Excel atau dokumen Word dari OCX
    Anda tidak perlu melakukan hal ini untuk PowerPoint, karena aplikasi satu contoh; Anda hanya dapat memiliki satu contoh dari berjalan.
  6. Bagaimana saya melewati parameter opsional?

    Beberapa metode yang memiliki parameter "opsional". Dalam Visual Basic, Anda dapat begitu saja mengabaikan mereka saat memanggil metode. Namun, ketika menelepon dengan Visual C++ Anda harus menyampaikan varian khusus yang bidang .vt adalah VT_ERROR, dan kolom .scode adalah DISP_E_PARAMNOTFOUND. Yaitu:
          // VARIANT used in place of optional-parameters.
          VARIANT varOpt;
          varOpt.vt = VT_ERROR;
          varOpt.scode = DISP_E_PARAMNOTFOUND;
    						
    Ini adalah benar-benar apa yang dilakukan Visual Basic balik layar.
  7. Bagaimana cara menangkap peristiwa yang terpapar oleh aplikasi Office?

    Pada dasarnya Anda menerapkan antarmuka peristiwa yang ingin menangkap ("sink"), dan penataan sambungan penasihat dengan aplikasi ("sumber"). Artikel berikut ini memberikan contoh langkah demi langkah untuk Microsoft Word:
    183599 HOWTO: Menangkap peristiwa aplikasi Microsoft Word97 menggunakan VC ++
    Secara umum, setup sambungan penasihat, Anda mendapatkan server IConnectionPointContainer dan panggilan FindConnectionPoint() dengan riset antarmuka peristiwa. Ini memberikan antarmuka IConnectionPoint dan semua yang tersisa adalah untuk memanggil Advise() dengan contoh antarmuka peristiwa. Server akan kemudian panggilan kembali melalui antarmuka ini ketika peristiwa ini terjadi.
  8. Kode otomatisasi saya terlalu lambat. Bagaimana cara mempercepat hal?

    Penyebab umum kecepatan masalah dengan otomatisasi adalah dengan membaca dan menulis data yang berulang-ulang. Ini khas untuk klien Otomasi Excel. Namun, sebagian besar orang tidak menyadari bahwa data ini biasanya dapat ditulis atau membaca sekaligus menggunakan SAFEARRAY. Lihat artikel Basis Pengetahuan Microsoft berikut untuk informasi lebih lanjut dan informatif contoh:
    186120 HOWTO: Menggunakan MFC untuk mengotomatisasi Excel dan mengisi kisaran dengan Array
    186122 HOWTO: Menggunakan MFC untuk mengotomatisasi Excel & mendapatkan Array dari kisaran
    179706 HOWTO: Menggunakan MFC untuk mengotomatisasi Excel dan membuat/Format buku kerja baru
    Selain itu, sangat penting untuk menunjukkan bahwa menggunakan clipboard kadang-kadang dapat meningkatkan kinerja. Misalnya, Anda dapat menyalin data ke clipboard, kemudian gunakan otomatisasi untuk memberitahu server untuk menempel. Atau sebaliknya; memberitahu server untuk salin ke clipboard, dan tempelkan ke aplikasi Anda.
  9. Apakah nilai besar galat ini, seperti-2147352573, atau 0x80030002 berarti?

    Nilai ini disebut sebagai HRESULTs dan ditetapkan di winerror.h. Angka sangat besar karena bit pertama menunjukkan apakah galat hasil. Anda dapat menggunakan utilitas ErrLook.Exe yang dilengkapi dengan Visual C++ menerjemahkan angka-angka ini ke Deskripsi bermakna.

    Jika Anda ingin secara sistematis mendapatkan keterangan untuk galat, Anda dapat menggunakan FormatMessage() API.Lihat artikel Basis Pengetahuan Microsoft berikut untuk informasi lebih lanjut dan contoh penggunaan FormatMessage():
    186063 INFO: Menerjemahkan kesalahan Otomasi VB VBA
    122957 Contoh: Decode32 dan Decode16 OLE galat kode Decoder alat
    Catatan: jika Anda menggunakan Visual C++ 6.0 dan variabel yang berisi nilai ini di jendela watch debug, tambahkan ", hr" (tanpa tanda kutip) untuk memiliki Visual C++ menerjemahkan untuk Anda!
  10. Apa yang dimaksud dengan perpustakaan jenis?

    Perpustakaan jenis mirip dengan berkas header C C++. Berisi antarmuka, metode, dan properti yang server penerbitan.Anda dapat melihat Perpustakaan jenis dengan penampil Objek OLE COM (Oleview.exe) yang dilengkapi dengan Visual C++. Berikut adalah daftar nama file Perpustakaan jenis untuk Microsoft Office 95, 97, dan 2000:
           Office Application      | Type library
           ------------------------+----------------
           Word 95 and prior       | wb70en32.tlb
           Excel 95 and prior      | xl5en32.olb
           Powerpoint 95 and prior | Powerpoint.tlb
           Access 95 and prior     | msaccess.tlb
           Binder 95               | binder.tlb
           Schedule+               | sp7en32.olb
           Project                 | pj4en32.olb
           Team Manager            | mstmgr1.olb
           Word 97                 | msword8.olb
           Excel 97                | excel8.olb
           Powerpoint 97           | msppt8.olb
           Access 97               | msacc8.olb
           Binder 97               | msbdr8.olb
           Graph 97                | graph8.olb
           Outlook 97              | msoutl8.olb
           Outlook 98              | msoutl85.olb
           Word 2000               | msword9.olb
           Excel 2000              | excel9.olb
           Powerpoint 2000         | msppt9.olb
           Access 2000             | msacc9.olb
           Outlook 2000            | msoutl9.olb
           Word 2002               | msword.olb
           Excel 2002              | excel.exe
           Powerpoint 2002         | msppt.olb
           Access 2002             | msacc.olb
           Outlook 2002            | msoutl.olb 
    
    
    						
  1. Kode otomatisasi saya bekerja dengan Excel 95, tetapi gagal dengan Excel 97. Apa yang terjadi?

    Model objek untuk Excel membuat perubahan yang signifikan dari versi 95 97. Excel 95 diimplementasikan semua metode dan properti pelaksanaan IDispatch tunggal. Ini berarti bahwa sering Anda dapat memanggil metode dimaksudkan untuk objek X, dari objek Y. Ini bukanlah desain yang baik, sehingga di Office 97, setiap objek sendiri terpisah Idispatch implementasi. Ini berarti bahwa jika Anda meminta metode atau properti dari objek X dari objek terpisah Y, Anda mendapatkan galat 0x80020003,-2147352573, "anggota tidak ditemukan." Untuk menghindari galat ini, Anda harus memastikan bahwa antarmuka IDispatch dasar Anda membuat panggilan dari satu semantik yang benar.Lihat artikel Basis Pengetahuan Microsoft berikut untuk informasi lebih lanjut:
    172108 HOWTO: Pemecahan masalah "Anggota tidak ditemukan", 0x80020003 galat
  2. Aplikasi saya mengotomatisasi tetap dalam memori setelah saya program selesai. Apa yang terjadi?

    Tentu saja, hal ini karena Anda lupa untuk melepaskan antarmuka diperoleh dan Anda harus melacak itu. Berikut adalah beberapa saran umum, dan hal-hal untuk mencari:
    • Jika Anda menggunakan #import, akan sangat mungkin Anda dapat menjalankan ke salah satu bug menghitung referensi yang berhubungan dengannya. Sering kali bug dapat bekerja di sekitar, tetapi biasanya itu lebih disukai untuk menggunakan salah satu metode otomatisasi lainnya. #import tidak bekerja dengan baik dengan aplikasi Office, karena Perpustakaan jenis dan penggunaan yang cukup kompleks. Selain itu, seperti referensi menghitung masalah sulit dilacak karena banyak tingkat interface COM panggilan balik layar dengan menggunakan #import.
    • Periksa untuk melihat jika Anda menelepon setiap metode, seperti membuka, atau baru, yang menghasilkan IDispatch * (LPDISPATCH), dan mengabaikan nilai kembali. Jika Anda, maka Anda meninggalkan antarmuka ini kembali dan harus mengubah kode Anda sehingga Anda mengeluarkan ketika tidak diperlukan.
    • Secara bertahap mengomentari bagian kode sampai masalah hilang, kemudian tambahkan kembali bijaksana untuk melacak mana masalah dimulai.
    • Perhatikan bahwa beberapa aplikasi akan tetap berjalan jika pengguna telah "menyentuh" aplikasi. Apabila ini terjadi saat Anda sedang mengotomatisasi, maka aplikasi mungkin akan tetap menjalankan sesudahnya. Aplikasi Office memiliki properti "UserControl" pada objek aplikasi yang Anda dapat baca/tulis untuk mengubah perilaku ini.
    • Selain itu, beberapa aplikasi akan memutuskan untuk tetap berjalan jika cukup-antarmuka pengguna "tindakan" telah terjadi. Jika Anda bermaksud untuk keluar dari aplikasi, kemudian memanggil metode Quit() pada objek aplikasi. Word akan mematikan terlepas dari jumlah referensi yang ketika Quit disebut. Ini bukan COM perilaku yang diharapkan. Excel, akan benar hanya menyembunyikan sendiri namun tetap berjalan sampai semua antarmuka biasa dirilis. Secara umum, Anda harus melepaskan semua referensi yang biasa, dan hanya panggilan Quit() jika Anda bermaksud untuk keluar dari aplikasi.
  3. Saya tahu apa yang ingin melakukan sebagai pengguna aplikasi Office, tapi bagaimana ini secara sistematis otomatisasi?

    Apa yang Anda minati adalah objek, metode, dan properti apa yang Anda butuhkan untuk menggunakan. Cara terbaik untuk mempelajari cara menavigasi model objek Word, Excel, dan Powerpoint, berdasarkan apa yang ingin Anda lakukan sebagai pengguna, adalah dengan menggunakan perekam makro. Hanya memilih Macro\ 'Rekor baru makro' dari menu Alat, menjalankan tugas Anda tertarik, kemudian pilih Macro\ 'Menghentikan perekaman.' Setelah Anda selesai merekam, pilih Macro\Macros dari menu Alat, pilih makro yang direkam, kemudian klik Edit. Ini akan membawa Anda ke kode VBA yang akan melakukan tugas yang direkam. Perlu diingat makro rekaman tidak akan kode mungkin terbaik dalam kebanyakan kasus, tetapi apakah itu baik untuk contoh cepat.
  4. Saya dapat mengotomatisasi aplikasi Office yang tertanam?

    Tentu saja. Trik mendapatkan IDispatch pointer: ini diberikan Visual C++ teknis catatan 39 (TN039). Lihat artikel Basis Pengetahuan Microsoft berikut ini contoh selangkah demi selangkah:
    184663 HOWTO: Menanamkan dan mengotomatisasi Microsoft Excel Worksheet dengan MFC
  5. Bagaimana cara mengakses properti dokumen saya di dokumen Office?

    Properti dokumen dapat diakses melalui otomatisasi, atau langsung melalui IPropertyStorage. Artikel Pangkalan Pengetahuan Microsoft berikut ini menunjukkan masing-masing metode:
    179494 HOWTO: Menggunakan otomatisasi untuk mengambil kembali properti dokumen internal
    186898 HOWTO: Baca dokumen gabungan properti secara langsung dengan VC ++

program sequential searching

berikut adalah contoh program yang menggunakan metode searching (pencarian data) tentunya dengan menggunakan teknik sequential searching.Langsung sja kita coba cpp dbawah ini,,., cekidot


#include <iostream.h>
#include <conio.h>


void main()
{
    int i;
    int cari,ketemu;
  int A[100]  ;

   cout<<"PROGRAM SEARCHING\n";
   cout<<"masukkan 7 buah data : \n\n";
   for (i=1;i<=7;i++)
   {
   cout<<"masukkan data ke-"<<i<<endl;
   cin>>A[i] ;
   }
   cout<<endl;
    cout<<"Input bilangan yang dicari : ";
    cin>>cari;

    ketemu=0;
    for(i=0;i<=7;i++)
    {
        if (A[i]==cari)
        {
            ketemu=1;
            cout<<"Data ditemukan pada indeks ke-"<<i;
        }
    }

    if (ketemu==0){
       cout<<"Data tidak ditemukan";
    }

 getch();
}

semoga bermanfaat untuk kita semua,., dan selamat mencoba.,.,

sumber:http://jnanayoga-online.blogspot.com/2010/04/contoh-program-metode-sequential.html