Friday, August 31, 2012

சி ஷார்ப்பில் டைப் இன்ஃபெரன்ஸ்(Type inference)


 

 

சி ஷார்ப் 3.0 விலிருந்து டைப் இன்ஃபெரன்ஸ் (Type inference) என்னும் புதிய கருத்து உட்புகுத்தப்பட்டுள்ளது.

 

முதலில் கீழ் காணும் இரு வரிகளை எடுத்துக் கொள்வோம்.

 

int i=10;

 

 

 

என்ற வரியானது

 

var i=10;

 

என்னும் வரிக்கு சமமானதாக சி ஷார்ப்பில் எடுத்துக் கொள்ளப்படுகின்றது.

 

சி# கம்பைலரானது வேரியபிள் I ன் இனத்தை அதற்கு மதிப்பிருத்தப்ப்படும் 10 ஐ கொண்டு integer ஆக எடுத்துக் கொள்கின்றது.இது பார்ப்பதற்கு vb யின் variant போல தோன்றினாலும் இது அதனிலிருந்து வேறுபட்டுள்ளதாகும்.

 

சி# கம்பைலரானது வேரியபிள் I ன் இனத்தை integer ஆக அதன் scope வரை எடுத்துக் கொள்ளும். அதாவது I என்ற வேரியபிளுக்கு integer தவிர வேறு டைப் மதிப்பை assign செய்ய இயலாது.

 

Var  என்ற keyword ஐ ஒரு மெத்தடுக்குள் அறிவிக்கப்படும் local variable களுக்கு மட்டுமே பயன் படுத்த முடியும்.class-wide வேரியபிள்களுக்கு var என்ற keyword உபயோகிக்க முடியாது.

மேலும் Var  keyword உடன் அறிவிக்கப்படும் வேரியபிளானது அதன் தொடக்க மதிப்பை null ஆக கொள்ள இயலாது.

 

 

 

உதாரண நிகழ்:

 Using System;

 

Class VarSample

{

static void Main(String[] args)

{

 

var item=”idli”;

var price=10;

var isFood=true;

 

Type itemType=item.GetType();

Type priceType=price.GetType();

Type isFoodType=isFood.GetType();

 

Console.WriteLine(“item is type of  “+itemType.ToString());

Console.WriteLine(“price is type of “+priceType.ToString());

Console.WriteLine(“isFood is type of “+isFoodType.ToString());

 

}

}

 
Output:

 

Item is type of System.String

Price is type of System.Int32

isFood is type of System.Bool

 

எனது கட்டுரைகளை ஆங்கிலத்தில் காண Programminginenglish.blogspot.in
 
 


 
ads Udanz

Sunday, August 26, 2012

Object அறிவிப்பு-java 12ம் பாடம்.




ஒரு கிளாஸை உருவாக்குதல் என்பது புதியததாக datatype உருவாக்குதலுக்கு சமம்.எப்படி ஒரு வேரியபிள் இன்ட் அல்லது ஃப்லோட் என்கின்றோமோ அதே போல் ஒரு ஆப்ஜெக்ட் ஆனது அந்த கிளாஸை சார்ந்ததாகும்.
ஆப்ஜெக்ட் இரு நிலைகளில் உருவாக்கப்படுகின்றது. முதலில் அந்த கிளாஸிற்கு வேரியபிளாக அறிவிக்கப்படுகின்றது இரண்டாவது நிலையில் ஆப்ஜெக்டின் physical copy ஆனது அந்த வேரியபிளுக்கு assign செய்யப்படுகின்றது
உதாரணமாக

Box mybox=new Box();

இந்த statement ஆனது இரண்டு statementகளை கம்பைன் செய்ததாகும்.

Box mybox;
Mybox=new Box();

முதல் வரியானது mybox என்னும் reference , Box டைப் ஆக அறிவிக்கப்படுகின்றது.இந்த அறிவிப்பிற்கு பிறகு mybox ஆனது null value கொண்டிருக்கின்றது..இரண்டாவது வரியானது ஆப்ஜெக்ட்டை உருவாக்கி mybox க்கு reference assign செய்கின்றது.உண்மையில்  mybox ஆனது Box ஆப்ஜெக்ட்டின் நினைவக முகவரியை கொண்டிருக்கிறது.

new operator:
 

new operator ஆனது ஆப்ஜெக்டிற்கு ரன் டைமில் (இயக்க நேரத்தில் நினைவத்தை ஒதுக்குகின்றது.

Syntax:
Class-var=new Classname();
 இங்கு class-var ஆனது ஆப்ஜெக்ட் ஆகும். Classname ஆனது எந்த class ன்  ஆப்ஜெக்ட் உருவாக்கப்படுகின்றதோ அந்த கிளாஸின் பெயராகும்.class name ஐ தொடரும் parentheses ஆனது constrrucorஐ குறிக்கின்றது. Constructor  என்றால் என்ன என்று வரும் பாடங்களில் பார்ப்போம்.

ஆப்ஜெக்ட் assigning.








Box b1=new Box();
Box b2=b1;

நாம் நிணைப்பது போல் b2 விற்கு b1 assign செய்ய படுவதில்லை.
உண்மையில் b1,b2 இரண்டுமே ஒரே ஆப்ஜெக்டை ரெஃபெர் செய்கின்றன.b2விற்கு என்று ஆப்ஜெக்டின் நினைவகம்  ஒதுக்க படுவதில்லை. B1 எந்த நினைவகத்தை point செய்கின்றதோ அதே Box classந் நினைவகத்தை b2ம்  point செய்கின்றது.
 class Box
{
double width;
double height;
double depth;
}
class BoxDemo
{
public static void main(String args[])
{
Box mybox1=new Box();
Box mybox2=new Box();
double vol;
mybox1.width=10;
mybox2.height=20;
mybox.depth=15;

mybox2.width=3;
mybox2.height=6;
mybox2.depth=9;

vol=mybox1.width*mybox1.height*mybox1.depth;
System.out.println(“volume is “+vol);

vol=mybox2.width*mybox2.height*mybox2.depth;
System.out.println(“volume is “+vol);

 }
}
---தொடரும்.



ads Udanz

Saturday, August 25, 2012

Asp.net: vs express 2012 for web பாடம்-1



அறிமுகம்

கடந்த august 15, 2012  அன்று Microsoft தனது vs 2012 express edition வெளியிட்டுள்ளது . இது ஒரு இலவச மென்பொருளாகும். இது  வெப் பயன்பாடுகள் உருவாக்க பயன்படுகின்றது.
ASP.net ஒரு .NET framework ஆகும். இது html, css, javascript மற்றும் server side scriptஆகியவற்றின் உதவியுடன் websites உருவாக்க பயன்படுகின்றது.
இவற்றை மூன்று பிரிவுகளாக பிரிக்கலாம்.

  1. Asp.net web pages
  2. MVC model view controller
  3. Asp.net web forms.


Asp..net web pages:

Php மற்றும் classic asp போன்று எளிய வெப் பக்கங்கள் உருவாக்க
பயன்படுகின்றது.இதனை web matrix என்னும் இலவச மென்பொருளை கொண்டு உருவாக்கலாம்.database,video,social media and graphics ஆகியவற்றின் build-in template களை கொன்டுள்ளன.

MVC model view controller

இவற்றில் MVC யானது WEB  APPLICATION model, view ,controller என மூன்று பிரிவுகளாக பிரிக்கின்றது.
Model என்பது dataஆகவும்
View என்பது –display ஆகவும்
   controller-input ஆகவும் செயல் படுகின்றது.இவற்றை விசுவல் வெப் டெவலப்பர் கொண்டு உருவாக்கலாம்.

Web forms:

இது traditional asp.net form களை பொன்று செயல்படுகின்றது.இவையானது செர்வெர் control மற்றும் script ஆகியவை இணைக்கப்பட்ட இணைய பக்கங்கள் என்று கூட கூறலாம்.இதனையும் விசுவல் வெப் டெவலப்பர் கொண்டு உருவாக்கலாம்.

.NET FRAMEWORK ஆனது எல்லாவிதமான கணினி பயன்பாடுகளையும் உருவாக்கப் பயன் படுகின்றது. (WINDOWS,CONSOLE,WEB,MOBILE).இவற்றில் ASP.NET FRAME WORK ஆனது வெப் பயன்பாடுகளை உருவாக்கப்பயன்படுகின்றது.
அடுத்த பாடத்திலிருந்து முதலில் WEB MATRIX கொண்டு இணைய பக்களை எவ்வாறு உருவாக்கலாம் அதன் பிறகு வெப் டெவெலப்பர் பிறகு vs express 2012 என மெல்ல மெல்ல பயணிக்கலாம்.




ads Udanz

Sunday, August 12, 2012

C# ம் மல்டிதிரட்டிங்கும்-பகுதி-2


  எல்லா நிரல்களும் ஒரு main thread ஐ கொண்டிருக்கின்றன.இவை நிரல் தொடங்கும் போது தானாகவே இயங்க தொடங்குகின்றன.
C# மற்றும் .Net framework ஆனது process based மற்றும் thread based என இரண்டு வகையான multitasking களை ஆதரிக்கின்றன.
System.Threading என்ற நேம்பேஸில் multi threading க்கிற்கான class கள் உள்ளன. எனவே இந்த நேம்பேஸானது ப்ரொக்ராமில் இம்போர்ட் செய்யப்பட வேண்டும்.
using System.Threading;
திரட் கிளாஸ்:
Thread  கிளாஸ் ஒரு sealed class ஆகும். எனவே இதை inherit செய்ய இயலாது. Thread classல் சில ப்ராப்பர்டிகளும் மற்றும் மெத்தட்களும் வரையறுக்கப்பட்டுள்ளன. இவை thread manage செய்வதற்கு பயன்படுகின்றது.
ஒரு த்ரெட் அனது உருவாக்குவதற்கு Thread class க்கு object create செய்யப்பட வேண்டும். Thread class ன் constructor பின் வருமாரு இருக்கும்.

public Thread(ThreadStart start)

இங்கு start ஆனது த்ரட் எந்த மெத்தட்டை இயக்க வேண்டும் என்பதை குறிகின்றது.
ThreadStart ஆனது ஒரு delegate ஆகும். இது frameworkல் பின் வருமாறு define செய்யப்பட்டுள்ளது.

public delegate void ThreadStart( )

எனவே த்ரட் மெத்தட் ஆனது void இருக்க வேண்டும். மற்றும் எந்த argument ம் ஏறக கூடாது.
த்ரட் ஆனது Thread class ன் start method அழைக்கப்படும் வரை இயக்கப்படாது.


using System;
using System.Threading;
class MyThread {
public int Count;
string thrdName;
public MyThread(string name) {
Count = 0;
thrdName = name;
}
// Entry point of thread.
public void Run() {
Console.WriteLine(thrdName + " starting.");
do {
Thread.Sleep(500);
Console.WriteLine("In " + thrdName +
", Count is " + Count);
Count++;
} while(Count < 10);
Console.WriteLine(thrdName + " terminating.");
}
}
class MultiThread {
static void Main() {
Console.WriteLine("Main thread starting.");
// First, construct a MyThread object.
MyThread mt = new MyThread("Child #1");
// Next, construct a thread from that object.
Thread newThrd = new Thread(mt.Run);
// Finally, start execution of the thread.
newThrd.Start();
do {
Console.Write(".");
Thread.Sleep(100);
} while (mt.Count != 10);
Console.WriteLine("Main thread ending.");
}
}
இங்கு MyThread class ஆனது Run என்கின்ற மெத்தடை கொண்டுள்ளது. இது count என்கின்ற வேரியபிளை 0 to 9 increment செய்கின்றது.
Sleep எங்கின்ற மெத்தட் அழைக்கப்ப்டுவதை கவனிக்கவும். இது Thread classல் டிஃபைன் செய்ய்ப்பட்டுள்ள ஒரு static method ஆகும்.
Sleep method ஆனது த்ரட்டை குறிப்பிட்ட மில்லி செகண்டுகளுக்கு suspend செய்கின்றது.
Main methodக்கு உள்ளே த்ரட் ஆனது பின் வரும் வரிகளால் உருவாக்கப்பட்டு அழைக்கப்படுகிறது.
MyThread mt = new MyThread("Child #1");
// Next, construct a thread from that object.
Thread newThrd = new Thread(mt.Run); 
// Finally, start execution of the thread.
newThrd.Start();

start method ஆனது run method அழைக்கின்றது. Run method suspend செய்யப்படும் போது   main method க்கு திரும்பி அதன் do loopகுள் என்டெர் ஆகின்றது. இரண்டு த்ரடடுகளும் இயங்குகின்றன.


Output:
Main thread starting.
Child #1 starting.
.....In Child #1, Count is 0
.....In Child #1, Count is 1
.....In Child #1, Count is 2
.....In Child #1, Count is 3
.....In Child #1, Count is 4
.....In Child #1, Count is 5
.....In Child #1, Count is 6
.....In Child #1, Count is 7
.....In Child #1, Count is 8
.....In Child #1, Count is 9
Child #1 terminating.
Main thread ending.

ads Udanz

Saturday, August 11, 2012

SSD எனப்படும் solid state hard disk---சில குறிப்புகள்.


பொதுவாக நிணைவகத்தை இரண்டாகப்ப் பிரிப்பார்கள்.
அவையாவன :
  1. permanent memory
  2. temporary memory.
Temporary memoryக்கு உதாரணம் RAM(Random access memory).RAMல் உள்ள தகவலானது மின்சாரம் நிறுத்தப்படும் போது அழிந்து விடும்.எனவே தான் இவை temporary memory எனப்படுகின்றன.

Hard diskல் உள்ள த்கவலானது மின்சாரம் நிறுத்தப்பட்டாலும் நிலையாக சேமிக்கப்ப்ட்டிருக்கும். எனவே தான் இவை permanent memory எனபடுகின்றது.

ஹார்டு டிஸ்க் எனப்படுவது ஒரு mechanical instrument ஆகும்.. இதில் உள்ள glass disk ஆனது நிமிடத்திற்கு 5000 முறை சுழலுகின்றது.
இவை சுழலும் போது இதில் உள்ள தகவலானது ப்டிக்கப் படுகின்றது. இவை வேகமாக இயங்கினாலும் file read செய்யும் போது inefficiency ஆகவே இயங்குகின்றது.
ஹர்ட் டிஸ்குக்கு மற்றாக விளங்கும் சாதனம் தான் SSD எனப்படும் solid state disk drive ஆகும்.இவை USB memory devices போலவே இயங்குகிறன.இவற்றில் உள்ள தகவல் தொடர்ச்சியான memory chip களில் பதியப்பட்சுகின்றன. ஆனால் இவற்றின் விலை ஹார்டு டிஸ்க்கை காட்டினாலும் மிக அதிகமாகும்.
SSD –சில நண்மைகள்.
 File read and write operations  ஹார்டு டிஸ்கைக் காட்டிலும் SSDல் வேகமாக இயங்குகின்றது.பொதுவாக windows start செய்யப்படும் போது ஆயிரக்கணக்கான file கள் read செய்ய படுகின்றன.இவை ஹார்டு டிஸ்க்கை காட்டிலும் SSD ல் வேகமாக படிக்கப்படுகின்றன.

எனினும் SSD நிறுவ படுவதற்கு உங்கள் கணினியானது கடந்த ஐந்து வருடத்திற்குள் வாங்கப் பட்டிருக்க வேண்டும். மேலும் இதில் windows 7 நிறுவப்பட்டிருக்க வேண்டும்.
SSD-விலை விபரம்.

60 GB ரூ 6500க்கும் 90 GB ரூ 9000க்கும் கிடைக்கின்றன.சந்தையில் 120GB ,240 GB விற்கப்பட்டாலும் அவை ரூ 10000க்கு மேற்பட்ட விலையில் கிடைக்கின்றது.
SSD capacity ஹார்டு டிஸ்கை காட்டிலும் குறைவு என்பதால் நாம் நம் கணினியில் SSD windows மற்றும் பிற நிரல்களுக்கும்  ஹார்டு டிஸ்கை பிற பெரிய file களுக்கும் உபயோகப்ப்டுத்தலாம்.

SSD draw backs.

SSDயானது காலப்போக்கில் குறைவான வேகத்தில் இயங்கக்கூடியது.காரணம் ஏற்கனவே உபயோகிக்கப்ப்ட்ட memoryஐ கையாளுவதில் ஹார்டு டிஸ்குக்கும் SSDக்கும் உள்ள வேறுபாடே ஆகும்.எனினும் SSD with Trim ல் இந்த குறை நீக்கப்பட்டுள்ளது 

சந்தையில் விற்கப்படும் SSD கள்..

  1. Hyper x ssds.

  1. Hyper x 3k ssds


  1. SSD Now v+200 series

  1. SSD Now Kc 100 series.
.  
ads Udanz