Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
|
из
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
|
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!