дешифровки: Const sh = '_.,'; Var St : String; i : Integer; Function DeCode(S : String; Tabl : String; k : Integer) : String; Var j,n : Integer; Begin For j:=1 to Length(S) do Begin n:=Pos(S[j],sh); If n>0 then Begin n:=n+k; While n>Length(sh) do n:=n-Length(sh); While n<=0 do n:=n+Length(sh); S[j]:=sh[n]; end end; DeCode:=S; end; Begin St:='ЗЫФЙГФШРЦ . ШД'; Writeln(Decode(St,sh,-6)); //For i:=-10 to 10 do Writeln(Decode(St,sh,i)); end.
0. Начало 1. Ввод - Гвозди, картина молоток, стена 2. Операция - Прибить гвоздь к стене при молотка 3. Условие - Гвоздь прибит к стене? Нет->Повторить пункт 2; Да->Переходим к пункту 4 4. Повесить картину на гвоздь 5. Конец
Ну это если не заморачиваться с условиями. К примеру можно после 4 пункта поставить условие на проверку положения картины, т.е Картина висит прямо? ->Нет то Действие выровнять положение картины; Да->Конец
UPD: Ещё можно создать условие на состояние гвоздя - погнутый или целый, вытаскивание погнутого гвоздя и т.д.
program z;
var
i : integer;
begin
Writeln("Введите число"); Readln(i);
if i mod 3 = 0
then
Writeln("Число делится на 3")
else
Writeln("Число не делится на 3");
readln;
end.
Объяснение: