C Programmcode Ceasar Cipher?

Hallo,

die aufgabe ist folgende:

Schreiben Sie eine Funktion, welche eine Variante des [Caesar Cipher](https://en.wikipedia.org/wiki/Caesar_cipher) auf einen String anwendet. Hierbei wird anstatt eines vorgegebenen Betrages und einer vorgegebenen Richtung für die Chiffrierung der Schlüssel für jeden Buchstaben des Klartextes neu berechnet.

Funktionsweise:

Jede Verschiebung erfolgt abhängig vom Schlüssel. Ist der Schlüssel für das aktuelle Zeichen eine gerade Zahl, so wird das aktuelle Zeichen um diesen Betrag im Alphabet nach rechts verschoben (z.B. beim Schlüssel 2 wird aus einem A ein C). Ist der Schlüssel ungerade, so erfolgt eine Verschiebung nach links (z.B. beim Schlüssel 3 wird aus einem D ein A).

Würde eine Verschiebung über das Ende des Alphabets hinaus erfolgen, so wird die Zählung bei Beginn des Alphabets fortgesetzt. Beim Schlüssel 2 wird aus einem Z also ein B bzw. beim Schlüssel 3 aus einem A ein X.

Es werden nur Buchstaben des englsichen Alphabets (A-Z und a-z) chiffriert. Alle anderen Zeichen bleiben unverändert.

Der Startschlüssel wird nur auf das erste Zeichen angewendet. Danach wird der Schlüssel nach jeder Anwendung neu berechnet, indem der Zahlenwert des zuletzt veränderten Klartext-Zeichens (also 1 für A und a, 2 für B und b, bis 26 für Z und z) durch den zuletzt verwendeten Schlüssel dividiert wird. Der neue Schlüssel für das nächste Zeichen ist der ganzzahlige Rest dieser Division. Falls es hierbei zu einer Division durch Null kommen würde (weil der zuletzt verwendete Schlüssel 0 war) wird der neue Schlüssel wieder auf den Wert des Startschlüssels gesetzt.

Folgenden Code habe ich bis jetzt geschrieben, allerdings bekomm ich bei großen Schlüsseln (zb: start_key = 100) falsche Ergebnisse raus. Weiß glaube ich auch warum: Mein Algorithmus funktioniert ja über Werteverschiebung, d.h. ab einem bestimmt großen Wert des Schlüssels verschiebt sich mein Zahlenwert des chars zu weit und dann stimmt meine "Formel" nicht mehr. Hätte es jetzt damit gelöst, dass ich zuerst mit einer if Schleife auf einen zu großen Key prüfe (zB.: if Key > 25), anschließend dividiere ich diesen Key und gehe mit dem Ergebniss in eine neue Schleife rein wobei jetzt anstatt des Keys der neue Wert addiert bzw subtrahiert wird. Anschließend durchlaufe ich diese Schleife Key%25 mal.

Aber wie setze ich das um? Zusätzlich dazu wird der Code dann mega unübersichtlich und viel zu lang für eine simple Funktion. Gibt es auch andere Möglichkeiten als meinen Code?

Ps: Ich sende den Code extra weil sonst das Zeichenlimit überschritten wird

Computer, Mathematik, IT, programmieren, EDV, Informatik, Kryptographie, Universität, Algorithmus
Android App Entwicklung: Verschiedene Benutzerrollen?

Hallo alle zusammen,

ich möchte gerne anfangen mit der Android App Programmierung und möchte gerne ein kleines privates Projekt realisieren.

Es geht darum, dass zuerst ich als "SupderAdmin" Accounts anlegen kann (normale Admins), die widerum selbst Accounts anlegen können (normale User).

Je nachdem, welche Rolle man hat, stehen einem mehr Funktionalitäten zur Verfügung.

Ein Admin kann zum Beispiel einen normalen User anlegen. Der User hat, wenn er die App öffnet, seinen "Kontostand" und seine Einnahmen/Ausgaben vor Augen. Diese Beträge werden vom Admin festgelegt, d.h. der Admin gibt zuerst eine Gesamtsumme an. Wenn der User was eingekauft hat, erstellt der Admin einen Beitrag "Ausgabe" mit Details und Betrag und dieser Betrag wird automatisch dann von der Gesamtsumme abgezogen.

Sozusagen eine Online Banking App, nur dass Einnahmen/Ausgaben manuell eingetragen werden.

  1. Frage gibt es eine Bibliothek o.Ä. in Java mit der die Benutzerrechte realisiert werden können.
  2. Möchte ich gerne mit einer Datenbank arbeiten, die dann die Accounts speichert und die dazugehörigen Einnahmen Ausgaben usw. welche kostenlose Datenbank würdet ihr mir dafür empfehlen?

Das Projekt soll mit der Zeit bestimmt erweitert werden, weshalb ich mich nicht auf irgendwas beschränken will, das nur für die oben angezeigten Funktionalitäten erfüllt.

Vielen Dank!

Computer, Auto, programmieren, Informatik, Appentwicklung, Android Studio
Taschenrechner programmieren mit C# der die Eingabe aus einer Zeile lesen kann?

Ich habe im Moment einen der nur in dieser Art funktioniert :

5

*

5

10

Also ein normaler Consolen Taschenrechner, aber ich brauche einen der so Rechnen kann: 5+5 10 also in einer Zeile. Ich krieg es nicht gebacken, mein Code:

using System;

namespace ConsoleApplication2 { public enum Rechenoperation { Minus,Plus,Division,Multiplikation, Unbekannt } internal class Program { public static void Main(string[] args) { var zahl1 = AskZahl(); var rechenoperation = AskforRechenoperation(); var zahl2 = AskZahl(); int? ergebnis = null; switch (rechenoperation) { case Rechenoperation.Minus: ergebnis = zahl1.Value - zahl2.Value; break; case Rechenoperation.Plus: ergebnis = zahl1.Value + zahl2.Value; break; case Rechenoperation.Division: ergebnis = zahl1.Value / zahl2.Value; break; case Rechenoperation.Multiplikation: ergebnis = zahl1.Value * zahl2.Value; break; case Rechenoperation.Unbekannt: break; default: throw new ArgumentOutOfRangeException(); }Console.Out.WriteLine(ergebnis); Console.ReadKey(); }

    private static Rechenoperation AskforRechenoperation()
    {
        Console.WriteLine("");
        var eingabe = Console.ReadLine();
        if (eingabe.Contains("-"))
        {
            return Rechenoperation.Minus;
        }
        if (eingabe.Contains("*"))
        {
            return Rechenoperation.Multiplikation;
        }
        if (eingabe.Contains("+"))
        {
            return Rechenoperation.Plus;
        }
        if (eingabe.Contains("/"))
        {
            return Rechenoperation.Division;
        }

        return Rechenoperation.Unbekannt;
    }
    private static int? AskZahl2()
    {
        Console.WriteLine("");
        var eingabe = Console.ReadLine();
        if (int.TryParse(eingabe,out var zahl))
        {
            return zahl;
        }

        return null;
    }

}

programmieren, C Sharp
[jQuery AJAX] echo mit HTML Content von PHP Datei ausgeben?

Okay, die Frage ist evtl ein bisschen kompliziert. Deshalb beschreibe ich das anhand eines Beispiels. Zuerst meine Dateien:

PHP (submit.php)

<?php
 $mail = $_GET['mail']; if(filter_var($mail, FILTER_VALIDATE_EMAIL)) { echo "<div role=\"alert\">Ungültige E-Mail</div>"; } else { echo "<div role=\"alert\">Gültige E-Mail</div>"; }

?>

HTML (index.html)

<form id="myForm">
  <input type="email" name="mail" id="mail" placeholder="E-Mail Adresse"/>
  <input type="submit" name="check" id="check" value="Senden"/>
</form>
<script src="http://code.jquery.com/jquery-1.9.1.js"/> <script> $(function () { $('form').on('submit', function (e) { e.preventDefault(); $.ajax({ type: 'post', url: 'submit.php', data: $('form').serialize(),   success: function() {    //echo "Gültige E-Mail    } error: function() { //echo "Ungültige E-Mail" } }); }); }); </script>

Beschreibung:

Sobald das Formular abgesendet wurde, wird die E-Mail an die submit.php gesendet. In dieser wird überprüft, ob die E-Mail gültig ist und gibt dann das Ergebnis in Form von HTML-Code zurück.

Die Lösung mit alert will ich nicht. Es soll unterhalb der Form das Ergebnis stehen.

Wenn ich mit PHP

echo "<div role=\"alert\">Gültige E-Mail</div>";

ausgebe, dann steht das auch direkt in HTML dort (also nicht als PlainText).

Wie ist es also möglich, das Ergebnis der submit.php zu bekommen und in der index.html auszugeben?

Vielen Dank im Voraus!

Computer, Technik, HTML, Webseite, programmieren, JavaScript, AJAX, JQuery, PHP, Technologie
Fehler tritt auf obwohl er nicht auftreten kann - Java - Exception in thread "AWT-EventQueue-0" java.lang.Error:?

Hallo ich habe bei folgendem abschnitt:

JLabel lbl_verstärken = new JLabel("");
		lbl_verstärken.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&Leander)\\src\\pack1\\Bilder\\kisspng-american-football-helmets-climbing-computer-icons-military-5abf62bc1c4074.5071788615224920921157.png"));
		lbl_verstärken.setBounds(1143, 1112, 48, 50);
		contentPane.add(lbl_verstärken);
    lbl_kampf = new JLabel("");
    lbl_kampf.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&amp;Leander)\\src\\pack1\\Bilder\\kampf.png"));
    lbl_kampf.setBounds(1253, 1112, 41, 44);
    contentPane.add(lbl_kampf);
    
    lbl_befästigen = new JLabel("");
    lbl_befästigen.setEnabled(false);
    lbl_befästigen.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&amp;Leander)\\src\\pack1\\Bilder\\umbenenen.png"));
    lbl_befästigen.setBounds(1361, 1112, 48, 44);
    contentPane.add(lbl_befästigen);
    lbl_hintergrund = new JLabel("Hintergrund");
    lbl_hintergrund.setIcon(new ImageIcon("C:\\Users\\49157\\eclipse-workspace\\Risiko (by_Christoph&amp;Leander)\\src\\pack1\\Bilder\\hintergrundrisiko.png"));
    
    lbl_hintergrund.setBounds(0,-1, 1598, 1169);
    contentPane.add(lbl_hintergrund);


Folgenden Fehler erhalten:

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: 
	Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \ )
at pack1.GUI_Hauptanwendung.<init>(GUI_Hauptanwendung.java:324) at pack1.GUI_Hauptanwendung$1.run(GUI_Hauptanwendung.java:75) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)


Ich wollte grade die Absoluten Pfarde durch relative zu ersetzen war auch soweit Fertig funktionierte aber nicht. Nun habe ich alles rückgängig gemacht doch erhalte halt diesen Fehler.

Was muss ich umändern?

p.s.:

lbl_hintergrund.setIcon(new ImageIcon("C:\Users\49157\eclipse-workspace\Risiko (by_Christoph&Leander)\src\pack1\Bilder\hintergrundrisiko.png"));

ist line 324 und

GUI_Hauptanwendung frame = new GUI_Hauptanwendung();

ist line 75

Fehler, programmieren, Java, Informatik, Fehlermeldung
Kennt sich jemand mit SciDAVis aus?

Moin,

Also ich verstehe es einfach nicht. Ich verstehe nicht, wie ein Programm so undurchsichtig und schlecht erklärt sein kann.

Ich habe diverse Messungen zu U-I-Kennlinien von verschiedenen Dioden gemacht.
Nun versuche ich die Messergebnisse (ich lasse diese mal außen vor, wie eine LED-Kennlinie aussieht, kann man im Internet suchen) grafisch darzustellen und es geht nicht. Ich kann nur die y-Werte (Stromwerte) aus den Tabellen benutzen, die, da ich sie in einem linearen Verhältnis gewählt habe. Ich sollte schließlich nur bis 20mA messen und wenn dann erst bei 1,6V was kommt und bei 2,4V schon Schluss ist, bleibt nicht viel anderes übrig.
Aber wie auch immer; Die Grafik ist also eine satte Gerade, deren einzige Gemeinsamkeit mit der Kennlinie das positive Wachstum ist. Mehr aber auch nicht. Sie ist nicht exponentiell, sie beginnt nicht bei (0|0), sondern irgendwo mitten im Quadranten, sie ist einfach völlig unbrauchbar.

Bei Excel habe ich wenigstens die Kennlinien einzelner Dioden gezeichnet bekommen, nur leider nicht alle. Das sollte angeblich mit diesem Programm gehen, meinte mein Ausbilder.

Dazu kommt, dass ich die Shockley-Gleichung nutzen soll, um diese mit den ganzen Diodenkennlinen zu vergleichen. Dazu muss ich aber die Parameter Is, n und Ut bestimmen. Sollte angeblich auch mit dem Programm gehen. Da habe ich aber auch keinen Schimmer, wie ich das anstellen soll.

Nun habe ich den ganzen Tag damit verbracht, das Handbuch für dieses Programm zu lesen, welches optisch eine Katastrophe und in einem doch nicht allzugutem Englisch geschrieben ist, sodass ich teils kaum verstehe, da die Sätze keinen Sinn ergeben.

http://scidavis.sourceforge.net/manual/

Und es hängt mir ehrlich gesagt zum Hals raus. Ich bin noch kein Stück schlauer als vorher.

Kennt sich also IRGENDJEMAND mit diesem Programm aus? Es würde mich freuen, wenn sich so jemand findet.

Computer, Buch, Mathematik, Programm, Elektronik, HTML, Strom, programmieren, Elektrik, Ausbildung, Elektrotechnik, Wissenschaft, Biologie, Spannung, Informatik, Naturwissenschaft, Physik, Technologie, Naturwissenschaft und Technik, Ausbildung und Studium
Xampp Apache Server startet nicht(Ohne Log)?

Hallo, ich benutze seit Jahren für meinen Windows Rechner Xampp, um einen Lokalen Apache Server laufen zu lassen. Bisher gab es nie Probleme nur auf einmal lässt es sich nicht mehr Starten. Wenn ich Xampp starte, kommt keine Fehlermeldung und der Port 80 ist nicht belegt. Selbst, wenn ich einen anderen Port wähle, kommt dieselbe Meldung. Und zwar wird mir dies ausgegeben beim Starten:

02:58:01 [Apache]   Attempting to start Apache app...
02:58:01 [Apache]   Status change detected: running
02:58:02 [Apache]   Status change detected: stopped
02:58:02 [Apache]   Error: Apache shutdown unexpectedly.
02:58:02 [Apache]   This may be due to a blocked port, missing dependencies, 
02:58:02 [Apache]   improper privileges, a crash, or a shutdown by another method.
02:58:02 [Apache]   Press the Logs button to view error logs and check
02:58:02 [Apache]   the Windows Event Viewer for more clues
02:58:02 [Apache]   If you need more help, copy and post this
02:58:02 [Apache]   entire log window on the forums 

Als erstes habe ich natürlich den Log angesehen aber dort ist leer. Der letzte error log Eintrag ist 1 Monate her und hängt nicht damit zusammen. Hat einer dieses Problem bereits schon einmal gehabt oder hat eine Idee, wie ich wenigstens einen Fehlercode bekommen könnte?

MFG DreamGamer

Server, Computer, Wissen, Technik, programmieren, Apache, xampp, Erfahrungen
Hat jemand Verbesserungsvorschläge für dieses Programm?

Hallo, ich versuche gerade ein Programm zu schreiben (in Java Eclipse), das folgende Aufgabenstellung hat:

Das Programm soll alle Fibonacci-Zahlen in einem geschlossenen Intervall [a, b] als kommagetrennte Liste ausgeben. Ausnahme: die Zahlen, die durch 3 teilbar sind, sollen durch ";" separiert sein. Die natürlichen Zahlen a und b müssen vom Benutzer eingegeben werden.

Beispiel 1 (blau = Benutzereingabe):

a: 3
b: 100
Fibonacci=3;5,8,13,21;34,55,89

Beispiel 2:

a: 12
b: 800
Fibonacci=13,21;34,55,89,144;233,377,610

UND Teil 2

Das Programm soll noch eine Liste mit den ungeraden Fibonacci-Zahlen und den Intervallenden a und b ausgeben. Auch hier gilt, dass alle Zahlen, die durch 3 teilbar sind, durch einen folgenden Strichpunkt zu kennzeichnen sind. Eine Zahl darf nicht doppelt in der Ausgabe vorkommen. 

Für obige Eingabe sollte also zusätzlich folgende Zeile ausgegeben werden:

Beispiel 1

ungerade Fibonacci=[3;5,13,21;55,89,100]

Beispiel 2

ungerade Fibonacci=[12;13,21;55,89,233,377,800]

Soviel zur Aufgabenstellung.
Bis jetzt habe ich folgendes ( siehe Bild) geschafft. Meine Problem: wenn der Benutzer zum Beispiel für a 10 und für b 20 eingibt, dann zeigt das Programm die zehnte bis zwanzigste Zahl, aber es sollte eigentlich nur 13 anzeigen. Des Weiteren weis ich nicht, was ich machen sollte, damit nach jeder ungeraden Zahl ein ; steht. und Teil 2 der Aufgabe ist mir auch nicht klar, aber ich wäre schon glücklich genug, wenn mir jemand bei Teil 1 helfen könnte!

Danke und liebe Grüße!

Bild zum Beitrag
Computer, Programmierer, programmieren, Java, Informatik, Informatiker
Wo ist der Fehler bei der Java Instalation?

Ich möchte Java installieren, aber irgendwie geht es alles nicht. Habe dann alles gelöscht und möchte es von Vorne neu installieren. Ich habe dann dafür über die Oracle Seite die "Java SE Development Kit 13" .exe heruntergeladen und ausgeführt. Dann habe ich in den Umgebungsvariablen für den Benutzer eine neue Variable erstellt mit den Namen "JAVA_HOME" und für den Wert den Instalationspfad eingegeben. (D:\Programme\Java) Als nächstes bin ich die "Path" Variable gegangen und habe einen neuen Eintrag gesetzt, der so heißt: "%JAVA_HOME%\bin". (Ich habe eine Instalationsanleitung von der Uni bekommen und so ausgeführt, wie sie es gesagt haben) Möchte ich jetzt ein selbstgeschriebenes Java Programm im CMD ausführen (das Programm habe ich in der UNI an einem anderen PC geschrieben), dann kommt folgender Fehler:

Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'

Error: could not find java.dll

Error: Could not find Java SE Runtime Environment.

Das passende JRE soll aber angeblich im Installtionsordner drinnen sein. Als ich das JDK installiert habe stand da auch:"[...] including a private JRE and src.zip[...]"

Auch wenn ich im CMD eingebe: "java -version" kommt der gleiche Fehler. Lade ich aber dann von Oracle dann die neuste JRE (Version 8 Update 231, Releasedatum 15.10.19) kommt dann ein neuer Fehler, dass das JRE zu alt sei. Das kann aber nicht sein! Der Fehler lautet dann:

error: A JNI error has occurred, please check your installation and try again

Exception in thread "main" java.lang.UnsupportedClassVersionError: Hello has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0

Was kann ich tun?

Computer, Technik, Fehler, programmieren, Java, Technologie, JDK, JRE, Spiele und Gaming
Mitarbeiterlist erstellen?

Hallo allerseits,

ich habe veruscht, ein Programm zu programmieren, bei welchen ich Mitarbeiter erstelle, denen automatisch eine Nummer gebe und diese über die Konsole ausgeben lasse. (Alle Aufgaben seht ihr auf dem BIld)

Mein Code dafür ist:

public class Mitarbeiter {
  private int Id;
  private String Name;
  
  public int getId(){
    int number=1;
    number++;
    Id=number;
    return Id;
  }
  
  public String getName(){
    return Name;
  }   
  
  public String toString(){
    return Name;
    return Id;
  }
}

public class MitarbeiterVerwaltung{
  
  public String mitarbeiterListe(){
    String[] mitarbeiterListe = {"Franz Hubert", "Joseph Maier", "Werner Müller"};
    return mitarbeiterListe;
  }
    
    private String addMitarbeiter(){
      String name = Mitarbeiter.getName();
      int Id = Mitarbeiter.getId();
    }
    
    public String listMitarbeiter(){
      for (String mitarbeiterListe;mitarbeiterListe<mitarbeiterListe.length ;mitarbeiterListe++ ){
      }
      return Name;
      for (int Id;Id<Id.length ;Id++ ) {
      } 
      return Id; 
    }
  }
  
  public class MitarbeiterDemo{
    public static void main (String[] args){
      System.out.println(MitarbeiterVerwaltung.listMitarbeiter());
    }
  }   

Meine Frage ist jetzt: Wo habe ich was falsch gemacht?

Bitte auch mit Erklärung, was daran falsch ist :)

Danke schonmal im Vorraus ;)   

Bild zum Beitrag
Computer, programmieren, Java

Meistgelesene Beiträge zum Thema Programmieren