# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها >  مقلوب یک عدد

## vbapr2005

سلام بچه ها.
من سال اول رشته ی علوم کامپیوتر هستم. دانشگاه قم  :افسرده:  

همونطوری که میدونید تو ترم اول ما فقط یه درس تخصصی داریم: مبانی کامپیوتر و الگوریتم ها

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

1      شروع
2      n را بخوان (عدد اصلی)
3      10 -> i (منظورم اینه که ده رو ببر تو i)
4      0 -> j
5      0 -> sum (مقلوب عدد اصلی)

6      اگر (براکت (n تقسیم بر i)) بزرگتر از صفر بود آنگاه i*10 ->  i و برو به 6 (همین خط)

7   [(10n/i)] -> A
8   A*(10^j) + sum -> sum
9   j + 1 -> j
10  i/10 -> i
11     اگر i مخالف صفر آنگاه برو به 7

12     sum را چاپ کن
13    توقف کن

فکر می کنم اگه این کد ها رو تو یه کاغذ بنویسید و بعدش بخونید که ببینید چیکار کردم بهتر متوجه بشید چون من خودم هم اینجوری نمی فهمم چی به چیه  :گیج:   :چشمک:

----------


## Developer Programmer

راه ساده تر واسه زمانی که خواستید پیاده سازیش کنید: عدد رو به رشته تبدیل کنید و بعد رشته رو معکوس کنید!

----------


## vbapr2005

> راه ساده تر واسه زمانی که خواستید پیاده سازیش کنید: عدد رو به رشته تبدیل کنید و بعد رشته رو معکوس کنید!


چجوری؟
من هیچ راهی برای مقلوب کردن رشته تو ذهنم نیست. میشه بگی چجوری این کار رو بکنیم؟

----------


## Developer Programmer

for index:=Length(String) to 1 do
 write( String[index] );

----------


## sipo313

من مقلوب را به زبان 
   می خواهم vb6

----------


## vbapr2005

آقا افشین
اونطوری که به ما گفتن دستگاهی که الگوریتم های نوشته شده توسط ما رو میخونه فقط این کارها رو می فهمه:
چاپ کردن، انتساب، جمع، تفریق، ضرب، تقسیم، توان، جذر گرفتن با هر فرجه ای و خلاصه این کار های خیلی ابتدایی
مشکل من هم دقیقا همینه

----------


## علی کاکرودی

1- شروع
2-  a  را بخوان
3- چاپ کن a mod 10  ( باقیمانده تقسیم صحیح عدد مورد نظر بر 10
4-   a \ 10 قرار بده در a  ( تقسیم صحیح a  بر 10)
5- اگر a >0  آنگاه برو به 3
6- پایان

----------


## kimia4099

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

----------


## xxxxx_xxxxx

> سلام
> من فلوچارت  مقلوب یک عدد رو   می خوام. اگه  می شه کمکم کنید.
> ممنون  می شم


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

----------


## xerxesking

دوست عزيز مقلوب يك عدد كه خيلي سادست
مقلوب عدد اعشاري سخته
مثلا 23/45 بايد بشه 54/32

براي مقلوب عدد معمولي :

از دستور 0 تا 8 :

شروع
a را بخوان
0 ==> n
اگر 0<a برو به بعدي و گرنه برو به 7
a mod 10 ==> R
n*10  +  R ==> n
a dive 10 ==> a و برو به 3
n را چاپ كن
پايان

----------


## xerxesking

دوستان اگر كسي الگوريتم مقلوب عدد اعشاري رو داره بده
اين الگوريتم كتاب هاي حل تمرين رو كه ترايس كردم اشتباه بود

شديدا لازم دارم

----------


## nima898

> دوستان اگر كسي الگوريتم مقلوب عدد اعشاري رو داره بده


راهنمایی
آنقدر عدد رو در 10 ضرب میکنیم تا عدد صحیح شود( تعداد ضرب ها --> n)
مغلوب حاصل رو محاسبه میکنیم
تعداد ارقام حاصل --> m
حاصل رو بر 10 به توان (m-n) تقسیم میکنیم

----------


## nima898

اظهار نظری در این مورد نیست؟

----------


## quantomquery

> من مقلوب را به زبان 
> می خواهم vb6



 
For i = Len(Text1.Text) To 1 Step -1
Text2.Text = Text2.Text + Mid(Text1.Text, i, 1)
Next i

----------


## danialafshari

از این کد هم میشه ولی غیر استاندارده

Dim x As Integer
x = InputBox("Number")
Print StrReverse(x)
-----------------------------------------
درستش اینه ولی برای 3 رقمی کار میده 
Dim x As Integer
x = Text1.Text
Dim y As Integer
Dim a, b, c As Integer
a = Int(x / 100)
b = Int(x / 10) - 10 * a
c = x Mod 10
y = Val(c * 100 + b * 10 + a)
Print y

----------


## majid.fe

اینم میشه. خودم نوشتم:




> Private Sub Command2_Click()
> n = Val(Text1.Text)
> a:
> r = n Mod 10
> n = n \ 10
> Label3.Caption = Label3.Caption + Str(r)
> If n > 0 Then GoTo a:
> End Sub

----------


## aservanto

سلام دوستان :)


*این اولین پستمه تو این سایت :) امیدوارم مفید باشم
این کد هم میتونه مغلوب عدد ورودی و محاسبه کنه.متغییرها d و n شدن و با استفاده از دستور scsnf مقدارn که عدد ورودی هست تعیین میشه، سپس با استفاده از حلقه  d ، do while ها که باقی مانده ها هستن ایجاد میشن و با دستور printf هم چاپ میشن رو صفحه مانیتور شرط این اعمال اینه که تا زمانی ادامه داشته باشه که nمخالف صفر باشه :) با دستور getch هم خروجی رو صفحه می مونه.
*
#include<stdio.h>
#include<conio.h>
int main()
{
clrscr();
int n,d;
scanf("%d",&n);
do
{
d=n%10;
printf("%d",d);
n=n/10;
}
while(n!=0);
getch();
return 0;
}

----------


## howdiw

سلام
با این کد هم میشه نوشت:
a=inputbox(a)
a=val(a)
c=1
b=a
X1 b=b\10
if b>0 then c=c+1
if b>0 then go to X1
d=0
for i=1 to c
d=d*10+a-((a\10)*10)
a=a\10
next
print d

منبع:
uciran.ir/17935-1-1.html

----------

