1. حسین :)
  2. برنامه‌نویسی و طراحی وب
  3. یکشنبه, 24 فروردين 1393
سلام
فلوچارتی نوشتم که می تواند دو عدد را بگیرد و ک.م.م و ب.م.م آن را حساب کند.
شما نگاه کنید ببینید خطایی داره یا نه؟
http://8pic.ir/images/88004209923711796009.jpg
اللهم عجل لولیک الفرج
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
میشه لطف کنی کدت رو به صورت متن تو قسمت کد همین جا بنویسی که هم خوندش راحت تر باشه و هم تست کردنش برای من .. ممنون
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
اینکه گفتم طرحتون رو نمی‌فهمم فکر کنم سخت فکر کردید راه حل راحتش لم اقلیدس هست که کدش اینه

int gcd(int x, int y){
if (y == 0) {
return x;
} else {
return gcd(y, x % y);
}
}


الگوریتمش هم اینه


#از x به اندازهٔ y کم کن، و مقدار جدید را به جای x جایگذاری کن
#قدم بالا را آن قدر تکرار کن تا x از y کوچک‌تر شود
#جای x و y را عوض کن و قدم‌ها بالا را تکرار کن، تا وقتی که مقدار x صفر شود؛ در این حالت، مقدار y برابر با ب.م.م. دو عدد x و y خواهد بود.
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
هیچی یه جا لیبل میذاری بعدش دونقطه( : ) بعد هر جا خواستی با دستور goto میری اونجا ... به همین راحتی


lable:somecode ..

,,,


goto lable;
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
هر شرط یک مقدار bool است پس می‌توانی هر چندتا شرط را که خواستی با هم ترکیب کنی با عملگرهای AND ( که به صورت && نوشته میشه) و OR (که به صورت ||) نوشته میشه ... مثلا
اگر a بیشتر از صفر و b کمتر از یک یا a برابر ۱۰ باشد



if((a>0) && (b<1) || (a==10))
{
}

Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
به چند دلیل

۱. آکولاد main بسته نشد
۲. if هیچ خطی بعدش نیست
۳. if اولی اشتباه هست و معنیش نمیشه a و b کوچیکتر از 0 باشه
۴. if دومی هم اشتباهه

درست if اول
if((a<0) &&(b<0)
{
}

درست if دوم

if((a<=b) && (a%b)==0)
{
}
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
لطفا جای عکس از خود کد استفاده کنید
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
هر متغييري در حافظه تعدادي بيت را اشغال ميكند مثلا int داراي ١٦ بيته يهني در حالت علامت دار از منفي ٣٢٧٦٨ تا ٣٢٧٦٧ در اون جا ميشه و در حالت بي علامت صفر تا ٦٥٥٣٥ (٢ به توان ١٦ منهاي ١) حالا اگر به صورت آرايه باشه يعني چند تا ١٦. بيت كنار هم حالا اگر مقداربيتهاي اشغال شده توسط آرايه رو تقسيم بر تعداد بيت هاي اشغال شده در حالت تنها بكنيم طول آرايه بدست مياد

فرض كن يه آرايه داريم به طول ٤ تعداد بيتهاي اشغال شده توسط اون برابر است با. ١٦*٤ يا همان ٦٤ حال اگر اين عدد را تقسيم بر ١٦ بكنيم دوباره به عدد ٤ ميرسيم كه همان طل آرايه است

بر فهم آرايه هم ماتريس ها رو يادت بياد چندتا عدد مستقل كه در كنار هم هستند
Mohammad Shobeiri بهترین پاسخ Pending Moderation
1
رای
پس‌گیری
انشالله که تا انتهای حد توانت امتحانت رو خوب بدی ...
Mohammad Shobeiri بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
طریقه محاسبه‌ی ب.م.م (gcd) رو نمی‌فهمم ... اما در کل بهترین روش برای بدست آوردن gcd الگوریتم اقلیدس

خیلی هم ساده است پیدا سازیش ...
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
تستش کردم ظاهرا درست کار میکنه.
حالا کد نویسی اون به زبان C چطور میشه؟!
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
تا یک جاییشو بلدم.
الان تصویر جدید رو آپلود میکنم.
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
بقیش رو نمی دونم
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
راستش اون تیکه ای که نوشتم مهم نیست شما فقط کد اون قسمت فلوچارت که حلقه هست لطف کنید بنویسید یعنی بعد از از اون جایی که i=1 شده
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
سوال دیگری هم دارم
اگه بخواهیم بعد از اجرا یک دستوری منتقل بشه جای دیگری
کدش چطوریه؟
منظورم تگ یا برچسب گذاریه؟
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
اگه بخواهی دو تا شرط را همزمان بررسی کنه چکار باید کنیم؟
چی باید بنویسیم؟
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
http://8pic.ir/images/06307044064300790069.png
ارورش بخاطر چیه؟
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
در واقع دستور باقیمانده ی a بر b چی میشه؟!
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
تابع رادیکال در C چیه؟
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
http://8pic.ir/images/99669401669942434020.png
ارورش چیه؟
خدا دارم دیوونه میشم!
موضوعش هم در مورد بدست آوردن معادلات درجه 1 و درجه 2 هست.
اللهم عجل لولیک الفرج
حمید بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
قبل از main
int نذاشتی
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
یعنی چطوری؟!
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
ویرایش هم کردم ولی اون ارور هنوز هست!
http://8pic.ir/images/00059191003122653288.png
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
اللهم عجل لولیک الفرج
Mohammad Shobeiri بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
هیچ تابعی نمی‌تونه هیچی نباشه ... شما می‌تونید تابعتون رو از هر نوعی از جمله int تعریف کنید در ضمن در return تابع نیست که آرگومان بگیرد ... پس درستش اینه


int main()
{
return 0;
}
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
http://8pic.ir/images/96201073131408899891.png
هنوز ارورش نرفته!
اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
#include<stdio.h>
#include<math.h>
float main()
{
float a,b,c,del,x,x1,x2;
scanf("a=%f\nb=%f\nc=%f\n",&a,&b,&c);
if (a==0)
{
x=-1*c/b;
printf("\nX=%f",x);
}
del=b*b-4*a*c;
if (del<0)
{
printf("\nno real root!");
}
if (del==0)
{
x=((-1*b)-(powf (del,0.5))/2*a);
printf("\nx=%f",x);
}
x1=(-1*b+powf(del,0.5))/2*a;
x2=(-1*b-powf(del,0.5))/2*a;
printf("\nx1=%f\tx2=%f",x1,x2);
return(0);
}




اللهم عجل لولیک الفرج
حسین :) بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
#include<stdio.h>
#include<math.h>
float main()
{
float a,b,c,del,x,x1,x2;
scanf("a=%f\nb=%f\nc=%f\n",&a,&b,&c);
if (a==0)
{
x=-1*c/b;
printf("\nX=%f",x);
}
del=b*b-4*a*c;
if (del<0)
{
printf("\nno real root!";);
}
if (del==0)
{
x=((-1*b)-(powf (del,0.5))/2*a);
printf("\nx=%f",x);
}
x1=(-1*b+powf(del,0.5))/2*a;
x2=(-1*b-powf(del,0.5))/2*a;
printf("\nx1=%f\tx2=%f",x1,x2);
return(0);
}
اللهم عجل لولیک الفرج
حمید بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
بفرما ./ http://www.shiaupload.ir/images/17685270105506431858.png

کدهایی که جلوش خط کشیدم یا اضافه شدن یا تصحیح
Mohammad Shobeiri بهترین پاسخ Pending Moderation
0
رای
پس‌گیری
ببخشید خونه نبودم ...


اشکال شما مربوط میشه به هدر؛ باید این قسمت بالا اضافه بشه #include "stdafx.h"

شما هیچ نیازی به بقیه بخش‌های که در کد آقا حمید هست ندارید ...

البته همون طور که گفتم return یک تابع نیست که آرگومان بگیره (آرگومان ها در درون پرانتز قرار می‌گیرند) اما شما اصلا نیازی به return ندارید ...

getch هم فقط برای اینکه یهو نپره بیرون و منتظر بشه که شما یک کارکتر وارد کنید تا خارج بشه ... برای این که نتایج رو راحت تر ببینید ... البته برای این کار مجبورید هدر دیگه conio رو اضافه کنید

اما ممکنه مثل من با error c4996 مواجه بشید ...
برای حل اون باید این بخش پایین include ها و بالای همه‌ی کدها این قسمت رو وارد کنید
#pragma warning(disable: 4996)

برای اینکه به خط بد هم نری بهتره در scanf تغییری بدی چون این کارکتر ممکنه که یکسان نباشه بهتره به جای خط بد از خط فاصله استفاده کنی


#include "stdio.h"
#include "stdafx.h"
#include "math.h"

#pragma warning(disable: 4996)


int main()
{
float a, b, c, del, x, x1, x2;

scanf("a=%f b=%f c=%f\n", &a, &b, &c);
if (a == 0)
{
x = -1 * c / b;
printf("\nX=%f", x);
}
del = b*b - 4 * a*c;
if (del<0)
{
printf("\nno real root!";);
}
if (del == 0)
{
x = ((-1 * b) - (powf(del, 0.5)) / 2 * a);
printf("\nx=%f", x);
}
x1 = (-1 * b + powf(del, 0.5)) / 2 * a;
x2 = (-1 * b - powf(del, 0.5)) / 2 * a;
printf("\nx1=%f\tx2=%f", x1, x2);


}
  • صفحه :
  • 1
  • 2


هنوز پاسخی به این پست ارسال نشده است.
البته از آنجایی که هنوز در سایت لاگین نکرده‌اید، اجازه‌ی پاسخ دادن به این پست را ندارید.

ورود / ثبت‌نام

 

کاربران فعال این ماه

AMIR
Super User
مسعود یوسف‌نژاد
نازنین امامی
علی مردانی