שלום אורח,
השעה עכשיו היא 29/11/21 11:32


 חדשות: נפתח פורום גאדג'טס בו ניתן לדון במחשבי כף יד, מצלמות דיגיטליות, נגנים ניידים, טלפונים סלולאריים כל מה שחדש ומגניב



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

עבור לפורום:  
      צפה בנושא הקודם - צפה בכל ההודעות - צפה בנושא הבא   הגב לנושא  
מאת הודעה
yJoker
Tech Fan
Tech Fan
הודעות: 145


 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: בעיה בקימופול תוכנית
« פורסם ב-06/05/04 16:31 »
דווח לאחראי הפורום הגב עם ציטוט

טוב זאת המישמה שקיבלתי:
"מטריצה ריבועית N*N תקרא יהולמית אם יש בה אפסים במקומות היוצרים צורת יהלום(אי חשיבות לערכים בשאר התאים).
כתוב פונקציה בולאנית המקבלת כפרמטר מערך ואת גודלו של N.
הפונקציה תחזיר T אם המטריצה יהלומית,אחרת יוחזר F.
איפה שיש הערה של סימן שאלה זה אומר שניסיתי לעשות רקורסיה אבל המהדר לא נתן לי!-למה? אז הוספתי :=true....
זה הקוד שרשמתי :(תעתיקו את הקוד למסמך כדי שיהיה רווחים כמו שצריך).
קוד:
program dimond;

type
   ten=1..10;
var
   n:ten;
   

(************eZugi************)
(*****************************)
function eZugi(n:ten):boolean;
var Rcol,Lcol,row:integer;                              (*R/Lcol=right/left col*)
    ary:array[ten,ten]of integer;                       (*matriza*)

   (***function uper.dimond.eZugi***)
   (********************************)
   function u_d_eZugi:boolean;
    
         (***function low.dimond.eZugi****)
         (********************************)
         Function l_d_eZugi:boolean;
           Begin
            if(ary[row,Lcol]=0)and(ary[row,Rcol]=0)then
              begin
               row:=row+1;
                Lcol:=Lcol+1;
                Rcol:=Rcol-1;
      if Rcol <> Lcol then
         l_d_eZugi:=true (*?*)
      else
         u_d_eZugi:=true;
              end;
      End;
     (***End-low dimond***)
     (********************)

   (***begin-function uper.dimond***)
   (********************************)
    Begin   
    if(ary[row,Lcol]=0)and(ary[row,Rcol]=0)then
       begin
         row:=row+1;
         Lcol:=Lcol-1;
         Rcol:=Rcol+1;
         if(row > n / 2) then
            l_d_eZugi
         else
            u_d_eZugi:=true;(*?*)
       end
    else u_d_eZugi:=false;
    End;
    (***end-uper.dimond***)
    (*********************)


(***begin-eZugi***)
(*****************)
begin
   Rcol := n div 2+1;
   if ary[1,Rcol] = 0 then
      begin
        Rcol:=n div 2+1;
        Lcol:=n div 2+1;
   row :=1;
        u_d_eZugi;
      end
   else
      eZugi:=false;
   
   if u_d_eZugi=false then
      eZugi:=false
   else
      eZugi:=true;
      
End;
(***END-eZugi***)
(***************)
   
(*---function Zugi---*)
(*-------------------*)
function Zugi(n:ten):boolean;
var Rcol,Lcol,row:integer;
    ary:array[ten,ten]of integer;
      
   (*---function uper.dimond.Zugi---*)
   (*-------------------------------*)
   Function u_d_Zugi:boolean;
            
      (*---function low.dimond.Zugi---*)
      (*------------------------------*)
      Function l_d_Zugi:boolean;
                Begin
                   if(ary[row,Lcol]=0)and(ary[row,Rcol]=0)then
                    begin
                     row :=row+1;
                      Lcol:=Lcol+1;
                      Rcol:=Rcol-1;
            if Rcol <> Lcol then
                l_d_Zugi:=true(*?*)
            else
                u_d_Zugi:=true;
                      end;
            End;   
      (*---End-low.dimond---*)
      (*--------------------*)
      
      (*---begin-function uper.dimond---*)
     (*--------------------------------*)
     Begin   
         if(ary[row,Lcol]=0)and(ary[row,Rcol]=0)then
            begin
              row :=row+1;
              Lcol:=Lcol-1;
              Rcol:=Rcol+1;
              if(row > n/2) then
                 l_d_Zugi
              else
                 u_d_Zugi:=true(*?*)
              end
           else
         u_d_Zugi:=false;
        End;
       (*---end-uper.dimond---*)
       (*---------------------*)

(*---begin-Zugi---*)
(*-----------------*)
begin
   Rcol := n div 2+1;
   Lcol := n div 2;
   if (ary[1,Rcol]=0)and(ary[1,Lcol]=0) then
      begin
   row:=1;
        u_d_Zugi;
      end
   else
      Zugi:=false;
   
   if u_d_Zugi=false then
      Zugi:=false
   else
      Zugi:=true;
      
End;
(*---END-eZugi---*)
(*---------------*)



(*+++BEGIN-DIMOND+++*)
(*++++++++++++++++++*)
BEGIN
   Zugi :=true;
   eZugi:=false;
   read(n);
   if (n mod 2=1) then
      eZugi(n)
   else
      Zugi(n);

(*+++++++++++++++++++++++++++++++++++++++*)

   if (Zugi) or (eZugi) then
      write('this matriza is a dimon!')
   else
      write('this matriza isnt a dimon!')
END.

(*++END-DIMOND++*)
(*++++++++++++++*)

וגם אני לא יודע אך קוראים נתונים למערך...
תודה לכל העוזרים(מקווה שיהיו כאלו icon_confused.gif )

TheWiz
Techno Team
Techno Team
הודעות: 1864
גיל:42
מין:מין:זכר

 

צפה בפרופיל המשתמש שלח הודעה פרטית שלח Email
מפרט מחשב
נושא: Re:בעיה בקימופול תוכנית
« פורסם ב-19/05/04 22:10 »
דווח לאחראי הפורום הגב עם ציטוט

סורי,
למדתי פסקל לפני 10 שנים אני ממש לא זוכר כלום.

TheWiz.

_______________________________________________
החיים זה לא פקניק

Holy
Tech Fan
Tech Fan
הודעות: 118

מין:מין:זכר

 

צפה בפרופיל המשתמש שלח הודעה פרטית
נושא: Re:בעיה בקימופול תוכנית
« פורסם ב-20/05/04 00:38 »
דווח לאחראי הפורום הגב עם ציטוט

אז למה בכלל להגיב?

על איזה פונקציה הוא מחזיר לך שגיאה?

הצג הודעות מלפני:   
הגב לנושא  



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

עבור לפורום:  

תקנון הפורום    שאלות ותשובות

Powered by phpBB © 2001, 2005 phpBB Group



כל הזכויות שמורות ל-Techno.co.il © 2002. אין להעתיק, לשכפל או להפיץ תכנים מאתר זה ללא רשות מפורשת בכתב ממנהל האתר