szyfr cezara - -problem

szyfr cezara - -problem
W1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4
0

polecenie :Program przyjmuje z klawiatury lancuch
znakow zakonczony enterem i szyfruje tekst odejmujac
od kodu Asci wartosc n (szyfr cezara).

program szyfrcezara;
uses crt;
var
k:integer; {licznik szyfrowania}
a: string[5]; {lancuch przyjmujacy 5 znakow}
begin
k:=3;
readln(a);
for a[1] to a[5] do {od 1 do 5 znaku uzyskaj kod asci}
chr(ord(a));
for a[1] to a[5] do {od 1 do 5 znaku odejmij od kodu licznik}
write(a-k); {wypisz zaszyfrowany tekst}

end.
{
bledy: type mismatch
operator is not overloaded
illegal expression
illegal expression}

mam problem z petlami oraz z wyciagnieciem wartosci ascii ze znakow prosze o pomoc

ten program ma wyciagac wartosc znaku ascii i dodac powiedzmy 3 i zastapic znak stary nowym zaszyfrowanym

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
1

Wpisz "kurs paskala" w google i przeczytaj parę stron.
Nawet na tym forum nie poszukałeś: Cezar poprawka

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0
Kopiuj
     for a[1] to a[5] do {od 1 do 5 znaku uzyskaj kod asci}
      chr(ord(a));

Perełka :D

A niby czemu nie od np.a[-128934761t2394] do a[23923420346982]?


Lektura na dziś:
-pętle
-łańcuchy

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
0
wladek17 napisał(a)

mam problem z petlami oraz z wyciagnieciem wartosci ascii ze znakow prosze o pomoc

Masz problem, bo słabo znasz odpowiednie do tego celu funkcje (a raczej nie znasz w ogóle);

Przede wszystkim zapoznaj się z funkcjami takimi jak Length, Ord i Chr; Poucz się trochę pętli i napisz to według kilku kroków:

  • pobierz łańcuch z klawiatury,
  • sprawdź, czy nie jest pusty,
  • ustaw pętlę od pierwszej literki do ostatniej (wykorzystując funkcję Length),
  • w każdym przejściu pętli zmień numer ASCII znaku o indeksie pętli (wykorzystaj Ord i Chr),
  • wyświetl zakodowany tekst;
    Możesz napisać sobie także funkcję, która przyjmnie jako parametr łańcuch oraz klucz, zaszyfruje go po czym zwróci gotowy łańcuch;

Błąd masz w tych dwóch linijkach:

Kopiuj
chr(ord(a));
{...}
write(a-k);

Zastanów się dlaczego;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.