gw pingin sharing aja ni . ;D
biasanya program tukar pakai 3 variabel kan, nah yang ini pakai 2 variabel.
this is it, with pascal,, and cekidot.. ;D ;D ;D
program tukar
uses crt;
var
x,y: integer;
begin
clrscr;
write('masukkan x : '); readln(x);
write('masukkan y : '); readln(y);
writeln('x = ',x);
writeln('y = ',y);
writeln('hasil:');
x:=x+y;
y:=x-y;
x:=x-y;
writeln('x = ',x);
writeln('y = ',y);
readln;
end.
Lumayan kreatip.. ;)
tapi..gimana y dibanding 3 variabel..?
mungkin dari segi kecepatan?
n ini tambahan aja s..
untuk operasi penjumlahan dan pengurangan (bilangan bulat/integer) lebih cepat gunakan prosedure Inc dan Dec..
bisa lebih efisien sih . ^^
program di atas khusus untuk tipe data integer dan real . :)
ok, terima kasih, ;D
maaf kk saya mau tanya
tukar dengan 2 variabel gunanya buat apa?
tolong jelaskan scra org awam soalnya saya tidak tau apa?
dan saya ingin tau hal ini krena rasanya menarik....
;D ;D ;D ;D ;D ;D ;D ;D ;D
Kutip dari: Alan adhityo pada September 30, 2010, 07:30:20 PM
x:=x+y;
y:=x-y;
x:=x-y;
menurut saya tidak semua bilangan dalam tipe integer bisa tukar 2 variabel... Misalnya X=20000, Y=25000... Ntar Kalo X=X+Y error dong... Kan batas max integer cuma 32767 (kalo gak salah)...
Maaf kalo salah...hehe ;D
Untuk mesin 16-bit bilangan unsigned integer bisa sampai 65536, sedangkan untuk signed integer memang cuma 32767.
Kutip dari: Henz_Azthral pada Oktober 05, 2010, 06:47:34 PM
Misalnya X=20000, Y=25000... Ntar Kalo X=X+Y error dong... Kan batas max integer cuma 32767 (kalo gak salah)...
Kutip dari: Farabi pada Oktober 07, 2010, 07:51:11 AM
Untuk mesin 16-bit bilangan unsigned integer bisa sampai 65536, sedangkan untuk signed integer memang cuma 32767.
tergantung compiler directive..aku lupa perintah-nya, tapi yang jelas secara default compiler pascal (delphi juga) tidak akan mempermasalahkan operasi tersebut..
dan ketika input lebih dari rangenya pun tidak apa2, cuma nanti nilai variabelnya tercatat beda..
yang dipermasalahkan yaitu ketika kita mencoba memasukkan nilai diluar range variabel dari kode, misal menulis kode X:=50000, hasilnya error ketika dicompile..
kemudian apa yang terjadi pada operasi diatas?
X integer (sign) atau pada delphi smallintX=20000 dan Y=25000
X=X+Y
X=20000+25000
harusnya X=45000 kan
tapi karena bit paling tinggi dianggap sebagai sign/tanda - (negatif), dalam kasus ini integer pada pascal 16 bit maka bit terendah adalah bit ke 0 sedang tertinggi bit ke 15..
jadinya X yang tersimpan??
X=45000-2
16X=45000-65536
X=-20536
terus pertanyaannya apakah kode diatas masih valid?
jawabannya masih, untuk kasus integer dan nilai input X dan Y valid
Y=X-Y;
Y=-20536-25000
Y=-45536
melampaui batas -2^16 = -32768
jadi yang tercatat
Y=2^16-45536
Y=65536-45536
Y=20000
X=X-Y
X=-20536-20000
X=-40536
melampaui batas -2^16 = -32768
jadi yang tercatat
X=2^16-40536
X=65536-40536
X=25000
lha itu untuk operasi integer yang melampaui range
untuk kasus tipe data real/float maka ada masalah yang akan timbul, yaitu presisi tipe data real/float yang terbatas
coba aja deh tipe data diganti real terus masukkan X=1.11e10 dan Y=2.22e-10 pasti pertukaran nilai X Y tidak valid.. ;)
Wow...Rupanya bisa kayak gitu...
Eh, Numpang tanya...
(Nih di VB6, tapi kayaknya mirip2 pascal)
Dim X,Y as integer
dengan
Dim X as integer
Dim Y as integer
Sama???
Soalnya pas gw coba bwt code
X=20000
Y=25000 {Gak Error Kalo pake Dim X,Y as integer, tapi kalo penulisannya
X=X+Y... dipisah jadi Error}
kayaknya pascal ma VB jauh banget deh.. ;D
meski sama2 bahasa tingkat tinggi, VB tu terlalu mempermudah penulisan kode..
sehingga kurang cocok untuk pembelajaran
aku g punya VB6 s, cuma kayaknya sama ama VBA nya MS Access..
Dim X,Y as integer
beda dengan
Dim X as integer
Dim Y as integer
Dim X, Y as integer bisa dinyatakan seperti ini
Dim X
Dim Y as integer
jadi X tidak bertipe integer
tipenya variant (mengikuti data yang dimasukkan kedalamnya)
maka pada kode X=X+Y
nilai X akan 45000 tidak terpotong (x jadi dianggap bertipe long yg range nya -231 s/d 231-1)
O iya di VB operasi melebihi range, secara default itu dianggap tidak valid dan muncul pesan error..
tapi tidak tau juga apakah bisa dibuat agar tidak error..tak cari2 ga ketemu..
Kalo pake kompiler 16-bit untuk angka melebihi 65535 harus pakai long, atau long int.
Tapi sebentar lagi mode 16-bit di komputer sudah jadi bangkai, jadi kompiler semacam pascal dan lain2x tidak akan terpakai lagi.
Y memang begitu..
sekarang pun dan banyak CPU 64 bit kan..cuma memang belum menggeser aplikasi 32 bit..
yang aku belum tau nih pada pemrograman 64 bit istilah untuk integer 64 bit apa yah..
di delphi 7 s yang berbasis 32 bit dah ada n disebut int64
cuma secara default integer di sana dianggap 32 bit beda dengan di pascal yang dianggap 16 bit
n pada delphi yg 64 bit mungkin integer akan dianggap 64 bit, sementara untuk menyebut integer 32 bit ada reserved word lain..(masih butuh klarifikasi)
64-bit biasa disebut qword.
secara istilah OK s itu mang berarti 64 bit..
oh ak dah dapet ni..
copas aja..
Byte (1 Byte, Unsigned)
UInt8 (alias for Byte)
ShortInt (1 Byte, Signed)
Int8 (alias for ShortInt)
Word (2 Bytes, Unsigned)
UInt16 (alias for Word)
SmallInt (2 Bytes, Signed)
Int16 (alias for SmallInt)
LongWord (4 Bytes, Unsigned)
UInt32 (alias for LongWord)
LongInt (4 Bytes, Signed)
Int32 (alias for LongInt)
UInt64 (8 Bytes, Unsigned)
Int64 (8 Bytes, Signed)
NativeUInt (Unsigned, depends on CPU register size)
NativeInt (Signed, depends on CPU register size)
Cardinal (Unsigned, depends on OS definition of Integer)
Integer (Signed, depends on OS definition of Integer)
hha ribet banget y..padahal komputer (PC) ga akan berhenti di 64 bit..mungkin beberapa tahun lagi muncul 128 bit, disusul 256 bit dst..
ah iya, di C kalau kepanjangan angkanya bisa kacau, kalau nggak pake temporary
mmm maksudna gimana y ??? bisa diperjelas?
ah sorry...
hehehe harusnya diubah dulu ke string baru ditambahkan,.. maka tidak akan ada apa apa,..
misal
string penjumlahan_string(string a, string b)
{
bla bla bla
return jumlah
}
int main()
{
string a, b;
cin >> a >> b;
cout << penjumlahan(a,b);
}
sayangnya aku g nyanding kompiler C je.. ;D
mungkin di C memang error handlingnya lebih ribet..
cin cout y..hmm apa tu pake Borland C ++?
cin cout itu pake library iostream.h, sebenarnya punyanya c++, bukan c. itu ada di semua IDE C++ kok
kalau pake fungsi yang ilustrasikan diatas, berapapun jumlah bilangannya, pasti bisa deh kalau hanya di swap,..
o y C++ nya pake apa yah?
sukur2 yang gratis jd g kebanyakan mbajak.. ;D
Kutip dari: utusan langit pada Oktober 13, 2010, 04:22:17 PM
cin cout itu pake library iostream.h, sebenarnya punyanya c++, bukan c. itu ada di semua IDE C++ kok
kalau pake fungsi yang ilustrasikan diatas, berapapun jumlah bilangannya, pasti bisa deh kalau hanya di swap,..
iostream.h --->
deprecated
Kutip dari: utusan langit pada Oktober 12, 2010, 06:50:28 PM
ah sorry...
hehehe harusnya diubah dulu ke string baru ditambahkan,.. maka tidak akan ada apa apa,..
misal
string penjumlahan_string(string a, string b)
{
bla bla bla
return jumlah
}
int main()
{
string a, b;
cin >> a >> b;
cout << penjumlahan(a,b);
}
Wah kurang efisien kalo gitu sih, mendingan pake 3 variable aja, paling cuma abis 12 byte daripada pake string yang pastinya menghabiskan 1 kb, bukan cuma itu, waktu yang dibutuhkan untuk memproses juga pasti lebih lama kalau pakai string.
KutipWah kurang efisien kalo gitu sih, mendingan pake 3 variable aja, paling cuma abis 12 byte daripada pake string yang pastinya menghabiskan 1 kb, bukan cuma itu, waktu yang dibutuhkan untuk memproses juga pasti lebih lama kalau pakai string.
ada kalanya saat tipe angka tidak dapat menampung, maka digunakanlah sebuah string untuk menyelesaikan masalahnya bung,.. :) :)
KutipWah kurang efisien kalo gitu sih, mendingan pake 3 variable aja, paling cuma abis 12 byte daripada pake string yang pastinya menghabiskan 1 kb, bukan cuma itu, waktu yang dibutuhkan untuk memproses juga pasti lebih lama kalau pakai string.
ada kalanya saat tipe angka tidak dapat menampung, maka digunakanlah sebuah string untuk menyelesaikan masalahnya bung,.. :) :)
@adisae,.
ada banyak kok yang gratisan,.. misalnya Dev-C++, kalau di linux malah banyak lagi bung,.. hehehe
sementara Windows aja..
recomended apa ni?Dev C++?
kalo ada yang cukup handal wat bikin yg ada GUI nya..
Kutip dari: utusan langit pada Oktober 14, 2010, 07:46:29 PM
KutipWah kurang efisien kalo gitu sih, mendingan pake 3 variable aja, paling cuma abis 12 byte daripada pake string yang pastinya menghabiskan 1 kb, bukan cuma itu, waktu yang dibutuhkan untuk memproses juga pasti lebih lama kalau pakai string.
ada kalanya saat tipe angka tidak dapat menampung, maka digunakanlah sebuah string untuk menyelesaikan masalahnya bung,.. :) :)
Memang tapi sangat tidak efisien sekali karena waktu yang dibutuhkan untuk mengolah sebuah perintah jadi sangat lambat. Memangnya anda butuh berapa digit untuk mengolah angka?
Ada banyak pilihan yang lebih efisien untuk melakukan kalkulasi dengan angka yang besar salah satunya adalah FPU yang mendukung sampai 80-bit atau SSE yang mendukung sampai 128 atau 256-bit. Saya yakin tipe data ini bisa sampai puluhan ribu kali lebih cepat daripada menghitung pakai string.