door ceeda » do 15 jan 2009, 16:29
Heel erg bedankt voor de informatie. Er is nog een vraagje ivm procedures en pointers:
We kregen de vraag
Schrijf een procedure om in een woord bestaande uit letters van 'a' tot 'z', welke reeds alfabetisch geordend zijn, een vooropgegeven letter in te voegen zodat in het nieuwe woord de letters opnieuw alfabetisch geordend zijn!(de in te voegen letter is opnieuw van 'a' tot 'z', onderstel verder dat er "plaats" genoeg is om een letter in te voegen!). Achteraf moet het nieuwe woord omgezet worden in hoofdletters. Gebruik enkel schuivende pointers!
na overleg leerkracht en medestudenten kwamen we dit uit:
void voeg (char *p, char l)
{
char *q; // hulp variabele
while (*p!='.') p++; // Naar het einde van de tabel gaan . is stopcode
p=p+1; // De volgende waarde in de tabel stopcode maken.
*p='.';
p--;
while(*p>l || *p=='.') //iedere waarde vgl met l, is de waarde groter, waarde = waarde vroeger in de tabel
{ cout<<*p<<endl;
q=p;
q--;
*p=*q;
p--; // teruglopen in de tabel
}
}
int main(void)
{ char l, char tabel[20]={'a','b','c','e','f','g','i','l','.'}, *p;
cout<<"geef l= "; cin>>l;
p=tabel;
voeg(p,l);
for (int i=0; tabel!=0; i++){ cout<<tabel;}
}
Onze prof zei dat hij op het examen een nieuwe soort vraag zal stellen :
van 'A' tot 'Z' nu , welke reeds omgekeerd (dalend!) alfabetisch geordend zijn, een vooropgegeven letter in te voegen zodat in het nieuwe woord de letters opnieuw omgekeerd(dalend) alfabetisch geordend zijn!(de in te voegen letter is opnieuw van 'A' tot 'Z', onderstel verder dat er "plaats" genoeg is om een letter in te voegen!). Achteraf moet het nieuwe woord omgezet worden in kleine letters. Gebruik enkel schuivende pointers!
Enig idee hoe dit op te lossen?
Heel erg bedankt voor de informatie. Er is nog een vraagje ivm procedures en pointers:
We kregen de vraag
[color="#9ACD32"]
Schrijf een procedure om in een woord bestaande uit letters van 'a' tot 'z', welke reeds alfabetisch geordend zijn, een vooropgegeven letter in te voegen zodat in het nieuwe woord de letters opnieuw alfabetisch geordend zijn!(de in te voegen letter is opnieuw van 'a' tot 'z', onderstel verder dat er "plaats" genoeg is om een letter in te voegen!). Achteraf moet het nieuwe woord omgezet worden in hoofdletters. Gebruik enkel schuivende pointers![/color]
na overleg leerkracht en medestudenten kwamen we dit uit:
void voeg (char *p, char l)
{
char *q; // hulp variabele
while (*p!='.') p++; // Naar het einde van de tabel gaan . is stopcode
p=p+1; // De volgende waarde in de tabel stopcode maken.
*p='.';
p--;
while(*p>l || *p=='.') //iedere waarde vgl met l, is de waarde groter, waarde = waarde vroeger in de tabel
{ cout<<*p<<endl;
q=p;
q--;
*p=*q;
p--; // teruglopen in de tabel
}
}
int main(void)
{ char l, char tabel[20]={'a','b','c','e','f','g','i','l','.'}, *p;
cout<<"geef l= "; cin>>l;
p=tabel;
voeg(p,l);
for (int i=0; tabel[i]!=0; i++){ cout<<tabel[i];}
}
Onze prof zei dat hij op het examen een nieuwe soort vraag zal stellen :
[color="#FF0000"]van 'A' tot 'Z' nu , welke reeds omgekeerd (dalend!) alfabetisch geordend zijn[/color],[color="#9ACD32"] een vooropgegeven letter in te voegen zodat in het nieuwe woord de letters opnieuw omgekeerd(dalend) alfabetisch geordend zijn!(de in te voegen letter is opnieuw van 'A' tot 'Z', onderstel verder dat er "plaats" genoeg is om een letter in te voegen!). Achteraf moet het nieuwe woord omgezet worden in kleine letters. Gebruik enkel schuivende pointers!
[/color]
Enig idee hoe dit op te lossen?