Jump to content



δημιουργία πολύ απλού αρχείου batch για απλό υπολογισμό


Recommended Posts

Καλησπέρα, θα ήθελα την βοήθειά σας καθότι δεν γνωρίζω καθόλου από προγραμματισμό.

θα ήθελα να φτιάξω ένα πολύ αρχείο batch το οποίο να τρέχει κατευθείαν στον υπολογιστή μου και να μου ζητάει να βάλω τρεις παράμετρους.

α. βάλε μου τον βαθμό ΕΔ1

β. βάλε μου τον βαθμό ΕΕ

γ. βάλε μου τον βαθμό ΕΔ2

 

μόλις βάλω τους τρεις  βαθμούς να κάνει την εξής πράξη:

=(8,5-A*0,01-B*0,02-C*0,01)/0,6

 

και να μου δίνει το αποτέλεσμα (αν γίνεται με 3 δεκαδικα το πολύ)

Το αποτέλεσμά σου είναι: *****

 

φαντάζομαι θα είναι κάτι εύκολο για κάποιον που ξέρει λίγο προγραμματισμό.

Link to comment
Share on other sites

Ρε παιδιά... τι θα γίνει με αυτήν την μάστιγα. από την μέρα που άνοιξε το site το ίδιο πράγμα. τι σε νοιάζει φίλε μου για ποιον λόγο; ρωτάω κάτι συγκεκριμένο. αν δεν ξέρεις μην απαντάς ρε φίλε. μου ήρθαν 4 ειδοποιήσεις ότι έχω μήνυμα, μπήκα με όρεξη να βρω την απάντηση για να κάνω την δουλειά μου και βλέπω όλα τα offtopic. ε ήμαρτον πια.

 

ή δώσε την απάντηση σε αυτό που ρωτάω, ή μην απαντάς καθόλου. δηλαδή rageαρουμε χωρίς λόγο.

  • Confused 1
Link to comment
Share on other sites

43 minutes ago, kots said:

Ρε παιδιά... τι θα γίνει με αυτήν την μάστιγα. από την μέρα που άνοιξε το site το ίδιο πράγμα. τι σε νοιάζει φίλε μου για ποιον λόγο; ρωτάω κάτι συγκεκριμένο. αν δεν ξέρεις μην απαντάς ρε φίλε. μου ήρθαν 4 ειδοποιήσεις ότι έχω μήνυμα, μπήκα με όρεξη να βρω την απάντηση για να κάνω την δουλειά μου και βλέπω όλα τα offtopic. ε ήμαρτον πια.

 

ή δώσε την απάντηση σε αυτό που ρωτάω, ή μην απαντάς καθόλου. δηλαδή rageαρουμε χωρίς λόγο.

Δεν καταλαβαίνω το frustration. Ζητας απο καποιους να σε βοηθήσουν. Ο καθενας βοηθαει με τον δικο του τροπο. Το παιδι ρωτησε γιατι προφανως δεν γινεται με batch μηπως και βοηθησει με καποιο αλλο τροπο. 

 

Δεν γινεται ειναι η απαντηση, γιατι το batch δεν κανει τις πραξεις που θες. (Γινεται αλλα ειναι πολυς ο κοπος )

 

Σε βολευει ας πουμε να περασεις καποια γλωσσα προγραμματισμου? πχ Python?

  • Like 2
Link to comment
Share on other sites

4 hours ago, kots said:

Ρε παιδιά... τι θα γίνει με αυτήν την μάστιγα. από την μέρα που άνοιξε το site το ίδιο πράγμα. τι σε νοιάζει φίλε μου για ποιον λόγο; ρωτάω κάτι συγκεκριμένο. αν δεν ξέρεις μην απαντάς ρε φίλε. μου ήρθαν 4 ειδοποιήσεις ότι έχω μήνυμα, μπήκα με όρεξη να βρω την απάντηση για να κάνω την δουλειά μου και βλέπω όλα τα offtopic. ε ήμαρτον πια.

 

ή δώσε την απάντηση σε αυτό που ρωτάω, ή μην απαντάς καθόλου. δηλαδή rageαρουμε χωρίς λόγο.

 

Με τον φίλο που σου απάντησε διαφωνούμε ουσιωδώς σε πάμπολλα πράγματα. Όμως μπήκε στον κόπο να σκύψει πάνω από το πρόβλημά σου και να προσπαθήσει να σε βοηθήσει. Εάν επιθυμεί, μπορεί να σε ρωτήσει και το ΑΦΜ και τον αριθμό ταυτότητάς σου. Προφανώς δεν είσαι υποχρεωμένος να του απαντήσεις, αλλά οφείλεις να σεβαστείς ότι αφιερώνει τον χρόνο του για να προσπαθήσει να σου δώσει λύση, με τον τρόπο που γνωρίζει εκείνος.

 

Η εναλλακτική είναι να πληρώσεις κάποιον για να σου κάνει τη δουλειά σου και να θέτεις εσύ τους κανόνες της συνεργασίας.

  • Like 1
  • Agree 3
Link to comment
Share on other sites

5 hours ago, kots said:

Ρε παιδιά... τι θα γίνει με αυτήν την μάστιγα. από την μέρα που άνοιξε το site το ίδιο πράγμα. τι σε νοιάζει φίλε μου για ποιον λόγο; ρωτάω κάτι συγκεκριμένο. αν δεν ξέρεις μην απαντάς ρε φίλε. μου ήρθαν 4 ειδοποιήσεις ότι έχω μήνυμα, μπήκα με όρεξη να βρω την απάντηση για να κάνω την δουλειά μου και βλέπω όλα τα offtopic. ε ήμαρτον πια.

 

ή δώσε την απάντηση σε αυτό που ρωτάω, ή μην απαντάς καθόλου. δηλαδή rageαρουμε χωρίς λόγο.

 

Εγώ θα επιμείνω και θα ρωτήσω ξανά τον λόγο. Έχει σημασία και το use case για την απάντηση, όσο , για να το πω ευθέως, το αν προσπαθείς να προσπεράσεις κάποιο assignment για να περάσεις μάθημα διά της πλαγίας οδού. Αν είναι αυτός ο λόγος και εγώ και πιθανόν άλλοι να μην θέλουν να απαντήσουν. Οφείλεις λοιπόν , κατά τη γνώμη μου να δώσεις απάντηση σε αυτό που σε ρωτάει κάποιος που μπορεί να έχει διάθεση να βοηθήσει 

 

Κατά τα άλλα, στο Linux γίνεται αυτό που θες, για windows εμπιστεύομαι τους προλαλλησαντες που λένε ότι μάλλον δεν γίνεται. 

 

Link to comment
Share on other sites

έγινε παιδιά έχετε δίκιο εσείς. στην επόμενη απορία μου, ΑΦΜ, ΑΜΚΑ, λόγους χρήσης υπολογιστή, και αναλυτική αιτιολόγηση της ερώτησης. μπορεί από την απάντησή σας, να θέλω να κλέψω κανένα πανεπιστήμιο και να περάσω το μάθημα. δεν είναι ηθικό, ούτε νόμιμο, μπορεί αυτός που δίνει την απάντηση να μπλέξει, ή να πάει φυλακή κανένας moderator. έχετε δίκιο. την επόμενη φορά θα προσέχω τι ρωτάω.

Link to comment
Share on other sites

Μία ώρα πριν, το μέλος kots έγραψε:

έγινε παιδιά έχετε δίκιο εσείς. στην επόμενη απορία μου, ΑΦΜ, ΑΜΚΑ, λόγους χρήσης υπολογιστή, και αναλυτική αιτιολόγηση της ερώτησης. μπορεί από την απάντησή σας, να θέλω να κλέψω κανένα πανεπιστήμιο και να περάσω το μάθημα. δεν είναι ηθικό, ούτε νόμιμο, μπορεί αυτός που δίνει την απάντηση να μπλέξει, ή να πάει φυλακή κανένας moderator. έχετε δίκιο. την επόμενη φορά θα προσέχω τι ρωτάω.

 

On 17/1/2022 at 1:16 ΜΜ, το μέλος Cyber_Cookie έγραψε:

FYI, το batch δεν υποστηρίζει float.

 

On 19/1/2022 at 10:36 ΠΜ, το μέλος GeorgeVasil έγραψε:

Δεν γινεται ειναι η απαντηση, γιατι το batch δεν κανει τις πραξεις που θες.

 

Η απάντηση έχει δοθεί. Σε ρώτησαν τι θες να φτιάξεις για να σε βοηθήσουν.🤷‍♀️

  • Like 1
Link to comment
Share on other sites

  • 2 years later...
On 1/17/2022 at 11:33 AM, kots said:

Καλησπέρα, θα ήθελα την βοήθειά σας καθότι δεν γνωρίζω καθόλου από προγραμματισμό.

θα ήθελα να φτιάξω ένα πολύ αρχείο batch το οποίο να τρέχει κατευθείαν στον υπολογιστή μου και να μου ζητάει να βάλω τρεις παράμετρους.

α. βάλε μου τον βαθμό ΕΔ1

β. βάλε μου τον βαθμό ΕΕ

γ. βάλε μου τον βαθμό ΕΔ2

 

μόλις βάλω τους τρεις  βαθμούς να κάνει την εξής πράξη:

=(8,5-A*0,01-B*0,02-C*0,01)/0,6

 

και να μου δίνει το αποτέλεσμα (αν γίνεται με 3 δεκαδικα το πολύ)

Το αποτέλεσμά σου είναι: *****

 

φαντάζομαι θα είναι κάτι εύκολο για κάποιον που ξέρει λίγο προγραμματισμό.

 

Η Απάντηση είναι ΝΑΙ 👇 αλλά απλό στον προγραμματισμό δεν είναι τίποτα όμως διαβάζοντας τις απαντήσεις θεωρώ οτι υπάρχει μια παρεξήγηση γενικότερα για τα batch αλλά και τα scripts γενικότερα!

 

Τα Windows batch / cmd, όπως και τα Linux/Mac shell δεν υπάρχουν για να κάνουν υπολογισμους/μεταφορες/τροποιησεις κλπ ενεργειες τα ΙΔΙΑ αλλά για να πουν σε άλλα command line executables τι πρεπει να κάνουν!

 

και αφού έγραψα εξαρχής οτι δεν είναι δουλειά της batch να κάνει υπολογισμούς η Απάντηση στο ερώτημα σου ειναι οτι υπάρχουν αρκετά command line executables που κάνουν υπολογισμούς και το πιο γνωστό ειναι το GNU bc.exe που λόγω fsf.org ειναι open source και φυσικα fork απο τα Linux και θα το βρείτε για κατέβασμα αλλά και τον κωδικα του στο λινκ που έβαλα που μόνο του δεν δουλεύει, θέλει και το readline5.dll που είναι το από κάτω zip με τα dependecies στο ίδιο λινκ πάλι.

 

Το άσχημο με το bc.exe εκτελέσιμο είναι οτι δουλεύει με pipe και αυτό το σημείο με δυσκόλεψε χθες περισσότερο από όλα όταν είδα το μήνυμα  και σκέφτηκα να το φτιάξω μπας και ενδιαφερθείς με τον προγραμματισμό.

 

ΕΠΊΣΗΣ αυτός ο μαθηματικός τύπος είναι λάθος και πρόβλημα για 3 λόγους

 

  1. δεν είναι ομαδοποιημένoς σε group με τις προτεραιότητες εκτέλεσης πράξεων (αλλο το (1/2+3)/8=0,4375 και άλλο το 1/2+3/8=0,875 . το καθένα βλέπεις βγάζει άλλο αποτέλεσμα) και οσο μεγαλύτερους ΒΑΘΜΟΥΣ βάζεις τόσο μικραίνει το αποτέλεσμα!
  2. δεν βγάζει νόημα να αφαιρείς ΒΑΘΜΟΛΟΓΙΑ απο το 0.01... κάτι άλλο  μπορεί να είναι, 0.01. βαθμολογία όμως δύσκολο και φυσικά
  3. Κόμμα(,) δεν χρησιμοποιεί το bc για να κάνει τους υπολογισμούς του. μόνο τελείες (.), έτσι το 8,5 είναι 8.5!

 

έτσι το πρόβλημα σου με τα 3 inputs ως Βαθμούς (θα μπορούσα να κάνω και δυναμικά τα inputs αλλά θα δυσκόλευε πολυ η ανάγνωση του script) και φυσικά φέρνοντας ως αποτέλεσμα μονο 3 δεκαδικούς ο BATCH κώδικας είναι αυτός

 

@echo off

rem Αν σας κλείσει το batch σημαινει οτι χρησιμοποεiτε No utf-8 fonts. 
rem τα default στα windows 10,11 ειναι τα consolas που ειναι utf-8
rem το bc.exe + readline5.dll ειναι απο εδω https://gnuwin32.sourceforge.net/packages/bc.htm
chcp 65001>NUL
setlocal && cd /D "%~dp0"
setlocal enabledelayedexpansion

:dedomena
echo.
echo      Υπολογισμός με 3 Θετικούς Ακέραιους Αριθμούς.
echo.
goto input1


:input1
echo.
set /p StartINPUT1=Γράψε τον 1ο Βαθμό:
echo.
call :checkPositiveNumber0 "%StartINPUT1%"
if %errorlevel% neq 0 (
	call :erroMSG
	goto :input1
) else (
	goto :input2
)

:input2
echo.
set /p StartINPUT2=Γράψε τον 2ο Βαθμό:
echo.
call :checkPositiveNumber0 "%StartINPUT2%"
if %errorlevel% neq 0 (
	call :erroMSG
	goto :input2
) else (
	goto :input3
)

:input3
echo.
set /p StartINPUT3=Γράψε τον 3ο Βαθμό:
echo.
call :checkPositiveNumber0 "%StartINPUT3%"
if %errorlevel% neq 0 (
	call :erroMSG 
	goto :input3
) else (
	goto :ypologismos
)

:erroMSG
echo λάθος αριθμός Βαθμού ...
echo Πρέπει να είναι θετικός αριθμός και μεγαλύτερος του 0
echo ξαναγράψε τον Βαθμό
pause
exit /b

:ypologismos
set /a "apo1=%StartINPUT1%"
set /a "apo2=%StartINPUT2%"
set /a "apo3=%StartINPUT3%"

echo (8.5-!StartINPUT1!*0.01-!StartINPUT2!*0.02-!StartINPUT3!*0.01)/0.6 > temp.txt

for /f "tokens=*" %%a in ('bc -l ^< temp.txt') do set apotelesma=%%a
rem και οι 3 δεκαδικοί που ζητησες...
set "finalapotelesma=!apotelesma:~0,-17!"

cls
echo.
echo       Τα δεδομένα μας είναι: %StartINPUT1%, %StartINPUT2%, %StartINPUT3%
echo.						
echo       Και το αποτέλεσμα του υπολογισμού είναι: %finalapotelesma%
pause
cls
goto dedomena


rem Αλγόριθμος που ελέγχει αν είναι θετικός αριθμός και όχι 0 μιας και μιλαμε για ΒΑΘΜΟΛΟΓΙΑ!
rem πηγή: https://el.gamelink.gr/blog/Pws-Mporeite-Na-Enswmatwsete-Watermark-sta-Video-gia-tis-MkDocs-Selides-me-to-FFmpeg/
:checkPositiveNumber0 
set "validNumber=0" 
if 1%~1 neq +1%~1 ( set /a "validNumber+=1" )
if %~1 equ 0 ( set /a "validNumber+=1" ) 
exit /b %validNumber%


:End 
exit /b 0

 

 

 

 

Έγινε επεξεργασία από Rebel Streamers
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Δημιουργία...

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.