الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ساعدوني من فضلكم

مغلق
بدأه برمجيه جامعيه في 4 ديسمبر 2006 · 2 رد · 517 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

[size=3]السلام عليكم

مرحبا ياعضاء المنتدى الاعزاء ... لو سمحتوا عندي تسليم برنامج غداً بس فيه مشكله بسيطه لااعلم ماهي ؟؟

ممكن تشوفونها لي ؟؟

طريقة عمل البرنامج هي ادخل معادله تتكون من المعامل(coef) والمتغير(x) والأس(power)

الدوال / دالة انشاء وداله تجمع لي الحدود وداله تبحث عن المعامل صفرثم داله اخرى تحذف هذه الداله وداله تبحث عن الأسس المتساويه وداله تجمع معاملات الحدود لها نفس الأس وايضا دالة اضافه ودالة قراءه ودالة طباعه (توجد دالتين هما دالة الاضافه قبل الخليه التي تؤشر عليها المؤشر cursor ودالة الاضافة بعده طبعاً لم احتاجهما فقط شكل وذلك للتوضيح)

البرنامج

#include<iostream.h>

struct monome{

int power;

int coef;

monome *next;};

struct header_record{

monome*head;

monome *cursor;

int count;};

header_record header;

int power;

int coef;

monome *p1,*p2;

void create (){//create

header.head=NULL;

header.cursor=NULL;

header.count=0;}

monome *search(int power){//SEARCH

monome *p=header.head;

while(p!=NULL&&p->power!=power)

p=p->next;

header.cursor=p;

return p;}

void add(monome *address,int coef){//ADD

address->coef+=coef;}

void insert_in_front (int power,int coef){//INSERT_IN_FRONT

monome *p;

p=search(power);

if(p==NULL){

p=new monome;

p->power=power;

p->coef=coef;

p->next=header.head;

header.head=p;

header.cursor=header.head;

header.count++;}

else{add(p,coef);}}

void read_element(){//READ

int power,coef;

cout<<"ENTER THE POWER:\n";

cin>>power;

cout<<"ENTER THE COEFFICIENT:\n";

cin>>coef;

if(coef!=0&&power!=0){

insert_in_front(power,coef);}}

monome *search_0(int coef){//SEARCH_0

monome *p1,*p2;

p1=header.head;

p2=p1;

while(p1!=NULL){

if (p1->coef=0){

header.cursor=p1;

return p1;}

else{p2=p1;

p1=p1->next;

return NULL;}}

void remove (monome *s){//REMOVE

p2->next=p1->next;

delete s;}

void garbage_collector(){//GARBAGE

int coef;

monome *x;

x=search(coef);

while(x!=NULL)

remove(x);}

void print(){//PRINT

monome *ptr;

ptr=header.head;

while(ptr!=NULL){

if(ptr->power==0){

if(ptr->coef>0)

cout<<"+"<<ptr->coef;

else

if(ptr->coef<0)

cout<<"-"<<ptr->coef;}

else

cout<<"+"<<ptr->coef<<"x^"<<ptr->power>>endl;

ptr=ptr->next;}}

int calculate(int x){//CALCULATE

monome *ptr;

int sum=0;

ptr=header.head;

while(ptr!=NULL){

sum=ptr->coef*(x^ptr->power);

sum+=sum;

ptr=ptr->next;}

cout<<"THE SUM IS:"<<sum<<endl;}

void insert_in_middel(int power,int coef){//INSERT_IN MIDDEL

if(header.cursor!=NULL){

monome *p1=new monome;

p1->power=power;

p1->coef=coef;

p1->next=header.cursor->next;

header.cursor->next=p1;

header.cursor=p1;

header.count++;}

else{

header.cursor=new monome;

header.head=header.cursor;

header.head->power=power;

header.head->coef=coef;

header.head->next=NULL;

header.count++;}}

void insert_at_end(int power,int coef){//INSERT _AT_END

if(header.head!=null){

monome *p1=header.head;

while(p1->next!=NULL)

p1=p1->next;

p1->next=new monome;

p1->next->power=power;

p1->next->coef=coef;

header.count++;}

else{p1=new monome;

p1->power=power;

p1->coef=coef;

p1->next=NULL;

header.head=p1;

header.cursor=p1;

header.count++;}}

int main()

{

int p,c,x;

create();

read(p,c);

print();

calculate(x);

}

}

الاخطاء

error C2601: 'remove' : local function definitions are illegal

: error C2601: 'garbage_collector' : local function definitions are illegal

: error C2601: 'print' : local function definitions are illegal

error C2601: 'calculate' : local function definitions are illegal

: error C2601: 'insert_in_middel' : local function definitions are illegal

: error C2601: 'insert_at_end' : local function definitions are illegal

: error C2601: 'main' : local function definitions are illegal

Error executing cl.exe.

ppp.exe - 7 error(s), 0 warning(s)

#2

السلام عليكم

يوجد اشياء كثيرة فى اساسيات اللغة مفقودة.

على العموم البرنامج الآن خالاى من الأخطاء. لكنه لا يعمل بشكل جيد. يجب مراجعة المنطق بشكل كامل.

وضعت تعليقات فى اماكن التغير.

بالتوفيق

// TestArabTeam.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <stdlib.h>
#include <iostream.h>

struct monome{
	int power;
	int coef;
	monome *next;
};

struct header_record{
	monome*head;
	monome *cursor;
	int count;
};

header_record header;
int power;
int coef;
monome *p1,*p2;

void create ()
{//create
	header.head=NULL;
	header.cursor=NULL;
	header.count=0;
}

monome *search(int power)
{//SEARCH
	monome *p=header.head;
	while(p!=NULL&&p->power!=power)
		p=p->next;
	header.cursor=p;
	return p;
}
void add(monome *address,int coef)
{//ADD
	address->coef+=coef;
}
void insert_in_front (int power,int coef)
{//INSERT_IN_FRONT
	monome *p;
	p=search(power);
	if(p==NULL){
		p=new monome;
		p->power=power;
		p->coef=coef;
		p->next=header.head;
		header.head=p;
		header.cursor=header.head;
		header.count++;
	}else{
		add(p,coef);
	}
}
void read_element()
{//READ
	int power,coef;
	cout<<"ENTER THE POWER:\n";
	cin>>power;
	cout<<"ENTER THE COEFFICIENT:\n";
	cin>>coef;
	if(coef!=0&&power!=0){
		insert_in_front(power,coef);
	}
}
monome *search_0(int coef)
{
	//SEARCH_0
	monome *p1,*p2;
	p1=header.head;
	p2=p1;
	while(p1!=NULL){
		if (p1->coef=0){ /// I think you mean ==
			header.cursor=p1;
			return p1;
		}
		else{
			p2=p1;
			p1=p1->next;
			return NULL;
		}
	}
return NULL; // TO complete the funcion
}//--> Missing }
void remove (monome *s)
{//REMOVE
	p2->next=p1->next;
	delete s;
}

void garbage_collector()
{
	//GARBAGE
	int coef = 0; // Added intilization
	monome *x;
	x=search(coef);   /// How can you that 
	while(x!=NULL)
		remove(x);
}

void print()
{//PRINT
	monome *ptr;
	ptr=header.head;
	while(ptr!=NULL){
		if(ptr->power==0){
			if(ptr->coef>0)
				cout<<"+"<<ptr->coef;
			else
				if(ptr->coef<0)
					cout<<"-"<<ptr->coef;
		}else
			cout<<"+"<<ptr->coef <<"x^"<< ptr->power<<endl;  // >>endl changed to <<endl
		ptr=ptr->next;
	}
}

int calculate(int x)
{//CALCULATE
	monome *ptr;
	int sum=0;
	ptr=header.head;
	while(ptr!=NULL){
		sum=ptr->coef*(x^ptr->power);
		sum+=sum;
		ptr=ptr->next;
	}
	cout<<"THE SUM IS:"<<sum<<endl;
	return sum;  //must for the function
}

void insert_in_middel(int power,int coef)
{//INSERT_IN MIDDEL
	if(header.cursor!=NULL){
		monome *p1=new monome;
		p1->power=power;
		p1->coef=coef;
		p1->next=header.cursor->next;
		header.cursor->next=p1;
		header.cursor=p1;
		header.count++;
	}else{
		header.cursor=new monome;
		header.head=header.cursor;
		header.head->power=power;
		header.head->coef=coef;
		header.head->next=NULL;
		header.count++;
	}
}

void insert_at_end(int power,int coef)
{//INSERT _AT_END
	if(header.head!=NULL){  // Change null to NULL
		monome *p1=header.head;
		while(p1->next!=NULL)
			p1=p1->next;
		p1->next=new monome;
		p1->next->power=power;
		p1->next->coef=coef;
		header.count++;
	}else{
		p1=new monome;
		p1->power=power;
		p1->coef=coef;
		p1->next=NULL;
		header.head=p1;
		header.cursor=p1;
		header.count++;
	}
}

int main()
{
	int p,c,x;
	create();
	// Next line must be checked 
	//read(p,c); // May be you mean read_element()
	print();
	calculate(x);

	return 0; // added to match int main.
}

//--> Here extra }
#3

اشكر لك اخي تعاونك ...جعله الله في ميزان حسناتك ...

x=search(coef); /// How can you that

عذرآ خطأ مطبعي

x=search_0(coef); a

وضع نتيجة البحث في المؤشر x

وجزاك الله خيراً اخي بوينتر

اقتباس
x=search(coef); ///How can you that

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…