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

دالة traversal

مغلق
بدأه saroona في 27 مارس 2005 · 17 رد · 891 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا اخواني

انه كتبت البرنامج تقريبا كله بس دالة traversal وهي الداله الاخيره مب متأكده منها لانها اكيد خطأ مب عارفه اصيدها شلون اكتبها

بس ابي احد يجيك لي هالداله وباقي الدوال لو ممكن ووقتي فقط لليوم وبكرا

وبعدين ابي اقلبه لclass

#include<iostream.h>

#define size 20

typedef struct{

long cpr;

char name;

float salary;

}employee;

employee list;

int count=0;

int isempty(int c)

{

return(c==0)

}

int isfull(int co)

{

return(co==size)

}

int set-insertpos(long pos, float data)

{

if(isfull())

cout<<"full count add\n";

return(0);

else

for(int i=0;i<count;i++)

{

if(pos=list.cpr)

list.salary=data;

return(1);

}

return(0);

}

int set-insertposfront(float data,long pos){

if(isfull()){

cout<<"full acount data\n";

return(0);

}

set-insertpos(0,data);

return(1);

}

int set-insertposback(float data)

{

if(isfull()){

cout<<"full acount data\n";

return(0);

}

list[count].salary=data;

count++;

return(1);

}

int set-deletpos(long pos)

{

if(isempty()||(pos<0||pos>=size))

return(1);

else{

count--;

for(int i=pos;i<count;i++)

{

list=list[i+1]

return(0);

}

}

int deletposfront(){

if(isempty())

count<<"it is empty\n";

return(0);

else

{

set-deletpos(0);

return(1);

}

int deletposback(){

if(isempty()){

count<<"it is empty\n";

return0;

}

else

count--;

return(0);

}

int printdata(long pos,float data)

{

if(isempty()){

cout<<"it is empty\n";

return(0);

}

else{

for(int i=0;i<count;i++)

if(pos==list.pos)

{

data=list.data;

return(1);

}

return(0);

}

ومشكورين

ساره

#2

السلام عليكم

أختي الكريمة سارة يفضل استخدام الخاصية CODE التي في الأعلى لأنها ترتب البرنامج

#include<iostream.h>
#define size 20

typedef struct{
long cpr;
char name[size];
float salary;
}employee;
employee list[size];
int count=0;
int isempty(int c)
{
return(c==0)
}
int isfull(int co)
{
return(co==size)
}
int set-insertpos(long pos, float data)
{
if(isfull())
cout<<"full count add\n";
return(0);
else
for(int i=0;i<count;i++)
{
if(pos=list.cpr)
list.salary=data;
return(1);
}
return(0);
}
int set-insertposfront(float data,long pos){

if(isfull()){
cout<<"full acount data\n";
return(0);
}

set-insertpos(0,data);
return(1);
}
int set-insertposback(float data)
{
if(isfull()){
cout<<"full acount data\n";
return(0);
}
list[count].salary=data;
count++;
return(1);
}
int set-deletpos(long pos)
{
if(isempty()||(pos<0||pos>=size))
return(1);
else{
count--;

for(int i=pos;i<count;i++)
{
list=list[i+1]
return(0);
}
}

int deletposfront(){
if(isempty())
count<<"it is empty\n";
return(0);
else
{
set-deletpos(0);
return(1);
}
int deletposback(){
if(isempty()){
count<<"it is empty\n";
return0;
}
else
count--;
return(0);

}
int printdata(long pos,float data)
{
if(isempty()){
cout<<"it is empty\n";
return(0);
}
else{
for(int i=0;i<count;i++)
if(pos==list.pos)
{
data=list.data;
return(1);
}
return(0);
}

بالنسبة لأي دالة تستطيعين من خلال الكومبايلر لل ++C أن تبحثي عنها

اللهم صل وسلم وزد وبارك على سيدنا محمد وعلى آله وصحبه وسلم

تعلم كيف تقرأ من ملف باستخدام لغة السي

Routers Programming-الدرس الأول

#3

مرحبا

انه عارفه ان بالكمبايلر يجيك بس انه بالكمبايلر مب عارفه اتوصل لها وقلت يمكن احد يساعدني اسرع في اني اكتبها

وبالنسبه للاكواد مااعرف احط في كود لاني لسه جديده عالمنتدى وهاي السوالف مااعرف لها

ومشكوره

ساره

#4

السلام عليكم

لييش محد راد علي ومساعدني

هل السؤال مب مفهوم والا شلون؟؟؟

#5

هل المطلوب عمل linked list أما ماذا؟

بصراحة نعم, السؤال غير مفهوم. على الأقل انا لم أفهم ما هو اللذي من المفترض ان يعمله البرنامج؟

#6

رحبا

هلا اخوي حسن

المطلوب من السؤال عمل ليست ومن نوع employeeونسوي لها insertفي جميع الحالات ونجيكها وحتى deletوبعدين اخر داله الي مب عارفه اسويهاtraversalانك تطبع هاذي الليست بالمعلومات الي فيها الي اهي cpr,salaryيعني المعلومات كامله الي في الليست

بس انه هاذي اخر داله مب عارفه اضبطها و ابي اسال بعد عن mainل مجرد نسوي للدوال كلها calling??????

بلييز اخوي حسن اذا تقدر ترد علي بسرع هذا اذا فهمت من شرحي حتى

ومشكور على ردك وتسلم

ساره

#7

المطلوب ليست؟ ليش عاملة array؟ الي افهمه من اللست هو linked list و هي غير الـ array!

عموما, على فرض ان الـarray صحيح, الـ traversal مجرد for loop تمشي على جميع عناصر اللست و تطبع كل عنصر.

for(int i=0;i<count;i++)

و لكن عودة الى الـ linked list, ما قمتي به ليس لست بل مجرد مصفوفة عادية.

اللنكد لست لازم الـ structure يكون فيه عنصر اسمه next و يكون مؤشر لنفس نوعه.

struct employee
{
long cpr;
char name[size];
float salary;

employee *next;
}

بالمناسبة, انت في السي بلص بلص لذلك لا تحتاجين الى typedef ..

قبل أن أكمل, اسأل مرة أخرى, هل المطلوب هو linked list ام اي نوع من القوائم حتى لو كانت مصفوفة؟

#8

مرحبا

احنا خذينا inked listبس المطلوب علينا انا انسويه باستخدام مصفوفه(array based list)

وعلى typedefعاادي دكتورنا يكتبه لنا بس ماادري :rolleyes:

#9

دكتوركم قديم :P

حتى

#include<iostream.h>

قديمة, المفروض:

#include <iostream>
using namespace std;
#10

وانه اشوفك اخر مره يوم تصحح لي اخطائي في البرنامج الاولي مسوي لي هالحركه :blink:

:D بس انه غيرتها

احنا مب بس دكتورنا جامعتنا التدريس فيها كله دقه قديمه :wacko:

:) بس ياللاا الحمدلله

ياللا متى بتكمل لي شرح البرنامج وتعدله B)

مشكوور اخووي

#11

traversal يعني تمشي عالقائمة عنصر عنصر .. كما قلت مجرد for loop

اما الـ main فأفترض انه المفروض يعرض مثال لاستخدام اللست ليثبت انها تعمل بشكل صحيح.

#12

زين وشلون اطبعهم مجرد ان cout؟؟؟بس شكتب داخله ؟؟نفس الرموز الي حاطتها داخل structure??

#13

اي نعم ..

مثلا على فرض اننا نريد طباعة موظف e

cout << "cpr: " << e.cpr << " name: " << e.name << " salary: " << e.salary << endl;

او شي من هالقبيل

#14

اهاااا

مشكوور اخوي حسن على الرد السريع ومتابعتك

انه بكتبه وبكمله وبحطه عشان تشوفه لي بعد اذا فيه اخطاء او اشياء المفروض اتعدل او شي لان يبونا نكتبه ب class

#15

مرحبا

سويت البرنامج بclass

بس اهو صح بس طالع لي خطأ واحد اذا تشوفه لي او اذا فيه شي بعد غير مادري

ومشكور اخوي حسن ماتقصر

هذا البرنامج

#include "iostream.h"

#define size 20

struct employee{

long cpr;

char name;

float salary;

}

class List{

private:

int count=0;

employee List;

public:

List(){count==0;}

int isempty(){return(c==0);}

int isfull(){return(co==size);}

int insertpos(long,float);

int insertposfront(float,long);

int insertposback(float);

int deletpos(long);

int deletposfront();

int printdata(long,float);

};

int List:: insertpos(long pos,float data)

{

if(isfull()){

cout<<"full count add\n";

return 0;}

else

for(int i=0;i<count;i++){

if(pos=List.cpr)

List.salary=data;

return 1;}

return 0;

}

int insertposfront(float data,long pos){

if(sifull()){

count<<"full acount add\n";

return 0;}

else insertpos(0,data);

return 1;

}

int insertposback(float data){

if(isfull()){

cout<<"full acount add\n";

return 0;}

else

List[count].salary=data;

count++;

return 1;

}

int deletpos(long pos)

{

if(isempty()||(pos<0||pos>=size))

return 1;

else{

count--;

for(int i=pos;i<count;i++)

{

List=List[i+1];

return 0;}

}

int deletpodfront(){

if(isempty()){

cout<<"it is empty\n";

return 0;}

else {deletpos(0);

return 1;}

}

int deletposback(){

if(isempty()){

cout<<"it is empty\n";

return 0;}

else

count--;

return 1;

}

int printdata(long pos,float data){

if(isempty()){

cout<<"it is empty\n";

return 0;}

else{

for(int i=0;i<count;i++)

cout<<"List\n";

return 1;

}

}

#16

هناك عدة أخطاء, أولا تعريف الـ struct employee يجب ان ينتهي بفارزة منقوطة

ثانيا, في الـclass List هناك متغير داخلي اسمه employee List و الظاهر ان هذا غير مسموح, حاولي تغيييره الى employee list يعني غيري كلمة List الى كلمة أخرى, حتى لو list.

بعدين عندك:

class List{
private:
int count = 0;

لا تستطيعين تعيين قيم للمتغيرات الداخلية للكلاس اثناء تعريفها, يجب يكون ذلك في الـ constructor

و هنا:

List(){count==0;}

أعتقد انك تريدين = بدلا من ==

و هنا

int isempty(){return(c==0);}
int isfull(){return(co==size);}

c و co غير معرفين

على فكرة, هذه الأخطاء أظهرها الـ compiler فقط .. و لا تزال هناك أخطاء أخرى لكن كثيرا منها هو نتيجة للأخطاء الأولى, فحاولى إصلاح تلك الأخطاء أولا ثم حاولي من جديد.

مع العلم اني غيرت الـ

#include "iostream.h"

إلى

#include <iostream>
using namespace std;

كالعادة

تم تعديل هذه المشاركة بواسطة hasan_aljudy في 3 أبريل 2005 في 21:33

#17

قووه اخوي

انه سويت الي قلت لي عليه بس ترى الكومبيايلر مايطلع لي ولا خطأ :blink: لييش؟؟؟

ترى انه مستعيله عليه لبكرا ضروري مادري شفيييه :wacko:

اكا الي سويته

#include "iostream.h"

#define size 20

struct employee{

long cpr;

char name;

float salary;

};

class List{

private:

int count;

employee list;

public:

List(){count=0;}

int isempty(int c){return(c==0);}

int isfull(int co){return(co==size);}

int insertpos(long,float);

int insertposfront(float,long);

int insertposback(float);

int deletpos(long);

int deletposfront();

int printdata(long,float);

};

int List:: insertpos(long pos,float data)

{

if(isfull()){

cout<<"full count add\n";

return 0;}

else

for(int i=0;i<count;i++){

if(pos=List.cpr)

List.salary=data;

return 1;}

return 0;

}

int insertposfront(float data,long pos){

if(sifull()){

count<<"full acount add\n";

return 0;}

else insertpos(0,data);

return 1;

}

int insertposback(float data){

if(isfull()){

cout<<"full acount add\n";

return 0;}

else

List[count].salary=data;

count++;

return 1;

}

int deletpos(long pos)

{

if(isempty()||(pos<0||pos>=size))

return 1;

else{

count--;

for(int i=pos;i<count;i++)

{

List=List[i+1];

return 0;}

}

int deletpodfront(){

if(isempty()){

cout<<"it is empty\n";

return 0;}

else {deletpos(0);

return 1;}

}

int deletposback(){

if(isempty()){

cout<<"it is empty\n";

return 0;}

else

count--;

return 1;

}

int printdata(long pos,float data){

if(isempty()){

cout<<"it is empty\n";

return 0;}

else{

for(int i=0;i<count;i++)

cout<<"List\n";

return 1;

}

}

وبالنسبه للinclude "iostream.h"

قلت لك ان اول مره سويته لي(اقصد اول برنامج ساعدتني فيه) طلع لي الكومبايلر خطأ مااستوى الا يوم غيرته لنفس الي اكتبه؟؟؟حتى احين يطلع لي فيه خطأ واذا اغيره ماايطلع لي الكومبايلر اخطاء فيه :unsure:

#18

إذا كان هناك خطأ في الـ include فعادة الكومبايلر سيظهر خطأ واحد فقط, و هذا الخطأ هو في الـ include.

جربي تضعي <> حول iostream.h بدلا من الـ " "

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

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