Du skal lage et program som (til venstre) lar brukeren oppgi HVA som skal skje med en tabell (ved navn X). Resultatet (X) vises i en scrollbar listboks (til høyre) ved navn lstA. Programmet har EN global variabel: En tabell av heltall ved navn X, initielt med 0 (null) element. Flere globale i ditt program tolereres IKKE! Det skal lages en rekke eventprosedyrer som tar seg av brukerens ønske og viser resultatet i lstA. Noen forslag til tillegg ("
Hvis du vil") er angitt (men ikke obligatorisk).
- Lag deg en funksjon hentHeltall(t) som returnerer et heltall fra parameter t (en String). Funksjonen SKAL brukes minst to steder!
- Bruker ser en knapp for "størrelseendring" (btnStorrelseEndring) som, hvis trykket, ber brukeren med inputbox() oppgi en størrelse intAntElement. Bruk hentHeltall(). Hvis dette er identisk med X's lengde skriver du "Ingen endring!" i msgbox(). Hvis ikke, kaller du subrutinen nyStorrelse(a, n) med X og intAntElement som argument. Innholdet skal preserveres. Be brukeren med inputbox() bekrefte (ja/nei) hvis tabellen skal ned i omfang (og verdier kan bli borte!).
- Brukeren ser en knapp for "elementendring" (btnElementEndring) som, hvis trykket, ber brukeren oppgi en index (intIndex) med inputbox() og hentHeltall(). Hvis legal index, skal brukeren oppgi ny verdi (intVerdi) med inputbox() og hentHeltall() som deretter legges inn i X i posisjon intIndex.
- brukeren ser en knapp "Sjekk stigende" (btnSjekkStigende) som hvis trykket, skriver "tabellen er (ikke) stigende" i msgbox(), avhengig av resultatet fra den boolske funksjonen erStigende(a) som kalles med X som argument. Hvis du vil: Denne funksjonen (erStigende) skriver melding med msgbox() som sier f.eks. "erStigende: feil i linje 11 og 12".
- brukeren ser en knapp "Reverser" (btnReverser), som hvis trykket, kaller rutinen reverser(a) med X som argument. Denne subrutinen (ikke funksjon!) snur opp ned på tabellen.
- Hver gang bruker har gjort noe, og X blir endret, skal resultatet vises. Etter f.eks. reversering, kalles subrutinen visTabell(a,l) med X og lstA som argument. Denne visTabell(a,l) viser tabell-elementene som med nr og innhold, f.eks. "3: 77" hvis det ligger 77 i fjerde element.
Resten er
Hvis du vil
- Brukeren ser en knapp for "Lineariser" (btnLineariser), som hvis trykket, ber bruker oppgi intStartverdi og intStigningstall (med inputbox og hentHeltall). Deretter kalles subrutinen lineariser(a,start,k) med X, intStartverdi og intStigningstall som parameter. Subrutinen legger verdien start+k*i inn i element a(i). Hele tabell a skal fylles, slik at f.eks. en tre-elements tabell blir
- { 3, 4, 5 } hvis start=3 og k=1 (stigende)
- med 3 og -2 blir resultatet { 3, 1, -1 } (synkende)
- med 4 og 0 (null) blir det { 4, 4, 4 } (alle blir lik)
- Brukeren ser en knapp for "Randomiser" (btnRandomiser), som hvis trykket, spør bruker (med inputBox og hentHeltall) etter heltallene minV og maxV. Deretter kalles subrutinen randomiser(a, laveste, hoyeste) med X, minV og maxV som argument. Denne subrutinen legger tilfeldige verdier inn i alle plasser (i tabell a), ved hjelp av Math.Random (bak i boka).
- brukeren ser en knapp "Sorter" (btnSorter), som hvis trykket kaller rutinen sorter(a) med X som argument. Denne tar seg av stigende boblesortering og skriver msgbox som sier "sorter: Gjorde 239 sammenligninger og 200 ombyttinger".
- Opprett en lstB (til høyre for lstA). Etter at bruker ber om omforming av tabellen skal du først kalle visTabell(a,l) med X og lstB som argument. Slik blir X vist i lstB. Deretter endres tabellen. Etter endringen kalles visTabell(a,l) med X og lstA som argument. Nu kan du sammenligne!
Ingen kommentarer:
Legg inn en kommentar