Multidesk.be » Forums » Programmeren algemeen » TI 84+ applicatie

  • Pagina
  • [1]
  • 2
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door StOosh op zaterdag 7 maart 2009 om 17:12:28.
StOosh's avatar
Multiviteit: 1526
haaj iedereen :d

Ik ben op zoek naar een programma voor mijn TI83+ dat complexe getallen kan omrekenen van de cartesiaanse vorm naar de polaire vorm.

Weet iemand dat te vinden?(Ik heb geen idee welke termen ik zoal moet gebruiken en kwam tot nu toe op niets dat bruikbaar was)
Of heeft/kan iemand dit zelf maken?(de formules kan ik dan wel geven.)

groeten
Dennis
^ Reactie #1 geschreven door een gast op zaterdag 7 maart 2009 om 17:29:28.
Via
http://www.google.be/search?hl=nl&q=TI+84&meta=

vond ik
http://www.pandd.demon.nl/ti83/ti83werkbladen.htm

en uiteindelijk
http://www.henkshoekje.com/
^ Reactie #2 geschreven door StOosh op zaterdag 7 maart 2009 om 17:42:47.
StOosh's avatar
Multiviteit: 1526
ja, dank je die term had ik al opgezocht :p

Maar ik vind geen programma dat dit kan en ik kan zelf niet programmeren...
^ Reactie #3 geschreven door een gast op zaterdag 7 maart 2009 om 17:51:28.
Kvrees dat ik niet vertrouwd ben met de termen(Geometrie?)
maar via
http://www.google.be/search?hl=nl&q=cartesiaanse+to+polaire+software&meta=
vond ik
http://www.google.be/search?hl=nl&q=cartesiaanse+to+polaire+software&meta=

en in de wiki onderaan, staan hoop links
http://en.wikipedia.org/wiki/TI-83
^ Reactie #4 geschreven door Kilian op donderdag 12 maart 2009 om 16:45:22.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Heb je de formules hiervoor, of de theorie? Ik heb zover nog niet in m'n wiskunde, maar kan wel in TI basic programmeren.
^ Reactie #5 geschreven door StOosh op donderdag 12 maart 2009 om 18:20:41.
StOosh's avatar
Multiviteit: 1526
ja ikheb de formules ik zal ze misschien straks en anders zaterdag hier eens plaatsen ;)

al bedankt :)
^ Reactie #6 geschreven door StOosh op woensdag 18 maart 2009 om 21:13:15.
StOosh's avatar
Multiviteit: 1526
heej, k heb eindelijk de tijd gevonden om de formules er eens online te zetten.
Hier komen ze:

Van Cartesiaans naar polair

Z = a + j.b --> sqrt(a2+b2) < tan-1(b/a)


Van polair naar Cartesiaans:

Z = c < (alpha) --> c.cos(alpha) + j.c.sin(alpha)


ziezo dat zijn al de formules, ik ga nu even de scannen om je een te laten zien hoe het echt geschreven zou moeten zijn, want sommige dingen kan ik niet in html...

brb
^ Reactie #7 geschreven door NightCreature op woensdag 18 maart 2009 om 21:19:16.
NightCreature's avatar
Multiviteit: 1196
MSc.
IK kan je dat programma in 30 minuten maken maar verwacht er niet te veel van.
En anders is er Mathematica, ok had niet gezien dat het voor een rekenmachine is.

C++ applicatie met executable en source code

CODE
  1.  
  2. // CartesianToPolar.cpp : Defines the entry point for the console application.
  3. //
  4.  
  5. #include "stdafx.h"
  6. #include <iostream>
  7. #include <cmath>
  8.  
  9. using namespace std;
  10.  
  11. int _tmain(int argc, _TCHAR* argv[])
  12. {
  13.     int choice;
  14.     cout << "Press 1 for Cartesian to Polar conversion\nPress 2 for Polar to Cartesion conversion" << endl;
  15.     cin >> choice;
  16.     if (choice < 2)
  17.     {
  18.         switch (choice)
  19.         {
  20.         case 1:
  21.             {
  22.                 cout << "Enter coefficient for the real value: " << endl;
  23.                 float x;
  24.                 cin >> x;
  25.                 cout << "Enter coefficient for the imaginary value: " << endl;
  26.                 float y;
  27.                 cin >> y;
  28.                 cout << "The value for r(distance) is: " << sqrt(x * x + y * y) << endl;
  29.                 cout << "The value for the angle is: " << atan2(y, x) << endl;
  30.             }
  31.             break;
  32.         case 2:
  33.             {
  34.                 cout << "Enter the r(distance) value: " << endl;
  35.                 float distance;
  36.                 cin >> distance;
  37.                 cout << "Enter the angle value: " << endl;
  38.                 float angle;
  39.                 cin >> angle;
  40.                 cout << "The value for x is: " << distance * cos(angle) << endl;
  41.                 cout << "The value for y is: " << distance * sin(angle) << endl;
  42.             }
  43.             break;
  44.         }
  45.     }
  46.     else
  47.     {
  48.         cout << "Unrecognized entery terminating application" << endl;
  49.         return 1;
  50.     }
  51.  
  52.     cout << "press any key to terminate the application" << endl;
  53.     char c;
  54.     cin >> c;
  55.         return 0;
  56. }
  57.  


Bijlage: 2614e4dd1ab1a6fa4c1f64e0539363c6.zip
Bijlage: 4c26ace7b860c7a8d798ca1be5c7e6b5.zip
Deze tekst werd het laatst bewerkt voor 3.41 % door NightCreature op woensdag 18 maart 2009 om 21:45:04.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #8 geschreven door StOosh op woensdag 18 maart 2009 om 21:29:26.
StOosh's avatar
Multiviteit: 1526
Dat zou leuk zijn, moest je dat kunnen doen :)

Ik heb hier nog een blad met wat extra informatie en de formules nog eens in jpeg gescand...


Bijlage: fece9db78def170ff563f2620ff7dfcd.jpg

De eerste formule is van Cartesians naar polair en de tweede van polair naar cartesiaans.


^ Reactie #9 geschreven door NightCreature op woensdag 18 maart 2009 om 21:43:16.
NightCreature's avatar
Multiviteit: 1196
MSc.
helaas is die eerste formule verkeerd en moet er niet tan-1 worden gebruikt maar atan2 volgens wiki. Deze applicatie werkt weet alleen niet of het de correcte waardes geeft.

Helaas kan ik alleen voor win een programma schrijven en ik ken geen basic misschien dat iemand anders het hier kan vertalen naar BASIC.

Zag dat er nog een klein foutje in de code zat de bijlage van vorige post zou nu goed moeten zijn. Ipv if (choice < 2 ) moest het if (choice < 3 ) zijn. Hoe er rekening mee dat de hoek in radialen wordt verwacht en niet graden.
Deze tekst werd het laatst bewerkt voor 7.4 % door NightCreature op woensdag 18 maart 2009 om 21:48:02.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #10 geschreven door StOosh op woensdag 18 maart 2009 om 21:48:01.
StOosh's avatar
Multiviteit: 1526

Dixit

Dixit NightCreature op 18/03/2009 21:43:16:

helaas is die eerste formule verkeerd en moet er niet tan-1 worden gebruikt maar atan2 volgens wiki. Deze applicatie werkt weet alleen niet of het de correcte waardes geeft.



Kan je die pagina eens geven van wikipedia ? Ik ben wel geÔnteresseerd nu :)

En om de code om te zetten naar basic: ik denk dat killian dat kan... :p

alvast heel erg bedankt :)
^ Reactie #11 geschreven door NightCreature op woensdag 18 maart 2009 om 21:51:28.
NightCreature's avatar
Multiviteit: 1196
MSc.
http://en.wikipedia.org/wiki/Complex_number en zie dan polar form
Bijlage nu een applicatie die de hoek wel in graden verwacht. Je moet de applicatie omzetten naar een applicatie die je TI ondersteunt, sommige OSen daarop zag ik ondersteunen basic en dan bedoel ik niet basic.net ander ondersteunen ASM en dan zou deze applicatie geloof ik wel moeten kunnen draaien.

Bijlage: e53c0529df3dd9de160b3fe82f9b558d.zip
Deze tekst werd het laatst bewerkt voor 42.22 % door NightCreature op woensdag 18 maart 2009 om 21:53:16.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #12 geschreven door NightCreature op woensdag 18 maart 2009 om 22:08:41.
NightCreature's avatar
Multiviteit: 1196
MSc.
Adendum 3: berekening van graden naar radiaal en van radiaal naar graden was verkeerd
Beide hoeken zijn nu in graden, vorige keer was de hoek die je in optie een trg kreeg nog in radialen.

CODE
  1.  
  2. // CartesianToPolar.cpp : Defines the entry point for the console application.
  3. //
  4.  
  5. #include "stdafx.h"
  6. #include <iostream>
  7. #include <cmath>
  8.  
  9. using namespace std;
  10.  
  11. int _tmain(int argc, _TCHAR* argv[])
  12. {
  13.     int choice;
  14.     cout << "Press 1 for Cartesian to Polar conversion\nPress 2 for Polar to Cartesion conversion" << endl;
  15.     cin >> choice;
  16.     if (choice < 3)
  17.     {
  18.         switch (choice)
  19.         {
  20.         case 1:
  21.             {
  22.                 cout << "Enter coefficient for the real value: " << endl;
  23.                 float x;
  24.                 cin >> x;
  25.                 cout << "Enter coefficient for the imaginary value: " << endl;
  26.                 float y;
  27.                 cin >> y;
  28.                 cout << "The value for r(distance) is: " << sqrt(x * x + y * y) << endl;
  29.                 cout << "The value for the angle is: " << (atan2(y, x) * (180.0 / 3.14159265)) << endl;
  30.             }
  31.             break;
  32.         case 2:
  33.             {
  34.                 cout << "Enter the r(distance) value: " << endl;
  35.                 float distance;
  36.                 cin >> distance;
  37.                 cout << "Enter the angle value: " << endl;
  38.                 float angle;
  39.                 cin >> angle;
  40.                 cout << "The value for x is: " << distance * cos(angle * (3.14159265 / 180)) << endl;
  41.                 cout << "The value for y is: " << distance * sin(angle * (3.14159265 / 180)) << endl;
  42.             }
  43.             break;
  44.         }
  45.     }
  46.     else
  47.     {
  48.         cout << "Unrecognized entery terminating application" << endl;
  49.         return 1;
  50.     }
  51.  
  52.     cout << "press any key to terminate the application" << endl;
  53.     char c;
  54.     cin >> c;
  55.         return 0;
  56. }
  57.  
  58.  
  59.  

Bijlage: b8131b65d6f0f99ade30650791272aed.zip
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #13 geschreven door StOosh op woensdag 18 maart 2009 om 22:21:06.
StOosh's avatar
Multiviteit: 1526
:) Tof dat je er zo aan werkt. Maar kan je die atan2 niet gewoon als tan-1 schrijven, dan ben ik zeker dat ik dezelfde afrondingsfouten e.d. tegenkom bij het berekenen in oefeningen... (Ik had trouwens nog nooit gehoord van atan2).

En nu staan dus alle hoeken in radialen uitgedrukt?

De rekenmachines zijn trouwens TI-84+
Deze tekst werd het laatst bewerkt voor 6.4 % door StOosh op woensdag 18 maart 2009 om 22:21:49.
^ Reactie #14 geschreven door NightCreature op donderdag 19 maart 2009 om 00:27:50.
NightCreature's avatar
Multiviteit: 1196
MSc.
Nee in de laatste source staan alle hoeken als graden uitgedrukt. ALs je de hoek * (180 / PI) of hoek * (PI / 180) weg laat zijn alle hoeken radialen. (Dit is namelijk de manier om van radialen naar graden te gaan en omgekeerd.)

Als je atan gebruikt ga je niet naar de werkelijke polaire notatie van een complex getal.
Maar zoals je vraagt is het in deze build geen atan2 meer maar een atan.
Zoals gevraagd nu een applicatie die atan(y/x) gebruikt (atan is hetzelfde als tan-1(beide arctangens)) en als ik de doc voor atan2 goed heb gelezen doet deze functie hetzelfde.
-Hoek uit- en invoer is nog steeds in graden
-Meerdere berekeningen zijn nu mogelijk
-verkeerde input breekt de applicatie af nu, ipv crashen.

.exe is te vinden in ..\CartesianToPolar\CartesianToPolar\bin\
.sln is te vinden in ..\CartesianToPolar\
source is te vinden in ..\CartesianToPolar\CartesianToPolar\

Bijlage: 1f14349cf1c135d58338794eb65b561d.zip

Als je een Z80 cross compiler op het net kan vinden kan ik de applicatie ook voor je rekenmachine compileren.

Randinformatie


Doordat deze applicatie doubles gebruikt zijn de floating point errors miniem, in PC applicaties moet je de cijfers na 5 plaatsen achter de comma niet meer correct beshouwen. Comma getallen in een pc zijn namelijk behoorlijk fout gevoelig, dit heeft te maken met de manier van opslag in het geheugen. Het wordt namelijk als een macht van 10 opgeslagen
Deze tekst werd het laatst bewerkt voor 8.77 % door NightCreature op donderdag 19 maart 2009 om 00:42:27.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #15 geschreven door Wheeldigger op donderdag 19 maart 2009 om 12:03:06.
Wheeldigger's avatar
Multiviteit: 10173
Moderator
En heb je nog tijd over; Bouwen!
^ Reactie #16 geschreven door Kilian op donderdag 19 maart 2009 om 18:36:17.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Ziezo!

Wel even nakijken of het helemaal klopt, ik weet helemaal niet hoe het moet zijn, dus ik kon ook niet echt testen.
Ik heb een onbeveiligde en een beveiligde toegevoegd. Aan de onbeveiligde kan je veranderen wat je wilt, aan de beveiligde niets. Je kan eventueel de beveiligde rondverdelen in de klas. Zie maar wat je ermee doet


Bijlage: 933bbe5cbf219bc3fcd507e5c51e3c2c.zip

Kilian
^ Reactie #17 geschreven door StOosh op zondag 22 maart 2009 om 12:24:53.
StOosh's avatar
Multiviteit: 1526
hej,hej

Dank je Kilian, hij werkt op mijn TI84+

@Nightcreaturre: ook hartelijk bedankt, alleen weet ik niet wat je bedoelt met een Z80 compiler... ik vond deze site: http://www.z80.info/z80sdt.htm

Groeten
Dennis
^ Reactie #18 geschreven door Kilian op zondag 22 maart 2009 om 14:56:07.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Klopt hij ook qua uitvoer (waarden)? Ik denk dan tik het helemaal hetzelfde gemaakt heb zoals jij je formules gaf, maar je kan nooit tť zeker zijn he :)

Kilian

Randinformatie

Welke richting doe jij, en in wel jaar zit je? Kwestie dat ik het misschien dit jaar of volgend jaar nog nodig zou hebben dat ik dan alles goed bijhoud.
^ Reactie #19 geschreven door StOosh op zondag 22 maart 2009 om 20:46:51.
StOosh's avatar
Multiviteit: 1526
Ik zit in het Vijfde jaar TSO in de richting IndustriŽle Wetenschappen.

De formules gebruiken we om de faseverschuiving tussen de spanning en de stroom in een wisselspanningskring met RLC-componenten te berkenen. Dat gebeurt met complexe rekenwijzen, voor het vermenigvuldigen hebben we de polaire notatie nodig en voor optellen en aftrekken de cartesiaanse notatie.

Groeten
Dennis
  • Pagina
  • [1]
  • 2

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen