Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 16:41   #1
sufik
Новичок
Джуниор
 
Регистрация: 26.12.2011
Сообщений: 3
По умолчанию задачи на Turbo Pascal

))))))))))
Изображения
Тип файла: jpg Безымянный4.jpg (114.6 Кб, 85 просмотров)
sufik вне форума Ответить с цитированием
Старый 27.12.2011, 16:48   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

3 тут
2)
Код:
s:=s+a[1,1]+a[n,n]+a[1,n]+a[n,1];
for i:=2 to n-1 do
s:=s+a[1,i]+a[i,1]+a[n,i]+a[i,n];
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 27.12.2011, 21:13   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну и я тогда 1 крякозябры эт буквы русского алфавита
Код:
program cod_decod;
uses crt;
const
    CodeTableUp:array[1..33] of char = ('Ђ','Ѓ','‚','ѓ','„','…','р','†','‡',
    '€','‰','Љ','‹','Њ','Ќ','Ћ','Џ','ђ','‘','’','“','”','•','–','—','˜','™',
    'љ','›','њ','ќ','ћ','џ');
    CodeTableDown:array[1..33] of char = ('*','Ў','ў','Ј','¤','Ґ','с','¦','§',
    'Ё','©','Є','«','¬','*','®','Ї','а','б','в','г','д','е','ж','з','и','й',
    'к','л','м','н','о','п');
    CountChar = 33;

var
    str: string;
    n: byte;
    mode: byte;

function Coder (const s: string; const n: integer):string;
var
    i, j: integer;
    s1: string;
begin
    if not(n in [0..32]) then
    begin
        Coder := 'N is NOT IN RANGE';
        exit;
    end;
    s1 := '';
    if length(s) > 0 then
    begin
        for i := 1 to length(s) do
        begin
            if s[i] in ['Ђ'..'џ'] then
            begin
                for j := 1 to CountChar do
                    if CodeTableUp[j] = s[i] then
                        if (CountChar - j) >= n then
                        begin
                            s1 := s1 + CodeTableUp[j+n];
                            break;
                        end
                        else
                        begin
                            s1 := s1 + CodeTableUp[n - (CountChar - j)];
                            break;
                        end;
            end
            else if s[i] in ['*'..'Ї','а'..'п'] then
                 begin
                     for j := 1 to CountChar do
                         if CodeTableDown[j] = s[i] then
                             if (CountChar - j) >= n then
                             begin
                                 s1 := s1 + CodeTableDown[j+n];
                                 break;
                             end
                             else
                             begin
                                 s1 := s1 + CodeTableDown[n - (CountChar - j)];
                                 break;
                             end;
                 end
                 else s1 := s1 + s[i];
        end;
    end;
    Coder := s1;
end;

function Decoder (const s: string; const n: integer):string;
var
    i, j: integer;
    s1: string;
begin
    if not(n in [0..32]) then
    begin
        Decoder := 'N is NOT IN RANGE';
        exit;
    end;
    s1 := '';
    if length(s) > 0 then
    begin
        for i := 1 to length(s) do
        begin
            if s[i] in ['Ђ'..'џ'] then
            begin
                for j := 1 to CountChar do
                    if CodeTableUp[j] = s[i] then
                        if j > n then
                        begin
                            s1 := s1 + CodeTableUp[j-n];
                            break;
                        end
                        else
                        begin
                            s1 := s1 + CodeTableUp[CountChar - (n - j)];
                            break;
                        end;
            end
            else if s[i] in ['*'..'Ї','а'..'п'] then
                 begin
                     for j := 1 to CountChar do
                         if CodeTableDown[j] = s[i] then
                             if j > n then
                             begin
                                 s1 := s1 + CodeTableDown[j-n];
                                 break;
                             end
                             else
                             begin
                                 s1 := s1 + CodeTableDown[CountChar - (n - j)];
                                 break;
                             end;
                 end
                 else s1 := s1 + s[i];
        end;
    end;
    Decoder := s1;
end;

begin
    clrscr;
    Writeln ('Enter string: ');
    Readln (str);
    Writeln ('Enter displacement (can be in [0..32]): ');
    Readln (n);
    Writeln ('Enter work mode (0-code/1-decode):');
    Readln (mode);
    case mode of
        0: Writeln ('Your code: ', Coder(str, n));
        1: Writeln ('Your decode:', Decoder(str, n));
        else Writeln ('Error mode!!!');
    end;
    ReadKey;
end.
P.S.: Отдельное спасибо Mad_Cat
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи в Turbo Pascal!!! AL1990 Помощь студентам 10 02.02.2011 11:50
Задачи Turbo Pascal cinik Помощь студентам 2 05.12.2009 09:56
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Задачи по Turbo Pascal JennyTanaka Помощь студентам 6 08.04.2009 20:38
2 задачи на Turbo Pascal cuzo Помощь студентам 1 19.12.2008 16:04