تالار گفتمان مانشت
سوال کنکور سال ۸۷ - نسخه‌ی قابل چاپ

سوال کنکور سال ۸۷ - h_kh - 15 آذر ۱۳۹۲ ۱۲:۵۹ ق.ظ

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

const int n=50
int tally
void total()
{
int count
for(count=1; count<=n; count++) tally++;
print(tally);
}
void main()
{
tally=0;
cobegin
{
total();total();
}
راستش توی جوابش گفته tally سراسری هست و دستور tally++ اتمیک نیست. منظور از اتمیک بودن چی هست و در کل جواب این سوال که گفته ۸۳ و ۸۰ نمیتونه باشه چطوری بدست میاد؟
ممنون.

RE: سوال کنکور سال ۸۷ - arezoo174 - 15 دى ۱۳۹۲ ۰۱:۳۷ ق.ظ

(۱۵ آذر ۱۳۹۲ ۱۲:۵۹ ق.ظ)h_kh نوشته شده توسط:  توی برنامه زیر کدامی گزینه نمیتواند خروجی مناسبی باشد؟

const int n=50
int tally
void total()
{
int count
for(count=1; count<=n; count++) tally++;
print(tally);
}
void main()
{
tally=0;
cobegin
{
total();total();
}
راستش توی جوابش گفته tally سراسری هست و دستور tally++ اتمیک نیست. منظور از اتمیک بودن چی هست و در کل جواب این سوال که گفته ۸۳ و ۸۰ نمیتونه باشه چطوری بدست میاد؟
ممنون.
منم اینو مشکل دارم میشه کسی جوابشو بده
اینکه ۵۱ و ۱۰۲ میشه اینه که اول اولی تا ۵۱ اضافه میکنه بعد دومی از ۵۱ دوباره شرو به اضافه کردن میکنه تا ۱۰۲ میرسه یعنی دومی در ادامه اولی عمل میکنه اتمیکم نیست یعنی اینکه میتونه دوفرآیند بهش دسترسی داشته باشن
ولی اینکه چطوری ۱۰۰/۱۰۰ میشه یا ۵۰ و ۵۰ رو نمیدونمHuh