RSS-Feed

Onlinetest in C

von Kai um 19:19 am Montag, 23. November 2009 in Programmiersprachen, Studium | 0 Kommentare

Heute fand nach sechswöchiger Einführung in C in dem Modul “Programmieren 3″ der Onlinetest in C statt. Nächste Woche gehts dann mit einer Einführung in Python weiter.

Da ich mir mittlerweile meiner akuten Prüfungsangst und der damit einhergehenden Blackouteritis bewusst bin, gehe ich davon aus, dass ich nur knapp bestanden hab, obwohl (zumindest die ersten beiden Aufgaben) nicht so schwer waren.

Nachfolgend nun die ersten beiden Aufgaben des Onlinetests. Die dritte Aufgabe reiche ich wie schonmal nach, sobald mein Kopf nicht mehr ganz so matschig ist.

Aufgabe 1

/****************************************************
 * Aufgabe: Es werden Noten (Note '1' bis Note '6') *
 * auf der Kommandozeile eingegeben. Als Ausgabe    *
 * erscheint dann die Summe der einzeln eingegeben- *
 * en Noten                                         *
 ****************************************************/


#include <stdio.h>

int main(void) {

  int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0;
  int note;
  while(scanf("%d", &note) != EOF) {
    switch (note) {
    case 1:
      n1++;
      break;
    case 2:
      n2++;
      break;
    case 3:
      n3++;
      break;
    case 4:
      n4++;
      break;
    case 5:
      n5++;
      break;
    case 6:
      n6++;
      break;
    }
  }

  printf("Note 1: %d mal\n", n1);
  printf("Note 2: %d mal\n", n2);
  printf("Note 3: %d mal\n", n3);
  printf("Note 4: %d mal\n", n4);
  printf("Note 5: %d mal\n", n5);
  printf("Note 6: %d mal\n", n6);
}

Aufgabe 2

/****************************************************
 * Aufgabe: Versehentlich wurden einige Lottozahlen *
 * doppelt gezogen. Es soll eine beliebige Reihe    *
 * von Zahlen auf der Kommandozeile eingegeben und  *
 * die doppelt vorkommenden Zahlen geklammert       *
 * werden                                           *
 ****************************************************/


#include <stdio.h>
#include <assert.h>

typedef struct zahlen {
  int zahl;
  struct zahlen *next;
} Zahl;

Zahl *neueZahl(void) {
  Zahl *z;

  z = malloc(sizeof(Zahl));
  assert(z);
  z->zahl = 0;
  z->next = NULL;

  return z;
}

Zahl *start;
Zahl *tmp;

int main(void) {

  int eingabe;
  int erstesMal = 0;
  while(scanf("%d", &eingabe) != EOF) {
    if(erstesMal == 0) {
      Zahl *neu = neueZahl();
      neu->zahl = eingabe;
      neu->next = NULL;
      start = neu;
      tmp = neu;
      erstesMal = 1;
    } else {
      Zahl *neu = neueZahl();
      neu->zahl = eingabe;
      tmp->next = neu;
      tmp = neu;
    }

  }

  printf("%d ",start->zahl);
  tmp = start->next;
  while(tmp != NULL) {
    if(start->zahl == tmp->zahl) {
      printf("[%d] ",tmp->zahl);
    } else {
      printf("%d ",tmp->zahl);
    }
    start = tmp;
    tmp = start->next;
  }
}

Google Chrome OS angetestet

von Kai um 23:11 am Freitag, 20. November 2009 in News | 0 Kommentare

Gestern hat Google bekanntermaßen den Sourcecode zum hauseigenen Betriebssystem Chrome OS veröffentlicht. Eigentlich ist es mehr ein Browser, als ein Betriebssystem. Denn Google geht davon aus, dass sich 95% aller Internetaktivitäten im Browser abspielen.
Neugierig habe ich mir also die erste frühe Version besorgt und einen kurzen Blick darauf geworfen. Viel länger kann man sich mit Chrome OS auch bisher noch nicht beschäftigen, da ich außer dem Browser nicht viel mehr entdecken konnte.

chromium2 chromium1