Hi.
Ich habe ein Problem und zwar haben wir kürzlich in Informatik mit Java-Programmieren angefangen und sollten als 1. Aufgabe folgendes C-Programm auf Java umschreiben. Das Programm realisiert ein Assoziativarray, dass ein Liste von Namen entgegennimmt, die Häufigkeit der Eingabe zählt und beides anschließend wieder ausgibt. Ich hoffe, es klann mir jemand bei der Umwandlung nach Java helfen.
/*Assoziativarray
Variante des Programms aus Stroustrup, 1995, Abschnitt 2.3.10 "Refer-ences"*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define large 1024
struct pair{char* name; int val;};
struct pair vec[large+1]; /*Die externe Tabelle wird zu null
initialisiert*/
/*Verwaltung eine Menge von Paaren. Sucht nach p und liefert den Zeiger auf
das entsprechende Paar. Falls p noch nicht vorkommt, wird der Zeiger auf
ein noch unbenutzes Paar geliefert.*/
struct pair* find(const char*p){
int i;
for (i=0; vec.name; i++) if (strcmp(p, vec.name)==0) return &vec;
if (i==large) return &vec[large-1];
return &vec;
}
int* value(const char* p) {
struct pair* res = find(p);
if (res->name==0) { /*Initialisieren eines neuen Paares*/
res->name = malloc(strlen(p) + 1); /*Speicherreservierung*/
strcpy(res->name, p);
}
return &res->val;
}
void main() {
char buf[256];
int i;
printf("Haeufigkeit eingegebener Woerter (Abschliessen mit \".\")\n");
scanf("%s", buf);
while (buf[0]!='.'){(*value(buf))++; scanf("%s", buf);}
printf("\n");
for (i=0; vec.name; i++) printf("%s: %u\n", vec.name, vec.val);
}
Danke schonmal...
Ich habe ein Problem und zwar haben wir kürzlich in Informatik mit Java-Programmieren angefangen und sollten als 1. Aufgabe folgendes C-Programm auf Java umschreiben. Das Programm realisiert ein Assoziativarray, dass ein Liste von Namen entgegennimmt, die Häufigkeit der Eingabe zählt und beides anschließend wieder ausgibt. Ich hoffe, es klann mir jemand bei der Umwandlung nach Java helfen.
/*Assoziativarray
Variante des Programms aus Stroustrup, 1995, Abschnitt 2.3.10 "Refer-ences"*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define large 1024
struct pair{char* name; int val;};
struct pair vec[large+1]; /*Die externe Tabelle wird zu null
initialisiert*/
/*Verwaltung eine Menge von Paaren. Sucht nach p und liefert den Zeiger auf
das entsprechende Paar. Falls p noch nicht vorkommt, wird der Zeiger auf
ein noch unbenutzes Paar geliefert.*/
struct pair* find(const char*p){
int i;
for (i=0; vec.name; i++) if (strcmp(p, vec.name)==0) return &vec;
if (i==large) return &vec[large-1];
return &vec;
}
int* value(const char* p) {
struct pair* res = find(p);
if (res->name==0) { /*Initialisieren eines neuen Paares*/
res->name = malloc(strlen(p) + 1); /*Speicherreservierung*/
strcpy(res->name, p);
}
return &res->val;
}
void main() {
char buf[256];
int i;
printf("Haeufigkeit eingegebener Woerter (Abschliessen mit \".\")\n");
scanf("%s", buf);
while (buf[0]!='.'){(*value(buf))++; scanf("%s", buf);}
printf("\n");
for (i=0; vec.name; i++) printf("%s: %u\n", vec.name, vec.val);
}
Danke schonmal...