ExDec Ierakstīts Oktobris 16, 2016 Share Ierakstīts Oktobris 16, 2016 (labots) Sveiki, Boot.lv biedri! Uzreiz pasaku, ka šis ir vajadzīgs augstskolai, neprasu neko gatavu, bet varbūt ir kāds, kas var palīdzēt vismaz norādot kā varētu darīt. Ir jāapstrādā dots divdimensiju masīvs, kur katrā rindā ir atšķirīgs kolonnu skaits. Jāsaskaita katrā rindā pozitīvie un negatīvie elementi, tas pats jāizdara arī ar katru kolonnu. Ar rindām problēmu nav, tas ir izdarīts, ar kolonnām būtu arī skaidrs kā to panākt - samainot kolonnas un rindas ar vietām un izmantojot tās pašas rindu funkcijas. Problēmas parādās pie rindu un kolonnu apmaiņas. Vēršos šeit, jo diemžēl internets nav diez ko atsaucīgs šajās lietās un pats esmu nocīnījies jau labu laiku. Atvainojos, ka kods patiesībā ļoti haotisks, bet pašlaik ne tam ir nozīme. Apmaiņas funkcijas vietu iekrāsoju sarkanu. Pašlaik tur esošais kods izvada pirmās kolonnas elementus katru jaunā rindā. (SETQ Q(QUOTE (( 2 -3 4 0 -2)(-4 0 2)(-3 3 -4 3)))) (DEFUN AddPoz (L) (COND ((NULL L)0)((ATOM (CAR L)) (COND ((>(CAR L)0) (+ (CAR L) (AddPoz (CDR L)))) ((CAR L) (AddPoz (CDR L))))) (T(+ (AddPoz (CAR L)) (AddPoz (CDR L))))) ) (DEFUN AddNeg (L) (COND ((NULL L)0)((ATOM (CAR L)) (COND ((<(CAR L)0) (+ (CAR L) (AddNeg (CDR L)))) ((CAR L) (AddNeg (CDR L))))) (T(+ (AddNeg (CAR L)) (AddNeg (CDR L))))) ) (DEFUN +Row (L) (SETQ X (COND ((NULL L) L) (T (CONS (AddPoz (CAR L)) (+Row (CDR L)))) ) ) ) (DEFUN -Row (L) (SETQ Y (COND((NULL L) L) (T (CONS (AddNeg (CAR L)) (-Row (CDR L)))) ) ) ) (DEFUN PrintRow (L I) (SETQ G(LOOP FOR X IN L FOR Y IN I COLLECT (LIST X Y) ) ) (DOLIST (X G) (PRINT X)) ) (DEFUN Inv (L) (WHEN L (PRINT (CAR(CAR L))) (Inv (CDR L)) ) ) (+Row Q) (-Row Q) (PrintRow X Y) (Inv Q) ATBILDE SAŅEMTA, SLĒDZU CIET! PALDIES! Labots Oktobris 16, 2016 - ExDec Link to comment Share on other sites More sharing options...
Recommended Posts