opdrachtje..... ik kijg het niet voor elkaar!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Geert

Geert

14/06/2007 21:20:00
Quote Anchor link
Ik wil graag php leren en daarom heeft een vriend mij een php-opdrachtje gegeven alleen ik kom er echt niet uit....heb er koppijn van!
Misschien dat jullie mij een eindje op weg kunnen helpen!
Ik heb al gegoogeld maar nog niet gevonden dat mij verder hielp

het opdrachtje:
maak een php script die een array met willekeurige getallen op de juiste volgorde zet. Doe dit zo efficiënt mogelijk.

Ik begrijp dat dit met een while loopje moet maar daar houdt het mee op.

Ik hoor het graag,
Geert van der Heide
 
PHP hulp

PHP hulp

05/05/2024 20:20:12
 
RT

RT

14/06/2007 21:23:00
 
Geert

Geert

14/06/2007 21:25:00
Quote Anchor link
ja oke maar dat mocht ik niet doen ha ha ha, dit om php onder de knie te krijgen!
 
- wes  -

- wes -

14/06/2007 21:28:00
Quote Anchor link
dus het moet zo efficient mogelijk, maar het mag niet op zn aller efficients en hoe het moet :)


als je een leuke beginopdracht wil:

Maak een tabel 5x5, met daarin 1tm5 in de 1e kolom, 6tm10 in de 2e
a tm e in de 3e. kleurtjes in de 4e en de som van 1e en 2e kolom in de 5e kolom

makkie toch!
 
Arjan Kapteijn

Arjan Kapteijn

14/06/2007 21:33:00
Quote Anchor link
Zomaar iets wat mij naar binnen schiet,

foreach($randomarray as $getal)
{
$temparray[$getal] = $getal;
}

foreach($temparray as $getal)
{
$nieuwearray[] = $getal
}

Gokje, geen idee of het werkt want normaal gebruik je gewoon een sorteerfunctie.
 
Geert

Geert

14/06/2007 21:35:00
Quote Anchor link
ha ha ha ha ja klopt het moet heel efficiënt maar toch stiekem niet!
Jouw opdrachtje is ook niet misselijk trouwens ik richt me eerst maar even op die andere
 
Jan geen

Jan geen

14/06/2007 21:51:00
Quote Anchor link
als je de syntax een beetje onder de knie wil krijgen kan je dan niet beter beginnen met wat simpels? contact formuliertje, abc formule, rekenmachine dat soort dingen?
 
Niek s

niek s

14/06/2007 21:56:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
    // aangenomen dat je een array $array hebt met random getallen
    // dit zuigt, maar t werkt. Tot aan het getal 9999

    $narary = array();
    for($i=0; $i<9999; $i++) {
        if(in_array($i,$array)) {
            $narray[] = $i;
        }
    }

    print_r($narray);
?>
 
RT

RT

14/06/2007 21:59:00
Quote Anchor link
Dat is niet erg efficient, al weet ik zelf niet 1,2,3 hoe het wel efficient kan.
Overigens, deze methode werkt alleen met hele getallen.
Gewijzigd op 01/01/1970 01:00:00 door RT
 

14/06/2007 22:48:00
Quote Anchor link
Als je nu eerst alle value's omzet in key en dan weer terug ben je er volgens mij
werkt niet
Gewijzigd op 01/01/1970 01:00:00 door
 
Arjan Schuurman

Arjan Schuurman

15/06/2007 08:55:00
Quote Anchor link
misschien moet je tog eens kijken naar sort() daar zijn die functies toch voor gebouwd, om het even makkelijker te maken zeg maar :P.
 
Martijn Wieringa

Martijn Wieringa

15/06/2007 09:41:00
Quote Anchor link
Belangrijk is dat het bedenken van een oplossing veel grotere leerwaarde heeft dan het uittypen ervan in code.. maar euhm, mijn gedachte gang is als volgt..

- Loop door de array heen op zoek naar de laagste waarde. (bijvoorbeeld door een 'variabele' bij te houden die wijst naar de index van de laagste waarde).
- Na het laatste item in de array te hebben bekeken, plaats je de gevonden laagste waarde op de 1e index van je 'resultaat-array'.
- 'Wis' de waarde uit de array
- Herhaal de procedure tot alle items uit de originele array zijn gewist.

Retourneer de 'resultaat-array'

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

function array_sort($array)
{

    $result = array();

    if(sizeof($array) > 0)
    {

        // .. dit mag je verder zelf uitwerken :P
    }

    return $result;
}


?>
 
Martijn Wieringa

Martijn Wieringa

15/06/2007 09:59:00
Quote Anchor link
Ps: bedenk dat er altijd meerdere wegen naar Rome leiden ;)

(al hoef je daar misschien niet naar toe..)
 
- Roland -

- Roland -

15/06/2007 10:19:00
Quote Anchor link
" Sorteert op basis van recursie en omwisseling. In een set gegevens van N elementen wordt ergens een spilwaarde gekozen (meestal gewoon de middelste). Dan wordt van de onderkant van de set gezocht naar een waarde die groter is dan de spil, en van de bovenkant naar een waarde die kleiner is dan de spil. Deze worden omgewisseld, en dit wordt herhaald tot de zoekpointers tot aan de spil komen. Dan zijn alle gegevens aan de ene kant kleiner dan de spil, en aan de andere kant groter. Door nu de sort over deze twee deel-sets aan te roepen (recursie), worden deze ook weer voor-gesorteerd, net zolang tot de deelset nog maar uit 1 data-element bestaat, en de hele set gesorteerd is. "

Dat is het idee !!

En dan heb je nog wat leuk puzzelwerk om het te coderen !
Gewijzigd op 01/01/1970 01:00:00 door - Roland -
 
Gerben G

Gerben G

15/06/2007 11:18:00
Quote Anchor link
volgens mij moet dit wel werken (niet getest)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$getallen
= array(1,2,3,4,5,6,7,8,9,0);
$sort = array();
$totaal = count($getallen);
for($i=1; $i<=$totaal; $i++)
{

  $getal = min($getallen);
  array_push($sort,$getal);
  $key = array_search($getal,$getallen);
  array_splice($getallen,$key);
}

echo'<pre>';
print_r($sort);
echo'</pre>';
?>
Gewijzigd op 01/01/1970 01:00:00 door Gerben G
 
K i p

K i p

15/06/2007 13:22:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
    # We maken een array gevuld met cijfers van 0 tot en met 999
    $array = range ( 0 , 999 );
    
    # Om te zien wat dit oplevert kun je dit doen:
    print_r ( $array );
    
    # Nu is het wel een array, alleen niet willekeurig.
    # We gaan dus de elementjes door elkaar gooien

    shuffle ( $array );
    
    # Om te zien wat dit oplevert kun je dit doen:
    print_r ( $array );
    
    # Dat is deel 1 van de opdracht: een array met willekeurige getallen
    # Nu moet hij op volgorde worden gezet:

    sort ( $array );
    
    # Om te zien wat dit oplevert kun je dit doen:
    print_r ( $array );
    
    # Klaar
?>
 
Bastiaan de Jong

Bastiaan de Jong

15/06/2007 17:51:00
Quote Anchor link
De opdracht is niet om te leren hoe de functie sort() werkt of andere handige php functies :)

Wat je moet doen is het array met getallen langslopen. Je vergelijkt het 1e getal met het 2e getal, is de 1e hoger dan wissel je ze om anders doe je niets en ga je door naar het 2e en 3e getal, is het 2e hoger dan het 3e dan wissel je ze om en anders doe je weer niets en ga je door naar het 3e en 4e getal enzovoort.

Nadat je het array 1 keer bent doorgelopen op deze manier staat het hoogste getal altijd achteraan. wat voor rij getallen je ook hebt.

Bijvoorbeeld: 7, 9, 2, 3, 1, 5 is na deze loop: 7, 2, 3, 1, 5, 9. (Ik hoop dat ik dit goed heb uit het hoofd). Dit is eigenlijk de loop die je eerst voor elkaar moet krijgen.

Het tweede deel van de oplossing is het herhalen van deze loop. Alleen elke keer als je de loop uitvoert kijk je een getal minder ver. De eerste keer bekijk je dus alle getallen, de tweede keer weer je zeker dat het laatste getal aan het eind staat en voer je de loop dus uit op de lengte van het array-1. Daarna weet je zeker dat de laatste 2 getallen goed staan, in dit geval 7, 9. Zo ga je door. In dit voorbeeld array wordt deze loop dus 5 keer uitgevoerd.

ik zal niet de opdracht verpesten maar de code wordt dus:

$a = array(7, 9, 2, 3, 1, 5);
$i = count($a)-1; //variabele die in de while loop steeds 1 lager wordt zolang $i groter dan 0 is. Deze waarde kan ook gebruikt worden voor het aantal keren uitvoeren van de for loop binnen 1 loop van de while loop.

while () //de while loop is voor het tweede deel van de oplossing
{
for() //1e deel van de oplossing
{
if ( getal 1 is groter dan getal 2)
{
//omwisselen
}
}
}
print_r($a);

foreach gaat voor het eerste deel van de opdracht wel werken maar niet voor het tweede deel. De term foreach zegt het al. Hij loop alle waardes in het array door. Je wilt dit de eerste keer wel maar de tweede keer wil je alle waardes in het array behalve de laatste doorlopen. Daarna alle waardes behalve de laatste 2...


Maar probeer eerst maar deel 1: 7, 9, 2, 3, 1, 5 wordt: 7, 2, 3, 1, 5, 9

succes :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.