freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Δυσλειτουργία σε πολύ απλό script -solved!-


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [4 Μηνύματα]      Bookmarks Tags: script Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
SimonTheSorcerer


Μέλος από: 04 Φεβ 2006
Μηνύματα: 202
Περιοχή: Αθήνα
View users profile
ΜήνυμαΣτις: 11 Απρ 2007 02:25    Θέμα: Δυσλειτουργία σε πολύ απλό script -solved!- Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σε όλους. Είμαι άσχετος από προγραμματισμό, είχαμε κάνει λίγη pascal/delphi στο Πανεπιστήμιο και προσπαθώ να γράψω ένα απλό script-άκι για να αυτοματοποιήσω κάποιες λειτουργίες σε μια σκηνή στο πρόγραμμα Cinema 4D. Το cinema δέχεται C++.

Από αλλού άρχισα και αλλού κατέληξα. Άρχισα να το γράφω γιατί ήθελα βοήθεια στην σύνταξη, αλλά με βοήθεια από εδώ (βρήκα το link ψαχουλεύοντας τα θέματα της συζήτησης), το σύνταξα σωστά! Δυστυχώς η χαρά μου διεκόπει όταν είδα ότι δεν δουλεύει καλά. Έχω αυτό το απλό script, με 6 μεταβλητές: Input1, Input2, Input3, Output1, Output2, Output3:

κώδικας:
main()
{
   if
      (Input1 < 1) {
      Output1 = 0;
      Output2 = 0;
      Output3 = 0.0274157;
   } else if
      (Input2 < 1) {
      Output1 = 0.0548314;
      Output2 = 0;
      Output3 = 0;
   }   else if
      (Input3 < 1) {
      Output1 = 0.0822471;
      Output2 = 0.0822471;
      Output3 = 0;
   }   else
      Output1 = 0;
      Output2 = 0;
      Output3 = 0;
}


Το μόνο που λειτουργεί από τα παραπάνω είναι το
κώδικας:
else if
      (Input3 < 1) {
      Output1 = 0.0822471;


Το Output2 παραμένει αδρανές και σε αυτή την περίπτωση. Το ψάχνω αλλά δεν βρίσκω τίποτα.
Ευχαριστώ προκαταβολικά για την όποια βοήθεια!!

Edit:
Γιούχου! Το έκανα και δούλεψε! Με την κλασσική αφαιρετική μέθοδο του "σβήνω μέχρι να δουλέψει" είδα ότι το ενοχλούσε το τελευταίο "else" και αφού το έκανα κι εκείνο "else if" όλα δουλεύουν ρολόι.
Με λίγη βοήθεια και από αυτό το site το σύνταξα σωστά. Πολύ χάρηκα, δεν περίμενα να μου χρησιμεύσουν ποτέ οι εμβρυακές γνώσεις από την pascal που κάναμε σε 1 μάθημα στο πανεπιστήμιο, νόμιζα ότι τα είχα ξεχάσει όλα!
Ευχαριστώ πολύ τον papageorge για τα links που τα είχε post-άρει σε άλλο θέμα!

Μιας και δεν μπορώ να σβήσω το μήνυμα, ας γράψω και την λύση.

Για την ιστορία λοιπόν, ο σωστός κώδικάς είναι:
κώδικας:
main()
{
   if
      (Input1 < 1) {
      Output1 = 0;
      Output2 = 0;
      Output3 = 0.0274157;
   } else if
      (Input2 < 1) {
      Output1 = 0.0548314;
      Output2 = 0;
      Output3 = 0;
   }   else if
      (Input3 < 1) {
      Output1 = 0.0822471;
      Output2 = 0.0822471;
      Output3 = 0;
   }   else if
      (Input1 >= 1 & Input2 >= 1 & Input3 >= 1) {
      Output1 = 0;
      Output2 = 0;
      Output3 = 0;
}
}

_________________
And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy my brothers. And you will know my name is the Lord, when I lay my vengeance upon thee.
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 11 Απρ 2007 13:49    Θέμα: Re: Δυσλειτουργία σε πολύ απλό script -solved!- Απάντηση με παράθεση  Mark this post and the followings unread

Ενας άλλος κώδικας είναι:
κώδικας:
main()
{
   if
      (Input1 < 1) {
      Output1 = 0;
      Output2 = 0;
      Output3 = 0.0274157;
   } else if
      (Input2 < 1) {
      Output1 = 0.0548314;
      Output2 = 0;
      Output3 = 0;
   }   else if
      (Input3 < 1) {
      Output1 = 0.0822471;
      Output2 = 0.0822471;
      Output3 = 0;
   }   else
   {   //<-  Θέλει άγκιστρα
      Output1 = 0;
      Output2 = 0;
      Output3 = 0;
   }   //<-  Θέλει άγκιστρα
}
SimonTheSorcerer


Μέλος από: 04 Φεβ 2006
Μηνύματα: 202
Περιοχή: Αθήνα
View users profile
ΜήνυμαΣτις: 11 Απρ 2007 19:25    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Ah, ώστε ήθελε άγκιστρα και το "else", γι΄αυτό δεν δούλευε. Thanks!

_________________
And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy my brothers. And you will know my name is the Lord, when I lay my vengeance upon thee.
spookyb52


Μέλος από: 23 Ιαν 2002
Βοηθήματα: 26
Scripts: 5
Μηνύματα: 256+

Περιοχή: Lost in the mansion
View users profile Visit posters website
ΜήνυμαΣτις: 12 Απρ 2007 16:26    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

και άλλος ένας τρόπος είναι και αυτός Just an arrow?

κώδικας:
main()
{
   switch(true)
   {
case 1:
// code to execute
break;

case 2:
// code to execute
break;

case 3:
// code to execute
break;

default:
// code to execute
break;

   }
}
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [4 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Τώρα είναι 17 Ιαν 2017 14:57 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos