לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 19-06-2009, 20:37
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 1 שנכתבה על ידי abc2007 שמתחילה ב "עזרה במחרוזות שפת C"

הקוד שלך בסדר גמור...
קוד PHP:
 #include <stdio.h>

int strg(chars1chars2);


int main()
{
    
int result 0;
    
char s1[] = "aaabcc";
    
char s2[] = "bcaaac";

    
char s3[] = "abb";
    
char s4[] = "caa";

    
/*should return 1*/
    
printf ("result is: %d\n"result strg(s1s2));
    
/*should return 0*/
    
printf ("result is: %d\n"result strg(s3s4));
    
scanf ("%c",&s1[0]);
    return 
0;
}

int strg(chars1chars2)
{

char array1[256]={0};
char array2[256]={0};
int i;

for(
i=0;s1[i]!=0;i++)
    
array1[(s1[i])]=1;

for(
i=0;s2[i]!=0;i++)
    
array2[(s2[i])]=1;

for(
i=0;i<256;i++)
if((
array1[i]==&& array2[i]==0) || (array2[i]==&& array1[i]==0))
    return 
0;
    return 
1;


ניתן לראות כי כל עוד המחרוזות מחזיקות את אותן האותיות, אתה מקבל ש result מחזיק 1.
במידה והמחרוזות מחזירות אותיות שונות, result מחזיק 0.
בדוגמא שלך, שתי המחרוזות מכילות את אותן תווים ולכן אתה תמיד מקבל 1. תנסה לשנות את המחרוזת השניה במקום baa ל caa כמו שצירפתי למעלה, תדפיס את result ותראה שהכל סבבה.

בהצלחה!
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 20-06-2009, 10:07
  Dark Knight Dark Knight אינו מחובר  
 
חבר מתאריך: 30.07.05
הודעות: 949
שלח הודעה דרך ICQ אל Dark Knight
בתגובה להודעה מספר 2 שנכתבה על ידי Narxx שמתחילה ב "הקוד שלך בסדר..."

המ.. יש רק שני דברים קטנים שמפריעים לי בקוד שלך...
1) אתה לא עושה בדיקה כמותית אלא בדיקה איכותית: אתה רק מוודא שיש את אותן האותיות בשתי המילים מבלי לוודא שיש מספר שווה של חזרות...
הפונקציה שלך תחזיר 1 גם על:
קוד PHP:
 s1="abbbbb";
s2 "bbbaaa"

ונשאלת השאלה האם זו היא ההתנהגות הרצויה בהגדרת התרגיל שלך...
כעקרון קל למדי לתקן את זה: פשוט במקום להציב את הערך 1 במערך תגדיל אותו ב-1 ולאחר מכן תשווה בין ערכי התאים.

2) זה לא טעות להשוות את ערך התא במחרוזת ל-0, אולם זה לא מקובל.. יכולות להיות מערכות בהן התו '0\' לא יהיה 0. מבחינת מודולריות הקוד, רצוי להשתמש ב-'0\' ולא ב-0 בבדיקות מאין אלו...
_____________________________________
חתימתכם הוסרה כיוון שלא עמדה בחוקי האתר. לפרטים נוספים לחצו כאן. תוכלו לקבל עזרה להתאמת החתימה לחוקים בפורום חתימות וצלמיות.

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 20-06-2009, 17:29
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 5 שנכתבה על ידי abc2007 שמתחילה ב "הקוד עובד לי עם שינוי קטן אבל"

משהו לא ברור לי...
אתה אומר ש matrix זה מערך דו-מימדי (בתאכלס, טבלה) שיש לה שלוש עמודות ומספר כלשהו של עמודות.
עד פה, סבבה.
כל אחד מהאיברים במערך הדו מימדי (הטבלה) הזה הוא למעשה מצביע למחרוזת.
עד פה, גם סבבה.
עכשיו, מה שאני לא מבין זה, אם האיבר ה i,j של המערך מכיל מצביע... איך בדיוק הוא מכיל גם את גודל המחרוזת שהוא מצביע עליה?

האם אתה אמור להשתמש ב struct אשר מכיל גם מצביע ל char וגם int וליצור מערך דו-מימדי מהסוג של אותו המבנה?
זה הפתרון היחיד שנראה לי הגיוני לפי השאלה.
משהו כזה:
קוד PHP:
 typedef struct elem_
{
     
charstrPtr;
     
int strLen;
}
Matrix

ואז אתה יוצר מטריצה מסוג המבנה הנ"ל, ואז תוכל לגשת באותו איבר במטריצה, גם למחרוזת עליו הוא מצביע, וגם לאורכה:

קוד PHP:
 Matrix matrix[3][3];
matrix[0][0].strPtr "Blablabla";
matrix[0][0].strLen strlen ("Blablabla");
... 

אם אסור לכם להשתמש במבנים, אז לא ברור לי איך מצביע יכול להחזיק לך גם את אורך המחרוזת וגם את כתובת התא הראשון שלה.
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #23  
ישן 21-06-2009, 13:01
צלמית המשתמש של Narxx
  משתמש זכר Narxx Narxx אינו מחובר  
 
חבר מתאריך: 21.12.04
הודעות: 30,021
בתגובה להודעה מספר 22 שנכתבה על ידי abc2007 שמתחילה ב "ניסיתי לממש את זה..."

שמור אינקסים שונים למעבר על matrix ו numElements.
אם אתה רץ על matrix עם i,j, אז הם ירוצו יותר פעמים מאשר האינדקסים של numElements.
אתה צריך להשתמש ב numElements בלולאה כתנאי העצירה, אבל אתה לא יכול להשתמש באינדקסים i ו- j אצלו כי הם האינדקסים שאתה משתמש בשביל לרוץ על המטריצה.
זאת אומרת, שברגע שתתחיל לרוץ על המטריצה, אתה תשנה בכל פעם את מספר האיטרציות שלך.

משהו אבל לא ברור לי עדיין... ה numElements אמור לשמור את אורך העמודה במטריצה (שהרי את גודל השורה אני יודע, היא 3, וגובה הקוביה משתנה לפי גודל המחרוזת עצמה, אבל שם אני לא צריך לדעת גודל כי היא מסתיימת בבס"א)... מכאן, אני לא מבין מדוע זה צריך להיות במערך דו מימדי ולא חד מימדי.
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה
_____________________________________
בברכה, מתן.
www.MatanNarkiss.com

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 07:38

הדף נוצר ב 0.11 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר