View Full Version : سوال: سوال در مورد پیاده سازی عبارت چندجمله ای
minazare
جمعه 27 اسفند 1389, 10:22 صبح
سلام میخوام یه برنامه بنویسم که یه چند جمله ای از ورودی بگیره بعد ضرایب و توانها رو به صورت جداگانه در آرایه بریزه.نمیدونم چه طور باید این کارو انجام بدم .میشه راهنماییم کنید.این برنامه به زبان c
Salar Ashgi
جمعه 27 اسفند 1389, 12:32 عصر
دوست عزیز ، طبق قوانین سایت ، درخواست کد/انجام پروژه های دانشجویی به هر هدفی ، ممنوع است !
لذا اگر هدفتان چیزی غیر از باشد ، باید ابتدا خودتان کار کرده و حداقل چند خط کدی نوشته باشید و فقط اینجا درخواست
راهنمایی کنید .
موفق باشید ./
minazare
جمعه 27 اسفند 1389, 16:13 عصر
اگه برنامه ای که نوشتم رو واستون بفرستم راهنماییم میکنید؟من قصدم گرفتن کد نیست .فقط راهنمایی میخوام
yaseriran
جمعه 27 اسفند 1389, 21:19 عصر
درود!
برنامه ای که گفتید خیلی ساده است و شما با تعریف دو آرایه می توانید در یک آرایه توانها و در یک آرایه ضرایب را ذخیره کنید. ولی آیا برنامه شما ادامه دارد؟ مثلا اینکه آنها را جمع کنید و یا جمع آنها به روشهای مختلف مانند اسپارس باشد و ...
شما برنامه را تا یک جا جلو ببرید و ما کمک می کنیم...
امیدوارم پیروز باشید!
نرم نرمک می رسد اینک بهار،
خوش به حال ما...
بد به حال ما...
minazare
جمعه 27 اسفند 1389, 21:35 عصر
بله سوال ادامه داره من این قسمتو مشکل داشتم.توی کدم میخوام بنویسم اگه عدد قبل از xبرو توی آرایه توانها .ولی نمیدونم این حرفمو چه طور به زبان سی بنویسم.
yaseriran
جمعه 27 اسفند 1389, 23:01 عصر
درود!
فکر کنم منظورتون این است:
فرض x ضریب و y توان است
while(شرط خروج){
cin>>x>>y;
arr[i++]=x;
arr2[j++]=y;
}
این تیکه برنامه فقط آرایه توان و ضریب را می سازد...
عقل را آفرید و به سخنش آورد...
minazare
شنبه 28 اسفند 1389, 00:23 صبح
cin>>x>>y;میشه بگین معنی این چیه ؟
yaseriran
شنبه 28 اسفند 1389, 01:02 صبح
cin>>x>>y;میشه بگین معنی این چیه ؟
مثلا هر بار x را به عنوان ضریب وارد میکنیم و در آرایه arr ذخیره می شود و برای y هم به عنوان توان وارد می کنیم و در آرایه arr2 ذخیره می شود!!!
mohammadian7
شنبه 28 اسفند 1389, 01:12 صبح
سلام
شما مهمترین کارتون گرفتن فرمول است و خوندن کارکتر به کارکتر آن و اگر فرمول پرانتز گزاری شده باشد به پشته یا همان stack خودمان نیاز پیدا خواهی کرد.
بدون پرانتز گزاری ساده است. و با استفاده از پرانتز گزاری کمی سخت.
minazare
شنبه 28 اسفند 1389, 08:55 صبح
نه من میخوام بدون پرانتز باشه.گرفتن فرمول انجام میشه ولی توی خوندنش مشکل دارم
minazare
شنبه 28 اسفند 1389, 22:59 عصر
پس من بالاخره چه کار کنم راهنماییم نمیکنید؟اخه من اصلا نفهمیدم اون cinچی بود و چه طور استفاده میشد.راه دیگه ای نیست؟اگه این قسمتو انجام بدم مشکلم برای نوشتن بقیه پروژه حل میشه.
yaseriran
یک شنبه 29 اسفند 1389, 01:29 صبح
درود!
دوست گرامی من نمی دونم شما چقدر بلد هستید و یا تا کجای برنامه نوشتید تا بتونم کمکتون کنم؟!
yaseriran
یک شنبه 29 اسفند 1389, 01:32 صبح
آهان...
تو برنامه قبلیتون فهمیدم که شما c کار میکنید نه c++
خوب cin همون scanf در c است.
mohammadian7
یک شنبه 29 اسفند 1389, 02:37 صبح
خوب شما فرض کنید که این رشته به عنوان ورودی است
5x4+3y2+2z2+k
شما رشته را کاراکتر به کاراکتر بخوانید و یک tempمتغیر هم ایجاد کنید
اگر به حرف رسیدید متغیر تمپ که عدد است را در آرایه مربوط به ضرایب ذخیره کنید
و کاراکتر بعدی را اگر عدد بود در آرایه توانها اضافه کنید. و اگر توان نداشت عدد یک را ذخیره میکنید.
NIMA_1981
یک شنبه 29 اسفند 1389, 10:57 صبح
ببن دوست من این برنامه خیلی راحته میشه به 100 مدل نوست من برات اینو نوشتم شاید مشکلت حل بشه حالا خواستی میتونی خیلی راحت تغییر بدی
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main() {
string str ;
str ="2x^2+3y^4z^7+3";
int p=0;
cout << "\nString is : " << str << endl;
while (p <str.length()) {
string s6 (str,p,1);
if (s6=="^"){
string con (str,p-2,1);
cout << "\nconst===>"<< con;
string tav (str,p+1,1);
cout << "\ntavan===>"<< tav;
}
p++;
}
return 0;
}
موفق باشی
minazare
یک شنبه 29 اسفند 1389, 18:24 عصر
من فقط cبلدم .میشه اینی که گفتینو به cبگین نهc++.
ممنون
NIMA_1981
یک شنبه 29 اسفند 1389, 20:20 عصر
اگه عجله نداری فردا برات انجام میدم
minazare
یک شنبه 29 اسفند 1389, 23:01 عصر
نه عجله ندارم بازم ممنون که کمکم میکنید.
minazare
دوشنبه 01 فروردین 1390, 01:09 صبح
برنامه ای بنویسید که
1)یک چند جمله ای را در قالب زیر از ورودی بگیرد(20 امتیاز)
(برای مثال)5x^4+3x^3-4x^2+5x+4
ودر انتها با زدن کلید اینتر گرفتن تمام شود .دقت کنید ترتیب توان ها میتواند هر گونه باشد ولی باید به صورت نزولی توانها ذخیره شود(20 امتیاز).حداکثر تعداد جملات 100عدد میباشد.(moآرایه چند جمله ای .zarمال ضریب.powerام مال توان)
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
void bubble(char[]);
int main()
{
int i=0;//counter mo array
int j=0;//counter zar array
int k=0;//counter power array
char mo[100],zar[100],power[100];
printf("enter moadele:");
for(i=0;i<100;i++)
scanf("%s",mo);
bubble(mo[i]);
for (i=0;i<100;i++)
printf("%d",mo[i]);
}
//*************************
void bubble (char mo[])
{
int i,w,temp;
for (i=99;i>0;i--)
for (w=0;w<i;w++)
if (mo[w]<mo[w+1])
{
temp=mo[w];
mo[w]=mo[w+1];
mo[w+1]=temp;
}
}
//*************************
این یه قسمت از سوال پروژمونه
این کدم برای این قسمت نوشتم ولی مشکل داره
minazare
چهارشنبه 03 فروردین 1390, 12:48 عصر
میشه این کدو اصلاح کنید؟
mohammadian7
چهارشنبه 03 فروردین 1390, 13:35 عصر
توی گرفتن ورودی در صورت استفاده از جملات ساده به نظر من نیازی به علامت توان یا هشتک نیست و میتونید 5y^2 را به صورت 5y2 بگیرید.
minazare
چهارشنبه 03 فروردین 1390, 14:48 عصر
آخه صورت سوال این طور خواسته .یعنی این توان مشکل درست کرده؟
minazare
سه شنبه 09 فروردین 1390, 12:34 عصر
چرا کسی جواب نمیده ؟اگه میشه کدمو جک کنید و اشکالشو بگید
minazare
چهارشنبه 10 فروردین 1390, 18:35 عصر
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
char pol[100];//char array of polynomial
int i;//counter polynomial array
char ch;
int pow[100];//integer array of power
int j;//counter power array
printf ("enter polynomial:\n ");
gets(pol);
ch='^';
for (i=0;i<pol[i];i++)//loop for find power
{
if(pol[i]==ch)
//pow[j++];
printf ("%c\t",pol[i+1]);
if(pol[i]=='x' && pol[i+1]!=ch)
//pow[j++];
printf("%d\t",1);
}
for (i=0;i<pol[i];i++)//loop for find coefficient
{
if (pol[i]=='x')
printf("%d\t",pol[i-1]-48);
}
return 0;
}
این کدو دوباره نوشتم بهتر از اون یکی.ولی باز م نمیتونم این توان و ضریبی که تشخیص دادمو بریزم تو آرایه های جداگونه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.