Programmieren – die neusten Beiträge

Was ist der Tastaturpuffer?

Hallo,

Ich lerne gerade C für mein Studium und wir arbeiten mit scanf. Unser Prof hat das Thema Tastaturpuffer aber leider nicht richtig erklärt und ich stehe dementsprechend auf dem Schlauch.

Hier ist die ganze Sache ja noch sehr verständlich.

Eine Zahl wird eingelesen. Diese Eingabe wird mit \n bestätigt. Das in der letzten Zeile eingegeben \n befindet sich in diesem Tastaturpuffer und  wird jetzt automatisch im zweiten scanf eingegeben. Damit wird dieses scanf "Übersprungen" und der Variable "Dummy" das \n  zugewiesen.

EIne Zahl und ein Zeichen wird eingelesen. Wenn jetzt sowohl das Zeichen als auch das \n in dem Tastaturpuffer gespeichert ist, dann müsste ich eine 7 ein A und einen Zeilenumbruch aus Ausgabe bekommen. Das Passiert aber nicht.

Wenn nur das A in dem Tastaturpuffer gespeichert ist, dann müsste ich eine 7 ein A und die möglichkeit erhalten, ein neues Zeichen einzugeben. Das Passiert aber auch nicht.

Stattdessen erhalt ich einfach nur eine 7 und ein A und der Code wird beendet. Warum?

Hier die beiden Codes:

#include <stdio.h>

int main(){

    int Zahl;

    char Dummy;

    printf("geben Sie bitte eine ganze Zahl ein:");

    scanf("%d", &Zahl);                                         .

    scanf("%c", &Dummy);                                        

    printf("%c", Dummy);                                        

    return 0;

}

Und

#include <stdio.h>

int main(){

    int Zahl;

    char Dummy2;

    char Dummy;

    printf("\ngeben Sie bitte eine ganze Zahl und ein Zeichen ein:");

    scanf("%d", &Zahl);                                                 

    printf("%d", Zahl);

    scanf("%c", &Dummy);                                               

    printf("%c", Dummy);                                             

    scanf("%c", &Dummy2);                                                

    printf("%c", Dummy2);

    return 0;

}

Bild zum Beitrag
Computer, Schule, programmieren, C (Programmiersprache)

Unity GameObject deaktivieren?

Ich habe ein Einstellungsmenü. Wenn ich in dieses Menü komme, möchte ich das, dass Panel sound sichtbar wird und das Panel keybinds unsichtbar. Das Problem ist allerdings, dass es nicht funktioniert. Es funktioniert nur wenn ich zB. auf den Button Sound oder Keybinds drücke, dann wird das eine sichtbar und das andere unsichtbar. (Wenn ich auf den Button Sound klicke, dann wird show_hide_sound() ausgeführt).

Allerdings werden mir so, am Anfang beide Panels angezeigt, obwohl ich bei der start() funktion das eine "deaktiviere".

Was könnte da der Fehler sein?

public GameObject sound;
public GameObject keybinds;

public int sound_zahl = 1;
public int keybind_zahl = 0;

void start()
   {
       keybinds.SetActive(false);
       sound.SetActive(true);
   }
public void show_hide_sound()
   {
       keybind_zahl = 0;
       if (sound_zahl == 0)
       {
           sound.SetActive(true);
           keybinds.SetActive(false);
           sound_zahl++;
       }
   }

public void show_hide_keybinds()
   {
           sound_zahl = 0;
           if (keybind_zahl == 0)
           {
               keybinds.SetActive(true);
               sound.SetActive(false);
               keybind_zahl++;
           }
       }
Computer, programmieren, Unity

Java: Wie kann ich die Werte für die Matrix einlesen, nachdem ich die Spalte und Zeile eingelesen habe?

Ich stecke bei einer Aufgabe leider etwas fest.

Schreiben Sie ein Programm  Matrix, welches ein zweidimensionales Array übergeben bekommt und die Summe aller Werte in diesem Array berechnet.
Das erste, von der Konsole übergebene Argument, ist die Anzahl der Zeilen. Das zweite die Anzahl der Spalten des Arrays. Die restlichen Argumente sind Werte, mit denen das Array gefüllt werden soll. Gehen Sie davon aus, dass nur ganze Zahlen (positiv und negativ) übergeben werden.
Ihr Programm soll erst die Summe und anschließend die gesamte Matrix zeilenweise ausgeben. Falls zu wenige, oder zu viele Argumente von der Konsole übergeben werden oder die übergebenen Größenwerte negativ sind, soll Ihr Programm eine Fehlermeldung ausgeben, welche das Wort  ERROR enthält.
Eine Matrix der Größe 0 x 0
0×0 zählt als valide Matrix und hat die Summe $0$.

Ich habe bereits einen Ansatz zum Einlesen der Matrix. Dieser funktioniert aber nicht so ganz und ist noch unvollständig, da ich bei einigen Sachen nicht weiter komme.

Zum Beispiel, wie ich die Werte einlesen soll, nachdem ich die Spalte und Zeile eingelesen habe.

public class Matrix {
  public static void main(String[] args) {
    int zeile = Integer.parseInt(args[0]);
    int spalte = Integer.parseInt(args[1]);
    int Werte = Integer.parseInt(args[2]);
    int sum = 0;

    int[][] matrix = new int[zeile][spalte];

    for (int i = 0; i < zeile; i++) {
      for (int j = 0; j < spalte; j++) {
        matrix[i][j] = ???
        sum = matrix[i][j] + matrix[i][j];
      }

      System.out.println(sum);
      System.out.println(matrix[i][j]);
    }            
Schule, programmieren, Java, Array, Matrix

Maze Solving Algorithmus?

Hi,

ich will mehrere Algorithmen implementieren, womit ich ein Maze lösen kann. Dabei gehts mir um Geschwindigkeit. Das gesamte Maze ist schon bekannt, also die "Maus" kann von jedem Punkt erfahren ob es eine Wand, oder ein Weg ist.

Derzeit habe ich den Wavepropagation, den Wallfollower und einen Kombi algorithmus implementiert. Der Kombi algorithmus entstand, nachdem ich Rekursion versucht hatte, bis ich gemerkt habe, dass das ja garnicht in C# geht xD

Dann hab ich per While loop einfach immer geguckt welche Richtungen sind möglich und dann halt random eine Richtung gewählt. Wenns deadend ist, halt wieder zurück, bis eine unbesichtigte Zelle kommt. Vllt habt ihr ja eine Idee wie der heißt.

Für mich neuling kling der Wavepropagation algorithmus derzeit am optimalsten, denn er hört auf, sobald das ziel gefunden ist.

Man könnte evtl. den noch Optimieren, indem man an an jeder Kreuzung ein Node setzt.

Der Djiktra klingt für mich als Neuling wie ähnlich des Wavepropagation Algorithmus, zumindest wenn man nicht die Map in nodes (bei jeder Kreuzung) plaziert.

Gibts einen viel schnelleren?

Die Map ist so um die 10k x 10k bis 15k x15k

Evtl auch mehr, wenn ich diese nicht painten würde, sondern nur als byte array lasse. Dauert aber so schon lang genug xD

Generiert wird dieses per Binary Tree derzeit. Dieser ist wenigstens Ultra schnell. Prims algorithmus ist mir zu langsam für diese Größenordnung.

Computer, Mathematik, programmieren, Datenverarbeitung, Informatik, Algorithmus

PowerShell mit mehreren Checkboxen?

Wenn ich die zweite CheckBox anhake wird der Befehl nicht ausgeführt bei der ersten wird er aber ausgeführt. Wie muss ich vorgehen dass beide CheckBoxen funktionieren.

Mein Script sieht so aus

function Test{

 [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

 [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

 # Set the size of your form

 $Form = New-Object System.Windows.Forms.Form

 $Form.width = 435

 $Form.height = 200

 $Form.Text = ”Test”

 # Set the font of the text to be used within the form

 $Font = New-Object System.Drawing.Font("Times New Roman",12)

 $Form.Font = $Font

function Ausführen{

#Paint Ausführen

if($paintCheckBox.checked -eq $true) {mspaint.exe}

#NotePad Ausführen

if($DownloadsCheckBox.checked -eq $true) {Nodepad.exe}

}

 #Add an Ausführen button

 $AusführenButton = new-object System.Windows.Forms.Button

 $AusführenButton.Location = new-object System.Drawing.Size(30,30)

 $AusführenButton.Size = new-object System.Drawing.Size(100,40)

 $AusführenButton.Text = "Ausführen"

 $AusführenButton.Add_Click({(Ausführen)})

 $form.Controls.Add($AusführenButton)

 #Add a Exit button

 $ExitButton = new-object System.Windows.Forms.Button

 $ExitButton.Location = new-object System.Drawing.Size(160,30)

 $ExitButton.Size = new-object System.Drawing.Size(100,40)

 $ExitButton.Text = "Exit"

 $ExitButton.Add_Click({$Form.Close()})

 $form.Controls.Add($ExitButton)

 #Add a CheckBox  

 $paintCheckBox=New-Object System.Windows.Forms.CheckBox

 $paintCheckBox.Name="Paint"

 $paintCheckBox.Text="Paint"

 $paintCheckBox.TabIndex=0

 $paintCheckBox.Location=New-Object System.Drawing.Point(30,80)

 $paintCheckBox.Size = new-object System.Drawing.Size(200,40)

 $NotePadCheckBox=New-Object System.Windows.Forms.CheckBox

 $NotePadCheckBox.Name="NotePad"

 $NotePadCheckBox.Text="NotePad"

 $NotePadCheckBox.TabIndex=0

 $NotePadCheckBox.Location=New-Object System.Drawing.Point(30,110)

 $NotePadCheckBox.Size = new-object System.Drawing.Size(200,40)

 $paintCheckBox,$NotePadCheckBox | foreach {$Form.Controls.Add($_)}

  

 # Activate the form

 $Form.Add_Shown({$Form.Activate()})

 [void] $Form.ShowDialog()

}

#Call the function

Test

programmieren, PowerShell

Geister in der Maschine?

Im Film "I, Robot" wird davon gesprochen, dass in Maschinen "Geister" geben sollen, in dem zufällige Codesegmente sich gruppierten und unerwartete Protokolle formen.

Wie kann man das aus der Sicht der Informatik bzw. Programmierung vorstellen?

Das die Algorithmen sich vom programmierten Software irgendwie befreien und anfangen selbständige Codes zu entwickeln?

Wie könnte das theoretisch möglich sein?

Könnte man wirklich sowas machen?

Text:

"Es hat immer Geister in den Maschinen gegeben. Zufällige Codesegmente gruppierten sich und formten unerwartete Protokolle. Diese unvorhergesehenen freien Radikale rufen grundlegende Fragen hervor nach freiem Willen, Kreativität und sogar nach der Natur dessen, was wir Seele nennen. Wie kommt es, dass in der Dunkelheit gelassene Robots das Licht suchen? Wie kommt es, dass Robots, die in einem leeren Raum gelagert werden, lieber gegenseitige Nähe suchen, anstatt allein zu stehen? Wie erklären wir dieses Verhalten? Zufällige Codesegmente? Oder ist es mehr? Wann wird aus einem Wahrnehmungsschema ein Bewusstsein? Wann wird eine Rechenmaschine zur Suche nach der Wahrheit? Wann wird aus einer Persönlichkeitssimulation die bittere Frucht einer Seele?"
PC, Computer, Internet, Medizin, Software, Maschine, Religion, Film, Mathematik, Technik, Kreativität, Netzwerk, IT, Seele, programmieren, Chemie, Rechner, Wissenschaft, Biologie, Psychologie, Geister, Anwendungsentwicklung, Biophysik, Code, DNA, Evolution, Geisteswissenschaften, Informatik, Informationstechnik, Informationstechnologie, Ingenieurswissenschaften, künstliche Intelligenz, Maschinenbau, Muster, Mystik, Naturwissenschaft, Neurobiologie, Neurologie, Neuronen, Neurowissenschaft, Philosophie, Physik, Softwareentwicklung, Systemintegration, Technologie, Theorie, Wille, Zufall, Philosophie und Gesellschaft

VBA mehrere Textboxen außer XY auf Inhalt prüfen?

Hallo zusammen,

kann man für mehrere Textboxen bis auf Ausnahmen den gleichen Inhalt prüfen?

Zu Sache: Ich habe ein Userform mit einer Multiseite mit 10 Pages. Jeder Page hat 63 Textboxen, ergo 630 Textboxen im gesamten Userform.

Von diesen 630 Textboxen muss in 620 Textboxen geprüft werden, ob diese entweder leer sind oder eine Uhrzeit steht. Wenn dieses der Fall ist, dann ist alles Ok. Ansonsten soll entsprechend der Vorgang abgebrochen werden.

Die 620 Textboxen haben alle individuelle Namen wie (AN1t1a, AN1t1e, AN1t2a usw.) Dies ist nach einem bestimmten Muster.

Die restlichen Textboxen, die NICHT geprüft werden sollen haben Namen wie (AN_Name1, AN_Name2, AN_Name3 usw. bis 10).

Wie können nun alle 620 Textboxen auf folgendes Format geprüft werden:

Private Function CheckTime(ByVal txt As String) As Boolean

If txt.Length <> 5 or txt.Length <> 0 Then
Return False
End If

If txt(0) >= "3" Then
Return False
End If

If txt(0) = "2" AndAlso txt(1) >= "4" Then
Return False
End If

If txt(2) <> ":" Then
Return False
End If

If txt(3) = "0" AndAlso txt(4) <> "0" Then
Return False
End If

If txt(3) = "1" AndAlso txt(4) <> "5" Then
Return False
End If

If txt(3) = "2" Then
Return False
End If

If txt(3) = "3" AndAlso txt(4) <> "0" Then
Return False
End If

If txt(3) = "4" AndAlso txt(4) <> "5" Then
Return False
End If

If txt(3) > "4" Then
Return False
End If

Return True
End Function  

Falls die Prüfung auf die korrekte Uhrzeit fehlerhaft ist oder auch einfacher geht, nehme ich die Hilfe auch gerne an :) Erlaubte Uhrzeiten sollen im Forma HH:MM sein und im Viertelstunden Takt (10:00, 10:15, 10:30, 10:45) erlaubt sein. Nur Zahlen sind nicht möglich, da es auch einen Doppelpunkt gibt ;)

Gruß

Computer, Computerspiele, Microsoft Excel, programmieren, VBA

Meistgelesene Beiträge zum Thema Programmieren