مشخصات مقاله
-
2381
-
0.0
-
6995
-
0
-
0
آموزش پیاده سازی برنامه های مختلف با زبان Java
آموزش Java – پیاده سازی برنامه های مختلف با زبان Java
در آموزش حاضر چندین برنامه ی ساده را با استفاده از زبان برنامه نویسی Java پیاده سازی خواهیم کرد.
پیاده سازی برنامه ای جهت چاپ سری فیبوناچی
در زیر یک برنامه ی مبتنی بر جاوا می نویسیم که اعداد فیبوناچی را در خروجی چاپ نماید. این برنامه را یکبار با الگوریتم بازگشتی (recursion) و یکبار بدون آن پیاده سازی خواهیم کرد.
در سری فیبوناچی، عدد بعدی حاصل جمع دو عدد قبلی می باشد. برای مثال 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55. دو عدد اول سری فیبوناچی اعداد 0 و 1 هستند.
برنامه ی مزبور را به دو روش می توان پیاده سازی کرد:
- پیاده سازی برنامه چاپ اعداد فیبوناچی بدون استفاده از الگوریتم بازگشتی یا recursion
- پیاده سازی برنامه چاپ اعداد فیبوناچی با استفاده از الگوریتم بازگشتی (recursion)
پیاده سازی برنامه بدون الگوریتم بازگشتی (Recursion)
class FibonacciExample1{
public static void main(String args[])
{
int n1=0,n2=1,n3,i,count=10;
System.out.print(n1+" "+n2);//printing 0 and 1
for(i=2;i< count;++i)//loop starts from 2 because 0 and 1 are already printed
{
n3=n1+n2;
System.out.print(" "+n3);
n1=n2;
n2=n3;
}
}
}
خروجی:
0 1 1 2 3 5 8 13 21 34
پیاده سازی برنامه ی چاپ اعداد فیبوناچی با الگوریتم بازگشتی (Recursion)
class FibonacciExample2{
static int n1=0,n2=1,n3=0;
static void printFibonacci(int count){
if(count>0){
n3 = n1 + n2;
n1 = n2;
n2 = n3;
System.out.print(" "+n3);
printFibonacci(count-1);
}
}
public static void main(String args[]){
int count=10;
System.out.print(n1+" "+n2);//printing 0 and 1
printFibonacci(count-2);//n-2 because 2 numbers are already printed
}
}
خروجی:
0 1 1 2 3 5 8 13 21 34
پیاده سازی برنامه ی بدست آوردن و تشخیص اعداد اول (Prime number)
در زیر با زبان Java یک برنامه پیاده سازی می کنیم که اعداد اول را بدست می آورد.
اعداد اول اعدادی هستند که بر خود و 1 بخش پذیر باشند. برای مثال می توان به اعداد 2, 3, 5, 7, 11, 13, 17 اشاره کرد.
توجه داشته باشید 0 و 1 اعداد اول نیستند. 2 تنها عدد اول زوج می باشد چرا که سایر اعداد زوج بر 2 بخش پذیر می باشند.
در زیر با زبان Java یک برنامه می نویسیم که (یک متغیر) عددی را از کاربر دریافت کرده و سپس بررسی می کند آیا ورودی عدد اول هست یا خیر.
class PrimeExample{
public static void main(String args[]){
int i,m=0,flag=0;
int n=17;//it is the number to be checked
m=n/2;
for(i=2;i<=m;i++){
if(n%i==0){
System.out.println("Number is not prime");
flag=1;
break;
}
}
if(flag==0)
System.out.println("Number is prime");
}
}
خروجی:
Number is prime
پیاده سازی برنامه ی تشخیص عدد palindrome یا واروخوانه
اعداد palindrome اعدادی هستند که از چپ به راست یا از راست به چپ یکسان خوانده می شود. برای مثال می توان به اعداد545, 151, 34543, 343, 171, 48984 اشاره کرد.
الگوریتم پیاده سازی برنامه ی تشخیص عدد palindrome
- متغیر عددی جهت تشخیص اینکه ِآیا palindrome هست یا خیر دریافت کند.
- عدد مورد نظر در یک متغیر موقتی نگه داشته شود.
- عدد معکوس یا وارونه شود.
- عدد ذخیره شده در متغیر موقتی با عدد وارونه شده مقایسه شود.
- اگر دو عدد یکسان بودند، متن "palindrome number" را چاپ کند.
- در غیر این صورت متن "not palindrome number" را چاپ کند.
در زیر با زبان Java یک برنامه پیاده سازی می کنیم که متغیر عددی را دریافت کرده و بررسی می کند آیا عدد واروخوانه/Palindrome هست یا خیر.
class PalindromeExample{
public static void main(String args[]){
int r,sum=0,temp;
int n=454;//It is the number variable to be checked for palindrome
temp=n;
while(n>0){
r=n%10; //getting remainder
sum=(sum*10)+r;
n=n/10;
}
if(temp==sum)
System.out.println("palindrome number ");
else
System.out.println("not palindrome");
}
}
خروجی:
palindrome number
پیاده سازی برنامه ی محاسبه ی فاکتوریل یک عدد
فاکتوریل یک عدد برابر است با حاصل ضرب تمامی اعداد صحیح نزولی مثبت یا به حاصلضرب اعداد 1 تا n فاکتوریل آن عدد گویند. فاکتوریل n توسط نماد n! نمایش داده می شود. برای مثال:
4! = 4*3*2*1 = 24 5! = 5*4*3*2*1 = 120
روش های مختلفی برای نوشتن برنامه ی فاکتوریل با زبان java وجود دارد که در زیر به دو روش آن اشاره می کنیم.
- برنامه ی فاکتوریل با استفاده از حلقه
- برنامه ی فاکتوریل با استفاده از الگوریتم بازگشتی (recursion)
پیاده سازی برنامه ی محاسبه ی فاکتوریل یک عدد با Java
در زیر با استفاده از ساختار حلقه برنامه ی محاسبه ی فاکتوریل یک عدد را می نویسیم.
class FactorialExample{
public static void main(String args[]){
int i,fact=1;
int number=5;//It is the number to calculate factorial
for(i=1;i<=number;i++){
fact=fact*i;
}
System.out.println("Factorial of "+number+" is: "+fact);
}
}
خروجی:
Factorial of 5 is: 120
پیاده سازی برنامه ی محاسبه ی فاکتوریل با الگوریتم بازگشتی
در زیر با استفاده از الگوریتم بازگشتی برنامه ی محاسبه ی فاکتوریل عدد را پیاده سازی می کنیم.
class FactorialExample2{
static int factorial(int n){
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}
public static void main(String args[]){
int i,fact=1;
int number=4;//It is the number to calculate factorial
fact = factorial(number);
System.out.println("Factorial of "+number+" is: "+fact);
}
}
خروجی:
Factorial of 4 is: 24
پیاده سازی برنامه ی تشخیص عدد Armstrong
در زیر یک برنامه با Java می نویسیم که عدد آرماسترانگ را تشخیص دهد.
عدد Armstrong در Java: عدد Armstrong عددی است که برابر حاصل جمع اعداد یک مجموعه است که هر یک به توان 3 رسیده باشند. مثال: 0, 1, 153, 370, 371, 407.
عدد 153 یک عدد Armstrong است چرا که: 153 = (1*1*1)+(5*5*5)+(3*3*3)
برنامه ی تشخیص عدد Armstrong که با زبان Java پیاده سازی شده است:
class ArmstrongExample{
public static void main(String[] args) {
int c=0,a,temp;
int n=153;//It is the number to check armstrong
temp=n;
while(n>0)
{
a=n%10;
n=n/10;
c=c+(a*a*a);
}
if(temp==c)
System.out.println("armstrong number");
else
System.out.println("Not armstrong number");
}
}
خروجی:
armstrong number
پیاده سازی برنامه ی مرتب سازی حبابی المان های آرایه (Bubble sort) با Java
در زیر یک برنامه می نویسیم که المان های آرایه را با استفاده از الگوریتم حبابی مرتب سازی می نماید. الگوریتم مرتب سازی به صورت حبابی در واقع ساده ترین الگوریتم مرتب سازی شناخته می شود.
در الگوریتم مرتب سازی حبابی، تمامی المان های آرایه از اول تا آخر پیمایش می شوند. در این الگوریتم المان جاری با المان بعدی مقایسه می شود. اگر المان جاری بزرگتر از المان بعدی باشد، جای آن ها با هم عوض می شود.
public class BubbleSortExample {
static void bubbleSort(int[] arr) {
int n = arr.length;
int temp = 0;
for(int i=0; i < n; i++){
for(int j=1; j < (n-i); j++){
if(arr[j-1] > arr[j]){
//swap elements
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
}
public static void main(String[] args) {
int arr[] ={3,60,35,2,45,320,5};
System.out.println("Array Before Bubble Sort");
for(int i=0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.println();
bubbleSort(arr);//sorting array elements using bubble sort
System.out.println("Array After Bubble Sort");
for(int i=0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
}
}
خروجی:
Array Before Bubble Sort 3 60 35 2 45 320 5 Array After Bubble Sort 2 3 5 35 45 60 320
پیاده سازی برنامه مرتب سازی المان های آرایه با الگوریتم انتخابی
در زیر یک برنامه با زبان جاوا پیاده سازی می کنیم که بر اساس الگوریتم انتخابی المان های آرایه را مرتب سازی می کند. در الگوریتم مرتب سازی انتخابی، ابتدا کوچکترین عنصر مجموعه اعداد را یافته با اولین عدد جابجا می کنیم، سپس دومین عنصر کوچکتر را یافته با دومین عدد جابجا میکنیم.
public class SelectionSortExample {
public static void selectionSort(int[] arr){
for (int i = 0; i < arr.length - 1; i++)
{
int index = i;
for (int j = i + 1; j < arr.length; j++){
if (arr[j] < arr[index]){
index = j;//searching for lowest index
}
}
int smallerNumber = arr[index];
arr[index] = arr[i];
arr[i] = smallerNumber;
}
}
public static void main(String a[]){
int[] arr1 = {9,14,3,2,43,11,58,22};
System.out.println("Before Selection Sort");
for(int i:arr1){
System.out.print(i+" ");
}
System.out.println();
selectionSort(arr1);//sorting array using selection sort
System.out.println("After Selection Sort");
for(int i:arr1){
System.out.print(i+" ");
}
}
}
خروجی:
Before Selection Sort 9 14 3 2 43 11 58 22 After Selection Sort 2 3 9 11 14 22 43 58
پیاده سازی یک برنامه ی مرتب سازی المان های آرایه بر اساس الگوریتم مرتب سازی درجی
می توانیم یک برنامه ی Java بنویسیم که المان های آرایه را بر اساس الگوریتم درجی (insertion sort) مرتب سازی می کند. این الگوریتم منحصرا برای المان های کوچک کاربردی است چرا که برای مرتب سازی اعداد بزرگ به زمان بسیار زیادی احتیاج دارد.
در زیر یک مثال ساده از مرتب سازی المان های آرایه که مبتنی بر الگوریتم مرتب سازی درجی می باشد را مشاهده می کنید.
public class InsertionSortExample {
public static void insertionSort(int array[]) {
int n = array.length;
for (int j = 1; j < n; j++) {
int key = array[j];
int i = j-1;
while ( (i > -1) && ( array [i] > key ) ) {
array [i+1] = array [i];
i--;
}
array[i+1] = key;
}
}
public static void main(String a[]){
int[] arr1 = {9,14,3,2,43,11,58,22};
System.out.println("Before Insertion Sort");
for(int i:arr1){
System.out.print(i+" ");
}
System.out.println();
insertionSort(arr1);//sorting array using insertion sort
System.out.println("After Insertion Sort");
for(int i:arr1){
System.out.print(i+" ");
}
}
}
خروجی:
Before Insertion Sort 9 14 3 2 43 11 58 22 After Insertion Sort 2 3 9 11 14 22 43 58