c/c++ תרגול קוד יעיל - עמוד 5 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

c/c++ תרגול קוד יעיל


007המקורי

Recommended Posts

  • תגובות 96
  • נוצר
  • תגובה אחרונה

נכון עובד

אבל הבדיקה אם המספר קטן מ10 בסוף היא מיותרת

הבדיקה היחידה שדרושה היא אם המספר שונה מאפס

הינה הקוד שלי

#include <iostream>

using namespace std;

int main() {
int num=0; //מספר נתון
int i=0; //מונה ספרות
int sum=0; // סכום הספרות
cout << "enter number !";
cin >> num ;

while (num) { //כל עוד המספר שונה מ-0
sum += num%10; //הוסף את ספרת האחדות לסכום הספרות
num = (num / 10); //העלם את ספרת האחדות
++i; //הגדל את מונה הספרות ב-1
}
cout <<i<< endl;
cout <<sum<<endl;
return 0;
}

קישור לתוכן
שתף באתרים אחרים

קלוט 10 מיספרים והדפס את הגבוה ביותר.

יעיל?

זה הקוד.

 #include "stdafx.h"
#include <iostream>

using namespace std;


int main()
{
int num=0,i=0,num_y=0;
cout << "number!";
cin >> num; //קליטה מספר להשוואה
for (i=0;i<9;i++){

cout << "number!";
cin >> num_y; //קליטה בלולאה
if (num >num_y) // השוואה חוזרת:אם אמת קולטים את המיספר הבא
{
continue;
}
num = num_y;//השמה במידה והתנאי לא מיתקיים


}
cout << num <<" num \n";


char f;
cin >> f;
return 0;
}

קישור לתוכן
שתף באתרים אחרים

גירסה יותר יעילה וברורה.

 #include "stdafx.h"
#include <iostream>

using namespace std;


int main()

{
int i=0,num=0,x=0,num_max=0,num_sec=0;
cout << "number!\n";
cin >> num_max;
for (i=0;i < 9;i++){
cout << "numbr !\n";
cin >> num_sec;
//cin >> num;
if (num_max > num_sec )

{
num_max=num_max;
num_sec=num_sec;

}

else
{
num_max=num_sec;
num_sec=num_max;

}




}
cout << num_max <<" num_max"<<endl;
//cout<< num_sec << "numsec"<<endl;


char f;
cin >>f;
return 0;

}

קישור לתוכן
שתף באתרים אחרים

קלוט 10 מיספרים והדפס את הגבוה ביותר ואת השני בגודלו.

הקוד יעיל?

   #include "stdafx.h"
#include <iostream>

using namespace std;


int main()

{
int i=0,num=0,num_max=0,sec=0,x=0,b=0,c=0;
cout << "number!\n";
cin >> num_max;
for (i=0;i < 9;i++){
cout << "numbr !\n";
cin >> num;
c=num_max;

if(num_max < num)
{

x++;
num_max=num;
}

b++;
if (b>x){
if(sec < num)
{
sec=num;
}
}
x++;

if (c < num)
{
sec=c;

}




}

cout <<num_max <<" num_max"<<endl;
cout<<sec<< "num_sec"<<endl;


char f;

cin >>f;
return 0;

}

קישור לתוכן
שתף באתרים אחרים

הדרך היחידה שלי ליבדוק תקוד זה לטרלל (אני לא עובד עם תוכנה).

מצתער על הפשלה :silly::bash:

הוספתי תנאי וניראה שעובד בסדר.

  
#include "stdafx.h"
#include <iostream>

using namespace std;


int main()

{
int i=0,num=0,num_max=0,sec=0,x=0,b=0,c=0;
cout << "number!\n";
cin >> num_max;
for (i=0;i < 9;i++){
cout << "numbr !\n";
cin >> num;
c=num_max; //איתחול ליפני הבדיקות

if(num_max < num){ //מציאת המקס וקידום המונה ב 1
x++;
num_max=num;
}

b++; //קידום המונה
if (b>x){ // השוואה בין המונים
if(sec < num){ //
sec=num; // חישוב ה sec
}
}
if(num_max > num){ // רק במידה ומקס גדול מ נאם קדם את המונה
x++;
}
if (c < num){ // במידה ו מקס קטן מנאם sec=max
sec=c;
}

}

cout <<num_max <<" num_max"<<endl;
cout<<sec<< "num_sec"<<endl;


char f;

cin >>f;
return 0;

}

קישור לתוכן
שתף באתרים אחרים

הדרך היחידה שלי ליבדוק תקוד זה לטרלל (אני לא עובד עם תוכנה).

אז תעבוד עם תוכנה. אי אפשר לתכנת "על הנייר".

תתקין Visual Studio Express:

http://go.microsoft.com/?linkid=9816758

ראה מדריך כיצד ליצור פרוייקט ++C בסיסי:

ועכשיו תוכל להריץ את הקוד שלך כמה שתרצה.

קישור לתוכן
שתף באתרים אחרים

"לבדוק את הקוד" זה לקמפל, להריץ, ולראות שהוא עושה מה שהוא אמור לעשות. זה לא להשתמש בשום "תוכנת בדיקה".

מה רע בלבדוק על נייר? אף אחד לא כותב קוד על נייר, חוץ מתרגילים בסיסיים בבי"ס ובאוניברסיטה. כותבים קוד במחשב. כשמגיעים לכתוב קוד אמיתי, הקוד לא מסתכם ב20 שורות ו-2 לולאות, אלא בעשרות עד מאות קבצים, ואלפי עד עשרות אלפי שורות קוד.

ולפני שאתה בודק האם קוד כלשהו הוא יעיל, קודם כל צריך לבדוק שהוא עובד. איך בודקים שהוא עובד? מריצים אותו - ולא רק פעם אחת, אלא כמה פעמים, על כל מיני קלטים שונים, כדי לבדוק שאתה מכסה את כל המקרים.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.


×
  • צור חדש...