-
پروژه هاي آماده دانشجويي
ین برنامه با ماوس کار میکنه و همان چهار عمل اصلی را با محدودیت پنج رقم و بدون اعشار انجام میدهد.
برنامه فقط تا پنج رفم را دریافت میکند و رقم بعدی از عملگر “=” حساب میکند.همچنین اعداد مثبت و منفی را هم در محاسبات درنظر میگیرد.برای وارد کردن عدد منفی باید بنویسی -۸= یا -۸*… .
-
روش بازگشت به عقب و مسئله ی n وزیر و الگوریتم و توضیحات آن
یکی از مسائل جالب تکنیک backtracking یا بازگشت به عقب همین مسئله ی n وزیر است.
بررسی یک تکنیک طراحی الگوریتم - روش بازگشت به عقب
قبل از شروع یک توضیح کوتاهی بر روی تکنیک بازگشت به عقب می دهیم :
در این روش ، در هر زمان که متوجه شدیم مسیر انتخاب شده به جواب نمیرسد، یک مرحله به عقب برگشته و مسیر دیگری را دنبال می کنیم.
مسائلی که با روش عقب گرد حل می شوند اغلب مسائل تصمیم گیری هستند و باید توجه کنید که این روش فقط با کاهش حالت ها ، زمان اجرا را کاهش می دهد و مرتبه ی زمانی را تغییر نمی دهد
این روش از اصول درخت ها و به ویژه پیمایش preorder استفاده می کند.
برای مثال در کتاب طراحی الگوریتم انتشارت پوران پژوهش مثالی برای درک این مورد زده است.
"فرض کنید یک قفل رمزی دیجیتالی دارید و رمز قفل یک عدد n بیتی است.تعدا حالت های امتحان 2 به توان n خواهد بود، در حالی که قفل با یک حالت باز می شود.
اگر n=3 باشد باید 8 حالت را بررسی کنیم اما اگر بدانیم که رمز شامل رو رقم 11 هست تعدا حالت های بررسی کمتر می شود.
درخت فضای حالت state tree برای این کار است "
دقت کنید در این درخت وقتی به یک گره می رسیم بررسی می کند که آیا این گره امید بخش هست یا نه؟
اگر بود چک می کند که آیا جواب در این گره هست ؟ اگر بود آن را چاپ می کند و اگر نبود همین عمل را به صورت بازگشتی با child های آن گره انجام می دهد.
اگر یک گره امید بخش نبود، خود به خود عقب گرد کرده و کار با فرزند دیگر پدر آن گره ادامه می دهد.
شکل 1 این را نشان می دهد.
نتیجه : الگوریتم عقبگرد همانند جست و جوی عمقی است، با این تفاوت که فرزندان یک گره فقط هنگامی ملاقات می شوند که گره امید بخش باشدو در آن گره حلی وجود نداشته باشد.
یک برنامه ی سطح بالا برای این روش به صورت زیر است :
reject(P,c): return true only if the partial candidate c is not worth completing.
accept(P,c): return true if c is a solution of P, and false otherwise.
first(P,c): generate the first extension of candidate c.
next(P,s): generate the next alternative extension of a candidate, after the extension s.
output(P,c): use the solution c of P, as appropriate to the application.
کد:
کد PHP:
procedure bt(c)
if reject(P,c) then return
if accept(P,c) then output(P,c)
s ← first(P,c)
while s ≠ Λ do
bt(s)
s ← next(P,s)
توضیحات مسئله ی n وزیر :
صورت مسئله : هشت وزير را در هشت خانه شطرنج (8*8) طوري قرار دهيد كه هيچكدام يكديگر را تهديد نكنند. وزير در خانه هاي شطرنج به صورت عرضي،طولي و قطري مي تواند حركت كند. اين مسئله قابل تعميم به مسئله N وزير در يك شطرنج N*N است.
سایت برنامه نویس در مورد تاریخچه ی این الگوریتم می نویسد :
"تاريخچه: اين مسئله در سالي 1848 توسط شطرنج بازي به نام Max Bezzel عنوان شد و رياضي دانان بسياري ازجمله Gauss و Georg Cantor بر روي اين مسئله كار كرده و در نهايت آنرا به N وزير تعميم دادند. اولين راه حل توسط Franz Nauck در سال 1850 ارائه شد كه به همان مسئله N وزير تعميم داده شد. پس از آن Gunther راه حلي با استفاده از دترمينان ارائه داد كه J.W.L. Glaisher آنرا كامل نمود.
در سال 1979 ، Edsger Dijkstra با استفاده از الگوريتم عقب گرد اول عمق اين مسئله را حل كرد."
با توجه به اینکه هیچ 2 وزیری نباید همدیگر را گارد کنند و در یک سطر نمی توانند باشند، تعداد کل حالت ها برای n=4 برابر 4*4*4*4=256 است.
یک راه حل برای این مسئله :
"میدانیم که در شطرنج یک وزیر میتواند به مهرههایی که در خانههای عمود یا مورب به وی قرار دارند حمله کند. یا به عبارت ریاضی، اگر ردیفها و ستونهای شطرنج را از یک تا هشت شماره گذاری کنیم و وزیر در خانه (i, j) قرار داشته باشد، مهرههایی که در خانههای (i, m) یا (m, j) یا (i ± m, j ± m) قرار دارند توسط وزیر تهدید میشوند.
برای سادگی تشریح این مسئله با استفاده از روش بازگشت به عقب، فرض میکنیم که خانههای شطرنج 4x4 و تعداد وزیرها نیز 4 باشد. سپس بعد از یافتن راه حل برای این مسئله ساده شده، اقدام به نوشتن الگوریتم برای مسئله اصلی میکنیم.
خوب، مراحل جستجو برای یافتن جواب را به این صورت دنبال می کنیم که:
وزیر اول را در ردیف اول و ستون اول قرار میدهیم.
در ردیف دوم از اولین ستون به جلو رفته و به دنبال خانهای میگردیم که مورد تهدید وزیر اول نباشد و وزیر دوم را در این خانه قرار میدهیم.
همانند قبل، در ردیف سوم از اولین ستون به جلو رفته و به دنبال خانهای میگردیم که مورد تهدید وزیران اول و دوم نباشد. میبینیم که چنین خانهای موجود نیست.
پس به عقب یعنی ردیف دوم برگشته و وزیر دوم را به خانهای دیگر از ردیف دوم منتقل میکنیم که مورد تهدید وزیر اول نباشد.
دوباره در ردیف سوم اولین خانهای را میابیم که مورد تهدید دو وزیر قبلی نباشد. این بار خانه را مییابیم و وزیر سوم را در آن قرار میدهیم.
همانند قبل، در ردیف چهارم به دنبال اولین خانهای میگردیم که مورد تهدید وزیران پیشین نباشد. چنین خانهای موجود نیست.
به ردیف قبل یعنی ردیف سوم باز میگردیم تا خانهای دیگر برای وزیر سوم بیابیم. خانه دیگری وجود ندارد.
به ردیف قبل یعنی ردیف دوم بر میگردیم تا خانه دیگری برای وزیر دوم پیدا کنیم. به آخرین ستون رسیدهایم و خانه دیگری نیست.
به ردیف قبل یعنی ردیف اول بر میگردیم و وزیر اول را یک ستون به جلو میبریم.
در ردیف دوم اولین خانهای را میابیم که مورد تهدید وزیر اول نباشد و وزیر دوم را در آن خانه قرار میدهیم.
در ردیف سوم اولین خانهای را میابیم که مورد تهدید وزیران اول و دوم نباشد و وزیر سوم را در آن خانه میگذاریم.
در ردیف چهارم اولین خانهای را میابیم که مورد تهدید وزیران پیشین نباشد. این بار خانه را مییابیم و وزیر چهارم را در آن خانه قرار می دهیم.
خوب به یک جواب رسیدیم. حال اگر فرض کنیم که این خانه جواب نیست و به مسیر خود ادامه دهیم، احتمالا" میتوانیم جوابهای دیگری نیز بیابیم."
پیاده سازی الگوریتم عقبگرد برای مسئله n وزیر :
یک شبه کد برای این الگوریت که در کتاب نپولیتان هم نوشته شده است به صورت زیر است :
کد:
کد PHP:
void queens ( index i)
{
index j;
if ( promising(i))
if ( i == n)
cout << col [1] through col [n];
else
for ( j = 1 ; j ≤ n ; j++ ) {
col [ i +1 ] = j;
queens ( i + 1);
}
}
bool promising ( index i )
{
index k ;
bool switch;
k = 1;
switch = true ;
while ( k < i && switch ) {
if (col [i] == col[k] || abs(col[i] – col[k] == i-k)
switch = false;
k++;
}
return switch;
}
-
پاسخ : روش بازگشت به عقب و مسئله ی n وزیر و الگوریتم و توضیحات آن
برای اینکه با این مسئله خوب آشنا بشید و به صورت ویژوال کار آن را ببینید به لینک زیر بروید :
این لینک کد زیر را به صورت انیمیشن به شما نشان داده است :
کد PHP:
کد:
/** Recursive 8 Queens Solution.
* @author John McHugh
*/
private void expand (BitSet RowsToBeFilled, BitSet ColsToBeFilled,
BitSet LeftDiag, BitSet RightDiag)
{
int r, c ;
BitSet CopyOfColsToBeFilled = (BitSet) ColsToBeFilled.clone () ;
BitSet CopyOfRowsToBeFilled = (BitSet) RowsToBeFilled.clone () ;
if (empty (RowsToBeFilled))
{
store (Solution) ;
found++;
}
else
{
r = AnyFrom (CopyOfRowsToBeFilled) ;
CopyOfRowsToBeFilled.clear (r) ;
while (! empty (CopyOfColsToBeFilled))
{
c = AnyFrom (CopyOfColsToBeFilled) ;
CopyOfColsToBeFilled.clear (c) ;
if (LeftDiag.get (r + c - 1) & RightDiag.get (r - c + 8))
{
Solution [r] = c ;
ColsToBeFilled.clear (c) ;
LeftDiag.clear (r + c - 1) ;
RightDiag.clear (r - c + 8) ;
expand (CopyOfRowsToBeFilled, ColsToBeFilled,
LeftDiag, RightDiag) ;
ColsToBeFilled.set (c) ;
Solution [r] = 0 ;
LeftDiag.set (r + c - 1) ;
RightDiag.set (r - c + 8) ;
}
}
}
ورود به این سایت :
http://www.animatedrecursion.com/advance...oblem.html
همچنین یک Depth First Algorithm برای n وزیر به صورت زیر می تواند باشد :
http://img134.imageshack.us/img134/4...owchartaa6.jpg
Download source files - 3 Kb
Download demo project - 5 Kb
-
پاسخ : روش بازگشت به عقب و مسئله ی n وزیر و الگوریتم و توضیحات آن
همچنین این برنامه به زبان c# نیز نوشته شده است که 1نمونه ی آن را برای شما می آورم :
Contents: Executable (Windows), Source Code (C#)
همچنین سورس کد در c++ به صورت زیر است :
کد:
کد PHP:
using System;
namespace EightQueen
{
public enum SIZE
{
size = 8
}
public class EightQueen
{
public static int count = 0;
public static bool isValidMove(int[,] boardArr, int row, int col)
{
for (int i = 0; i < SIZE.size.GetHashCode(); i++)
if (boardArr[row,i] == 1)
return false;
for (int i = 0; i < SIZE.size.GetHashCode(); i++)
if (boardArr[i,col] == 1)
return false;
int tempCol = col + 1, tempRow = row ;
for (int i = row + 1; i < SIZE.size.GetHashCode(); i++)
{
if (tempCol < SIZE.size.GetHashCode())
{
if (boardArr[i,tempCol] == 1)
return false;
else
tempCol++;
}
else
break;
}
tempCol = col - 1;
for (int i = row - 1; i >= 0; i--)
{
if (tempCol >= 0)
{
if (boardArr[i,tempCol] == 1)
return false;
else
tempCol --;
}
else
break;
}
tempCol = col - 1;
for (int i = row + 1; i < SIZE.size.GetHashCode(); i++)
{
if (tempCol >= 0)
{
if (boardArr[i, tempCol] == 1)
return false;
else
tempCol--;
}
else
break;
}
tempCol = col + 1;
for (int i = row - 1; i >= 0; i--)
{
if (tempCol < SIZE.size.GetHashCode())
{
if (boardArr[i, tempCol] == 1)
return false;
else
tempCol++;
}
else
break;
}
return true;
}
public static void ShouldPrintBoard(int[,] boardArr)
{
int count = 0;
for (int i = 0; i < SIZE.size.GetHashCode(); i++)
for(int j = 0; j < SIZE.size.GetHashCode() ;j++)
if (boardArr[i,j] == 1)
count++;
if (count >= 8)
PrintBoard(boardArr);
}
public static void PrintBoard(int[,] boardArray)
{
for (int i = 0; i < SIZE.size.GetHashCode(); i++)
{
for (int j = 0; j < SIZE.size.GetHashCode(); j++)
Console.Write("{0} ", boardArray[i, j]);
Console.WriteLine();
}
count++;
Console.WriteLine();
//Console.ReadKey();
}
public static void PermuteBoard(int[,] boardArr, int row, int col)
{
for (int i = row; i < SIZE.size.GetHashCode(); i++)
{
for (int j = 0; j < SIZE.size.GetHashCode(); j++)
{
if (isValidMove(boardArr, i, j))
{
boardArr[i, j] = 1;
ShouldPrintBoard(boardArr);
PermuteBoard(boardArr, i + 1, j + 1);
boardArr[i, j] = 0;
}
}
}
}
static void Main(string[] args)
{
int [,]boardArr = new int[SIZE.size.GetHashCode(),SIZE.size.GetHashCode()];
for(int i = 0 ; i < SIZE.size.GetHashCode() ; i++)
for(int j = 0 ; j < SIZE.size.GetHashCode() ; j++)
boardArr[i,j] = 0;
PermuteBoard(boardArr, 0, 0);
Console.WriteLine("Total Solutions {0}", count);
Console.ReadKey();
}
-
3 فایل پیوست
پروژه هاي دانشجويي - پروژه های آماده c , c++
- الگوریتم پرایم همراه با سورس کامل برنامه
- الگوريتم استراسن با حل و سورس کامل برنامه
- الگوریتم کراسکال با سورس کامل برنامه
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
- ماشين حساب مهندسي همراه با سورس کامل برنامه 1
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD - ماشين حساب مهندسي همراه با سورس کامل برنامه 2
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD
پیاده سازی درخت جستجوی دو دویی Binary Search Tree
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
کلیه عملیات ماتريس ها (ضرب ، جمع ، تفريق ، تقسيم ماتريس
مغلوب و ترانهاده و ...)
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD
- برنامه دفترچه تلفن (با امکانات حذف - اضافه - جستجو - گزارش
گیری و نمایش )
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
- پروژه هشت وزير شطرنج در 92 حالت مختلف
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD پروژه N وزیر شطرنج (هوش مصنوعی) - الگوریتم ژنتیک
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD - بازی پازل اعداد PUZZLE به زبان سی پلاس C++
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD - بازی پازل اعداد PUZZLE به زبان سی C
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD -پياده سازي كليه روشهاي مرتب سازي
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
- مثلث خيام پاسكال
لینک دانلود فایل اجرایی EXE برنامه
DOWNLOAD
- برنامه دانش آموزان : گرفتن اطلاعات و ذخيره - حذف - اضافه گزارش گيري - جستجو - و ...
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD - لينك ليست
- بازي مار پله
- برنامه فاكتوريل
- حركت اسب شطرنج
- بازي پارانوئيد - پارانوييد Paranoid
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- يك ماشين حساب خطي با در نظر گرفتن پرانتزها
و تقدم عملگرها
- لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
- بازي حافظه - در يك پازل بعد از پيدا كردن خانه هايي كه 2 عدد شبيه هم هستند را حذف مي كند
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- حل مسئله رياضي سري تيلور
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- شبيه سازي بازي تانك
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- بازي دوز
dooz لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- يك برنامه
ويرايشگر متن اديتور Text Editor مانند اديتور سيستم ويندوز - لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- برنامه ي معكوس نمودن عدد ورودي : 124 421
لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
- برنامه مربع جادويي
- ماتريسي كه جمع سطر و ستونهاي آن و همچنين جمع قطرهاي آن از همه طرف برابر است . لینک دانلود فایل اجرایی EXE برنامه DOWNLOAD
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
مقسوم علیه ها
این برنامه برای محاسبه مقسوم علیه هاست که می تونید از اینجا بیگیرید
طرز کار برنامه بدین صورت است که شما یک عدد طبیعی را وارد می کنید و برنامه مقسوم علیه های آن را بر می گرداند
تبدیل دما
این برنامه که این دفعه می ذارم ، برنامه تبدیل واحدهاست.البته تا الان فقط مخصوص دما رو آماده کردم که می تونید از اینجا دانلود کنید و لذت ببرید.
این برنامه امکان تبدیل واحدهای سانتیگراد ، فارنهایت و کلوین به یکدیگر را دارد.
مقلوب
این برنامه که در این قسمت برای دانلود قرار گرفته ، برای محاسبه مقلوب عدد می باشد
شما عدد خود را وارد می کنید و برنامه مقلوب آنرا بر می گرداند
تبدیل عدد به حروف
این برنامه که خودش و سورسش رو تو این قسمت می ذارم،برنامه نوشتن عدد به حروف است.
(در زبان انگلیسی) شما عدد خود را وارد می کنید، حداکثر تا میلیون و با دقت اندازه گیری یک،
و بعد برنامه آنرا بصورت حروف برمی گرداند.
در این برنامه از ساختار switch و case استفاده شده است و با اینکه تعداد خطوط زیادی را شامل می شودُ برنامه بسیار ساده ایست..
دانلود فایل zip حجم:۱۳۰ کیلوبایت
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
یه برنامه ساختن و مدیریت دیکشنری به نسبت خوب پیدا کردم که برای دانلود میذارم
Dictionary Processing
دانلود برنامه File Editor
دانلود برنامه MDIApp
در ضمن یک سایت برای دوستداران برنامه نویسی چه سی پلاس پلاس و چه زبانهای دیگه معرفی می کنم که بصورت رایگان سورس برنامه برای دانلود ارائه می دهد.
Planet Source Code(قسمت مربوط به سی پلاس پلاس)
Planet Source Code
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
این برنامه ، توانایی تبدیل کد مورس به متن و متن به مد مورس رو داراست. روند ساده ای رو طی می کنه و براحتی می شه ازش استفاده کرد. جدول کد مورس حروف و اعداد رو در زیر ملاحظه کنید: http://www.vidiot.com/Jericho/images/morse-tab1.jpg
البته لازم می دونم که بگم برنامه ای که من نوشتم فقط توانایی تبدیل حروف انگلیسی و اعداد رو به کد مورس یا بالعکس داره و توانایی تبدیل سایر کاراکتر ها رو نداره.
دانلود برنامه کد مورس به همراه فایل اجرایی
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
اولین برنامه ، برنامه تبدیل رشته به کد binary ( مبنای ۲ ) است. در این برنامه از یک ساختار بسیار ساده و قابل فهم استفاده شده است.
دانلود سورس برنامه تبدیل رشته به کد باینری + فایل اجرایی
دومین برنامه ، برنامه نمایش زمان و تاریخ سیستم بصورت تکست است. این برنامه ، زمان و تاریخ جاری سیستم شما ( همان ساعت گوشه ویندوز ) را بصورت تکست نمایش می دهد.
دانلود سورس برنامه نمایش زمان و تاریخ جاری سیستم بصورت تکست + فایل اجرایی
سومین برنامه این دفعه ، یک برنامه text editor شبیه notepad است.
دانلود سورس برنامه notepad
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
سلام آبجی.ممنون بابت سورسها.ولی این لینکی که دادی واسه دانلود برنامه ها بصورت رایگان ازش سردر نمیارم.من سورس به زبان سی میخوام ظاهرا همش به زبان سی پلاسه
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
آبجی اینا که فقط فایل اجرایی هست.سورس نداره؟من سورس پریم و کروسکال را میخواستم اونم به زبان سی
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
نقل قول:
نوشته اصلی توسط
نفیس
سلام آبجی.ممنون بابت سورسها.ولی این لینکی که دادی واسه دانلود برنامه ها بصورت رایگان ازش سردر نمیارم.من سورس به زبان سی میخوام ظاهرا همش به زبان سی پلاسه
بعضی از پروژه ها به زبان c هست و بعضی به زبان ++c دوست گرامی
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
نقل قول:
نوشته اصلی توسط
نفیس
آبجی اینا که فقط فایل اجرایی هست.سورس نداره؟من سورس پریم و کروسکال را میخواستم اونم به زبان سی
دوست گرامی در خود تاپیک هم ذکر شده که فایل اجرایی :
نقل قول:
پیاده سازی الگوریتم کراسکال با سورس کامل برنامه لینک دانلود فایل اجرایی exe برنامه download
موفق باشید
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
شرمنده ولی اینم که فایل اجراییه.شما نوشتی با سورس کامل
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
نقل قول:
نوشته اصلی توسط
نفیس
شرمنده ولی اینم که فایل اجراییه.شما نوشتی با سورس کامل
این لینکها میتونه کمکت کنه :
الگوریتم دایکسترا
الگوریتم کراسکال
این لینک هم میتونه کمکت کنه :
Kruskal
موفق باشی
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
سلام خسته نباشیدمیتونیدالگوریتم صفحه بندی روبرام میل کنید؟
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
نقل قول:
نوشته اصلی توسط
شیلااسلامی
سلام خسته نباشیدمیتونیدالگوریتم صفحه بندی روبرام میل کنید؟
بند 5 از اطلاعیه ( لطفا قبل از زدن پست مطالعه کنید )
نقل قول:
5- هیچ ایمیلی از طرف کادر مدیران و همکاران سایت علمی نخبگان برای کاربران ارسال نمیشود .
موفق باشید
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
سلام من برنامه تبديل مبنا 10 به 2 نوشته شده به زبان سي پلاس پلاس مي خوام لطفا به ميلم trip_bahal69@yahoo.com ارسال كنيد بي زحمت همين الان عجله دارم مرسي
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
نقل قول:
نوشته اصلی توسط
نفیس
آبجی اینا که فقط فایل اجرایی هست.سورس نداره؟من سورس پریم و کروسکال را میخواستم اونم به زبان سی
خودت سورسشو درار ....یعنی انقد برنامش امنیت داره که سورسش و نمیشه گرفت؟؟؟؟؟؟[taajob]
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
سلام آبجی
من سورسه پازل رو می خوام به زبان سی پلاس
اون سورسی که دادی سی پلاس پلاس نبود
تورو خدا خیلی ضروریه
تا 1 شنبه بیشتر وقت ندارم
کمکم کنید
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
این برنامه ها نوشته ها رو ندارد
-
پاسخ : روش بازگشت به عقب و مسئله ی n وزیر و الگوریتم و توضیحات آن
سلام من سورس کد بازی 8وزیر رو با سی # می خوام اگه کسی میتونه به من کمک کنه
-
پاسخ : روش بازگشت به عقب و مسئله ی n وزیر و الگوریتم و توضیحات آن
نقل قول:
نوشته اصلی توسط
sh mahsa
سلام من سورس کد بازی 8وزیر رو با سی # می خوام اگه کسی میتونه به من کمک کنه
اینم سورس کد به همراه فایل اجرایی در محیط #C [cheshmak]
-
پاسخ : دانلود بیش از ۱۵۰ پروژه برنامه نویسی اسمبلی با سورس کامل
نقل قول:
نوشته اصلی توسط
ramtin198989
salam
in linkaei ke dadain ke vared nemishe
man barname mashin hesabetono mikham
طبق قوانین سایت لطفا فارسی تایپ کنید .
برنامه ماشین حساب قرار گرفت
-
پاسخ : پروژه هاي دانشجويي - پروژه های آماده c , c++
آقا حسین اگه واقعا امنیتش اونقدر نیست..پس می شه توضیح بدین چه طور می شه از این فایلا سورسشو در آورد
-
ضرب عدد 20 در 20 رقمی به زبان c
می خواهید برنامه ای داشته باشید که یک عدد 20 رقمی را در یک عدد 20
رقمی ضرب کنه و همین طور حاصل جمع شو برات چاپ کنه. اگه این طوره پس این سورس و نگاه کنید .
کد:
#include <iostream.h>
#include <conio.h>
int x[20],y[20],w[40],k[20][40];
void multiply(void);
void Sum(void);
void main(){
char t[20];
int i,j,z;
clrscr();
cout << "\n Enter a Number 1 :";
cin >> t;
z=19;
for(i=0;i<20 && t[i];i++);
for(i=i-1;i>=0;i--)
x[z--]=t[i]-48;
cout << "\n Enter a Number 2 :";
cin >> t;
z=19;
for(i=0;i<20 && t[i];i++);
for(i=i-1;i>=0;i--)
y[z--]=t[i]-48;
for(i=0;i<20;i++)
for(j=0;j<40;j++)
k[i][j]=0;
multiply();
}
/**************************************************************************
**************************************************************************/
void multiply(void){
int i,j,z,z1,tmp,c;
c=0;
z=39;
for(i=19;i>=0;i--)
for(j=19;j>=0;j--){
tmp=(x[i]*y[j])+c;
c=0;
// cout<<tmp<<"\n";
while(tmp>=10){
c++;
tmp=tmp-10;
}
if(i==19)
k[i][j+20]=tmp;
else{
if(j==19){
z--;
z1=z;
}
k[i][z1--]=tmp;
}
}
c=0;
for(j=39;j>=0;j--){
for(i=0;i<20;i++)
tmp+=k[i][j];
tmp+=c;
c=0;
while(tmp>=10){
c++;
tmp-=10;
}
w[j]=tmp;
tmp=0;
}
for(i=0;i<40 && w[i]==0 ;i++);
cout<<"\n\n Value zarb= ";
for(i;i<40;i++)
cout<<w[i];
Sum();
}
/**************************************************************************
**************************************************************************/
void Sum(void){
int i,tmp,c,s[20];
c=0;
for(i=19;i>=0;i--){
tmp=(x[i]+y[i])+c;
c=0;
while(tmp>=10){
c++;
tmp=tmp-10;
}
s[i]=tmp;
}
cout<<"\n\n Value jam = ";
for(i=0;i<20 && s[i]==0 ;i++);
for(i;i<20;i++)
cout<<s[i];
}
-
جمع دو عدد 50 رقمی با #c
دوستان این کد تا 50 رقم رو ضرب می کنه البته با سی شارپه .
کد:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i;
string num1, num2, result;
int[] a = new int[50];
int[] b = new int[50];
int[] c = new int[51];
Console.Write("please enter number1 : ");
num1 = Console.ReadLine();
for (i = 0; i < num1.Length; i++)
a[49 - i] = int.Parse(num1[num1.Length - 1 - i].ToString());
Console.Write("please enter number2 : ");
num2 = Console.ReadLine();
for (i = 0; i < num2.Length; i++)
b[49 - i] = int.Parse(num2[num2.Length - 1 - i].ToString());
int x = 0;
for (i = 49; i >= 0; i--)
{
c[i+1] = (a[i] + b[i] + x) % 10;
x = (a[i] + b[i] + x) / 10;
}
bool flag = false;
Console.Write(" SUM IS : ");
for (i = 0; i < 51; i++)
{
if (c[i] != 0 || flag)
{
flag = true;
Console.Write("{0}", c[i]);
}
}
Console.ReadLine();
}
}
}
-
سورس مرتب سازی حبابی ( Bubble sort )
این سورس یک عدد گرفته و به تعداد همان عدد از ورودی دریافت می کند و آنها را با روش Bubble sort مرتب می کند .
کد:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
//--------------------------------------------------------------------------
void read_list(int a[],int n){
int i;
for(i=0;i<n;i++){
printf("\n\n\t ENTER THE ELEMENT [%d] :: ",i);
scanf("%d",&a[i]);
}
}
//--------------------------------------------------------------------------
void print_list(int a[],int n){
int i;
for(i=0;i<n;i++)
printf("\t%d",a[i]);
}
//--------------------------------------------------------------------------
void bubble_sort(int a[],int n){
int i,j,temp;
for(i=0;i<n-1;i++){
for(j=0;j<n-1;j++)
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("\n\n\t PASS %d :: ",i);
print_list(a,n);
}
}
//--------------------------------------------------------------------------
void main(){
int a[20],n;
clrscr();
printf("\n\n\t ENTER THE ARRAY LENGTH :: ");
scanf("%d",&n);
read_list(a,n);
printf("\n\n\t THE ARRAY ELEMENTS ARE AS FOLLOWS :: ");
print_list(a,n);
bubble_sort(a,n);
printf("\n\n\t THE SORTED LIST IS :: ");
print_list(a,n);
getch();
}
//--------------------------------------------------------------------------
-
ضرب دو ماتریس 3 در 5
این سورس دو ماتریس 3 در 5 را از ورودی می گیرد و در هم ضرب می کند و ماتریس 3 در 3 نتیجه را در خروجی چاپ می کند .
کد:
#include <iostream.h>
#include <conio.h>
main(){
int x[3][5],y[5][3],z[3][3],i,j,k;
clrscr();
cout<<"\n Matris 1";
for(i=0;i<3;i++)
for(j=0;j<5;j++){
cout<<"\n Enter a number satre "<<i+1 <<" sotone "<<j+1 <<" : ";
cin>>x[i][j];
}
cout<<"\n Matris 2";
for(i=0;i<5;i++)
for(j=0;j<3;j++){
cout<<"\n Enter a number satre "<<i+1 <<" sotone"<<j+1 <<" : ";
cin>>y[i][j];
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
z[i][j]=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<5;k++)
z[i][j]+=(x[i][k]*y[k][j]);
cout<<"\n\n Value ";
for(i=0;i<3;i++){
cout<<endl;
for(j=0;j<3;j++)
cout<<"\t"<<z[i][j];
}
}
-
برابر بودن رشته از دو طرف
این سورس که به زبان C++ نوشته شده است اینگونه عمل می کند که رشته را از دو طرف مقایسه می کنه اگر از هر دو طرف یک جور بود برای مثال کلمه RooR از هر طرفی که خوانده شود همان RooR می باشد .
کد:
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#define Max 20
main(){
char str[Max];
int i,max,j;
cout<<"\n Enter a statment :";
cin>>str;
max=strlen(str);
for(i=0,j=max-1;i<2;i++,j--)
if(str[i]!=str[j]){
cout<<"\n Not EQUAL";
exit(1);
}
cout<<"\n EQUAL";
}
-
جمع دو ماتریس 3 در 5
این سورس دو ماتریس 3 در 5 را از ورودی می گیرد و با هم جمع می کند و در خروجی نتیجه را چاپ می کند .
کد:
#include <iostream.h>
#include <conio.h>
main(){
int x[3][5],y[3][5],z[3][5],i,j;
clrscr();
cout<<"\n Matris 1";
for(i=0;i<3;i++)
for(j=0;j<5;j++){
cout<<"\n Enter a number satre "<<i+1 <<" sotone "<<j+1 <<" : ";
cin>>x[i][j];
}
cout<<"\n Matris 2";
for(i=0;i<3;i++)
for(j=0;j<5;j++){
cout<<"\n Enter a number satre "<<i+1 <<" sotone"<<j+1 <<" : ";
cin>>y[i][j];
}
for(i=0;i<3;i++)
for(j=0;j<5;j++)
z[i][j]=x[i][j]+y[i][j];
cout<<"\n\n Value ";
for(i=0;i<3;i++){
cout<<endl;
for(j=0;j<5;j++){
cout<<"\t"<<z[i][j];
}
}
}
-
جمع دو عدد بوسیله اشاره گرها
این سورس دو عدد را بوسیله اشاره گر از ورودی می گیرد و با هم جمع می کند .
کد:
#include <iostream.h>
#include <stdlib.h>
main(){
int *x,*y;
x=(int *) calloc(1,sizeof(int));
y=(int *) calloc(1,sizeof(int));
cout<<"\n Enter a number : ";
cin>>*x;
cout<<"\n Enter a number : ";
cin>>*y;
cout<<"\n Value = "<<*x+*y;
}
-
حاصل ضرب دکارتی دو مجموعه بوسیله لینک لیست
این پروژه نیز کاربرد مفید لینک لیست ها را نشان می دهد که ابتدا بی نهایت مجموعه با بی نهایت عضو می گیرد و سپس اسم دو مجموعه از مجموعه های ورودی را می گیرد و حاصل ضرب دکارتی آن مجموع ها را چاپ می کند .
کد:
A={1,2,3}
B={5,6}
A * B = { (1*5) (1*6)(2*5)(2*6)(3*5)(3*6) }
#include "iostream.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
struct number{
int count;
int num;
struct number *next;
}*nn,*ln,*fn;
struct collection{
char name[20];
struct number *p;
struct collection *next;
}*fc,*nc,*lc;
void add();
void print();
void move();
int *avali,*dovomi,c1,c2;
char a[20],b[20];
main(){
add();
move();
print();
}
//***********************************
void add(){
char x[20];
int tmp;
cout<<"\n Enter your set by n";
do{
cout<<"\n Enter a name for complex : ";
cin>>x;
if(strcmp(x,"final")==0)
break;
cout<<"\n\t { \n";
nc=(struct collection*)calloc(1,sizeof(struct collection));
if(nc==NULL)
exit(1);
if(fc==NULL)
fc=nc;
else
lc->next=nc;
lc=nc;
nc->next=NULL;
nc->p=NULL;
strcpy(nc->name,x);
do{
cout<<"\t\t";
cin>>x;
if(strcmp(x,"end")==0)
break;
else
tmp=atoi(x);
nn=(struct number*)calloc(1,sizeof(struct number));
if(nn==NULL)
exit(1);
nn->next=NULL;
nn->num=tmp;
nn->count=0;
if(nc->p==NULL){
nc->p=fn=nn;
fn->count=1;
}
else{
ln->next=nn;
fn->count+=1;
}
ln=nn;
}while(1);
cout<<"\n\t } \n";
}while(1);
}
//************************************************
void move(){
int i;
clrscr();
cout<<"\n Enter two collection (C B) : ";
cin>>a>>b;
nc=fc;
while(nc!=NULL){
if(strcmp(nc->name,a)==0){
ln=nc->p;
c1=ln->count;
avali=(int*)calloc(c1,sizeof(int));
for(i=0;i<c1;i++){
avali[i]=ln->num;
ln=ln->next;
}
}
else if(strcmp(nc->name,b)==0){
ln=nc->p;
c2=ln->count;
dovomi=(int*)calloc(c2,sizeof(int));
for(i=0;i<c2;i++){
dovomi[i]=ln->num;
ln=ln->next;
}
}
nc=nc->next;
}
}
//******************************************************************************
void print(){
int i,j;
clrscr();
cout<<"\n "<<a<<"*"<<b<<" = {";
for(i=0;i<c1;i++)
for(j=0;j<c2;j++)
cout<<"("<<avali[i]<<"*"<<dovomi[j]<<")";
cout<<"}";
getch();
}
-
پروژه فیبوناچی بازگشتی و غیر بازگشتی
این پروژه سورس سری فیبوناچی می باشد که هم به صورت بازگشتی و هم به صورت معمولی نوشته شده است .
کد:
#include "iostream.h"
#include "conio.h"
int fib (int);
int i;
main(){
int n;
clrscr();
cout<<"\n Enter a number : ";
cin>>n;
cout<<"\n\n value = ";
if(n==1 || n==2)
cout<<"0 ";
else if(n>2)
cout<<"0 1 ";
cout<<fib(n);
getch();
}
//*****************************************
int fib (int n){
int x=0,y;
if(n<=1)
return n;
x=fib(n-1);
y=fib(n-2);
if(i<x){
cout<<x<<" ";
i=x;
}
return x+y;
}
-
پروژه ای بسیار خوب برای کلاس ها ( ثبت نام دانشجو ) در ++c
این پروژه یک کلاسی است که امکان اضافه کردن دانشجو ، ویرایش ، جستجو و ... را دارد که امکان ذخیره سازی اطلاعات تو فایل و بارگذاری مجدد آن هنگام اجرای برنامه را دارا می باشد و همچنین حجم فایل ذخیره شده را نشان میدهد . در کل بگم که این سورس به صورت تمام با کلاس ها نوشته شده است و کد خوبی برای درک کلاس ها می باشد .
کد:
#include "iostream.h"
#include "conio.h"
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include "io.h"
#include "fcntl.h"
#define max 50
class student {
public :
char numst[11];
char name[15];
char famili[20];
double score[4];
double ave;
student(); //initializing
~student(); //destructing
set_null(){name[0]=numst[0]='\0';}
}st[max];
//************************************
student::student(){ //initializing
set_null();
}
//*************************************
student::~student(){ //destructing
set_null();
}
//*************************************
class Enter {
private :
void save();
public :
void add();
void edit();
void search();
void print();
void len_file();
void load();
}e;
//******************************************************************************
void Enter::add(){
int i;
double sum=0.00;
for(i=0;i<max && st[i].name[0]!='\0';i++);
clrscr();
cout<<"\n Enter a name : ";
cin>>st[i].name;
cout<<"\n Enter a famili : ";
cin>>st[i].famili;
cout<<"\n Enter a numst : ";
cin>>st[i].numst;
for(int j=0;j<4;j++){
cout<<"\n Enter a score "<<j+1<<" : ";
cin>>st[i].score[j];
sum+=st[i].score[j];
}
st[i].ave=sum/4;
e.save();
}
//******************************************************************************
void Enter::edit(){
char tmp[11];
int i,flag=0;;
double sum=0.00;
clrscr();
cout<<"\n Enter a numst for edit : ";
cin>>tmp;
for(i=0;i<max && st[i].name[0]!='\0';i++)
if(strcmp(st[i].numst,tmp)==0){
cout<<"\n Enter a new name : ";
cin>>st[i].name;
cout<<"\n Enter a new famili : ";
cin>>st[i].famili;
for(int j=0;j<4;j++){
cout<<"\n Enter a new score "<<j+1<<" : ";
cin>>st[i].score[j];
sum+=st[i].score[j];
}
st[i].ave=sum/4;
cout<<"\n for continue . press key...";
getch();
flag=1;
e.save();
}
if(flag==0){
cout<<"\n Not found . press key...";
getch();
return ;
}
}
//******************************************************************************
void Enter::search(){
char tmp[15];
int i,flag=0;
clrscr();
cout<<"\n Enter a name for search : ";
cin>>tmp;
for(i=0;i<max && st[i].name[0]!='\0';i++)
if(strcmp(st[i].name,tmp)==0){
cout<<"\n Name = "<<st[i].name;
cout<<"\n Famili = "<<st[i].famili;
for(int j=0;j<4;j++)
cout<<"\n Score "<<j+1<<" = "<<st[i].score[j];
cout<<"\n average = "<<st[i].ave;
cout<<"\n for continue . press key...";
getch();
flag=1;
}
if(flag==0){
cout<<"\n Not found . press key...";
getch();
return ;
}
}
//******************************************************************************
void Enter::print(){
int i;
clrscr();
for(i=0;i<max && st[i].name[0]!='\0';i++){
cout<<"\n Name = "<<st[i].name;
cout<<"\n Famili = "<<st[i].famili;
for(int j=0;j<4;j++)
cout<<"\n Score "<<j+1<<" = "<<st[i].score[j];
cout<<"\n average = "<<st[i].ave<<"\n\n";
}
cout<<"\n for continue . press key...";
getch();
}
//******************************************************************************
void Enter::save(void){
register int i;
FILE *fp;
fp=fopen("c:\\st.dat","w+b");
if(!fp){
cout<<"\n Cannot open file press key ...";
getch();
return ;
}
for(i=0;i<max && st[i].name[0]!='\0';i++)
fwrite(&st[i],sizeof(class student),1,fp);
fclose(fp);
}
//******************************************************************************
void Enter::load(void){
register int i;
FILE *fp;
clrscr();
fp=fopen("c:\\st.dat","rb");
if(!fp){
cout<<"\n Cannot open file press key ...";
getch();
return ;
}
for(i=0;i<max;i++){
fread(&st[i],sizeof(class student),1,fp);
if(feof(fp)){
clrscr();
cout<<" Data loaded press a key ...";
getch();
return ;
}
}
fclose(fp);
}
//******************************************************************************
void Enter::len_file(){
int handle;
clrscr();
handle=open("c:\\st.dat",O_RDONLY);
cout<<"\n File lenght in byte = "<<filelength(handle)<<" byte ";
getch();
close(handle);
}
//******************************************************************
void main(){
int num;
e.load();
do{
clrscr();
cout<<"\t\t Welcome\n";
cout<<"\n 1).Add";
cout<<"\n 2).Edit";
cout<<"\n 3).Search";
cout<<"\n 4).List";
cout<<"\n 5).Length file";
cout<<"\n 6).Exit";
cout<<"\n\n Enter a number (1-6) :";
num=getche()-48;
getch();
switch (num){
case 1 : e.add();
break;
case 2 : e.edit();
break;
case 3 : e.search();
break;
case 4 : e.print();
break;
case 5 : e.len_file();
break;
case 6 : exit(1);
}
}while(1);
}// end program
-
سورس مرتب سازی سریع ( Quick sort )
این سورس یک عدد گرفته و به تعداد همان عدد از ورودی دریافت می کند و آنها را با روش .Quick sort مرتب می کند .
کد:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
//--------------------------------------------------------------------------
void read_list(int a[],int n){
int i;
for(i=0;i<n;i++){
printf("\n\n\t ENTER THE ELEMENT [%d] :: ",i);
scanf("%d",&a[i]);
}
}
//--------------------------------------------------------------------------
void print_list(int a[],int n){
int i;
for(i=0;i<n;i++)
printf("\n\n\t %d",a[i]);
}
//--------------------------------------------------------------------------
void quick_sort(int a[],int first,int last){
int low,high,temp,pivot;
low=first;
high=last;
pivot=a[(first+last)/2];
do{
while(a[low]<pivot)
low++;
while(a[high]>pivot)
high--;
if(low<=high){
temp=a[low];
a[low]=a[high];
a[high]=temp;
low=low+1;
high=high-1;
}
}while(low<=high);
if(first<high)
quick_sort(a,first,high);
if(low<last)
quick_sort(a,low,last);
}
//--------------------------------------------------------------------------
void main(){
int a[20],n;
clrscr();
printf("\n\n\t ENTER THE ARRAY LENGTH :: ");
scanf("%d",&n);
read_list(a,n);
printf("\n\n\t THE ARRAY ELEMENTS ARE AS FOLLOWS :: ");
print_list(a,n);
quick_sort(a,0,n-1);
printf("\n\n\t THE SOTED LIST IS :: ");
print_list(a,n);
getch();
}
//--------------------------------------------------------------------------