View Full Version : عددی داریم اعشاری چطور میشه برنامه نوشت که چند رقم اعشار داریم؟
lidaline
پنج شنبه 14 آبان 1388, 14:04 عصر
عددی داریم اعشاری چطور میشه برنامه نوشت که چند رقم اعشار داریم؟
خوب اینو فهمیدم که برای عدد صحیح تا زمانی که باقیمانده صفر نشده رقم رو به 10 تقسیم میکنیم ولی در عددهای اعشار مثلا عدد 0.23 رو چیکار باید کرد که کامپیوتر بگه 2 رقم اعشار داره:متفکر:
m.soleimani
پنج شنبه 14 آبان 1388, 16:44 عصر
عددی داریم اعشاری چطور میشه برنامه نوشت که چند رقم اعشار داریم؟
خوب اینو فهمیدم که برای عدد صحیح تا زمانی که باقیمانده صفر نشده رقم رو به 10 تقسیم میکنیم ولی در عددهای اعشار مثلا عدد 0.23 رو چیکار باید کرد که کامپیوتر بگه 2 رقم اعشار داره:متفکر:
سلام عدد اعشار را به یه رشته تبدیل کن و در رشته مورد نظر بعد از نقطه را شمارش کن خیلی سخت نیست اگر نتونستی بگو تا بهت کمک کنم البته این انجمن بیشتر برای اینه که راه را یاد بگیری و خودت برنامه نویس بشی پس اول سعی کن خودت تمومش کنی اگر جواب نگرفتی بگو تا بهت کمک کنم موفق باشی.
tdkhakpur
پنج شنبه 14 آبان 1388, 16:45 عصر
خب رو عدد تبديل به رشته كن و بعد تعداد ارقام بعد از علامت (.) را تا آخر رشته بخوان ميشه تعداد ارقام اعشار.
پاسخ همزمان ارسال شده.
lidaline
پنج شنبه 14 آبان 1388, 18:05 عصر
سلام عدد اعشار را به یه رشته تبدیل کن و در رشته مورد نظر بعد از نقطه را شمارش کن خیلی سخت نیست اگر نتونستی بگو تا بهت کمک کنم البته این انجمن بیشتر برای اینه که راه را یاد بگیری و خودت برنامه نویس بشی پس اول سعی کن خودت تمومش کنی اگر جواب نگرفتی بگو تا بهت کمک کنم موفق باشی.
من2هفته هست که شروع کردم و نمیدونم تبدیل به رشته یعنی چی؟
اگه بشه با مثال توضیح بدید عالی میشه چون واقعا منظورتونو نفهمیدم
m.soleimani
پنج شنبه 14 آبان 1388, 19:30 عصر
من2هفته هست که شروع کردم و نمیدونم تبدیل به رشته یعنی چی؟
اگه بشه با مثال توضیح بدید عالی میشه چون واقعا منظورتونو نفهمیدم
:متفکر:برای دو هفته یکم سوال سنگینی انتخاب کردی چون اگر یه مثال برات بزنم که از اشارهگرها استفاده کرده باشه باز متوجه نمیشی اگر در مورد استفاده از آرایهها بگم باید اونها را هم توضیح بدم و به همین صورت تا آخر ! متوجه هستی که قصد دارم به یادگیری شما آسیب وارد نکنم و در مورد چیزی که اصلن نمیدونی بحث مفصل راه نندازم. ولی برای این که مسیر را اشتباه نری اول باید در مورد درست کردن یه رشته و روشهای دسترسی پیدا کردن به اون اطلاعات کسب کنی, در مورد تبدیل نوعها وبعد در مورد توابع کتابخانهای در سیپلاسپلاس یا سی که مربوط به رشتهها باشن تا برسیم به بحث امروزمون که برات مثال بزنم. موفق باشی
lidaline
پنج شنبه 14 آبان 1388, 19:54 عصر
[quote=m.soleimani;841918]:متفکر:برای دو هفته یکم سوال سنگینی انتخاب کردی چون اگر یه مثال برات بزنم که از اشارهگرها استفاده کرده باشه باز متوجه نمیشی اگر در مورد استفاده از آرایهها بگم باید اونها را هم توضیح بدم و به همین صورت تا آخر ! متوجه هستی که قصد دارم به یادگیری شما آسیب وارد نکنم و در مورد چیزی که اصلن نمیدونی بحث مفصل راه نندازم. ولی برای این که مسیر را اشتباه نری اول باید در مورد درست کردن یه رشته و روشهای دسترسی پیدا کردن به اون اطلاعات کسب کنی, در مورد تبدیل نوعها وبعد در مورد توابع کتابخانهای در سیپلاسپلاس یا سی که مربوط به رشتهها باشن تا برسیم به بحث امروزمون که برات مثال بزنم. موفق باشی[/quote
از اینکه کمکم میکنید خیلی ممنون ولی خوب مجبورم که بنویسم این یه جایی از یه برنامه ای که استادمون ازمون خواسته همه جاشو رفتم فقط تواینجاش اشکال دارم یه راه حل پیدا کردم ولی باز نشد موضوع از این قراره که باید زیره هر عدد اعشاری یه A بذاریم البته گفتم این خود تمرین نیست یه جزز کوچیکشه من این راهو رفتم ولی برای هر عددی جواب نمیده و مغزم دیگه جایی قد نمیده
i =10;
while( b < i)
{
b = b * i ;
printf ("A");
i=i*10;
}
اگه تونستید کمکم کنید
Salar Ashgi
جمعه 15 آبان 1388, 09:55 صبح
معمول ترین روش برای پیدا کردن تعداد ارقام اعشار یک عدد اعشاری اینه که تا زمانی که عدد
ما عدد صحیحی نیست آنرا در 10 ضرب کرده و متغیر counter هر بار افزایش پیدا کند :
#include <iostream>
#include <conio>
#include <math>
bool is_int(float n){
if((floor(n))==n)
return true;
else
return false;
}
int ashar_count(float n){
int f=0;
while(!is_int(n)){
n*=10;
f++;
}
return f;
}
//======================
int main(){
float num;
cin>>num;
cout<<ashar_count(num)<<endl;
getch();
}
موفق باشید !
m.soleimani
جمعه 15 آبان 1388, 15:16 عصر
[quote=m.soleimani;841918]:متفکر:برای دو هفته یکم سوال سنگینی انتخاب کردی چون اگر یه مثال برات بزنم که از اشارهگرها استفاده کرده باشه باز متوجه نمیشی اگر در مورد استفاده از آرایهها بگم باید اونها را هم توضیح بدم و به همین صورت تا آخر ! متوجه هستی که قصد دارم به یادگیری شما آسیب وارد نکنم و در مورد چیزی که اصلن نمیدونی بحث مفصل راه نندازم. ولی برای این که مسیر را اشتباه نری اول باید در مورد درست کردن یه رشته و روشهای دسترسی پیدا کردن به اون اطلاعات کسب کنی, در مورد تبدیل نوعها وبعد در مورد توابع کتابخانهای در سیپلاسپلاس یا سی که مربوط به رشتهها باشن تا برسیم به بحث امروزمون که برات مثال بزنم. موفق باشی[/quote
از اینکه کمکم میکنید خیلی ممنون ولی خوب مجبورم که بنویسم این یه جایی از یه برنامه ای که استادمون ازمون خواسته همه جاشو رفتم فقط تواینجاش اشکال دارم یه راه حل پیدا کردم ولی باز نشد موضوع از این قراره که باید زیره هر عدد اعشاری یه A بذاریم البته گفتم این خود تمرین نیست یه جزز کوچیکشه من این راهو رفتم ولی برای هر عددی جواب نمیده و مغزم دیگه جایی قد نمیده
i =10;
while( b < i)
{
b = b * i ;
printf ("A");
i=i*10;
}
اگه تونستید کمکم کنید
اینم یه مثال البته برای جواب استادت فکر نمیکنم که کار زیادی مونده باشه. ولی این روش جواب به دست آوردن به آینده شما آسیب زیادی خواهد زد چون در محل کار جوابهایی از شما خواسته میشه که تا حد زیادیش را تو هیچ سایت و انجمنی پیدا نخواهی کرد. امیدوارم که موفق باشی
#include <iostream>
using namespace std;
void main(void)
{
char* str = new char[30];
float flt = 2.1983F;
sprintf(str, "%g", flt );
int count = 0,
i = 0;
char flag = '.';
bool t = false;
while(str[i] != '\0')
{
if(str[i] == flag)
t = true;
if( t )
count++;
i++;
}
cout << str << endl
<< count - 1 <<endl;
system("pause");
}
m.soleimani
جمعه 15 آبان 1388, 16:25 عصر
اینم به سبک زبان C
#include <stdio.h>
#define SIZE 30
main()
{
char str[SIZE], flag = '.';
float fNum = 1234.3223F;
int i, count, TF;
i = count = TF = 0;
sprintf(str, "%f", fNum);
printf("Float Number = %f\n", fNum);
printf("String = %s\n", str);
for(i; str[i] != '\0'; i++)
{
if(str[i] == flag)
TF = 1;
if(TF)
count++;
}
printf("Floating = %d\n", count - 1);
getche();
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.