بەشی پێنجەم :: بەرنامەسازی بە زمانی جاڤا بۆ سەرەتایی وناوەند وپێشکەوتووان.

img03-415x260

 

زانستی ژمارەیی

Arithmetic

زانستی ژمارەیی و ژماردن(بیركاری) Arithmetic  :بەشێكی گرنگی بواری بەرنامەسازییە و،بەرنامەساز و ئەندازیارانی بەرنامەسازی زۆر پێویستیان پێی دەبێت،بۆیە بەپێی پێویستی و گرنگی بابەتەكە باسیان لێوەدەكەین.لە زۆربەرنامە دا كردارە بیركاریەكان جێبەجێدەكرێت،بۆیە زانینی هێمابیركارییەكان وتێگەیشتنی چۆنیەتی جێبەجێبوونیان لەلایەن بەرنامەكانەوەو،جیاوازی هێماو كردارەكان لەنێوان ڕستە جەبری(بیركاری )یەكان و ڕستەكانی بەرنامە سازی لە زمانی جاڤا دا كارێكی پێویستە.وەكو لەم خشتەیەدا (خشتەی 1) ڕوونكراوەتەوە:

خشتەی 1

وەك لە خشتەكەدا دیارە ،دەبینین جیاوازی هەیە لەنێوان كردارە ژمێرەییەكان لە زانستی ژمارە وبیركاری دا،لەگەڵ هەمان كردار لە زمانی بەرنامەسازی جاڤا دا،بۆنمونە كرداری لێكدان لە زانستی ژمارەدا هیچ هێمایەك لە نێوان لێكدراوەكاندا نانووسین و بۆشای Space لە نێوانیان دا دەنێین (تیبینی:دەشتوانین هێمای لیكدان بنووسین،واتە X) ،بەڵام لە بەرنامە سازی زمانی جاڤا دا دەبێت هێمای (*) بنووسین،هەروەها  هێمای ماوە(پاشماوە – مۆد)یش لەهەندێك زمانی بەرنامە سازیدا كە هێماكەی لەسەدا (%)یە دەبینرێت،كە لە  زانستی ژمارە و بیركاری دا بە (مۆد)دەنووسرێت.

ئەو هێمایەنەی لە خشتەكەدان هەموویان بۆ ئەنجامدانی كردارێكن كە بەسەر دوو ژمارە یان ژمارە و هێمادا ،یان دوو هێمادا جێبەجێكراوە،بۆیە دەگونجێت بە كردارە دوانییەكان  Binary operation   ناویان ببەین،لەبەر ئەوەی هەرهێمایەك دوو (ژمارە،یان پیت،یان پیت و ژمارە)ی لەگەڵدایە،بۆنموونە f+7 پێك هاتووە لە هێمای كۆكردنەوەی دووانی و،پیتی (ئێف) و ژمارە 7.

كرداری مۆدیش بەو ماوەیە دەوترێت كە لە ئەنجامی مۆدی ژمارەیەك بەسەر ژمارەیەكی تردا دەستمان دەكەوێت،بۆنموونە 7%3دەكاتە،4،واتە 3 ژمارەی ژمارە 7دابەش دەبێت بەسەر ژمارە 3 دا و،4ژمارە شی لێدەمێنێتەوە.

كرداری دابەش كردنیش لەبەرنامە سازیدا،جیاوازە وەك لە كرداری دابەشكردن لە زانستی ژمارە و بیركاری دا ،چونكە دابەشكردن لە زانستی ژمارەیی دا بە شێوەی كەرت (سەرە و ژێرە)،یان بە دانانی هێمایی(÷) لە نێوان دابەشكراوەكاندا دەنووسرێت،بەڵام لەبەرنامە سازی دا،هێمای (/) لە نێوان دابەشكراوەكان دا دادەنرێت،بڕوانە نموونەكان و سەرنجی جیاوازییەكانیان بدە:

نمونەی 1:    4÷8 .

نمونەی 2:  4/8 .

بەڵام ئەگەر كۆمەڵێك كرداری بیركاری و زانستی ژمارەیی پێكەوە و لە هاوكێشەیەكدا كۆببنەوە ئەوا گروپێك پێكدەهێنن و ئەنجامدانی كردارەكان جیاواز دەبن،چونكە هەندێك كردار دەبێت پێش كردارێكی تر ئەنجام بدرێت،بۆنمونە ئەگەر B  لیكدانی C+A بكەین،ئەوا بەم شێوەیە دەینووسین:

B*(C+A)

چونكە دەمانەوێت C  و A كۆبكەینەوەو پاشان لێكدانی B  بكەین بۆیە لەناو كەوانە دا دامننا،بەمەش لە پێشدا كۆكردنەوەكە ئەنجام دەدات و پاشان كرداری لێكدان بە ئەنجام دەگەیەنێت.

نمونەی كردارەكان لەنێوان جاڤا و زانستی ژمارەیی (بیركاری) دا:

ئەگەر لە زانستی ژمارەیی دا چەند كردارێك  لە هاوكێشەیەك دا ئەنجام بدەین،وەكو لەم نمونەیەدا دەیبینین،ئەوا لە بەرنامە سازیدا گۆڕانی بەسەردا دێت وەكو لە نمونەی 2 دا،دیارە:

نمونەی 1:

Algebra m= a+b+c+d+e÷10

نمونەی 2:

Java m= (a+b+c+d+e)/10

ڕێساكانی پێشڕەوی كردنی هێمای كردارە ژمارەییەكانRules of operator precedence  كردارە ژمێرەی و بیركارییەكان بە پێی جۆرەكانیان جیاوازن لە ئەنجامدان دا،بۆ نمونە هەندێك كردار پێش هەندێك كرداری تر ئەنجام دەدرێت،وەئەم پێشرەویش بەهۆی هەندێك كرداری دیكەوە دەگۆڕێت،بۆنمونە : كرداری (+) كە دووای كرداری لێكدان(*) ئەنجام دەدرێت،بەڵام ئەم قسەیە پێچەوانە دەبێتەوە ئەگەر كرداری كۆكردنەوە لە نێوان دوو كەوانەدا ،بۆنمونە  (8+2)، بوو، بەم شێوەیە:

-لێكدان Multiplication ، دابەشكردن Division ، ماوە Reminder(Mode)،ئەم كردارانە بەم پێشرەوییە ئەنجام دەدرێن لەلای چەپی هاوكێشەكە بۆلای ڕاستی هاوكێشەكە،لەهەمان ئاستی پێشرەوی دا.

2-كۆكردنەوە Addition ، لێدەركردن Subtraction ،ئەم دوو كردارەش بەهەمان شێوە.

لەم خشتەیەدا (خشتەی 2)  ئەو دوو خاڵەی ڕیساكان ڕوونكراوەتەوە:

لەم نمونانە دا،زیاتر كردارەكانی زانستی ژمێرەیی و جیاوازی نێوان كردارەكان لە جەبر و زمانی بەرنامە سازی جاڤا ، و پێشڕەوی كردارەكان   ڕونكراوەتەوە:

نمونەی 1:

Algebra:            y=mx+b

Java:        y=m * x + b

وەك پێشتریش باسمان كرد،پێویستە لە كاتی نووسینی هاوكێشەكان لە بەرنامە سازی جاڤا دا،هێمای (*) لەنێوان لێكدراوەكان دا دابنێین،ئەگەر نا،هەڵەدەبێت و كرداری لێكدانمان بۆ بەئەنجام ناگەیەنێت.

Algebra:              z=pr % q + w/x-y

Java:           z=p * r %   q + w / x  –  y

ئەم هاوكێشەیەی نمونەی 2،كە بە ڕوون و ئاشكرای جیاوازی نێوان هاوكێشەكە لە زانستی جەبر و هاوكێشەكە لە بەرنامەسازی بەزمانی جاڤای تێدا ڕوونكراوەتەوە،و ئەنجامدانی كردارەكانیش بە پێی پێشڕەوی بەم شێوەیە دەبێت:

یەكەم:كرداری لێكدانی نێوان p*r.

دووەم:كرداری مۆد %.

سێهەم:كرداری دابەشكردن.

چوارەم : كرداری كۆكردنەوە.

پێنجەم :كرداری لێدەركردن.

شەشەم: یەكسانە و ئەنجامی هەموو كردارەكانمان دەداتێ‌.

نمونەی 3:

Algebra:   y= ax2 + b x + c

Java:   y= a * x * x + b * x + c

یەكەم :كرداری لێكدانی نێوان a*x*x.

دووەم:كرداری لێكدانی نێوان b*x.

سێهەم :كرداری كۆكردنەوە.

چوارەم:كۆكردنەوەی دووەم.

پێنجەم:كرداری یەكسانە و ئەنجامی هاوكێشەكەمان دەداتێ‌.

واتە كردارەكە بەم شێوەیە ئەنجامدەدات:

Y = (a*x*x) + (b*x) + c

لە چەپەوە  بۆ ڕاست ،سەرەتا كەوانەی یەكەم.چونكە كەوانە پێشڕەوی زیاترە و ،پاشان كەوانەی دووەم و دوواتر كردارەكانی كۆكردنەوە.

نمونەی 4:

Y = 2 * 5 * 5 + 3 * 5 + 7

هەنگاوی یەكەم :

5*2=10

هاوكێشەكە بەم شێوەیەی لێدێت:

Y = 10 * 5 + 3 * 5 +7

هەنگاوی دووەم:

5*10=50

هاوكێشەكە بەم شێوەیەی لێدێت:

Y = 50 + 3 * 5 + 7

هەنگاوی سێهەم:

5*3=15

هاوكێشەكە بەم شێوەیەی لێدێت:

Y = 50 + 15 + 7

هەنگاوی چوارەم:

15+50=65

هاوكێشەكە بەم شێوەیەی لێدێت:

Y = 65 + 7

هەنگاوی پێنجەم (كۆتا هەنگاو):

7+65=72

هاوكێشەكە بەم شێوەیەی لێدێت:

Y = 72

یەكسانە و نایەكسانە و هێماكانی پەیوەندی (بەراورد كردن)  

ئەم هێمایانە بەزۆری لەكاتی دانانی مەرج و ڕستەی مەرجی if statement دا بەكاردێت،كە ئەگەر مەرجەكە جێبەجێبوو وەڵامەكە ڕاست True  دەبێت و،ئەگەرنا False  دەبێت،بۆیە پێویستە  لە بارەیانەوە بزانین و،لەیەكتریان جیابكەینەوە،وەكو لەم خشتەیە (خشتەی 3) دا ڕونكراوەتەوە:

لەم بەرنامەیەدا،شەش ڕستەی ئەگەری if statement  دەنووسین،بۆ تاقیكردنەوەی هێماكان و،بەهۆیەوە بەراوردی دوو ژمارەی تەواو integer  دەكەین،كە بە كارهێنەر ئەو دوو ژمارە داغڵ دەكات بۆ بەرنامەكە.ئەم بەرنامەیە سكانەر Scanner  بەكاردەهێنێت بۆ داغڵكردنی ژمارەكان و خەزنكردنیان لە هەمیشە گۆڕاوی number1و number2 دا،و پاشان ئەنجامدانی بەراوردی نێوانیان و،پەیوەندی نێوانیان ڕوون دەكاتەوەو،ئەنجامەكانمان پیشان دەدات:

// Hemn Mela Karim Barznji 10/6/2010
// Compare integers using if statements, relational operators and equality operators.
import java.util.Scanner; // program uses class Scanner
public class Comparison 
{
   // main method begins execution of Java application
   public static void main( String args[] )
   {
      // create Scanner to obtain input from command window
      Scanner input = new Scanner( System.in );
      int number1; // first number to compare
      int number2; // second number to compare
      System.out.print( "Enter first integer: " ); // prompt 
      number1 = input.nextInt(); // read first number from user 
      System.out.print( "Enter second integer: " ); // prompt 
      number2 = input.nextInt(); // read second number from user 
      if ( number1 == number2 ) 
         System.out.printf( "%d == %dn", number1, number2 );
      if ( number1 != number2 )
         System.out.printf( "%d != %dn", number1, number2 );
      if ( number1 < number2 )
         System.out.printf( "%d < %dn", number1, number2 );
      if ( number1 > number2 )
         System.out.printf( "%d > %dn", number1, number2 );
      if ( number1 <= number2 )
         System.out.printf( "%d <= %dn", number1, number2 );
      if ( number1 >= number2 )
         System.out.printf( "%d >= %dn", number1, number2 );
   } // end method main
} // end class Comparison

 توێكاری بەرنامەكە

 Program Anatomy

// Hemn Mela Karim Barznji 10/6/2010

ئەم سەرنج و تیبینییە ئاماژەیە بۆئەوەی كە كێ‌ و كەی ئەم بەرنامەیەی نووسیوە

// Compare integers using if statements, relational operators and equality operators.

ئەم سەرنج و تێبینییە بۆ ئەوەیە بە بەكارهێنەر و بینەری بەرنامەكە بڵێین،بەرنامەكەمان تایبەتەبە  بەراوردی ژمارەی تەواو، بەبەكارهێنانی ڕستەی ئەگەری ،و كردارەكانی یەكسانە و نایەكسانە و پەیوەندییەكان.

import java.util.Scanner; //program use class scanner

ئێمە دەمانەوێت لەڕێگەی كیبۆردەوە ژمارەكان داغڵ بكەین ،بۆیە سود لە كڵاسی سكانەر وەردەگرین،لە پاكێجی یوتیل دا،بۆ ئەوەی ئەو كارە ئەنجام بدەین.

سەرنج:لەچاپتەرێكی سەربەخۆدا،باسی دروستكردنی پاكێج و،بەكارهێنانی دەكەین

هەڵەباوەكانی بەرنامەسازی

 Common Programming Error

ئەگەر ڕستەی هێنانی پاكێج import package لەناو پۆل Class دا بنووسین،ئەوا دەبێتە هەڵە،بۆیە پێویستە لەدەرەوەی پۆل و،لەسەرەتادا بینووسین،وەكو لەبەرنامەكەدا دیارە.

public class Comparison

ئەم دێڕە بە وشەی public دەست پێدەكات،كە یەكێكە لە وشەكانی  دەستبەسەراگرتنی  گەیاندن و تێپەڕبوونی پۆل Access Control و بەدووای دا وشەی پۆل Class Keyword  دێت،و پاشان ناوی پۆلەكە Class Name  دێت و،بەهۆی ناوی كڵاسەكەشەوە دەزانین بەرنامەكەمان تایبەتە بە بەراورد كردن.

بەرنامەسازیی باش

 Good Programming Practice

بەشێوەیەكی باو ،هەمیشە یەكەم پیتی ناوی پۆل Class Name  بە پیتی گەورە Capital Letter  دەنووسرێت،بەڵام ئەگەر بە پیتی بچوكیش Small Letter بنووسرێت،هەڵەنابێت،بەڵام واباشترە بە پیتی گەورە بنووسرێت.

هەڵە باوەكانی بەرنامە سازی

Common Programming Error

هەڵەیەكی باو ئەوەیە كە بەرنامەكەمان بەناوی پۆلەكەوە Class Name   و بە پاشگری جاڤا .java   خەزن نەكەین.چونكە وەرگێڕ Compilerتەنها ئەو فایلانە وەردەگێڕێت Compiles  كە تەنها بەپاشگری .java   كۆتای هاتووە.

ئەم دێڕەش كەوانەی سەرەتایی لاشەی پۆلە Body of class  و هەموو پۆلێك Class  بە كەوانە دەستپێدەكات و،بەكەوانەش كۆتای دێت.

//main method begins excution of java application

ئەم دێڕە ڕوونكردنەوەیەكە Comment بۆ ڕوونكردنەوەی ئەوەی كە دێڕی دوواتر ڕێگەی سەرەكی Main Method   ی بەرنامەكەیە.

public static void main (String args [])

ئەم دێڕە مێسۆدی سەرەكی بەرنامەكەیە و،لە چاپتەرێكی سەربەخۆدا باسی مێسۆد و چۆنیەتی دروستكردن و پێكهاتەیی و بەكارهێنانی دەكەین.

{

ئەم دێڕەش كەوانەی سەرەتایی لاشەی ڕێگەیە Body of Method   و هەموو ڕێگەیەك Method  بە كەوانە دەستپێدەكات و،بەكەوانەش كۆتای دێت.

// create Scanner to obtain input from command window

ئەم تێبینییە بۆ ئەوەیە كە بە بەكارهێنەر بوترێت كڵاسی سكانەر بەكاردەهێنین بۆ ئەوەی دوو ژمارەی تەواو داغڵ بكەین

Scanner input=new Scanner (System.in);

بەهۆی ئەم ڕستەیەوە ،تەنێك Object لە پۆلی سكانەر وەردەگرین،بۆئەوەی بتوانین بەهۆیەوە ئەو ژمارانە داغڵ بكەین،كە دەمانەوێت كۆیان بكەینەوە.

int number1; // first number to compare
int number2; // second number to compare

ئەم دوو هەمیشە گۆراوەی Variable سەرەوە دەناسێنین،كە جۆری هەردوكیان ژمارەی تەواوەInteger و،بە int  دەنووسرێت،لەسەرەتای هەمیشە گۆڕاوەكان دا،چونكە بەرنامەكەمان تایبەتە بە بەراوردی  دوو ژمارەی تەواو،بۆیە هەمیشە گۆڕاو Variable  ی یەكەم،بەكاردێت بۆ داغڵكردنی ژمارە تەواوی یەكەم،و،هەمیشە گۆڕاوی دووەمیش بۆ ژمارەی دووەم،كە دەمانەوێت بەراوردیان بكەین.

هەمیشە گۆڕاو Variable چییە؟؟

هەمیشە گۆراوەكان Variables لە گۆڕاوێك كە هەمیشە نرخی تازەوەردەگرێت و پێكدێت لە جۆرێك Type  وەكو ژمارەی تەواو intیان كارەكتەر charیان floatیان ….،كە ئەم جۆرە پێی دەوترێت Primitive data type  و،بە دوواشیدا بۆشاییەك دادەنێین و،پاشان ناوی هەمیشە گۆراوەكە،كەهەمان مەرجی ناوی پۆلی بەسەردا جێبەجێدەبێت،كە ئەمانەن:

1-دەبێت بە پیت Letter دەستپێبكات ،وەكو number1.

2-یان بە _ دەست پێبكات ،وەكو _number1

3-یان بە $ دەستپێبكات،وەكو $sum1.

وەنابێت بە ژمارە Digit دەستپێبكات و،ناشبێت بۆشایی Space  ی تیابێت.

واباشترە،ئەگەر لە زیاتر لەناوێك پێكهاتبوو،ئەوا یەكەم پیتی دووەم وشە و سێهەم وشە و …. بەگەورە بنوورێت،وەكو normalPhoneNumber.

System.out.print("Enter firset integer");// prompt

تەنها ڕستەیەكمان بۆ چاپ دەكات،كە بەبەكارهێنەر دەڵێت،ژمارەی یەكەم داغڵ بكە.

number1=input.nextInt();// read first number from user

بەهۆیەوە ژمارەی یەكەم داغڵ دەكەین و،دەیدەین بە گۆڕاوی یەكەم.

System.out.print("Enter second integer");// prompt

تەنها ڕستەیەكمان بۆ چاپ دەكات،كە بەبەكارهێنەر دەڵێت،ژمارەی دووەم داغڵ بكە.

number2=input.nextInt();// read second number from user

بەهۆیەوە ژمارەی دووەم داغڵ دەكەین و،دەیدەین بە گۆڕاوی دووەم.

 if ( number1 == number2 ) 
System.out.printf( "%d == %dn", number1, number2 );

لێرەوە تاكۆتای بەرنامەكە،بەكارهێنانی شەش ڕستەی مەرجییە،كە بە جێبەجێبوونی هەر ڕستەیەكیان بەهۆی مێسۆدی پرێنت ئێفەوە،ئەنجامەكەمان بۆ چاپ دەكات و ،ڕستەی یەكەمیان بۆ مەرجی یەكسان بوونە و،ئەگەر ئەو دووژمارەیەی داغڵی دەكەین یەكسان بێت،ئەوا بەهۆی ئەم مەرجەوە پێمان دەڵێت كە ژمارەی یەكەم(ئەو ژمارەیەی یەكەم جار داغڵمان كردووە) یەكسانە بە ژمارەی دووەم.

هەڵە باوەكانی بەرنامە سازی

 Common Programming Error

یەكەم: هەڵەیەكی باو ئەوەیە كە هێمای (=)كە پێی دەوترێت assignment operator لە جیاتی هێمای (==)بەكاربهێنین ،بۆ ئەنجامدانی كرداری یەكسان بوون Equality.

دووەم:هەڵەیەكی دیكە ئەوەیە كە بۆشای لە نێوان هێمای كردارە بیركاری و ژمێرەییەكاندا دابنرێت،وەكو  گەورەتر یان یەكسان < = ،بۆهێماكانی دیكەش (==,=!,<=,>=) بەهەمان شێوەیە و بەدانانی بۆشای هەڵە دەبێت.

سێهەم: دانانی سیمی كۆلۆن (;) لە ڕستەی مەرجی دا if statement دەبێتە هەڵەی ژیربێژی (مەنتقی) Logic Error  وەك لەم نمونەیەدا دیارە :

if ( number1 != number2 );
  System.out.printf( "%d != %dn", number1, number2 );

چوارەم: پێچەوانەكردنەوەی هێماكان ، بەم شێوەیە (!=، =>،=<) دەبێتە هەڵەی ڕستەسازی Syntax Error.

      if ( number1 != number2 )
  System.out.printf( "%d != %dn", number1, number2 );

ڕستەی مەرجی دووەم،بۆ ئەنجامدانی كرداری بەراورد،بۆ نایەكسان بوونی ژمارە داغڵكراوەكان و،چاپكردنی ئەنجامەكە

 if ( number1 < number2 )
System.out.printf( "%d < %dn", number1, number2 );

ڕستەی مەرجی سێهەم،بۆ ئەنجامدانی كرداری بەراورد،بۆ بچوكترەی  ژمارە داغڵكراوەكان و،چاپكردنی ئەنجامەكە

if ( number1 > number2 )
 System.out.printf( "%d > %dn", number1, number2 );

ڕستەی مەرجی چوارەم ،بۆ ئەنجامدانی كرداری بەراورد،بۆ گەورەترە ی ژمارە داغڵكراوەكان و،چاپكردنی ئەنجامەكە

 if ( number1 <= number2 )
  System.out.printf( "%d <= %dn", number1, number2 );

ڕستەی مەرجی پێنجەم ،بۆ ئەنجامدانی كرداری بەراورد،بۆ بچوكتر یان یەكسان بوونی ژمارە داغڵكراوەكان و،چاپكردنی ئەنجامەكە

if ( number1 >= number2 )
System.out.printf( "%d >= %dn", number1, number2 );

ڕستەی مەرجی شەشەم ،بۆ ئەنجامدانی كرداری بەراورد،بۆگەورەتر یان یەكسان بوونی ژمارە داغڵكراوەكان و،چاپكردنی ئەنجامەكە

} // end method main

كەوانەی كۆتای ڕێگەی سەرەكییە

} // end class Comparison

كەوانەی كۆتای كڵاسی بەراورد كردنە.

ئەنجامی بەراوردی ژمارە 250 و 250،هەروەها 25و15:

ئێستا زمانی بەرنامەسازی جاڤامان ناسی و،پێویستە لەمە دوواو زۆربەوردی و لەچەند چاپتەرێكدا باسی بنەماكانی بەرنامەسازی و ،پێكهاتەكانی پۆل Class  و مێسۆد و تەن Object  وlooping  و  GUI و Applet  و Web Programming  و Network Programming  وInput/Output و  Exception  وPackage  و ….. بكەین.

لێرە تەواوی ئەم وانەی پێنجەم بە پی دی ئیف وەربگرە..

 

………………………

www.kitn.net ئاماده‌كردنی كاك: هێمن مەلا کریم بەرزنجی

.

.


 _________________________________

له‌وانه‌یه‌ ئاره‌زووی سه‌ردانی ئه‌م بابه‌تانه‌ش بكه‌ی!