myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Hilfe bei einer Aufgabe in C (https://mygully.com/showthread.php?t=2762336)

Shaitan12 26.11.12 19:26

Hilfe bei einer Aufgabe in C
 
Guten Abend zusammen,

hoffe hier kann mir jemand helfen. Und zwar muss ich einen ASCII-Code entschlüsseln in C.

Hier mal die Aufgabenstellung:
Zitat:

Nehmen Sie nun ein Feld von 30 Elementen, speichern Sie darin die Zeichenkette
"Qdbdovr$", codieren Sie es wieder um, und geben Sie die entschlüsselte Version aus.
(Sie müssen allerdings selber rauskriegen, welche Zahl Sie nun zu jedem Zeichen addieren oder subtrahieren müssen).
Der einzige Hinweis den ich noch habe ist das ich eine "Schleife" basteln muss. Das war ja irgendwas mit "for" mein ich.

Das Feld und das speichern der Zeichenkette hab ich schon.

Vielen Dank für eure Hilfe ;-)

d03jo4n 26.11.12 19:39

Hi,

da dort von Addition bzw. Subtraktion die Rede ist, vermute ich, dass die Caesar-Verschlüsselung genommen werden soll.
Die notwendige Zahl kennst du nicht.

Setzen wir fest, dass die gesuchte Zahl a ist, gilt:
Code:

a > 0 und a < 26
Ich würde folgendes machen:

Schreib' dir eine Schleife, die jede Zahl von 1 bis 25 (inkl.) durchgeht und jeweils die Zahl zu dem char addiert.
Gib dir die Zahl und den (hoffentlich vernünftig) dekodierten Text aus.

Wenn etwas vernünftiges raus kommt, weißt du, welche Zahl gesucht war.

Your_Conscience 26.11.12 20:22

Es handelt sich wirklich um die Caesar-Verschlüsselung.
Das gesucht a liegt allerdings nicht zwischen 0 und 26. :)

Knapp unter 0 ist hübsch. :)

d03jo4n 26.11.12 20:35

Also geht ihr wirklich nicht vom einfachen Alphabet aus?
Cool :D

Gibt es denn wenigstens einen Rahmen für a?

Shaitan12 26.11.12 20:42

Das kleine a ist laut ASCII- Tabelle die Zahl 97 (dez. Wert).

d03jo4n 26.11.12 20:46

@Shaitan12

Falls du dich auf meinen Post beziehst:
Ich meinte mit dem Rahmen für a nicht den ASCII-Wert, sondern a als zu addierende Caesar-Konstante.
Die muss ja einen Rahmen haben. Oder sollte sie zumindest.

Your_Conscience 26.11.12 20:59

@d03jo4n
Wen meinst du mit "ihr"? Also ich bin nicht in seiner Klasse oder so, habe die Aufgabe nur mal so für mich gelöst gehabt. :)

Shaitan12 26.11.12 21:15

Ich bin nicht in einer Klasse, ist Studium Informatik 1. Wenn du es gelöst hast, was kommt da denn für nen dummes Wort raus ?

d03jo4n 26.11.12 21:23

Zitat:

Zitat von Your_Conscience (Beitrag 24058689)
@d03jo4n
Wen meinst du mit "ihr"? Also ich bin nicht in seiner Klasse oder so, habe die Aufgabe nur mal so für mich gelöst gehabt. :)

Ich meinte damit eher du und eine Aufgabe ;D

Hast du denn jetzt was raus?

d03jo4n 26.11.12 21:31

Habe es kurz geschrieben, ich habe die Lösung.
Kommst du schnell drauf.

Shaitan12 26.11.12 21:34

Dann sag !
Ich komm da nicht drauf...ich habs net mal geschafft diese dumme Schleife zu basteln.

d03jo4n 26.11.12 21:36

Bitte

Mein Code:

Code:



#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    char *text = "Qdbdovr$";
    char elems[30];
    int i = 0;
   
    // Simple and very unsafe string copy
    for( i = 0; text[i] != 0; i++ )
        elems[i] = text[i];
    elems[i+1] = 0;
   
    for( int a = -26; a < 26; a++ )
    {
        printf("a = %d:\n\t",a);
        for( i = 0; elems[i] != 0 && i < 30; i++ )
        {
            printf("%c",elems[i]+a);
        }
        printf("\n");
    }
   
    return 0;
}

Und die dazugehörige Ausgabe:

Code:

a = -26:
        7JHJU\X

a = -25:
        8KIKV]Y
a = -24:
        9LJLW^Z
a = -23:
        :MKMX_[
a = -22:
        ;NLNY`\
a = -21:
        <OMOZa]
a = -20:
        =PNP[b^
a = -19:
        >QOQ\c_
a = -18:
        ?RPR]d`
a = -17:
        @SQS^ea
a = -16:
        ATRT_fb
a = -15:
        BUSU`gc
a = -14:
        CVTVahd
a = -13:
        DWUWbie
a = -12:
        EXVXcjf
a = -11:
        FYWYdkg
a = -10:
        GZXZelh
a = -9:
        H[Y[fmi
a = -8:
        I\Z\gnj
a = -7:
        J][]hok
a = -6:
        K^\^ipl
a = -5:
        L_]_jqm
a = -4:
        M`^`krn
a = -3:
        Na_also!
a = -2:
        Ob`bmtp"
a = -1:
        Pcacnuq#
a = 0:
        Qdbdovr$
a = 1:
        Recepws%
a = 2:
        Sfdfqxt&
a = 3:
        Tgegryu'
a = 4:
        Uhfhszv(
a = 5:
        Vigit{w)
a = 6:
        Wjhju|x*
a = 7:
        Xkikv}y+
a = 8:
        Yljlw~z,
a = 9:
        Zmkmx{-
a = 10:
        [nlny\200|.
a = 11:
        \omoz\201}/
a = 12:
        ]pnp{\202~0
a = 13:
        ^qoq|\2031
a = 14:
        _rpr}\204\2002
a = 15:
        `sqs~\205\2013
a = 16:
        atrt\206\2024
a = 17:
        busu\200\207\2035
a = 18:
        cvtv\201\210\2046
a = 19:
        dwuw\202\211\2057
a = 20:
        exvx\203\212\2068
a = 21:
        fywy\204\213\2079
a = 22:
        gzxz\205\214\210:
a = 23:
        h{y{\206\215\211;
a = 24:
        i|z|\207\216\212<
a = 25:
        j}{}\210\217\213=



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.