Jag har fastnat hjälp!

Diskussioner om programmering

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher, hollowman

Jag har fastnat hjälp!

Inläggav booooooooom » 29 september 2015, 13:21

Programmet skall börja med
att rensa skärmen och fråga användaren efter utskottsvinkeln (eng. elevation i grader och utgångshastigheten i meter per sekund.
När användaren anger utgångshastighet, ska programmet öka den med 1%.
Sedan, ska programmet rita den kastbana som ingångsvärdena ger upphov till
på skärmen. Hur man beräknar denna beskrivs nedan.
När projektilen har nått marken igen så skrivs kastets längd och den (simulerade) tid
som förflutit ut. Därefter skall programmet fråga användaren om han/hon vill fortsätta eller om programmet skall avslutas.
Om användaren väljer att fortsätta så skall skärmen rensas och programmet fråga efter en ny utskottsvinkel och utgångshastighet.
Programmet skall fortsätta fram till dess att användaren väljer att avsluta.
Kastbanan skall ritas ut en gång per tidssteg med bokstaven ’O’och man bör utgå från att startpositionen är i det nedre vänstra hörnet.
En lämplig skala är 3 meter per bokstav i både höjd(Y)-led och bredd(X)-led.

Beräkning av kastbana
Programmet skall beräkna kastbanan
med
numerisk simulering
genom att tidssteg för tidssteg
beräkna var projektilen befinner sig
.
Konstanter som behövs pi= 3.1415927 Tyngdaccelerationen:g= 9.81 (m/s2) Tidsstegens längd:dt = 0.05 (s)
Från början har projektilen en: Utgångshastighet i meter per sekund:V0 Utskottsvinkel i radianer:U0
Position i X-och Y-led i m: Px0= 0 Py0 = 0
Hastighet i X-och Y-led i meter per sekund:Vx0= V0* cos(2*pi+U0) Vy0= V0 * sin(2*pi+U0)
För varje tidssteg behöver nuvarande position och hastighet uppdateras.(Detta är ett exempel på numerisk integreringav enklaste slag):
Vinkel i radianer får man genom att gångra vinkeln med(pi/180)

Ny position i X-och Y-led: Pxi+1 = Pxi+ Vxi *dt Pyi+1 = Pyi+ Vyi*dt

Ny hastighet i X-och Y-led:Vxi+1 = VxiVyi+1 = Vyi-g*dt

Hur ska man lösa det här(nybörjare)? Hur ska datan rita vinkeln? Hur ska jag ens börja tänka?
tacksam för svar
booooooooom
Nybörjare
Nybörjare
 
Inlägg: 2
Blev medlem: 29 september 2015, 12:54

Re: Jag har fastnat hjälp!

Inläggav bjonte » 29 september 2015, 17:49

Jag tror att du får börja med att rita något på skärmen. Om du nöjer dig med teckengrafik (40x25) så kan du kan tömma skärmen med

Kod: Markera allt
PRINTCHR$(147)


Sedan kan du fylla ett tecken på skärmen med

Kod: Markera allt
POKE1024+y*40+x,160


där X och Y är koordinater räknat från övre vänstra hörnet.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1858
Blev medlem: 17 april 2006, 23:12

Re: Jag har fastnat hjälp!

Inläggav bjonte » 29 september 2015, 17:55

För att rita en linje så behöver du en algoritm för detta. En vanlig sådan är "Bresenham's line algorithm".
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1858
Blev medlem: 17 april 2006, 23:12

Re: Jag har fastnat hjälp!

Inläggav booooooooom » 30 september 2015, 11:33

Jag började så är. Jag har ingen aning hur jag ska få den att printa kurvan, jag får bara ut en liten fläck.
https://mega.nz/#!6FAFyBpS!cYI43D2TTUVn ... Ritwijixz4
booooooooom
Nybörjare
Nybörjare
 
Inlägg: 2
Blev medlem: 29 september 2015, 12:54

Re: Jag har fastnat hjälp!

Inläggav TBC » 30 september 2015, 16:37

En loop kanske hjälper.
Användarvisningsbild
TBC
Erfaren mästare
Erfaren mästare
 
Inlägg: 319
Blev medlem: 4 september 2008, 16:44

Re: Jag har fastnat hjälp!

Inläggav e5frog » 4 oktober 2015, 22:09

Det går väl bra att ladda upp filer här, man behöver inte använda någon konstig fildelarsajt som skickar ner .exe-fil för installation... om man inte prickar rätt länk på första klicket.

Du skriver PRINT V på rad 6, ska väl vara INPUT? Input lägger automatiskt till ett frågetecken (om man inte pokear bort det), det går att skriva INPUT "FRÅGA";variabel också om man vill.
Håller med föregående skribent att det krävs en loop för att plotta fler punkter, ska du ha från skärmkant till skärmkant så är väl 40 steg lämpligt?

Du kan använda tecknet för pi om du vill istället för 3.14, man behöver inte ha några mellanrum i koden, för att lättare kunna göra ändringar i koden så kan man lämna lite luft mellan programraderna. 10, 20, 30... etc istället för 1,2,3...


Hur är det tänkt att funka då?
Om man först beräknar maximal höjd och längd så får man dividera ner värdena så att de går in på skärmens storlek?

Borde man inte utgå från nedre hörnet?

Vill du plotta snyggare så kan du ge dig på att använda högupplöst skärm för själva plottningen.
Kolla in mitt Fairchild System bild-galleri:
fairchild fairchild fairchild Bild fairchild fairchild fairchild
Användarvisningsbild
e5frog
Moderator
Moderator
 
Inlägg: 2761
Blev medlem: 8 augusti 2007, 18:16
Ort: Älvängen

Re: Jag har fastnat hjälp!

Inläggav e5frog » 4 oktober 2015, 23:24

Jag lekte lite med det här, rudimentärt.
Plotten ser inget vidare ut man borde kanske köra i hires-läge istället, men det blir ju lite mer komplicerat.

Kod: Markera allt
0 printchr$(147)
1 poke53280,7:poke53281,13
2 g=9.81:dt=0.05:pl=46
3 u0=45:input"utgangsvinkel";u0
5 v0=33:input"utgangshastighet m/s";v0
6 px=0:py=0
7 u=u0*(pi/180):v=v0*1.01
10 vx=v*cos(2*pi+u):vy=v*sin(2*pi+u)
20 rem *** loop ***
21 if(px>120)or(py>75)then23
22 poke1024+int(px/3)+40*(24-int(py/3)),pl
23 px=px+vx*dt:py=py+vy*dt
25 vy=vy-g*dt:t=t+dt
30 ifpy>=0then20
40 print"tid:";t
60 print:print"igen? (j/n)"
70 geta$:ifa$=""then70
80 ifa$="j"thenrun


Frågor så långt?
Jag låter programmet hoppa över plottningen om den går utanför skärmen men den beräknar summan av alla tidsenheter tills vi når marken igen (y-positionen passerar 0).
PL=42 dvs en stjärna/gångertecken ser lite bättre ut kanske. Före input lade jag default-värden som genererar en parabel över nästan hela skärmens bredd. Vill man bara testa kan man trycka return två gånger.
Det finns väl inget smidigt sätt att krympa tidsinställningen till två decimaler, det blir lite avrundningsfel tydligen?
Kolla in mitt Fairchild System bild-galleri:
fairchild fairchild fairchild Bild fairchild fairchild fairchild
Användarvisningsbild
e5frog
Moderator
Moderator
 
Inlägg: 2761
Blev medlem: 8 augusti 2007, 18:16
Ort: Älvängen


Återgå till Programmering/prog.-verktyg

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 2 gäster

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016