ekorniminator
-
Innlegg
72 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Hendelser
Blogger
Om forumet
Innlegg skrevet av ekorniminator
-
-
Takk skal du ha kjey.. Det funker Man trenger forresten ikke parantesen rundt info.at() ettersom "." er venstregreier vet ikke hva det heter på norsk, men sånn at den bruker mest mulig av det som er til venstre og minst mulig av det til høyre..
Men en ting! hvor kommer at fra? vanligvis kaller man jo innholdet slik:
info[0]
-
matematikk.net meget bra.
-
kan du forklare litt nærmere hvorfor dette gir første element i første vektor?
-
vector< vector<int> > info;
1. Dette er mulig sant? (Det kompilerer i hvertfall..)
2. Hvordan kaller jeg verdiene her? Kunne alltids skrevet en funskjon som itererer seg gjennom info frem til riktig vector for så å kalle riktig intege, men jeg satser på at det går an å gjøre på en enklere måte
-
dette er en variabel som er garantert å holde den mengde informasjon som er nødvendig.. vector<int>::size_type kan garantert holde antall integere det er i vektoren, string::size_type er en variabel som holder størrelsen på en string.
man kan bruke int også, men size_type garanterer plass. dessuten er det lettere å se hva variabelen skal brukes til, noe som er greit når du leser programmet.
med andre ord: som oftest ingen nødvendighet, men god programmeringsskikk
-
hmm, jeg lukket bevisst alle andre programmer for å prøve å få best mulig tid.. mulig jeg kjører debug
edit* ser slik ut, for om jeg velger debug eller vanlig run så kjører programmet til samme tid.. men hvordan slår jeg av dette da? jeg får samme tider om jeg kjører .exe-filen utenfor IDE også.
-
ved typedef lager du et synonym til en definisjon sånn som jeg har forstått det. det vil si at om du skal lage mange variabler som skal holde størrelsen på en vektor som inneholder int f.eks skriver du:
typedef vector<int>::size_type vec_sz; vec_sz a = ...; vec_sz b = ...; ..
i steden for:
vector<int>::size_type a = ...; vector<int>::size_type b = ...; ..
vector<double>& er også et synonym, men denne gangen til en vektor i ditt eksempel. vector<double>& a = b; så er a et synonym for b. og om man endrer en av de endres den andre også.
dette brukes ofte i argumenter i funksjoner. grunnen til dette kan blant annet være at man ikke ønsker å kopiere hele vektoren, gir den derfor bare et nytt navn for å spare på ressursene. det kan også være en funskjon man ønsker at skal endre flere verdier. ettersom funskjonen kun returnerer en, legger man den andre inn som et argument. og siden den er et synonym så endres verdien til argumentet du satt i løpet av funskjonen..
-
åh det han mente.. nei, jeg har fjernet alt slikt! sikler virkelig etter tidene til Giddion. 5 min er alt for tregt!
-
festlig med klokke som tar tiden 10, 10 gir meg 1265ms.. kjører i Dec-c++, bruker "ctrl F10", run. kjører vel ikke en debug versjon da?
kjører selv på intel pentium M 1,73 gHz
-
utrolig greit å bare skrive alle vesentlige variabler for hver loop tok meg 5 min å finne ut av det.. etter mange timer før i dag
while(a!=x && b!=y) skulle selvfølgelig vært while(a!=x || b!=y)..
men dette tok ganske lang tid. noen hete tips for å forkorte kjøretiden?
bruker 2 sek ved 10 10.. og 5 min med 10 20.
-
prøver å skrive et program som finner antall mulige veier i et rutete rørnett. men det er noe i koden som er feil. programmet avslutter aldri en av løkkene tror jeg.
er ganske så ny med programmering, men ville prøve meg på å skrive et program som benytter brute-force til å løse et problem
veien skal være så kort som mulig, og sluttpunktet vil alltid ligge til høyre og under startpunket.
#include<iostream> #include<vector> #include<ios> #include<windows.h> using std::cout; using std::cin; using std::endl; using std::vector; int main() { int x,y; cin>>x>>y; //distanse vector<int> locked((x+1)*(y+1), 0);//vektor som inneholder informasjon om hvilke kryss som er "låst" int solutions = 0; //antall løsninger int exit = 0; while(exit==0){ int a = 0; //din x-posisjon int b = 0; //din y-posisjon int inc_x=0; //retning på din forrige bevegelse int last_turn; //siste sving du gjorde i y-retning while(a!=x && b!=y){ /*tester om neste kryss er "låst" eller om du er kommet til veis ende i x-retning. i så tilfelle går du i y-retning*/ if(locked[b*(x+1)+a+1]==1 || a==x){ if(inc_x==1) last_turn = b*(x+1)+a; inc_x=0; ++b; } //ellers beveger du deg i x else { ++a; inc_x = 1; } //låser opp igjen hjørner som ikke skal være låst lenger if(a!=x && b==y) for(vector<int>::size_type i = last_turn; i!=locked.size(); ++i) locked[i] = 0; //om dette er den siste muligheter if(a==0 && b==y) exit = 1; } //låser krysset du sist gjorde en y-sving i locked[last_turn] = 1; ++solutions; } cout<<solutions; Sleep(5000); return 0; }
holder med hint om hva som er feil.. om ikke alt er helt på trynet da
godt mulig jeg bruker en dårlig algoritme, så kom gjerne med forslag til bedre fremgangsmåter også
edit*koden ser jo helt hy ut her kanskje best å kopiere den til et annet sted så linjene ikke blir delt..
-
takk for hjelpen lærer best med å klare mest mulig selv.. prøver alltid å søke på google før jeg poster, men det er ikke alltid like lett vite hva man skal søke etter ettersom dette er det første språket jeg lærer meg.
forresten så er headeren for tolower i c++ <cctype> og ikke <ctype.h> (dette er c) for andre som skulle lure på dette
men jeg tror jeg dropper det å forandre en string til små bokstaver.. char går fint, men string virket heftig etter litt googling!!
-
ønsker å lage et program som kalkulerer antall av forskjellige ting i inputen. jeg vil lagre elementene i en vektor og finne ut hvor mange ganger hvert element gjentar seg.. eller noe annet i den dur :!:
så om inputen er: lars ola per per ola knut per
skal outputen se slik ut:
lars: 1
ola: 2
per: 3
knut: 1
ps. ønsker ikke en fullstendig løsning, bare et lite dytt på veien..
på forhånd tusen takk
forresten, hvordan får jeg programmet til å se bort i fra om det er store eller små bokstaver i inputen
-
jeg trives egentlig veldig godt med Dev-C++ men ville vite om det var noen grunner til å bruke noe annet og i så tilfelle hva.. ser ut som jeg holder meg til Dev-C++
-
nei nei, får vente på mer fra deg og google litt NES i mellomtiden jeg da
-
du snakker nok litt over hodet på meg no men mener du at jeg bør benytte meg av Microsoft Visual C++ ?? eller er det ikke så mye om å gjøre fra Dev-c++ ?
-
drevet litt med c++ nå, men hvilken kompilator bør jeg bruke? noen som kan fortelle litt om fordeler/ulemper de forskjellige alternativene imellom? disse har jeg tilgang til:
-Dev-c++ (det er denne jeg har brukt så langt og trives i grunnen godt med den.).
-Microsoft Visual C++
-Bordland Developer Studio
Noen andre som er bedre?
thank you
-
men vil ikke måten å tenke på, angipe problemer, grunnlegende koder++ ligne på tvers av forskjellige prosessorer?
det jeg mener er, vil det ikke være lettere for meg å programmere prosessoren til NES om man har erfaring fra x86?
takk for tolmodigheten
-
da venter jeg i spenning på mer stoff fra deg jeg da
kan ikke den assembly boken din brukes i det hele tatt med tanke på NES heller?
-
hva er veien å gå om målet er å lage et spill som kan spilles på en NES maskin? Hva trenger man av kunnskap osv?
-har grunnleggende kunnskaper i c++
-lest de 2 NES kapitlene dine
-akkurat printet ut assembly-boken din, deretter har jeg forstått at "art of assembly" er et godt valg.
har en kompis som driver og lager kretskort ol. så han skal hjelpe meg å lage det jeg trenger på det området.. noen gode tips?
-
utrolig genialt virker som du har lagt ned mye arbeid i dette her..
kan jeg spørre når kapittel 3 kommer uten å legge noe press på deg
ikke for å pirke, men i kapitell 1, side 6, 3. avsnitt fra bunnen er det en skrive feil..
vet du er klar over det, lærte det nemlig av deg men PPU'en har vel CHR-ROM(CPU har PRG-ROM og PPU har PRG-ROM)
vector som holder vectorer
i Programmering og webutvikling
Skrevet
Takk, koden info[0][1] funker like bra som info.at(0).at(1) sett bort i fra det med sikkerheten da..
Men en ting, er ".at()" tregere å kalle en "[]" ?