شمارش تعداد دفعات صدا زدن یک تابع
سلام
میخوام برنامه ای بنویسم که به تعداد دفعاتی که تابع صدا زده میشه، پارامتر تابع رو (که یک string هست) چاپ کنه. و برای محاسبه تعداد دفعات فراخوانی تابع نباید از یک پارامتر int که در هدر تابع تعریف شده استفاده کنه.
این پروژه دانشجویی نیست، یکی از سوالات کتابی هست که میخونم.
برنامه کامل رو نمیخوام، فقط برای تعداد دفعات تکرار تابع نمیدونم باید از چه راهی استفاده کنم. اگه میشه ی راهنایی بکنید.
در ضمن اینکه در main یک متغیر تعریف کنم و بعد از صدا زدن تابع مقدار اون رو افزایش بدم و از for برای تکرار صدا زدن تابع استفاده کنم، هم ، غلطه.
ممنون
نقل قول: درخواست راهنمایی در نوشتن یک برنامه
دوست عزیز به متغیر از نوع static تعریف کن تو تابع مشکلت حله
void geek(string s)
{
static int x;
x++;
for(int i=0;i<x;i++)
cout<<s;
}
چون متغیر x یه متغیر static هستش تو هر دفعه اجرای تابع مقدار قبلیش ذخیره می شه
1 ضمیمه
نقل قول: درخواست راهنمایی در نوشتن یک برنامه
میتونید از متغیرهای global استفاده کنید :
#include <iostream>
#include <conio>
#include <string>
using namespace std;
int cnt=0;
void print(string str,int n){
cnt++;
for(int i=1;i<=n;i++)
cout<<str<<endl;}
//========================
int main(){
for(int i=1;i<=4;i++){
print("salar",i);
cout<<"========\n";}
cout<<"Count is :"<<cnt<<endl;
getch();
}
نقل قول: درخواست راهنمایی در نوشتن یک برنامه
نقل قول:
نوشته شده توسط
Salar Ashgi
میتونید از متغیرهای global استفاده کنید :
#include <iostream>
#include <conio>
#include <string>
using namespace std;
int cnt=0;
void print(string str,int n){
cnt++;
for(int i=1;i<=n;i++)
cout<<str<<endl;}
//========================
int main(){
for(int i=1;i<=4;i++){
print("salar",i);
cout<<"========\n";}
cout<<"Count is :"<<cnt<<endl;
getch();
}
نقل قول:
میخوام برنامه ای بنویسم که به تعداد دفعاتی که تابع صدا زده میشه، پارامتر تابع رو (که یک string هست) چاپ کنه
نقل قول:
و برای محاسبه تعداد دفعات فراخوانی تابع نباید از یک پارامتر int که در هدر تابع تعریف شده استفاده کنه.
نقل قول:
در ضمن اینکه در main یک متغیر تعریف کنم و بعد از صدا زدن تابع مقدار اون رو افزایش بدم و از for برای تکرار صدا زدن تابع استفاده کنم، هم ، غلطه.
تصحیح شد:
در کد بالا برای اینکه تعدا چاپ رشته (که همون تعداد فراخوانی تابع هستش) ذخیره بشه از i که توسط حلقه به تابع فرستاده شده استفاده شده که طراح سوال اینو نخواسته !!!!
هر چند cnt تعدا کل فراخوانیها رو نشون داده که طراح سوال اینو مطرح نکرده بود
int cnt=0;
void print(string str){
cnt++;
for(int i=1;i<=cnt;i++)
cout<<str<<endl;
}
منظور نویسنده اینه که رشتهی مورد نظر تو تابع به تعداد فراخوانی های تابع چاپ بشه و این تعداد فراخوانی نباید توسط حلقه به تابع فرساده بشه
نقل قول: شمارش تعداد دفعات صدا زدن یک تابع
چیزی اشتباه نبود که بخواد تصحیح بشه !
نقل قول:
منظور نویسنده اینه که رشتهی مورد نظر تو تابع به تعداد فراخوانی های تابع چاپ بشه و این تعداد فراخوانی نباید توسط حلقه به تابع فرساده بشه
قرار نیست که همه چی رو آماده به آدم تحویل بدن ، این فقط یه ایده بود ، تکمیل کردن برنامه با اهداف مورد
نظرش به عهده نویسنده ...
نقل قول: درخواست راهنمایی در نوشتن یک برنامه
نقل قول:
نوشته شده توسط
Salar Ashgi
میتونید از متغیرهای global استفاده کنید :
#include <iostream>
#include <conio>
#include <string>
using namespace std;
int cnt=0;
اگه متغیره گلوبالت رو مساوی صفرم قرار ندادی اشکال نداره :دی خودش به طور پیش فرض صفر هست