עבור לתוכן

עזרה בהבנת קוד C++

Featured Replies

פורסם

יש לי קוד שאני אמורה לפרט מה קורה בכל שורה.

אני מבינה מה קורה בתוך הפונקציה,הבעיה שלי היא להבין את מה שהולך בתוכנית הראשית,פוינטרים,מה חוזר למה מהפונקציה,למה וכו'

אשמח לקבל הסבר.

ניסיתי לשבת על זה הרבה ובאמת שאני לא מבינה.

תודה רבה.


#include <stdio.h>
#include <stdlib.h>
int* func(int vec[],int n);
void main(){
int i, vec[10]={0}, *ptr, *ptr1;
int k=sizeof(vec)/sizeof(vec[0]);
ptr = func(vec ,k);
ptr1=ptr+k-1;
printf("in main :\n");
for(i=0; i<k; i++){
vec[i]=*(ptr1-i);
printf("%3d, %3d\n",vec[i],*(ptr+i));
}
free((void *)ptr);
getch();
}

int* func(int vec[],int n){
int i,*ptr;
ptr=(int*)malloc(n*sizeof(int));
if(!ptr){printf("alloc failed"); getch();exit(1);}
for(i=0;i<n;i++){
vec[i]=n-i;
*(ptr+i)=i*i;
printf("%3d, %3d\n",vec[i],*(ptr+i));
}
return ptr;
}




פורסם

ראשית כדאי להבין מתי מדובר במצביע ומתי לא, להבין את התחביר של סוגי המשתנים השונים, מערכים וכולי.

ניסית להריץ את התוכנית ולראות מה קורה? ניסית לעקוב עם דיבאגר שורה אחרי שורה?

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

פורסם

אני מבינה מה קורה בתוך הפונקציה,הבעיה שלי היא להבין את מה שהולך בתוכנית הראשית

אז מה קורה בפונקציה? בואי תסבירי. זו התחלה טובה.

פורסם
  • מחבר

כן ניסיתי להריץ בדיבגר,הצלחתי ע"י להבין פחות או יותר מה הולך בפונקציה,זה מה שהבנתי:

הפלט הראשון בוצע ע"י הפונקציה, והיא מדפיסה בעמודה הראשונה סדרה חשבונית, מאורך הלולאה ועד 0.

העמודה השנייה היא סדרה של מספרים מ-0 עד אורך הלולאה, כאשר כל מספר הועלה בריבוע.

אני מתקשה בנושא של פויינטרים מערכים וכו

כמה שאני לא קוראת בנושא זה פשוט לא מחלחל עד הסוף.

כל מה שהולך בMAIN מבלבל אותי החל מפה:


;
printf("in main :\n");
for(i=0; i<k; i++){
vec[i]=*(ptr1-i);
printf("%3d, %3d\n",vec[i],*(ptr+i));


פורסם

תנסי להבין מה עושה הפקודה הזאת:

*(ptr1-i)

פורסם
  • מחבר

הלוואי והייתי מבינה ???

הפוינטרים האלה פשוט לא נקלטים לי..

פורסם

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

פורסם
  • מחבר

הסתדרתי,תודה רבה! ;D

שאלה נוספת-מיון מערך(סליחה על החפירות[: )אפשר הסבר/הדרכה לאיך ממיינים מערך בסדר יורד עם הקצאה דינמית??

אני יודעת שיש את פונקציית באבל וסוופ.

האם אני פשוט מעתיקה אותן כמו שהן או שצריך להוסיף דבר נוסף?

התחלתי לכתוב קוד ואינני יודעת איך להמשיך..


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void Get_Lost(char *s);
void main()
{
unsigned n;
int *ptr,i,j;
printf("enter the number of integers:");
scanf("%u",&n);
ptr=(int *) malloc(n*sizeof(int));
if(!ptr)
Get_Lost("no memory is available, exit");
printf("enter %u integers: ",n);
for(i=0;i<n;i++)
scanf("%d",&ptr[i]);



פורסם

conio.h? מאיפה בדיוק את לומדת?

נראה שאת מנסה לפתור תרגילים בלי להבין אותם. את יודעת מה זה bubble sort? את יודעת מה מבצעת הפונקציה swap?

כעיקרון יש שני סוגי מיונים - מיונים מבוססי השוואות והשאר.

המיון הפשוט ביותר הוא bubble sort, כדאי שתביני איך הוא פועל ולמה הוא עובד.

ארכיון

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

דיונים חדשים