درخواست توضیح دادن کد برنامه

evb

New Member
#include <iostream.h>#include <math.h>#include <string.h>int main(){ char c[128]; int s=0; cout<<"Enter String "; cin.get(c,128); double j=0; for(int i=strlen(c)-1; i>=0; i-- ) s+=pow(10,j++)*(c-48); cout<<"Result in Integer mode is "<<s<<endl; return 0;}کسی میتونه این قطعه کد رو برام توضیح بده من امروز عضو شدم اگه ممکنه کمک کنید
 

the_king

مدیرکل انجمن
لطفا قوانین فروم رو مطالعه کنید : قوانین استفاده از انجمنها
سوال جدید در مبحث جدید و عنوان مناسب برای مبحث

دسترسی به ورودی و خروجی های استاندارد مثل صفحه نمایش و صفحه کلید :
کد:
#include <iostream.h>

دسترسی به توابع محاسباتی ریاضی :
کد:
#include <math.h>

دسترسی به توابعی رشته ای :
کد:
#include <string.h>

تابع اصلی برنامه :
کد:
int main()
{

تعریف کردن یک رشته c حداکثر 128 کاراکتری ، یک کاراکتر اش کد انتهای رشته یعنی null است در نتیجه در حقیقت
گنجایش 127 کاراکتر را دارد.
کد:
	char c[128];

تعریف کردن متغیر عددی s که قرار است معادل عددی رشته c باشد.
کد:
	int s=0;

نمایش پیغامی که رشته را وارد کن :
کد:
	cout<<"Enter String ";

دریافت کردن رشته c از صفحه کلید :
کد:
	cin.get(c,128);

متغیر عددی j نمادی از یکان و دهگان و صدگان و ... خواهد بود، بصورت 10 به توان j که j از 0 شروع می شود :
کد:
	double j=0;

اگر رشته c برابر با "795" باشد اندیس های آرایه c اینطوری پر خواهد شد :
کد:
c[0]  7
c[1]  9
c[2]  5
c[3]  null
strlen طول رشته c را حساب می کند مثلا 3، یکی از آن کم می کنیم که می شود اندیس آخرین کاراکتر رشته،
مثلا 2
حلقه i را از آخرین اندیس آرایه c تا اولین کاراکتر (اندیس 0) پیمایش می کند :
کد:
	for(int i=strlen(c)-1; i>=0; i-- )

pow عدد 10 را به توان j می رساند که همان یکان و دهگان و صدگان و ... است. بعد j یک واحد بیشتر می شود
تا دفعه بعد فرضا از دهگان به صدگان برسیم. [c[i یک کاراکتر عددی است، مثلا '0' یا '8' ، کد ASCII کاراکتر های
عددی '0' الی '9' برابر با 48 الی 57 هستند. اگر از آنها 48 تا کم کنید به عدد تبدیل می شوند یعنی 0 الی 9
حاصل ضرب یکان دهگان صدگان در رقم را در s جمع می کنیم :
کد:
		s+=pow(10,j++)*(c[i]-48);

پس از تمام شدن حلقه مثلا چنین محاسبه ای در s انجام شده :
کد:
s = 1 * 7 + 10 * 9 + 100 * 5
که همان 795 است.

و مقدار عددی s را نمایش می دهیم :
کد:
	cout<<"Result in Integer mode is "<<s<<endl;

خروج از برنامه
کد:
	return 0;
}

پست به تاپیک جدید منتقل گردید.
 

جدیدترین ارسال ها

بالا