Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Треугольник паскаля

Автор: nblazhko 28.08.2008 22:19

Помогите плиз а то вообще не соображу:
Имеется некоторое предложение ( слова раздиляются символами подчеркивания - "_") Использую треугольник паскаля, зашифруйте исходное предложение по след. правилу:
1. Из предложения выделяется очередное слово
2. Из треуг. Паскаля выбирается строка с номером, равным числу букв в слове.
2. k-я буква исходного слова заменяется на букву,отстоящию от исходной на число букв,указанное в k-том столбце,выбранной строки треуг. Паскаля

я смог ток треугольник сделать
вот


program Triangle;
uses Crt;
const N = 10;
var
i, j : Integer;
A : array[1..N, 1..N] of Integer;
begin

for j:= 1 to N do
for i:= 1 to N do
begin
A[j, 1]:= 1;
A[i, i]:= 1;
end;

for i:= 3 to N do
begin
For j:= 2 to i-1 do A[i, j]:= A[i-1, j-1]+A[i-1, j];
end;


ClrScr;
for i:= 1 to N do
begin
for j:= 1 to N-i do Write(' ':3);
for j:= 1 to i do Write(a[i, j]:6);
WriteLn;
end;

ReadLn;
end.


Автор: volvo 28.08.2008 22:40

Ну, ты ж Треугольник Паскаля заполнил? В чем дальше проблема? Как разбивать строку на слова - см. здесь:
http://forum.pascal.net.ru/index.php?s=&showtopic=6972&view=findpost&p=50609

Допустим, что уже разбил, и у тебя отдельные слова лежат в массиве Words. Вот так получаешь зашифрованный текст:

program Triangle;
uses Crt;

const
nWords = 5;
alphabet: string =
'abcdefghijklmnopqsrtuvwxyz'; { <--- при желании - измени алфавит }

words: array[1 .. nWords] of string =
('this', 'is', 'just', 'a', 'test');
var
s, s_out: string;
modulus: integer;

const
N = 10;
var
i, j : Integer;
A : array[1..N, 1..N] of Integer;
begin
{ здесь заполняешь свой Треугольник... }

{ ... и дальше: }

for i := 1 to nWords do begin
s := words[i]; s_out := '';
for j := 1 to length(s) do begin
modulus := (pos(s[j], alphabet) + A[length(s), j]) mod length(alphabet);
if modulus = 0 then modulus := length(alphabet);

s_out := s_out + alphabet[modulus];
end;
writeln(s_out); { <--- печатаешь очередное слово }
end;

end.
Что-то непонятно?

Автор: nblazhko 28.08.2008 23:20

Спасибо огромное!