Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 15 von 2.891 Treffern Seiten (193): [1] 2 3 nächste » ... letzte »
Autor Beitrag
Thema: Schleifen
eulerscheZahl

Antworten: 3
Hits: 475
02.01.2019 21:09 Forum: Praktische Informatik


Das ist dann aber a^3 + b^3 + c^3 = d^3, nicht a^3 + b^3 = c^3.
Thema: Schleifen
eulerscheZahl

Antworten: 3
Hits: 475
31.12.2018 10:05 Forum: Praktische Informatik


Ja. Du wirst dabei aber keine Lösungen finden, es gibt nämlich keine.
Siehe Fermats letztes Theorem.
Thema: Abfragen ob Eingabe eine ganze Zahl ist in C
eulerscheZahl

Antworten: 2
Hits: 732
19.05.2018 09:56 Forum: Softwaretechnik


Die fehlerhafte Eingabe wird nicht gelöscht, sondern du versuchst mit jedem scanf erneut, die Zahl zu parsen. Du musst den Eingabepuffer also manuell leeren.

Hier eine modifizierte Version:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
#include <stdio.h>
#include <pthread.h>
#include <signal.h>
#include <unistd.h>

void *incrementCounter(void *counter_ptr)  {
    int *counter = (int *)counter_ptr;
    while(1) {
        printf("%d\n", *counter);
        sleep(1);
        (*counter)++;
    }
}

void *readNumber(void *counter_ptr) {
    int number;
    while(1) {
        int* counter = (int *)counter_ptr;
        if(scanf("%d", &number) == 1) {
            printf("Erhöhe den Zähler um %d\n", (int)number);
            (*counter) = (*counter) + number;
        }
        else {
            printf("Es können nur natürliche Zahlen eingegeben werden!\n");
            int ch;
			while ((ch = getchar()) != '\n' && ch != EOF)
				;
        }
    }
}

void sig_handler(int signo) {
  if (signo == SIGINT) {
      pthread_exit(NULL);
  }
}

int main () {
    int counter = 0;

    if (signal(SIGINT, sig_handler) == SIG_ERR)
      printf("\ncan't catch SIGINT\n");

    pthread_t p1, p2;
    pthread_create (&p1, NULL, incrementCounter, &counter);
    pthread_create (&p2, NULL, readNumber, &counter);

    pthread_join (p1, NULL);
    pthread_join (p2, NULL);

  printf ("\n");
  return 0;
}
Thema: Komplexitätsklasse
eulerscheZahl

Antworten: 5
Hits: 783
07.05.2018 20:35 Forum: Algorithmen


Es gibt immer 3 Rechnungen, die durchgeführt werden müssen: eine Multiplikation, eine Addition und eine Division. Das ist fest und hängt nicht von n ab (etwa: n viele Additionen oder n^2 viele). Deshalb konstante Laufzeit.
Thema: Komplexitätsklasse
eulerscheZahl

Antworten: 5
Hits: 783
05.05.2018 14:35 Forum: Algorithmen


Dein Code verwendet aber ein Integer.
Und für diesen Datentyp ist die Multiplikation in der Laufzeit konstant.

So wie ich die Multiplikation in der Schule gelernt habe, geht sie übrigens in O(log(n)).
O(n^2) würde je bedeuten, dass du n^2 mal in Einerschritten hochzählst, bis du das Ergebnis erreichst. Ich glaube nicht, dass das so gelehrt wird.
An O(n) kann ich mich noch erinnern (also durch wiederholte Addition: n+n+n+n....+n).
Thema: Komplexitätsklasse
eulerscheZahl

Antworten: 5
Hits: 783
03.05.2018 21:29 Forum: Algorithmen


Für den Computer macht es keinen Unterschied, ob du 1+2 rechnest, oder 23421+53732.
Du hast hier 3 Rechenschritte(+, *, /). Die Anzahl ist immer gleich, unabhängig vom n, deshalb konstante Laufzeit O(1).

O(n^3) wäre sowas:
code:
1:
2:
3:
4:
5:
6:
7:
8:
int x = 0;
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        for (int k = 0; k < n; k++) {
            x++;
        }
    }
}
Thema: Zufallszahlen die sich nicht wiederholen in einem Array speichern
eulerscheZahl

Antworten: 1
Hits: 642
29.03.2018 18:21 Forum: Informatik in der Schule


Ungetestet:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
for (int i = 0; i < array.Length; i++) {
	bool placed = false;
	while (!placed) { // wiederhole sooft mit neuer Zufallszahl, bis es klappt
		int help = r.Next(0, 5);
		bool found = false;
		for (int j = 0; j < i; j++) {
			if (array[j] == help) found = true;
		}
		if (!found) { // kein doppelter Eintrag
			placed = true;
			array[i] = help;
		}
	}
}
Thema: Java Taschenrechner
eulerscheZahl

Antworten: 1
Hits: 600
29.03.2018 18:16 Forum: Sonstige Fragen


result = Math.pow(result, x);
bzw. Math.sqrt(result)
Thema: Informationssysteme
eulerscheZahl

Antworten: 4
Hits: 801
29.03.2018 18:15 Forum: Informatik in der Schule


Mit SAP kannst du bestimmt ein paar Seiten füllen.
Thema: Logik / Aussagenalgebra
eulerscheZahl

Antworten: 1
Hits: 628
02.03.2018 08:38 Forum: Praktische Informatik


[latex]\overline{a \land c} \land (\overline{a} \lor \overline{c}) \land (b \lor \overline{c}) = \\  \underbrace{=}_{de Morgan} (\overline{a} \lor \overline{c}) \land (\overline{a} \lor \overline{c}) \land (b \lor \overline{c}) =  \\  \underbrace{=}_{\text{2 mal gleicher Term}} (\overline{a} \lor \overline{c}) \land (b \lor \overline{c}) = \\ \underbrace{=}_{Distributivgesetz} (\overline{a} \land b) \lor (\overline{a} \land \overline{c}) \lor (b \land \overline{c}) \lor (\overline{c} \land \overline{c}) = \\ \underbrace{=}_{\text{2 mal gleicher Term}} (\overline{a} \land b) \lor (\overline{a} \land \overline{c}) \lor (b \land \overline{c}) \lor \overline{c} = \\  \underbrace{=}_{Zwischenschritt} (\overline{a} \land b) \lor \underbrace{(\overline{a} \land \overline{c}) \lor (b \land \overline{c}) \lor (1 \land\overline{c})}_{\text{überall } \overline{c}} = \\  \underbrace{=}_{\text{c ausklammern}} (\overline{a} \land b) \lor (\overline{a} \lor b \lor 1) \land\overline{c} = \\ \underbrace{=}_{x \lor 1 = 1} (\overline{a} \land b) \lor \overline{c}[/latex]
Thema: Aktivitätsdiagramm
eulerscheZahl

Antworten: 8
Hits: 1.209
22.02.2018 07:28 Forum: Praktische Informatik


.
Thema: Zugriff auf undefinierten Array
eulerscheZahl

Antworten: 1
Hits: 752
01.02.2018 08:04 Forum: Sonstige Fragen


Die Ausgabe erfolgt zur Laufzeit und somit nicht vom Compiler.

Arrays sind 0 indiziert. Das heißt mit int a[3] kannst du a[0], a[1] und a[2] verwenden. a[3] Liegt außerhalb des Arrays.
Thema: effektive Suchalgorithmen
eulerscheZahl

Antworten: 1
Hits: 641
31.01.2018 18:42 Forum: Praktische Informatik


Ist diese Aufgabe etwa, was du suchst?
Hier ist eine entsprechende Lösung dazu.
Thema: Wie erstelle ich eine Wahrheitstabelle aus einem Zustandsdiagramm?
eulerscheZahl

Antworten: 1
Hits: 740
29.01.2018 21:25 Forum: Theoretische Informatik


Es ist ein Mealy Automat.

Knoten A ist als Z0=0, Z1=0 kodiert (siehe Tabelle rechts).
Wenn du dann ein E0=0, E1=1 als Eingabe kriegst (steht beim Pfeil mit 0,1 von A nach B), ist die Ausgabe A=1. Also ist die zweite Zeile der Tabelle 0 0 0 1 1.
Das 0,0 / 1,1 bedeutet, es gibt für beide Eingaben. Ein X heißt 0 oder 1.

Eigentlich fehlt in deiner Zustandstabelle noch Z0* und Z1* (der Folgezustand, zu dem du wechselst).
Thema: Bitweise Operatoren, Gleitkommazahlen?(JAVA)?
eulerscheZahl

Antworten: 3
Hits: 945
15.01.2018 16:42 Forum: Informatik in der Schule


Leider habe ich einen Fehler gemacht, es ist 23 statt 22.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
public class Infoboard {
	static void PrintBinary(int n, int pad, String meaning) {
		System.out.println();
		if (meaning != "")
			System.out.print(meaning + ": ");
		String bits = Integer.toBinaryString(n);
		while (bits.length() < pad)
			bits = "0" + bits;
		System.out.println(bits);
	}

	static float doubleValue(float f) {
		int n = Float.floatToIntBits(f);
		PrintBinary(n, 32, "");
		System.out.println("VEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM");
		//Vorzeichen, Exponent (8 Bits), Mantisse (23 Bits)

		int exponent = (n >> 23) & 0xff;
		PrintBinary(exponent, 8, "Exponent");

		//Exponent auf 0 setzen
		n ^= exponent << 23;
		PrintBinary(n, 32, "");
		System.out.println("VEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM");

		exponent++;
		n |= exponent << 23;
		PrintBinary(n, 32, "");
		System.out.println("VEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM");

		return Float.intBitsToFloat(n);
	}

	public static void main(String[] args) {
		float f = 10;
		System.out.println(f + " --> " + doubleValue(f));
	}
}


Das hängt damit zusammen, wie die floats kodiert sind (IEEE754). Vorzeichen, dann 8 Bit für den Exponenten, 23 für die Mantisse.
Ich habe dir ein paar Kontrollausgaben eingebaut.
Das & 0xff ist ein bitweises Und. 0x heißt, es ist eine Hexzahl (Binär also 8 1er). So kann ich alle Bits außer den 8 niederwertigsten auf 0 setzen (und ein negatives Vorzeichen entfernen, das davor stünde).


Du kannst mich ruhig mit "Du" anschreiben, mache ich auch nicht anders.
Zeige Beiträge 1 bis 15 von 2.891 Treffern Seiten (193): [1] 2 3 nächste » ... letzte »