Смотри вложения ->>>
<em>Будут вопросы - пиши!</em>
Разветвляющий алгоритм содержит блок проверки условия. В зависимости от результата проверки условия выполняется та или иная последовательность операций,называется ветвью. При этом форма разветвления может быть полной или сокращёной.
<em>// PascalABC.NET 3.2, сборка 1437 от 03.05.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var n:=ReadInteger('Количество строк/столбцов в матрице:');
var a:=MatrRandom(n,n,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var ijv:=a.ElementsWithIndexes.Select(x->(x[0],x[1],abs(x[2])))
.MaxBy(x->x[2]);
for var i:=ijv[0] to n-2 do a.SwapRows(i,i+1);
for var j:=ijv[1] to n-2 do a.SwapCols(j,j+1);
SetLength(a,n-1,n-1); a.Println(4)
end.
<u>Пример</u>
Количество строк/столбцов в матрице: 5
87 -5 -38 -9 57
31 66 57 -25 40
11 66 99 -79 91
12 95 93 27 -97
33 -94 14 19 39
--------------------
87 -5 -9 57
31 66 -25 40
12 95 27 -97
33 -94 19 39
//Pascal ABC.NET v3.0 сборка 1111
Const
n=5;
Var
ar:array[1..n] of integer;
ar2:array[1..n] of integer;
i,k:integer;
function prost(a:integer):boolean;
var i:integer;
b:boolean;
begin
if (a<0) and (not odd(a)) then b:=true else b:=false;
prost:=b;
end;
begin;
randomize;
k:=0;
for i:=1 to n do
begin;
ar[i]:=random(-10,10);
write(ar[i]:4);
end;
writeln;
for i:=1 to n do
if prost(ar[i]) then
begin;
inc(k);
ar2[k]:=ar[i];
write(ar2[k]:4);
end;
end.<span>
</span>
Цитата Из Вик.ипедии: "Правило шифрования '<span>Атбаш</span><span>' состоит в замене i</span><span>-й буквы алфавита буквой с номером n - i + 1</span><span>, где n</span> — число букв в алфавите".
На самом деле, n - i — смещение относительно первой буквы, которое будет иметь i-тая в алфавите буква после шифровки. Для того, чтобы получить номер буквы, нужно прибавить к смещению порядковый номер первой буквы. В случае с обычным алфавитом — 1. (А ещё можно делать наоборот: искать отрицательное смещение и прибавлять номер последнего элемента)
С программой все чуть-чуть посложнее (но не так, чтобы сильно). Номер символа в ней определяется не положением в алфавите, а используемой кодировкой. Обычно, символы идут в таблице кодировки друг за другом, но есть и исключения. Например, буква "ё" обычно идет отдельно от остального алфавита.
Программа читает стандартный ввод (клавиатура) построчно.
Если буквы латинские, достаточно простой арифметики с кодами символов и перевод результата в символьных формат.
Для русских символов выделена переменная, содержащая алфавит в правильном порядке (хотя можно было бы извернуться и решить первым способом, но зачем?). Если символ подходит входит в один из двух алфавитов, то шифруется. Нет - выводится без изменений.
Программа будет работать до тех пор пока не будет введен символ с кодом 0 (Ctrl + @).
//////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Brainly {
class Program {
static void Main(string[] args) {
string buff,
alfa = "абвгдеёжзийклмнопрстуфхцчъыьэюя", //алфавит
key = new string(alfa.ToCharArray().Reverse().ToArray());//перевернутый алфавит
bool isEnd = false;
while (!isEnd) {
Console.Write("Введите текст: ");
buff = Console.ReadLine();
Console.Write("Результат: ");
for (int i = 0; i < buff.Length; ++i) {
if (buff[i] == '\0') isEnd = true; //Выход?
if (buff[i] >= 'a' && buff[i] <= 'z')
Console.Write((char)('z' - buff[i] + 'a'));
else if (buff[i] >= 'A' && buff[i] <= 'Z')
Console.Write((char)('Z' - buff[i] + 'A'));
else if (buff[i] >= 'а' && buff[i] <= 'я' || buff[i] == 'ё')
Console.Write(key[alfa.IndexOf(buff[i])]);
else if (buff[i] >= 'А' && buff[i] <= 'Я' || buff[i] == 'Ё') Console.Write(key[alfa.ToUpper().IndexOf(buff[i])].ToString().ToUpper());
else
Console.Write(buff[i]);
}
Console.WriteLine(); Console.WriteLine();
}
}
}
}