Gå til innhold

ProgrammeringsBaren! Småprat, om det du elsker!


Anbefalte innlegg

Videoannonse
Annonse

Takk for tilbakemeldinger. :)

 

Klassen det er snakk om er en klasse som tar i mot berøringspunkter på en touch-skjerm, og husker et par av disse (startpunkt, forrigepunkt, nåpunkt) hvis man drar fingeren, for å kunne avgjøre om det er en swipe eller bare et trykk der man ikke klarte å holde fingeren helt i ro.

Samt konverterer berøringspunktene fra en hvilken som helst skjerm til koordinatsystemet i min app.

 

Uansett, jeg trenger da å initialisere tre objekter, slik at jeg kan bruke dem senere. Om det ikke er forskjell lar jeg det bli i konstruktøren.

Lenke til kommentar

Okey, er nå tilbake med et nytt problem :p

 

Denne gangen har jeg en fil av som inneholder strings og ints, i dette formatet:

 

INT;CHAR;INT;STRING

 

eks

 

2;A;2000;Dette er vanskelig

3;K;20043;Jeg sliter

9;O;32323;Huff Huff

 

osv...

 

Jeg skal da lagre dette i to 2D arrayer.

 

Jeg begynner med å hente filen, deretter lager jeg to 2D arrays.

Tenker da at jeg vil lagre "[2] og [A]" i samme array, og "[2000] og [Dette er vanskelig]" i den andre arrayen.

 

Men problemet er da hvordan jeg skal gjøre dette:P, tenker jeg må bruke en for-lokke eller while?

 

Det som kanskje gjør det vanskelig er at jeg leser først in til ; deretter til enste ; osv. Så jeg får 4 variabler på en linje, hvis det mulig å skjønne:P?

 

Noe hjelp å få?

 

Det er java btw.

Endret av clickz101
Lenke til kommentar

Er en del av en innleveringsoppgave ja, men er egnetlig mer ute etter hvordan jeg skal gå frem for å løse den.

 

I opgpaven er det egentlig Etasje;leilighetnr;saldo;navn

 

Har sett i boka men skjønner ikke tankegangen, det hjelper heller ikke med tanke på min oppgaven da boka tar for seg det letteste eksempelet med en fil som ser ut som:

1

2

3

4

5

 

og som skal lagres i en 1D array :p.

 

edit: Elendig formuleringer sent på kvelden.

Endret av clickz101
Lenke til kommentar

Lag en dobbel for-løkke.

 

Litt av problemet blir da(tror jeg) at hvis jeg lager en string array som inneholder dette [3400][Arild], får jeg ikke da en feilmelding hvis jeg endrer på int verdien inne i den ?

 

Sånn jeg har skjønt det er at strings kan holde på int verdier, men med en gang du skal endre på den verdien så vil du da få en feilmelding?

Endret av clickz101
Lenke til kommentar

Det finnes en String.Split i Java. Denne tar et regulært uttrykk som parameter, i dette tilfellet vil det simpelthen bli ";"

Les inn teksten linje for linje, bruk String.Split for å dele opp, lag en klasse som inneholder feltene du trenger, og populer en ArrayList med disse.

Jeg tror poenget med øvelsen er å bruke ekte arrays og ikke en liste eller en annen Collection klasse. For i såfall ville jeg ha brukt en Hashmap<Integer,Char> istedet.

Endret av tomsi42
Lenke til kommentar
Gjest Slettet+9871234

Tilbake til konstruktører. Slik

 

template <class T> class Matrix 

/* 
For efficiency! Do we need a service non-template base class? See C++ report Nov-Dec 1993 page 43. For a general note on efficiency see page 43 - 44. What is most important user friendliness, reliability or raw speed? See also C++ Report october 1994 page 57 - 62 on concrete class, function templates and interface base classes. 
*/ 

{ 
private: 
int rSize, cSize; //rSize = rowsize, cSize=columsize 
T **pp; // Pointer to pointer of type T. 
public: 
int numRows() const 
{ 
return rSize; 
} 

int numCols() const 
{ 
return cSize; 
} 

Matrix() : rSize(3), cSize(3) //Default constructor 3 by 3 type T matrix. 
{ //Importance of Default constructor. See 
pp = new T*[3]; //C++ Report September 1993 page 28. 
pp[0] = new T[3]; //No test for available memory implemented yet. 
pp[1] = new T[3]; 
pp[2] = new T[3]; 
} 

Matrix(int r, int c); //Parameterized constructor. 

~Matrix(); // Destructor. 

Matrix(const Matrix<T> &m); // Copy constructor

gjorde jeg det i steinalderen i C++.

 

Kilde:A matrix class that illustrates the use of templates etc.

Endret av Slettet+9871234
Lenke til kommentar

Dette er sikkert ikke tilbakemeldingen du hadde håpet på, men ...

 

Hvorfor kalle variablene rSize og cSize istedet for rowSize og columnSize? Du hadde sluppet å skrive en kommentar om hva variablene egentlig betyr.

 

Og kalle getterene for numRows og numCols? burde ikke det være en rimelig sammenheng mellom navnene på getterene og de private variablene?

 

Og den 3'eren som går igjen i Matrix() burde vel strengt tatt vært definert som to konstanter for default row size og default column size?

 

Ellers så var constructorene greie

Endret av tomsi42
Lenke til kommentar
Gjest Slettet+9871234

Ja, hvorfor ikke

 

#define BEGIN {                    /* Definition to avoid using {  */
#define END }                      /* Definition to avoid using }  */

 

som puttes i en header fil?

Endret av Slettet+9871234
Lenke til kommentar
Gjest Slettet+9871234

Er ikke du for beskrivende syntaks? :dribble:

 

Da liker du nok ikke Beta som er mer kompakt enn språk med C syntaks :blush: .

 

Mer informasjon om Beta her: http://www.oopschool.com/ Se blant annet på hoved og undermenyvalget Beta på verktøylinjen. :w00t:

Og hva hadde det med saken å gjøre?

Og hva hadde ditt innlegg med saken å gjøre? :roll:

 

Hvorfor kalle variablene rSize og cSize istedet for rowSize og columnSize? Du hadde sluppet å skrive en kommentar om hva variablene egentlig betyr.

Hvorfor henge seg i bagateller når det er så mange trær? :yes:

 

Det er også lettere å skrive rowSize og columnSize feil. :tease:

Endret av Slettet+9871234
Lenke til kommentar

Hvorfor henge seg i bagateller når det er så mange trær? :yes:

Det er muligens en bagatell for enkelte. Men jeg har alltid ment at det er viktig kode er lesbar og konsekvent. Det vil si at variablenavn er slik at de faktisk sier noe om hva de er til, og at man ikke bruker forskjellige begreper om samme ting.

 

Det var det som trigget meg.

 

Det er også lettere å skrive rowSize og columnSize feil. :tease:

Man sitter da i et seriøst utviklingsmiljø som håndterer slikt. Og det har vi hatt siden slutten av 80-tallet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...