Programeer opdrachtenOpdracht : opdr2_Elmo1608.txt

Terug naar de inzendingen
Opdracht 2,Reno Elmendorp
20-Jan-2005
 Hier is mijn bijdrage.
 Ik ben pas ongeveer een maand bezig met C, dus het zou best wel op een betere manier gekund hebben.
 Maar het werkt en daar gaat het om.
 1 
*****Opdracht2.c*****
  
 2/* Reno Elmendorp (c) 2005 GNU/GPL */
 3
 4#include 
 5
 6int schakel(int lamp)
 7{
 8   int keuze, stand;
 9   printf("Welke schakelaar wilt u indrukken?\n1: plafondlicht bij het bed\n2: schemerlicht bij het bed\n3: Beide schakelaars bij het bed gelijktijdig\n4: Schakelaar bij de deur\n5: schakelaar bij de balie\n0: Geen schakelaar\n>");
 10   scanf("%i",&keuze);
 11   switch(keuze)
 12   {
 13      case 0: return 0;
 14         break;
 15      case 1: stand = bed_pl(lamp);
 16         break;
 17      case 2: stand = bed_sc(lamp);
 18         break;
 19      case 3: stand = bed_bd(lamp);
 20         break;
 21      case 4: stand = deur(lamp);
 22         break;
 23      case 5: stand = balie(lamp);
 24         break;
 25      default: printf("Ongeldige invoer\n");
 26         break;
 27   }
 28   return stand;
 29}
 30
 31int anderekamer(kamer)
 32{
 33   int nieuw;
 34   printf("U bevindt zich nu in kamer %i\nGeef een ander kamer nummer:",kamer);
 35   scanf("%i",&nieuw);
 36   return nieuw;
 37}
 38
 39int bed_pl(int lamp)
 40{
 41   int nlamp;
 42   if(lamp == 0)
 43      nlamp = 1;
 44      else
 45      {
 46         if(lamp == 1)
 47            nlamp = 0;
 48            else
 49            {
 50               if(lamp == 2)
 51                  nlamp = 3;
 52                  else
 53                  {
 54                     if(lamp == 3)
 55                        nlamp = 2;
 56                  }
 57            }
 58      }
 59   
 60   return nlamp;
 61}
 62
 63int bed_sc(int lamp)
 64{
 65   int nlamp;
 66   if(lamp == 0)
 67      nlamp = 2;
 68      else
 69      {
 70         if(lamp == 1)
 71            nlamp = 3;
 72            else
 73            {
 74               if(lamp == 2)
 75                  nlamp = 0;
 76                  else
 77                  {
 78                     if(lamp == 3)
 79                        nlamp = 1;
 80                  }
 81            }
 82      }
 83      
 84   return nlamp;
 85}
 86
 87int bed_bd(int lamp)
 88{
 89   int nlamp;
 90   if(lamp == 0)
 91      nlamp = 3;
 92      else
 93      {
 94         if(lamp == 1)
 95            nlamp = 2;
 96            else
 97            {
 98               if(lamp == 2)
 99                  nlamp = 1;
 100                  else
 101                  {
 102                     if(lamp == 3)
 103                        nlamp = 0;
 104                  }
 105            }
 106      }
 107         
 108   return nlamp;
 109}
 110
 111int deur(int lamp)
 112{
 113   int nlamp;
 114   if(lamp == 0)
 115      nlamp = 3;
 116      else
 117      {
 118         if(lamp == 1)
 119            nlamp = 0;
 120            else
 121            {
 122               if(lamp == 2)
 123                  nlamp = 3;
 124                  else
 125                  {
 126                     if(lamp == 3)
 127                        nlamp = 0;
 128                  }
 129            }
 130      }
 131      
 132   return nlamp;
 133}
 134
 135int balie()
 136{
 137   int nlamp;
 138   nlamp = 0;
 139   return nlamp;
 140}
 141
 142main()
 143{
 144   int kamer, keuze, t;
 145   int licht[100];
 146   kamer = 0;
 147   for(t=1;t<101;t++)
 148      licht[t]=0;
 149   while(1)
 150   {
 151      printf("wat wilt u doen?\n1: Een schakelaar omzetten\n2: Naar een andere kamer gaan\n>");
 152      scanf("%i%",&keuze);
 153      switch(keuze)
 154      {
 155         case 1: licht[kamer]=schakel(licht[kamer]);
 156            break;
 157         case 2: kamer=anderekamer(kamer);
 158            break;
 159         default: printf("Ongeldige invoer\n");
 160            break;
 161      }
 162      printf("De verlichting op kamer %i is als volgt:\n",kamer);
 163      if(licht[kamer]==1 || licht[kamer]==3)
 164         printf("Plafondlamp is aan\n");
 165         else
 166            printf("Plafondlamp is uit\n");
 167      if(licht[kamer]==2 || licht[kamer]==3)
 168         printf("Schemerlamp is aan\n");
 169         else
 170            printf("Schemerlamp is uit\n");
 171   }
 172}
 
 
Mijn commentaar
 
 [QUOTE]Ik ben pas ongeveer een maand bezig met C[/QUOTE]
 Op je C code heb ik niet zo heel veel aan te merken.
 In aanmerking genomen dat je er nog maar net mee bent begonnen ziet het er
 netjes uit.
 
 [QUOTE]dus het zou best wel op een betere manier gekund hebben.[/QUOTE]
 Dat kan altijd, maar als je zelf niet tevreden bent,
 waarom heb je dan niet wat meer tijd genomen ?
 Pascal's hotelketen is zeker niet van plan om voor tweede keuze software te gaan betalen !
 
 [QUOTE]Maar het werkt en daar gaat het om.[/QUOTE]
 Nee, daar gaat het dus niet om Reno !
 lees nog eventjes de richtlijnen op mijn website.
 
 Ik vind het erg leuk dat je mee hebt gedaan Reno !
 Maar je inzending voldoen op een aantal punten niet aan de opdracht !
 - Je programma is nauwelijks gedocumenteerd (je kunt toch minstens bij elke functie aangeven wat het nut ervan is)
 Ik moet dus b.v. maar raden dat jouw systeem 100 hotelkamers aan kan.
 - Je hebt een erg onduidelijke scheiding tussen je besturings logica,
 en het deel dat de hardware vertegenwoordigd.
 - Het programma werkt welliswaar, maar is niet erg inovatief te noemen.
 
 Dit laatste had ik je gezien je ervaring graag willen vergeven,
 maar je geeft zelf al aan dat het beter kan, en je had nog twee weken de tijd !
 
 Hoop dat je volgende keer ook weer mee doet.