SemikolonP Skrevet 17. mars 2007 Rapporter Del Skrevet 17. mars 2007 (endret) Sitter her i Notepad og prøver å lage en kalkulator som skal regne ut tilført effekt i en trefasemotor. Problemet er at svare blir helt feil. Formelen for å regne ut effekten er P=U*I*[kvadratroten i 3 (eller 1,73205081)]*cos phi P=Effekt (oppgis i W (watt)) U=Spenning (oppgis i V (volt)) cos phi (cosinus phi)=effektfaktor Sånn ser programmet ut sålangt: @echo off set /p voltage=U: set /p ampere=I: set /p cosphi=cos phi: echo P=U*I*1,73205081*cos phi echo =%voltage%V*%ampere%A*1,73205081*%cosphi% set /a power=%voltage%*%ampere%*1,73205081*%cosphi% echo =%power%W pause Her har jeg et eksempel her, der U=230V, I=33A og cos phi=0,84. U: 230I: 33 cos phi: 0,84 P=U*I*1,73205081*cos phi =230V*33A*1,73205081*0,84 =7590W Press any key to continue . . . Men når jeg regner ut med en annen kalkulator, blir svaret 11042,863144236, og da må det jo være noe feil i bat-fila men jeg finner ikke noen feil selv. Noen som kan hjelpe meg? Edit: Forandra emnetittel Endret 19. mars 2007 av ;P Lenke til kommentar
Jaffe Skrevet 17. mars 2007 Rapporter Del Skrevet 17. mars 2007 Jeg har ingen direkte løsning på problemet, men jeg råder deg til å gå over på et programmeringsspråk, f.eks. Python. Da får du løst problemet mye enklere, og på en bedre måte enn med .bat-filer. Jeg forstår i grunn ikke hvorfor alle er så opptatte av .bat-filer her? .bat er laget for å automatisere terminaloperasjoner ved å kjøre flere kommandoer etter hverandre, ikke for å lage programmer i. Lenke til kommentar
GeirGrusom Skrevet 17. mars 2007 Rapporter Del Skrevet 17. mars 2007 (endret) Batchscript regner ikke med flyttall. Men dette kan enkelt gjøres i et hvilket som helst annet programmeringsspråk. edit: oppdatert kalkulatorprogrammet mitt (C#) Krever .NET Framework 2.0 for å kjøre Skriv inn et uttrykk i tekstboksen, og den vil løse det støttede operasjoner er: Klikk for å se/fjerne innholdet nedenfor funksjoner: sin cos cosh tan trunc tanh asin acos atan sinh exp log floor ceiling pow round sqrt modulus abs Konstanter: pi phi Integer funksjoner er ikke støttet, dette gjelder: << >> & | ^ ~ en test vil se slik ut: (verdi [test] verdi ? [sann] : [usann]) Samme som Iif i Visual Basic test kan være: == != < <= > >= man kan også bruke logical operasjoner, som og, eller osv: && (And) || (Or) ^^ (Exclusive Or) ! (Logical Not) Listen vil inneholde variabler. Fordelen med variabler, er at du kan endre de, uten at funksjonen må kompileres på nytt, pluss at du enkelt kan bytte ut deler av uttrykket uten å endre selve uttrykket. CSharpMath.zip Endret 17. mars 2007 av GeirGrusom Lenke til kommentar
SemikolonP Skrevet 18. mars 2007 Forfatter Rapporter Del Skrevet 18. mars 2007 Så da er det ikke mulig å bruke formelen P=U*I*1,73205081*cosphi i bat? Lenke til kommentar
GeirGrusom Skrevet 18. mars 2007 Rapporter Del Skrevet 18. mars 2007 (endret) Nei Det er det ikke Dette er utenom det bat var beregnet for Batch betyr klump, gruppe, bunke Det var ment for å starte en rekke med kommandoer etterhverandre Endret 18. mars 2007 av GeirGrusom Lenke til kommentar
SemikolonP Skrevet 18. mars 2007 Forfatter Rapporter Del Skrevet 18. mars 2007 Noen som har et annet forslag til hvordan man kan gjøre den formelen i batch da? Lenke til kommentar
GeirGrusom Skrevet 18. mars 2007 Rapporter Del Skrevet 18. mars 2007 Du kan begynne med å se på denne listen, så får du litt å velge imellom: List of programming languages Lenke til kommentar
aadnk Skrevet 19. mars 2007 Rapporter Del Skrevet 19. mars 2007 (endret) Du må nok bruke et annet programmerings-/skripspråk til dette. Et mulig alternativ kan være VBScript. Large følgende kode i en fil med navn Kalkulator.vbs: Klikk for å se/fjerne innholdet nedenfor ' Kvadratroten av 3Const Multiplyer = 1.73205081 ' Henter variabler U = CDbl(InputVariable("Enter voltage")) I = CDbl(InputVariable("Enter ampere")) PowerFactor = CDbl(InputVariable("Enter power factor")) ' Utfør kalkulasjon P = U * I * Multiplyer * PowerFactor ' Skriv ut resultat With WScript .Echo "P = U * I * " & Multiplyer & " * PowerFactor" .Echo " = " & U & "V * " & I & "A * " & Multiplyer & " * " & PowerFactor .Echo " = " & P & "W" End With Pause ' Nødvendige støttemetoder Function InputVariable(Text) With WScript ' Fortell brukeren at vi behøver inndata .StdOut.Write Text & ": " ' Returner inndata InputVariable = WScript.StdIn.ReadLine() End With End Function Sub Pause() ' Venter til brukeren responderer WScript.StdOut.Write "Press any key to continue ..." WScript.StdIn.Skip(1) End Sub Høyreklikk så på resultatfilen og velg Kjør i kommandomodus. Du vil da få opp en tilsvarende kommandolinje som BAT-filen din, men med flyttallstøtte. Endret 19. mars 2007 av aadnk Lenke til kommentar
SemikolonP Skrevet 19. mars 2007 Forfatter Rapporter Del Skrevet 19. mars 2007 Takker for litt hjelp, aadnk, men jeg prøver å få det inn i en enkelt fil, i et programmeringsspråk jeg skjønner litt av. Fra nå av ønsker jeg bare batch/dos skript her. Alle som føler for å si "Batch suuuger! Bruk C++" eller lignende, kan finne en annen tråd å poste i. Lenke til kommentar
Jaffe Skrevet 20. mars 2007 Rapporter Del Skrevet 20. mars 2007 Kan du ikke bare forstå at det ikke går å regne med flyttall i batch? Du må bruke et mer avansert språk (vel, det kan vel gå med nok fikling, men da sitter du der med kode som stort sett uleselig). Få det inn i hodet at batch er laget for å automatisere kommandolinjeoperasjoner, ikke for å lage slike programmer du prøver på. Tror neppe du kommer til å få noen svar på problemet ditt. Om du vil få det til, gå over på et annet språk. Deal with it. Lenke til kommentar
SemikolonP Skrevet 20. mars 2007 Forfatter Rapporter Del Skrevet 20. mars 2007 Flyttall? Hva er det? *noob* Er dette noe mer avansert enn simpel multiplikasjon? Et tall ganger enda et tall ganger enda et tall ganger enda et tall. Men ok. Får la den tråden dø, så får jeg se om jeg gir opp eller prøver på egenhånd. Windowskalkulatoren, som er spekka full med diverse funksjoner, kan jo ikke regne ut kvadratroten da. Btw: Skal se om kalkulatoren i Vista kan det. Bare vent 5-10 min. Skal starte det opp først. Lenke til kommentar
Giddion Skrevet 20. mars 2007 Rapporter Del Skrevet 20. mars 2007 (endret) Flyttall? Hva er det? *noob* Er dette noe mer avansert enn simpel multiplikasjon? Et tall ganger enda et tall ganger enda et tall ganger enda et tall. 8197392[/snapback] flyttall er enkelt forklart tall med komma f. eks. 3,14 4,006 2,545 osv... Så uten flyttall blir 3,14 +5,4 = 8 Og det å regne ut effekten til en motor kan fort bli veldig veldig grovt. Cos phi f. eks konvertert til enten 1 eller 0 og da blir jo alle utregninger totalt ubrukelig Jeg kan anbefale excel til enkle utregninger som du driver med, laga noe lignans det du vil lage når jeg gikk på gk elektro. Endret 20. mars 2007 av Giddion Lenke til kommentar
Emancipate Skrevet 20. mars 2007 Rapporter Del Skrevet 20. mars 2007 Windowskalkulatoren, som er spekka full med diverse funksjoner, kan jo ikke regne ut kvadratroten da. 0. Bruk vitenskapelig visning 1. Skriv inn tallet du vil ha kvadratroten av 2. Trykk på knappen som ser sånn ut: x^y 3. Skriv inn 0.5 4. Trykk = Du har nå kvadratrota. Lenke til kommentar
SemikolonP Skrevet 21. mars 2007 Forfatter Rapporter Del Skrevet 21. mars 2007 Ok, takk. Da vet jeg det og. M$ måtte jo lage en idiotdikker kalkulator. Lenke til kommentar
Thor. Skrevet 1. april 2007 Rapporter Del Skrevet 1. april 2007 Du kunne laget formelen i et xl dokument (regneark), dette er enkelt Lenke til kommentar
SemikolonP Skrevet 3. april 2007 Forfatter Rapporter Del Skrevet 3. april 2007 Så uten flyttall blir 3,14 +5,4 = 8 8197580[/snapback] Så 1,5+1,5=2+2=4? Faen ta M$ og de dumme funksjonene sine. Lenke til kommentar
Jaffe Skrevet 3. april 2007 Rapporter Del Skrevet 3. april 2007 Så uten flyttall blir 3,14 +5,4 = 8 8197580[/snapback] Så 1,5+1,5=2+2=4? Faen ta M$ og de dumme funksjonene sine. 8302265[/snapback] Du har ingenting å klage på. Batch er ikke laget for å kunne rekne flyttall, så du kan ikke forvente det heller. Når du støter på et sånt problem, er det helt klart at du må begynne å se på et annet språk, f.eks. vbscript som foreslått her, eller enkelt og greit bare Excel. Lenke til kommentar
SemikolonP Skrevet 3. april 2007 Forfatter Rapporter Del Skrevet 3. april 2007 (endret) Ok. Snakkes, tråd. Endret 3. april 2007 av ;P Lenke til kommentar
Patience Skrevet 3. april 2007 Rapporter Del Skrevet 3. april 2007 Saken er løst, og/-eller trådstarter har bedt om stenging. Ønskes saken gjenoptatt kan dette innlegget rapportères, og tråden vil bli vurdert gjenåpnet. Lenke til kommentar
Anbefalte innlegg