سئوالات و مشکلات برنامه نویسی به زبان C و ++C

zahra1386

مدیر بازنشسته
کاربر ممتاز
زهرا جون تو رو خدا اگه جوابشون رو بلدي برنامه ها رو بنويس.
خواهش ميكنم ازت...:(
خودم نميتونم كمكش كنم.
چون اصلا C++ كار نكردم.

فاطمه خانوم عزیز من الان برنامه VS ندارم روی سیستمم که بنویسم!
این برنامه ها اونقدرا هم سخت نیس که فکر میکنید!با همون چیزایی که یاد گرفتن میتونن بنویسن فقط یه کم تلاش میخواد و وقت گذاشتن!

زهرا خانم منظور این سوال اینه که بشه برنامه هایی ساخت که مثلا بشه بازی پرتب تاس رو شبیه سازی کرد یا در حالت پیشرفته تر برای مسائل هوش مصنوعی کاربرد داره؟
منظور اصلی برنامه تولید اعدادی است که انسان هیچ دخالتی در تولیدشان نداشته باشه؟

دوست عزیز من فکر نمیکنم منظور سوال این بوده باشه!ولی اینم نکته خوبی هست...خوشحال میشیم شما هم راه حلی با توجه به دیدگاه خودتون از مسئله، ارائه بدین تا ما هم استفاده کنیم و یه چیزی یاد بگیریم:gol:
 

zahra1386

مدیر بازنشسته
کاربر ممتاز
سلام. انگاری من سوالم رو بد پرسیدم.
منظورم اینه که چرا بدون دستوری که گفتید برنامه کار نمی کنه؟!!!!!!!!!
:gol::gol::gol:.......................................................................................

سلام

برای اجرای برنامه ترکیب ctrl+f5 رو به کار ببرید تا صفحه خروجی بسته نشه:gol:
 

sirosb

عضو جدید
تولید ارایه تصادفی

تولید ارایه تصادفی

زهرا خانم مطمئن باشید 100% منظور سوال اونیه که من گفتم;)
اینی که برای شما و فاطمه خانم گذاشتم یکی از روشهای تولید اعداد تصادفیه!
فاطمه خانم کافیه خواهرت این ارایه رو مرتب کنه .اگه نتونه معلومه الکی ذانشگاه میره:warn::)
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
//dis program write by sirosb for a sapmle of random array
int main()
{
unsigned seed;
cout<<"enter seed:"<<endl;
cin>>seed;
srand(seed);
int random[20];
int i;
for(i=0;i<20;++i)
random=rand();//tolide addae tasadofi dar yek arraye
cout<<"the random array is:";
for(i=0;i<20;++i)
cout<<" "<<random;
return 0;
}
 

alizade45

عضو جدید
help

help

سلام خدمت همه خانم ها و آقایان مهندس کامپیوتر
من رشته ام مهندسی صنایع واسه پایان نامم باید مسئله ای رو با الگوریتم صرفه جویی حل کنم و کد نویسی کنم من خودم در زمینه برنامه نویسی وارد نیستم می خواستم بدونم کسی می تونه به من کمک کنه ؟ حالا یا با زبان C وبا C++ فرقی نداره؟
 

شهریاری 2

کاربر فعال تالار اسلام و قرآن
کاربر ممتاز
سلام. انگاری من سوالم رو بد پرسیدم.
منظورم اینه که چرا بدون دستوری که گفتید برنامه کار نمی کنه؟!!!!!!!!!
:gol::gol::gol:.......................................................................................

آهان!
فکر کنم به خاطر این باشه:
شما دستورات رو وارد میکنید.....برنامه هم اجرا میکنه ولی بهش نگفتید که وایسا تا ببینم چطوری شد برنامه ....... خب در نتیجه باید این رو هم به برنامه بگید که وایسا تا خروجی ببینم(البته غیز مستقیم)
 

شهریاری 2

کاربر فعال تالار اسلام و قرآن
کاربر ممتاز
زهرا خانم مطمئن باشید 100% منظور سوال اونیه که من گفتم;)
اینی که برای شما و فاطمه خانم گذاشتم یکی از روشهای تولید اعداد تصادفیه!
فاطمه خانم کافیه خواهرت این ارایه رو مرتب کنه .اگه نتونه معلومه الکی ذانشگاه میره:warn::)
PHP:
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
//dis program write by sirosb for a sapmle of random array
int main()
{
  unsigned seed;
  cout<<"enter seed:"<<endl;
  cin>>seed;
  srand(seed);
 int random[20];
 int i;
 for(i=0;i<20;++i)
 random[i]=rand();//tolide addae tasadofi dar yek arraye
 cout<<"the random array is:";
 for(i=0;i<20;++i)
 cout<<"  "<<random[i];
 return 0;
}


ببخشید این دستور چکار میکنه؟
PHP:
unsigned seed;
 

sky_cs

عضو جدید
آهان!
فکر کنم به خاطر این باشه:
شما دستورات رو وارد میکنید.....برنامه هم اجرا میکنه ولی بهش نگفتید که وایسا تا ببینم چطوری شد برنامه ....... خب در نتیجه باید این رو هم به برنامه بگید که وایسا تا خروجی ببینم(البته غیز مستقیم)
سلام ممنون.
اگه می شه بگید چطوری بگم که وایسا تا خروجی رو ببینم :que:!!!!!!!!!!!!
یه سوال دیگه هم دارم
وقتی برنامه تو بورلند ++C می نویسم پیام زیر مواجه می شم وبرنامه اجرا نمی شه .
Fatal: unable to open file exam10.def
exam10.cpp.png
لطفا راهنمائیم کنید.
با تشکر
:gol::gol::gol:.....................................................................................................
 

شهریاری 2

کاربر فعال تالار اسلام و قرآن
کاربر ممتاز
سلام ممنون.
اگه می شه بگید چطوری بگم که وایسا تا خروجی رو ببینم :que:!!!!!!!!!!!!
یه سوال دیگه هم دارم
وقتی برنامه تو بورلند ++C می نویسم پیام زیر مواجه می شم وبرنامه اجرا نمی شه .
Fatal: unable to open file exam10.def
مشاهده پیوست 165789
لطفا راهنمائیم کنید.
با تشکر
:gol::gol::gol:.....................................................................................................

:surprised:
خب دستور
PHP:
cin.get();

رو بعد از
PHP:
getch();

وارد کنید. بعد وقتی خروجی اومد.اینتر بزنید تا برگردد به برنامه .
اون پیغامتون رو هم اطلاعی ندارم.
آهان شاید به خاطر این باشه که دستور
PHP:
using namespace std;
رو قبل از دستور
PHP:
void main()
وارد نکردید.

این برنامه رو به جای برنامه خودت بنویس تا خروجی ای رو که میخای اجرا کنه:
PHP:
#include<iostream.h>
using namespace std;
void main()
{
cout<<"C is a language!";
cin.get();}
 
آخرین ویرایش:

sirosb

عضو جدید
خواهشا واسه یه سوال نچندان مهم ااینقدر صفحات رو پر نکنید و واسه هم پیام خصوصی بدین!
ممنون.
 

sirosb

عضو جدید
دستور goto دستور پرش بدون شرطه و میشه با این دستور به یک قسمت دلخواه از برنامه که قبل یا بعد از این دستور قرار داره پرش کرد و می تونیم محل پرش رو با ادرس یا برچسب مشخص کرد.
ولی چون این دستور قدیمیه ودر واقع ساختار برنامه نویسی ساختیافته رو از بین می بره بهتره کمتر استفاده بشه.
ساختارش اینجوریه:
goto lable;
.
.
lable:statement;
 
آخرین ویرایش:
  • Like
واکنش ها: ahhe

upper of mind

عضو جدید
Program

Program

من رشته ام برقه و از برنامه نويسي چيز زيادي نميدونم.
تابستون ترم تابستوني گرفتم و استادمون دو تا سوال بهمون داده كه حل كنيم و گفته براي امتحان مياد.
اما بلدشون نيستم.
ازتون خواهش ميكنم كمكم كنيد.
سوالاتش اينه:

1-تابع void ي بنويسيد كه يك رشته حداكثر 400 حرفي را گرفته و تعداد جمله ها ( تعداد جمله هايي كه به . ! ؟ : ختم ميشوند ) را محاسبه و تعداد كلمات را محسابه كند و متن را به حروف كوچك تبديل كند.
2-برنامه اي به زبان C++بنويسيد كه شماره ي كارمندي و حقوق تعدادي از كاركنان موسسه اي را دريافت كند و بر اساس تعرفه ي زير ماليات حقوق آنها را محاسبه و به خروجي ببرد سپس مشخص كنيد بيشترين دريافتي مربوط به كدام كارمند است.
حقوق كوچكتر مساوي 400 هزار (از ماليات معاف)
حقوق بزرگتر از 400 هزار و كوچكتر مساوي 500 هزار (10% نسبت به مازاد)
حقوق بزرگتر از 500 هزار و كوچكتر مساوي 700 هزار (15% نسبت به مازاد)
حقوق بزرگتر از 100 هزار (17% نسبت به مازاد)

تو رو خدا جواب بدين:cry:
در جواب به zahra1386 :
راستش رو بخواين جواب سوالا رو براي خودم نميخوام.
واسه يكي از خواهرامه.كه ترم تابستوني گرفته.و چون من در دوره كارشناسي برنامه نويسي پاسكال و براي پايان نامه ام برنامه نويسي بيسكام كار كردم نميتونم كمكش كنم.:(
تو رو خدا اگه بلدشون هستين و وقتتون رو نميگيره برنامه رو بنويسيد .به خدا دعاتون ميكنم.:gol:


:)
سلام برنامه ها رو واستون نوشتم امیدوارم همونهایی باشند که شما می خواستین
.
:smile:

مشاهده پیوست helping.rar
 

R.Shiri

عضو جدید
سلام

مشکل شما باعث شد بعد از تقریبا دو سال دست به کد بشم:Dو خوشبختانه تونستم مشکل رو حل کنم(اونم خیلی راحت!) و یه حس خوب نوستالژیک رو تجربه کنم...یادش بخیر....:cry:

لازم نبود ما مقایسه رو داخل case ها ببریم داخل switch این کارو انجام میدیم...فقط کافی بود برای هر مقایسه یه سوییچ بنویسیم;)

اینم برنامه ای که نوشتم:

کد:
#include<iostream>
using  std::cin;
using  std::cout;
using  std::endl;

void main()
{
int in,out;

cin>>in;

out=in/10;

switch(out)
    {
    case 0:cout<<"a digit"<<endl;
    
    return ;
    }


switch(0<out & out<10)
    {
        case true:cout<<"tow digit"<<endl;
        
        return;
    }
    
switch(10<out & out<100)

    {
        case true:cout<<"three digit"<<endl;
        return;
    
    }


cout<<"four digit"<<endl;

}


توضیح این که in ورودی کاربر هست و out خارج قسمتی که برای مقایسه به کار میبریم...

پ.ن:گاهی وقتا یه مسئله رو سخت میگیریم در حالی که راه حلش خیلی اسونه...امیدوارم مشکلتون حل شده باشه:smile::gol:

سلام
واقعاً از لطفتون ممنونم، تونستم با یک مقدار تغییرات خیلی خیلی جزئی درستش کنم و استاد هم تاییدش کرد
بازهم ممنونم که برای حل مشکلم تلاش کردید :smile::gol::heart:
 

alisaw

عضو جدید
کاربر ممتاز
سلام
دنبال یک کامپایلر برای C میگردم.
توی یک فیلم آموزشی داره با Microsoft visual Cpp کار میکنه ، هرچی سرچ میزنم واسه دانلود پیداش نمیکنم.
یه چیزی به همین اسم دانلود کردم ولی فکر کنم درایور بود نه کامپایلر.

dev cpp هم دارم ، میشه با dev به زبان C توش برنامه نوشت یا فقط Cpp هست ؟

اگه ویژوال سی رو راهنمایی کنید که از کجا دانلود کنم ممنون میشم.
 
آخرین ویرایش:

sirosb

عضو جدید
سلام
بهترین کار اینه که بری و CD نرم افزاری با نام برنامه نویسی ماندگار از CD فروشی ها تهیه کنی .
چون اکثر کامپایلرها و از جمله C توش هست.
در ضمن هر کامپایلری که ++C رو کامپایل کنه C رو هم میتونه کامپایل کنه ولی عکسش نمیشه.
مثلا اگه کامپایلر TORBO ++C , رو تهیه کنی هم کافیه.
 
آخرین ویرایش:

sirosb

عضو جدید
سوال؟

سوال؟

*************سلام***************
:que:برنامه ای به زبان ++C بنویسید که بتواند یک جدول ضرب 10*10 را دقیقا به شکل مربع یا مستطیل رسم کند و بین سطرها ی جدول ضرب خط چین رسم کند؟
 

sirosb

عضو جدید
جواب سوال جدول ضرب 10*10

جواب سوال جدول ضرب 10*10

#include<iostream.h>
int main()
{
// tihs program wrote by sirosb
int i,j;
int *array[10];
for(i=0;i<10;++i)
array=new int[10];
//**************************
for(i=0;i<10;++i)
for(j=0;j<10;++j)
*(array+j)=(i+1)*(j+1);
for(i=0;i<10;++i)
for(j=0;j<10;++j)
{
cout.width(4);
cout<<*(array+j);
if(j==9)
{
cout<<endl;
cout.width(8);
for(int k=0;k<9;++k)
cout<<"----";
cout<<endl;
}
}

return 0;
}
:gol::gol::gol::gol::gol:
 

alisaw

عضو جدید
کاربر ممتاز
سلام
اگر ممکنه برنامه هارو طوری بنویسید که جهت تحلیل واضح تر باشند .
مثلا توی کامپایلر بنویسید و ازش عکس بگیرید و اینجا قرار بدید.

وقتی عکس باشه خوبیش اینه که کاربری مثل من که میخواد یاد بگیره خودش 2باره مجبور میشه بنویسه.
و دندانه دار و مرتب تر میشه.
اگر ممکنه یک عکس از خروجی برنامه ها هم قرار بدید مثل این:


با تشکر.:gol:
 

mojtabamob

عضو جدید
سلام دوستان
کسی میدونه مشکل این کد من چیه؟
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

using namespace std;
int main ()
{
char name[20];
char sname;
int code[10];
int mowjudi[10];
int scode;
int sh=0;
int c=1;
int i;
while ( c!=0 )
{
cout <<".:: Forushgah e bahjat ::.\n" ;
cout << "-----------------------------\n\n" ;
cout << "\t 1) input new kala : \n" << endl;
cout << "\t 2) search kala by code : \n" ;
cout << "\t 3) search kala by name : \n" ;
cout << "\t 4) list sorted by code : \n" ;
cout << "\t 5) edit number of mowjudi : \n" ;
cout << "6) EXIT\n" ;
cout << "------------------------------\n\n" ;
cout << "Select Your Choice : \n" ;
cin >> c ;
}
switch (c)
{
case 1 :
cout << "Enter name code va mowjudi : \n" ;
cin >> name[sh] >> code[sh] >> mowjudi[sh];
sh++ ;
cout << endl;
cout << "-----------------------------\n" ;
break;
case 2 :
cout << "Code kala morede nazar ra vared konid : \n" ;
cin >> scode ;
for (i=0 ; i<sh ; i++)
{
if ( scode==code )
{
cout << "Kalaye morede nazar dar list mowjud ast :\n" ;
cout << "name\tmowjudi\n";
cout << name <<"\t"<<mowjudi;
}
else if (scode!=code)
{
cout << "Kala dar list nist!\n" ;
}
}
break;
case 3 :
cout << "Search kala by name :\n" ;
cin >> sname;
for (i=0;i<sh;i++)
{
if ( sname==name )
{
cout << "code kala\tmowjudi:\n" ;
cout << code<<"\t"<< mowjudi ;
}
else if ( sname!=name )
{
cout <<"dar list mowjud nist!\n" ;
}
}
break;
case 4 :
c=0;
break;
}
cin.get();
}
 

Unline

عضو جدید
سلام

در ابتدای سورس از using namespace std استفاده کردید پس vector.h رو هم فراخوانی کنید

کد:
#include <vector.h>

البته یک سری هشدار هم داره برنامه منتها ارور نمیده دیگه اگر این هدر فایل رو فراخوانی کنید

موفق باشید
 

sadaf jooon

عضو جدید
با سلام به همگی
در ++c :
چطوری میتونم توابع و کلاسهارو در سرفایل قرار بدم که هر موقع خواستم بنونم اونارو فراخوانی کنم؟
یعنی مثلا ی تابعی رو بنویسی و توی فایلهای سرآیند اینکلودش کنی تا بتونی توی تابع ()main ازش استفاده کنی؟
در ضمن کامپایلر من هم dev cpp هستش و خواهشا کسایی که میتونن توضیح کامل بدن جواب بدن؟
 

mojtabamob

عضو جدید
با تشکر دوست عزیز اما مشکل من جای دیگری است
زمانی ک عدد 1 را وارد میکنم برای وارد کردن مشخصات کالا وارد بخش switch case نمیشود! مشکل از کجایش است؟
// ConsoleApplication3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <vector>

using namespace std;
int main ()
{
char name[20];
char sname;
int code[10];
int mowjudi[10];
int scode;
int sh=0;
int c=1;
int i;
while ( c!=0 )
{
cout <<".:: Forushgah e bahjat ::.\n" ;
cout << "-----------------------------\n\n" ;
cout << "\t 1) input new kala : \n" << endl;
cout << "\t 2) search kala by code : \n" ;
cout << "\t 3) search kala by name : \n" ;
cout << "\t 4) list sorted by code : \n" ;
cout << "\t 5) edit number of mowjudi : \n" ;
cout << "6) EXIT\n" ;
cout << "------------------------------\n\n" ;
cout << "Select Your Choice : \n" ;
cin >> c ;
}
switch (c)
{
case 1 :
cout << "Enter name code va mowjudi : \n" ;
cin >> name[sh] >> code[sh] >> mowjudi[sh];
sh++ ;
cout << endl;
cout << "-----------------------------\n" ;
break;
case 2 :
cout << "Code kala morede nazar ra vared konid : \n" ;
cin >> scode ;
for (i=0 ; i<sh ; i++)
{
if ( scode==code )
{
cout << "Kalaye morede nazar dar list mowjud ast :\n" ;
cout << "name\tmowjudi\n";
cout << name <<"\t"<<mowjudi;
}
else if (scode!=code)
{
cout << "Kala dar list nist!\n" ;
}
}
break;
case 3 :
cout << "Search kala by name :\n" ;
cin >> sname;
for (i=0;i<sh;i++)
{
if ( sname==name )
{
cout << "code kala\tmowjudi:\n" ;
cout << code<<"\t"<< mowjudi ;
}
else if ( sname!=name )
{
cout <<"dar list mowjud nist!\n" ;
}
}
break;
case 4 :
c=0;
break;
}
cin.get();
}
 

Unline

عضو جدید
سلام عزیزم

شما اصلا نیازی نبود ابتدای برنامه از while استفاده کنید

همون دستورات داخل while رو اگر بدون while بنویسید مشکل حل میشه ! دلیلش هم اینه که به c مقدار دادین و یک loop در اون while به وجود آوردید که دائما خودش رو اجرا می کنه

من با باقی برنامه کار نکردم و نمیدونم آیا باز هم مشکلی داره یا نه - فقط دستورات رو از حلقه خارج کردم تا اجرا بشن - تست کنید اگر مشکلی داشت مطرح کنید تا بررسی کنیم با هم


کد:
[B]#include <iostream>
[/B][B]#include <stdlib.h>[/B]
[B]#include <conio.h>[/B]
[B]#include <string.h>[/B]
[B]#include <vector>[/B]

[B]using namespace std;[/B]
[B]int main ()[/B]
[B]{[/B]
[B]char name[20];[/B]
[B]char sname;[/B]
[B]int code[10];[/B]
[B]int mowjudi[10];[/B]
[B]int scode;[/B]
[B]int sh=0;[/B]
[B]int c=0;[/B]
[B]int i;[/B]

[B]cout <<".:: Forushgah e bahjat ::.\n" ;[/B]
[B]cout << "-----------------------------\n\n" ;[/B]
[B]cout << "\t 1) input new kala : \n" << endl;[/B]
[B]cout << "\t 2) search kala by code : \n" ;[/B]
[B]cout << "\t 3) search kala by name : \n" ;[/B]
[B]cout << "\t 4) list sorted by code : \n" ;[/B]
[B]cout << "\t 5) edit number of mowjudi : \n" ;[/B]
[B]cout << "6) EXIT\n" ;[/B]
[B]cout << "------------------------------\n\n" ;[/B]
[B]cout << "Select Your Choice : \n" ;[/B]

[B]cin>>c;[/B]

[B]switch (c)[/B]

[B]{[/B]
[B]case 1 :[/B]
[B]cout<<"Enter name code va mowjudi : \n" ;[/B]
[B]cin >> name[sh] >> code[sh] >> mowjudi[sh];[/B]
[B]sh++ ;[/B]
[B]cout << endl;[/B]
[B]cout << "-----------------------------\n" ;[/B]
[B]break;[/B]
[B]case 2 :[/B]
[B]cout << "Code kala morede nazar ra vared konid : \n" ;[/B]
[B]cin >> scode ;[/B]
[B]for (i=0 ; i<sh ; i++)[/B]
[B]{[/B]
[B]if ( scode==code[i] )[/B]
[B]{[/B]
[B]cout << "Kalaye morede nazar dar list mowjud ast :\n" ;[/B]
[B]cout << "name\tmowjudi\n";[/B]
[B]cout << name[i] <<"\t"<<mowjudi[i];[/B]
[B]}[/B]
[B]else if (scode!=code[i])[/B]
[B]{[/B]
[B]cout << "Kala dar list nist!\n" ;[/B]
[B]}[/B]
[B]}[/B]
[B]break;[/B]
[B]case 3 :[/B]
[B]cout << "Search kala by name :\n" ;[/B]
[B]cin >> sname;[/B]
[B]for (i=0;i<sh;i++)[/B]
[B]{[/B]
[B]if ( sname==name[i] )[/B]
[B]{[/B]
[B]cout << "code kala\tmowjudi:\n" ;[/B]
[B]cout << code[i]<<"\t"<< mowjudi[i] ;[/B]
[B]}[/B]
[B]else if ( sname!=name[i] )[/B]
[B]{[/B]
[B]cout <<"dar list mowjud nist!\n" ;[/B]
[B]}[/B]
[B]}[/B]
[B]break;[/B]
[B]case 4 :[/B]
[B]c=0;[/B]
[B]break;[/B]
[B]}[/B]

[B]cin.get();[/B]

[B]return 0;[/B]

[B]}[/B]
 

Unline

عضو جدید
با سلام به همگی
در ++c :
چطوری میتونم توابع و کلاسهارو در سرفایل قرار بدم که هر موقع خواستم بنونم اونارو فراخوانی کنم؟
یعنی مثلا ی تابعی رو بنویسی و توی فایلهای سرآیند اینکلودش کنی تا بتونی توی تابع ()main ازش استفاده کنی؟
در ضمن کامپایلر من هم dev cpp هستش و خواهشا کسایی که میتونن توضیح کامل بدن جواب بدن؟

سلام دوست عزیز

اگر منظور شما اینه که یک تابع رو بنویسید و به توابع اصلی برنامه اضافه کنید 2 حالت داره

یا شما می خواهید درون تابع از تابع دیگری استفاده کنید - یعنی در اواسط تابع تابع دیگری رو include کنید که خوب چنین چیزی امکانش نیست و اگر هم انجامش بدید باعث بروز مشکلاتی میشه

یا اینکه هدر فایل رو ادیت کنید و تابع جدیدی در پایان توابع اون بهش اضافه کنید که این امکانش هست منتها نیازی به انجام این کار نیست

شما میتونید خودتون یک تابع بنویسید و اون رو با پسوند .h ذخیره کنید - سپس برای استفاده از اون 2 راه دارید - یا اینکه اون تابع رو داخل فولدر هدر فایل های کامپایلرتون کپی کنید ( همون جایی که توابع اصلی مثل iostream و یا conio قرار دارند ) و مثل باقی توابع اون رو include کنید

به فرض تابعی ساختید با نام sadaf.h - اون رو به فولدر هدر فایل هاتون کپی می کنید و با دستور
کد:
#include <sadaf.h>
فراخوانیش می کنید

یا اینکه هرجایی که برنامه ی شما قرار داره اون تابع رو کپی می کنید - مثلا شما برنامتون رو روی دسکتاپ کپی کردید با نام sadaf.cpp - تابعتون رو هم همونجا کنار برنامه کپی می کنید - مثلا نام تابع هم sadaf.h هست که روی دسکتاپ کنار برنامتون کپی کردیدش

حالا با دستور
کد:
#include "sadaf.h"
می تونید اون رو فراخوانی کنید

این روش برای زمانی خوبه که شما برنامه های سنگین می نویسید و توابع مورد نیازتون رو خودتون ایجاد کردید و می خواهید که برنامه به همراه تمام توابعش در یک جا قابل دسترسی و اجرا باشند

امیدوارم منظور شما رو درست متوجه شده باشم و پاسخم زیاد بیراه نبوده باشه

موفق باشید
 

sirosb

عضو جدید
سلام صدف جان
فکر کنم یه جایی قبلا جواب این سوال رو خونده بودم اگه پیداش کرده بهت میگم.
ولی می تونی از ماکروها و فایل ها هم استفاده کنی که تقریبا همین کار رو میشه با فایل انجام داد.
 

sadaf jooon

عضو جدید

سلام دوست عزیز

اگر منظور شما اینه که یک تابع رو بنویسید و به توابع اصلی برنامه اضافه کنید 2 حالت داره

یا شما می خواهید درون تابع از تابع دیگری استفاده کنید - یعنی در اواسط تابع تابع دیگری رو include کنید که خوب چنین چیزی امکانش نیست و اگر هم انجامش بدید باعث بروز مشکلاتی میشه

یا اینکه هدر فایل رو ادیت کنید و تابع جدیدی در پایان توابع اون بهش اضافه کنید که این امکانش هست منتها نیازی به انجام این کار نیست

شما میتونید خودتون یک تابع بنویسید و اون رو با پسوند .h ذخیره کنید - سپس برای استفاده از اون 2 راه دارید - یا اینکه اون تابع رو داخل فولدر هدر فایل های کامپایلرتون کپی کنید ( همون جایی که توابع اصلی مثل iostream و یا conio قرار دارند ) و مثل باقی توابع اون رو include کنید

به فرض تابعی ساختید با نام sadaf.h - اون رو به فولدر هدر فایل هاتون کپی می کنید و با دستور
کد:
#include <sadaf.h>
فراخوانیش می کنید

یا اینکه هرجایی که برنامه ی شما قرار داره اون تابع رو کپی می کنید - مثلا شما برنامتون رو روی دسکتاپ کپی کردید با نام sadaf.cpp - تابعتون رو هم همونجا کنار برنامه کپی می کنید - مثلا نام تابع هم sadaf.h هست که روی دسکتاپ کنار برنامتون کپی کردیدش

حالا با دستور
کد:
#include "sadaf.h"
می تونید اون رو فراخوانی کنید

این روش برای زمانی خوبه که شما برنامه های سنگین می نویسید و توابع مورد نیازتون رو خودتون ایجاد کردید و می خواهید که برنامه به همراه تمام توابعش در یک جا قابل دسترسی و اجرا باشند

امیدوارم منظور شما رو درست متوجه شده باشم و پاسخم زیاد بیراه نبوده باشه

موفق باشید
ممنون
پاسخ شما کاملا هم به جاست ولی اگه ممکنه براتون به صورت تصویری همون ذخیره به وسیله پسوند h. رو بگین ممنون میشم . من بارها این روش رو امتحان کردم نمیدونم دقیقا مشکلم کجاست. در ضمن من فقط میخوام یک تابعی مثلا تابع ()fact رو ایجاد کنم تا مثلا ی جایی که نیاز داشتم فاکتوریل بگیرم ازش استفاده کنم همین،پیچیدگی خاصی نداره

ی سوال دیگه هم داشتم :
آیا تابع جزء صحیح در سرفایل <cmath> یا <math.h > قرار داره و اگه اینطوره اسم تابعش چیه؟
مرسی
 

sirosb

عضو جدید
سلام صدف جون
تابع جزئ صحیح دارای فرمت:
;(abs(number
هست که در هدر فایل
stdlib.h قرار داره و مقدار قدر مطلق عدد number رو بر می گردونه.
ولی واسه سوال اولت فکر کنم استفاده از فایل در ++c به خاطر قدرتی که داره بهتر باشه ولی اگه باید حتما از اون روش استفاده کنی فکر کنم باید حتما تو تابع رو تعریف کنی و تو کتاب خانه ی استاندارد ++c یا کتاب خانه ی تعریفی خودت ذخیره کنی.
 

Unline

عضو جدید
سلام

من فکر می کنم شما مراحل رو دست انجام میدید

فقط یک اشتباه کوچیک احتمالا مرتکب میشید - اون هم اینکه به فرض اسم تابع رو میذارید sadaf ولی اسم فایل رو میذارید به فرض joon - بعد موقع اجرا بر عکس عمل می کنید - یعنی به جای اینکه فایل محتوی تابع رو فراخونی بکنید و تابع رو روی عددتون اجرا کنید - تابع رو فراخونی می کنید و فایل رو اجرا می کنید !

شما در هنگام نوشتن تابع - درون اون وقتی دارید تابع رو تعریف می کنید - براش یه اسمی میذارید - به فرض factr و بعد میاید مشخص می کنید که باید چه کاری انجام بده

در مرحله ی بعد زمانی که تابع رو نوشتید اون رو با یک نام مثلا sadaf ذخیره می کنید - پس در زمان اجرای برنامه باید فایل sadaf رو include کنید و بعد تابع factr رو اجرا کنید - بعضا می بینیم دوستان sadaf رو که فراخونی می کنند همون رو هم در برنامه اجرا می کنند به عنوان تابع و این باعث میشه که ارور بگیرند - اسم فایل رو include کنید و تابعی که درون اون فایل تعریف کردید رو اجرا کنید

اگر ارور دریافت کردید عکسش رو قرار بدید تا بررسی کنیم


ضمنا علاوه بر فرمایش sirosb عزیز شما میتونید برای برگردوندن مقدار صحیح یک عدد - اون رو در یک متغیر int بریزید و اون متغیر رو چاپ کنید - خود به خود قسمت اعشاریش حذف میشه - مثلا تعریف کنید

کد:
double a;
int b;

بعد که a رو از کاربر دریافت کرد ;b=a قرار بده و بعد دستور cout برای b صادر بشه که با ین کار مقدار اعشاری a حذف میشه و خروجی (قسمت صحیح a ) عدد صحیح خواهد بود

موفق باشید
 
آخرین ویرایش:

sirosb

عضو جدید
البته باید تابع دیگری به نام fads وجود داره که از نوع double هست و در کتابخانه ی math.h قرار داره.
و طبیعتا دامنه ی بزرگتری رو پشتیبانی میکنه.
 

Similar threads

بالا