Search This Blog

Friday, October 7, 2011

Java Swing Hello Program

// एक अप्प्लेट जो button की तरह दिखाई देगा उस पर लिखा होगा
// "Click me".  जब उस button पर क्लिक होगा
// तब एक बॉक्स खुलेगा जिस पर लिखा होगा  Hello from Swing.

import javax.swing.*;    // Swing GUI (ग्राफिक user interface )classes को defined करना
import java.awt.event.*; // Event handling class को define  करना

public class HelloSwing extends JApplet implements ActionListener {

   public void init() {
         // यह method अप्प्लेट के पहले कॉल होगा और दिखेगा 
         // यह एक button बनाने के काम आता है  और उसको
         //  JApplet के कंटेंट में डिस्प्ले करेगा . एक अप्प्लेट
         // button के ActionListener के   रूप में register करेंगे

      JButton bttn = new JButton("Click Me!");
      bttn.addActionListener(this);
      getContentPane().add(bttn);

   } //  init() का अंत
 
   public void actionPerformed(ActionEvent evt) {
         // यह method तब कॉल होगा जब कोई एक्शन प्रतिक्रिया होगी
         // यहाँ पर इवेंट का सिर्फ एक ही source है और वोह है
         // button.  तो जब भी method कॉल होता है तोह हमे पता है
         // की button पर क्लिक हुआ है .  उसको respond करना है
         // एक जानकारी युक्त dialog बॉक्स से उस dialog बॉक्स पर
         //  "OK" button दिया होगा तब  user को क्लिक करके
         //  dialog बॉक्स को बंद कर सकते है

      String title = "Greetings";  //  dialog बॉक्स के title बार में दिखाई देगा
      String message = "Hello from the Swing User Interface Library.";
      JOptionPane.showMessageDialog(null, message, title,
                                     JOptionPane.INFORMATION_MESSAGE);
   } //  actionPerformed() का अंत

} //  class HelloSwing का अंत


compile के बाद execute करने के लिए ,आपको एक html फाइल बनानी होगी जैसे HelloSwing.html और उसमे निचे दिया है वैसे अप्प्लेट को embedded करना होगा |  

<html>
<head>
<title>HEllo Swing Program </title>

<body>

<APPLET CODE="HelloSwing.class" WIDTH=500 HEIGHT=80 MAYSCRIPT>
</APPLET>

</body>

</html>

Hello world using Java Applet


इस प्रोग्राम के माध्यम से हम यह सिखने की कोशिश करेंगे की जावा के अप्प्लेट के माध्यम से हेल्लो वर्ल्ड किस प्रकार लिखते है |

नए कांसेप्ट्स :

  1. यहाँ आप import का प्रयोग देखेंगे 
  2. paint function पहली बार प्रयोग में लाया गया है 
  3. drawString functions और उसके आर्गुमेंट्स
 

import java.applet.*;

import java.awt.*;

public class HelloWorld extends Applet {
    public void paint( Graphics g ) {
        g.drawString("Hello World",50,25);
}   }

Tuesday, September 27, 2011

Recurssions


Recurssion के नाम से ही हमे पता चल रहा है की यह उस क्रिया का नाम है जो री अकर हो वही
recurssion होता है | जैसे अगर हम किसी function में उसी function को कॉल किया जाता
है तो उस समय हम इसका प्रयोग करते है | 
 
उदहारण :
अगर हम किसी व्यस्त रहने वाले भोजनालय में जाते है , तो हम देखते है की ,वाहा लोग आ रहे है ,खाना 
खा रहे है  बिल चुकाते है और चले जाते है | अब अगर हम देखे की येही क्रिया जब तक चलती रहेगी जब तक
वहा अंतिम व्यक्ति खाना न खा ले या भोजनालय बंद होने का समय नहीं हो जाये |

अगर इसी बात को में आपको जावा के रूप में कहू तो में एक ग्रहिक के आने से लेकर बिल जमा करने तक की 
क्रिया को function में लिखूंगा और हर ग्रहिक को उसका आर्गुमेंट बनाऊँगा | जब भी एक ग्रहिक (function
ख़तम होगा , तभी हम इसी function को फिर से कॉल करेगा |
 
इसी बात को ज्यादा समझने के लिए आप निचे binary सर्च का उदहारण देखिये और देखिये की कैसे हमने इसी क्रिया 
का प्रयोग प्रोग्राम में कैसे किया है :  
      
   
/**
 * एक अर्रे A जो बड़ते हुए क्रम में जमा हुआ हो, उसमे से कोई value सर्च करनी है 
 * अगर value मिल जाये तोह उस value के इंडेक्स को रिटर्न करो नहीं तो -1 रिटर्न करो 
 */
static int binarySearch(int[] A, int loIndex, int hiIndex, int value) {
      
   if (loIndex > hiIndex) {
         // शुरवाती जगह फिनाल जगह के बाद आ रही हूँ ,
         // तो इसका मतलब है ,की बताई गयी रंगे में कोई element नहीं होगा 
         // इसीलिए यहाँ पर खली लिस्ट होगी तोह हम -1 रिटर्न कराएँगे 
      return -1;
   }
   
   else {
         // लिस्ट के बिलकुल बीच में देखो ,अगर वह value मिल जाती है तो 
         // value को रिटर्न करो , नहीं तोह ,फिर से सर्च करो बिलकुल इसी 
         // तरह से या तोह पहले हिस्से में ,या फिर दुसरे में 
         // जो बीच में सर्च करते वक़्त लिस्ट में बन गए थे 
      int middle = (loIndex + hiIndex) / 2;
      if (value == A[middle])
         return middle;
      else if (value < A[middle])
         return binarySearch(A, loIndex, middle - 1, value);
      else   // value must be > A[middle]
         return binarySearch(A, middle + 1, hiIndex, value);
   }

} // binarySearch() का अंत 
class Binarysearchcg {

 static int Binarysearch(int[] A, int loIndex, int hiIndex,int value) {

				if(loIndex > hiIndex) {
					return -1;
						      }
				else {

					int middle= (hiIndex+loIndex)/2;
						if(value > A[middle]) 
								{
								 loIndex= middle;
								return Binarysearch(A, loIndex, hiIndex, value);
								}					
						else if(value < A[middle]) {
								hiIndex = middle; 
								return Binarysearch(A, loIndex, hiIndex, value);
								}
						else {
							return middle; }
					}
									}


public static void main(String[] args) {


			
			int[] sortedarray = { 1, 2, 5, 6, 7, 8, 9, 13 ,15};
			int valuetosearch=9;
			int found=Binarysearch(sortedarray , 0 ,9 , valuetosearch);
			System.out.println(found);
					}
                      }

Monday, September 26, 2011

Matrix Multiplication

अगर आपको गणित में माट्रिक्स को गुणा करना आता है ,तो आपको जावा में माट्रिक्स को समझाने में ज्यादा परेशानी नहीं होगी | जावा में माट्रिक्स को गुणा करने के लिए दो कांसेप्ट काम में आते है :

१. २डी अर्रे 
२. फॉर लूप 

दोनो के बारे में हम विस्तार से चर्चा कर चुके है , अब आईये इनको काम में लेकर देखते है |

class Matrixmultiplication {

   public static void main(String[] args) {

double[][] a = new double[3][3];
double[][] b = new double[3][3];
double[][] c = new double[3][3];

int i,j,k;
int m=10;

System.out.println("First Matrix is : \n");
 for(i=0;i<3;i++) {
			for(j=0;j<3;j++) {
			a[i][j] =m;
                        b[i][j] =m+1;
			System.out.print(a[i][j] + " \t");
			
				}
		 System.out.println();	
}
System.out.println();	
System.out.println("Second Matrix is : \n");
 for(i=0;i<3;i++) {
			for(j=0;j<3;j++) {
			System.out.print(b[i][j] + " \t");
			
				}
		 System.out.println();	
}
System.out.println();	
System.out.println("Multiplication of Matrix is: \n"); 
for(i=0;i<3;i++) {   
    for(j=0;j<3;j++) {           
            for(k=0;k<3;k++) {
                      c[i][j]+= a[i][k] * b[k][i];      
                      	      }	 			   
                                    
 			System.out.print(c[i][j] + " \t" );                                           
			}
                System.out.println("");
	 } 
 					}

} 

Sunday, September 25, 2011

Functions in java Part 2

Functions के द्वितीय भाग में हम कही functions बनायेंगे और देखेंगे की हम इसका कैसे प्रयोग कर सकते है |  

// अगर हमे 90 डिग्री वाले त्रिकोण का कर्ण (hypotenuse) निकालना हो , तो हमे 
//उसकी दोनो बाजू (sides) का square निकाल कर जोड़ना पड़ता है |
// अब देखिये हम इसका function कैसे बनाते है 
   
    public static double hypotenuse(double a, double b) { // public और static का मतलब में पहले आपको बता 
                                                                                       //चूका हूँ , double datatype बड़ी संख्या के लिए उपयोग 
                                                                                       // करते है , a और b इस function के आर्गुमेंट है 
       
return Math.sqrt(a*a + b*b);         //यह हमने जावा के अन्दर दिए हुए  Math.sqrt function का उपयोग किया है 
                                                     // जो हमे value  square करके return करेगा |                                         
    }

    // Harmonic एक प्रकार से जोड़ वाली series होती है जैसे 
 //अगर हमे इस series को function में लिखना हो तो उसके लिए function होगा  :
    public static double H(int N) {
        double sum = 0.0;
        for (int i = 1; i <= N; i++)
            sum += 1.0 / i;
        return sum;
    }

    // कोई भी random नंबर पाना हो तो  
    public static int uniform(int N) {
        return (int) (Math.random() * N);
    }

    // एक त्रिबुझ को बनाने का funtion 
    public static void drawTriangle(double x0, double y0, double x1, double y1, double x2, double y2) {  
        StdDraw.line(x0, y0, x1, y1);
        StdDraw.line(x1, y1, x2, y2);
        StdDraw.line(x2, y2, x0, y0);
    }



    

Tuesday, September 20, 2011

Reverse the string using string buffer

हमने स्ट्रिंग को उपयोग करके देख लिया है , अब अगर हम इसी स्ट्रिंग को उल्टा करना चाहे तोह हमे जावा के language package का दूसरा हिस्सा स्ट्रिंग बफर को काम में लेना पड़ेगा | जावा में स्ट्रिंग और स्ट्रिंग बफर language  पैकेज में आते  है | स्ट्रिंग को में आपको पहले ही समझा चूका हूँ एवं उसके उदहारण भी आपको दे चूका हूँ , अब हम स्ट्रिंग बफर का उपयोग करे स्ट्रिंग को उल्टा करेंगे |

// क्लास के नाम का declaration 
class ReverseString { 
// स्ट्रिंग को उल्टा करने के लिए हम revereIt नाम का function declare करेंगे , जिसमे 
//आर्गुमेंट इनपुट हम स्ट्रिंग ही देंगे , आर्गुमेंट का नाम हमने source रखा है |
    public static String reverseIt(String source) {
//अब दो variable declare करेंगे एक तोह i एवं दूसरा len जो स्ट्रिंग की लम्बाई को स्टोर करेंगा 
        int i, len = source.length();
 // यहाँ पर हम नया स्ट्रिंग बफर dest बनायेंगे जिसके लम्बाई हमारे पूरानी स्ट्रिंग जितनी ही होगी 
        StringBuffer dest = new StringBuffer(len);
//अब फॉर लूप की सहायता से हम एक एक करके पूरानी स्ट्रिंग्स के सभी char को नयी स्ट्रिंग में अपेंड करेंगे  
        for (i = (len - 1); i >= 0; i--) {
            dest.append(source.charAt(i));
        }
//यहाँ से नहीं स्ट्रिंग को function को return कर देंगे |
        return dest.toString();
    }
}


यह प्रोग्राम नए लोगो को शुरू में थोडा मुश्किल लग सकता है , इसीलिए में कहूँगा की वो पहले इस ब्लॉग 
के दुसरे पोस्ट पढ़े और फिर दुबारा इस इसे देखे तो उन्हें काफी कुछ समझ में आने लगेगा |

Monday, September 19, 2011

Java Applets

जावा अप्पलेट्स एक छोटी सी एप्लीकेशन होती है जो इसके यूजर को बाइट कोड के रूप में प्रदान की जाती है । जावा ही की तरह एप्लेट भी प्लेटफार्म से स्वतंत्र होते है और इन्हें किसी भी मशीन में चलाया जा सकता है । यूजर इनको किसी भी वेब ब्राउज़र से एक्सेस कर सकता है ।
<html>
<head>
  <title>Namaste Bharat</title>
</head>
<body>
  <h1>Java applet ka ek example</h1>
applet ko html mein embedded karne ka tarika: <applet code="NamasteBharat.class" height="40" width="200">
  </applet><br />

</body>
</html>

ऊपर दिए गए उधाहरण में हमने क्लास को सीधा प्रयोग में लिया है पर हम एप्लेट को छोटा एवं कंप्रेस करके भी  प्रयोग में सकते  है और इन कॉम्प्रेस फाइलो का एक्सटेंशन .jar होता है 
अप्प्लेट की क्लास का नाम और फाइल का नाम दोनो एक होने अनिवार्य है |  
import java.applet.*;
import java.awt.*;
public class Linedrawkaro extends Applet {
 
   // "int" इन्तिजर टाइप के दो variables का declaration (घोषणा) 
   int width, height; // एक लाइन की चोड़ाई बताएगा और दूसरा लम्बाई  
 
   // अप्प्लेट के शुरू होने के साथ ही यह execute होगा |
   public void init() {

    // अप्प्लेट की लम्बाई और चोड़ाई भविष्य में काम लेने के लिए Store(संगृहीत) करते हुए 
      width = getSize().width;
      height = getSize().height; 
      // आप्लेट के पीछे के रंग को कला करे 
      setBackground( Color.black );
   }
 
   // जब भी अप्प्लेट को दुबारा बनाना हो तब यह execute करो |
   public void paint( Graphics g ) {

      // अभी के drawing color को green करो |
      g.setColor( Color.green );

      // दस लाइन loop की सहायता से बनाओ 
      // हम यहाँ पर temporary variable i declare कर रहे है जो int type का है |    
      // ध्यान रखे की "++i" ,"i=i+1" का छोटा रूप है |
      for ( int i = 0; i < 10; ++i ) {

         // The "drawline" function को चार नंबर की आवश्यकता होगी :
         // the x and y बिंदु जहा से शुरू करना है ,
         // और  x and y बिंदु जहा लाइन का अंत करना है ,
         // हमे सोचना है की हमे लाइन दाए से बाए चाहिए या ऊपर से निचे ,
         // यहाँ पर मुझे ऊपर से निचे चाहिए 
         // 2D graphics में ऊपर के कोने में X=0 ,Y=0 मानते है 
         // x की वलुए बढाने पर वोह दाहिने ओर बढता है और  
         // Y की वलुए बढाने पर वोह निचे की ओर बढता है 
         g.drawLine( width, height, i * width / 10, 0 );
      }
   }
}