Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-06-04 | 303 |
5.00
из
|
Заказать работу |
|
|
program ex03_06;
{ шифрование сообщения методом Цезаря }
const
sym = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ '+
'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'+
'01234567890.';
var
s0,s1: string;
key:integer;
procedure Encrypt(s: string;k: integer;var es:string);
var
l,ll,i,p: integer;
c:char;
begin
l:=length(s); ll:=length(sym);
es:=s;
for i:=1 to l do begin
c:=s[i];
p:=pos(c,sym); p:=p+k;
if p>ll then p:=p-ll;
es[i]:=sym[p];
end;
end;
procedure Decrypt(s:string;k:integer;var ds:string);
var
l,ll,i,p:integer;
c: char;
begin
L:=length(s); ll:=length(sym);
k:=1;
ds:=s;
for i:=1 to l do begin
c:=s[i];
p:=pos(c,sym)-k; if p<=0 then p:=p+ll;
ds[i]:=sym[p];
end;
end;
begin
write('Введите сообщение: '); readln(s0);
write('введите ключ: '); readln(key);
if key>0 then Encrypt(s0,key,s1)
else Decrypt(s0,-key,s1);
writeln(s1);
readln;
end.
Результат работы программы:
Введите сообщение: Вся Галлия делится на три части
введите ключ: 4
Ёх3гЖдппм3гзипмцх3гсдгцфмгыдхцм
Работа с массивами
Заполнение массива случайными числами
random(М); // целое число из интервала 0<=x<M
random; // число real из интервала 0<=x<1
Число из интервала (a,b): random(b-a+1)+a;
В приведенном ниже примере производится заполнение массива случайными числами. Заполнение оформлено в виде процедуры FillV. Кроме того, в этом же примере показаны пример передачи массива в подпрограмму по значению (процедура DispV) и по ссылке (процедура FillV).
program ex04_01;
{ пример заполнения массива случайными числами }
type
vect = array[1..100] of real;
var
a: vect;
n: integer; // фактический размер массива
procedure FillV(k, R: integer;var v:vect);
{ процедура заполнения случайными числами }
{ k - число элементов, r - диапазон чисел }
var
i: integer;
begin
for i:=1 to k do v[i]:=random(r);
end;
procedure DispV(k: integer;v:vect);
var i: integer;
begin
for i:=1 to k do begin
write('[',i:2,']=',v[i]:7:4,' ');
if i mod 5 =0 then writeln;
end;
end;
begin
randomize;
write('введите фактический размер массива: ');
readln(n);
FillV(n,10,a);
DispV(n,a);
readln;
end.
Определение максимального элемента массива и его индекса
|
Программа определяет значение и индекс (номер) максимального элемента массива и выдаёт сообщение на экран.
program ex04_02;
{ Определение максимального элемента и его индекса }
const N=10;
var
m: array[1..N] of real; { объявление массива }
i: integer; { параметр цикла for }
max: real; { значение максимального элемента }
maxi: integer; { его индекс }
begin
{ ввод массива }
for i:=1 to N do begin
write('введите m[',i:2,']= ');
readln(m[i]);
end;
maxi:=1; max:=m[1]; { вначале max равен первому эл-ту }
for i:=2 to N do
if m[i]>max then begin
maxi:=i; max:=m[i];
end;
writeln('Максимальный элемент равен: ',max:12:5);
writeln('его индекс: ',maxi);
readln;
end.
Сортировка массивов
Сортировка массивов методом обменов (пузырька)
Для наглядности и возможности самостоятельно ознакомиться с этим методом сортировки в программе предусмотрен вывод массива после каждого прохода.
Идея метода состоит в сравнении двух соседних элементов, в результате чего меньшее число (более легкий "пузырек") перемещается на одну позицию влево.
Обычно просмотр организуют с конца, и после первого прохода самое маленькое число перемещается на первое место. Затем все повторяется от конца массива до второго элемента и т.д.
При использовании этого алгоритма весь массив просматривается несколько раз подряд.
При каждом таком просмотре сравниваются последовательно только соседние элементы массива. Если при сравнении окажется, что предыдущий элемент больше следующего, они меняются местами описанным выше способом. Так в результате одного последовательного просмотра элементы, значение которых больше, "всплывают" образно говоря на поверхность, т.е. ближе к концу массива. Если провести такой последовательный просмотр массива несколько раз, то "тяжёлые" элементы окончательно "всплывут" и массив окажется отсортированным.
Ниже приведен пример программы. Для наглядности после каждого обмена на экран выводится текущее состояние массива. Красным цветом выделена собственно сортировка.
|
Program ex04_03;
{ ex25_01 сортировка массива методом пузырька }
{ с выводом после каждого прохода, проходы - с конца }
const
N = 10; { размер массива }
Var
i, j, buf, k: integer; { счетчики и буфер обмена }
a: array[1..10] of integer;
begin
{ ввод массива }
for i:=1 to N do begin
write('a[',i,']= '); readln(a[i]);
end;
{ контрольный вывод массива }
writeln('исходный массив:');
for i:=1 to N do write(a[i]:5); writeln;
{ сортировка, проходы - с конца массива }
writeln('сортировка:');
for i:=1 to N do begin
for j:=N-1 downto i do
if a[j]>a[j+1] then begin
buf:=a[j]; a[j]:=a[j+1]; a[j+1]:=buf;
end;
{ вывод массива – для демонстрации }
for k:=1 to N do write(a[k]:5);
writeln;
end;
{ итоговый вывод массива }
writeln('отсортированный массив:');
for i:=1 to N do write(a[i]:5); writeln;
readln;
end.
Результат работы программы:
исходный массив:
7 5 1 2 9 6 4 1 3 8
сортировка:
1 7 5 1 2 9 6 4 3 8
1 1 7 5 2 3 9 6 4 8
1 1 2 7 5 3 4 9 6 8
1 1 2 3 7 5 4 6 9 8
1 1 2 3 4 7 5 6 8 9
1 1 2 3 4 5 7 6 8 9
1 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
1 1 2 3 4 5 6 7 8 9
отсортированный массив:
1 1 2 3 4 5 6 7 8 9
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!