nobody-HH
Сообщений: 95
Оценки: 0
Присоединился: 2005-05-15 22:36:39
|
в а)прога должна кодировать пасс по аски-таб на 3 символа но выдаёт какуюто хренотень в б) должна раскодировать пасс назад, и тоже выдаёт какуюто хренотень где ошибка помогите плzz[:pray:][:pray:][:pray:]
PROGRAM DB_Eintrag;
USES CRT;
CONST OFFSET = 3;
VAR Laenge : Byte;
Name, Vorname, Vorwahl_str, Telefon_str, Passwort, Passw_code : String[20];
Telefon, Vorwahl : Longint;
DB_String : String;
i : byte; Code : Integer;
Ende, Menu, Zeichen : Char;
BEGIN REPEAT CLRSCR;
WriteLn(''A. DB-Eintrag formatieren''); WriteLn(''B. DB-Eintrag auslesen''); ReadLn(Menu); Menu := UpCase(Menu); CASE Menu OF ''A'' : BEGIN clrscr; WRITE(''geben sie bitte ihren Namen ein: ''); ReadLn(Name); WRITE(''geben sie bitte ihren Vornamen ein: ''); ReadLn(Vorname); REPEAT Write(''geben sie ihre vorwahl ein: ''); ReadLn(Vorwahl_Str); VAL(Vorwahl_Str, Vorwahl, Code); UNTIL (code=0) and (Vorwahl <= 99999) and (Vorwahl >= 0); REPEAT Write(''geben sie ihre Telefon ein: ''); ReadLn(Telefon_Str); VAL(Telefon_Str, Telefon, Code); UNTIL (code=0) and (Telefon > 0); WRITE(''geben sie bitte den gewnschten Passwort ein: ''); ReadLn(Passwort); FOR i := 1 TO LENGTH(Passwort) DO BEGIN Passw_code := CHR(ORD(Passwort) + OFFSET);<BR> Passw_Code := Passw_Code + passw_code;<BR> END;<BR> WRITE(''geben sie bitte den gew&#129;nschten Trennzeichen ein: '');<BR> ReadLn(Zeichen);<BR> DB_String := Name+Zeichen+Vorname+Zeichen;<BR> DB_String := DB_String+Vorwahl_Str+Zeichen+Telefon_Str;<BR> DB_String := DB_String+Zeichen+Passw_code;<BR> WriteLn;<BR> WriteLn(DB_String);<BR> END;<BR><BR> ''B'' : BEGIN<BR> clrscr;<BR> Laenge := 0;<BR> i := 0;<BR> zeichen := '' ''; <BR> Write(''Schreiben Sie den DB-Eintrag: '');<BR> ReadLn(DB_String);<BR> REPEAT<BR> i := i + 1;<BR> IF DB_String in [''a''..''z'', ''A''..''Z'', ''0''..''9'']<BR> THEN<BR> Laenge := Laenge + 1<BR> ELSE<BR> BEGIN<BR> Name := copy(DB_String, 1, laenge);<BR> DELETE(DB_String, 1, laenge);<BR> Zeichen := DB_String[1];<BR> DELETE(DB_String, 1, 1);<BR> END; <BR> UNTIL zeichen <> '' '';<BR> Vorname := COPY(DB_String, 1, POS(Zeichen, DB_String) - 1);<BR> DELETE(DB_String, 1, POS(Zeichen, DB_String));<BR> Vorwahl_Str := COPY(DB_String, 1, POS(Zeichen, DB_String) - 1);<BR> DELETE(DB_String, 1, POS(Zeichen, DB_String));<BR> Telefon_Str := COPY(DB_String, 1, POS(Zeichen, DB_String) - 1);<BR> DELETE(DB_String, 1, POS(Zeichen, DB_String));<BR> For i := 1 TO LENGTH(DB_String) DO<BR> Passwort := CHR(ORD(DB_String)-OFFSET);<BR> WriteLn(Name);<BR> WriteLn(Vorname);<BR> WriteLn(Vorwahl_str);<BR> WriteLn(telefon_str);<BR> WriteLn(Passwort);<BR> ReadLn;<BR> END;<BR> END;{case beendet}<BR> Write(''m”chten Sie beenden: '');<BR> ReadLn(Ende);<BR> Ende := UpCase(Ende);<BR> UNTIL Ende = ''J'';<BR>END.[:pray:][:pray:][:pray:]
|