// C# 7.3
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
namespace Rextester
{
public class Program
{
public static void Main(string[] args)
{
var crypted = "";
for (int i = 0; i < CaesarCipher.Ru.Length; i++)
Console.WriteLine(CaesarCipher.Decode(i, crypted));
}
}
class CaesarCipher
{
public static readonly string Ru = "";
public static readonly string RuD = "";
private static readonly int defaultStep = 3;
public static CaesarEncrypted Encode(int step, string source, Func<string, string> translate)
{
string translatedData = translate(source);
var stringBuilder = new StringBuilder();
foreach (char c in translatedData.ToLower())
{
stringBuilder.Append(RuD[Ru.IndexOf(c) + step]);
}
return new CaesarEncrypted(step, stringBuilder.ToString());
}
public static CaesarEncrypted Encode(int step, string source)
{
return Encode(step, source, x => x);
}
public static string Decode(CaesarEncrypted source)
{
var step = source.Step;
return Encode(-step + Ru.Length, source.ToString(), x => x);
}
public static string Decode(int step, string source)
{
return Encode(-step + Ru.Length, source, x => x);
}
}
class CaesarEncrypted : IEnumerable, IEnumerable<char>
{
public int Step { get; set; }
public string Data { get; set; }
public CaesarEncrypted(int step, string initData)
{
Step = step;
Data = initData;
}
public CaesarEncrypted(string initData) : this(int.MaxValue, initData)
{}
public IEnumerator<char> GetEnumerator()
{
foreach (char c in Data)
yield return c;
}
IEnumerator IEnumerable.GetEnumerator() => (IEnumerator<char>)GetEnumerator();
public override string ToString() => Data;
public static implicit operator string(CaesarEncrypted source) => source.ToString();
}
}
Объяснение:
1 Основные характеристики процессоров
1.1 Сокет
1.2 Количество ядер центрального процессора
1.3 Тактовая частота процессора
1.4 Кэш память центрального процессора
1.5 Графическое ядро процессора
Основные характеристики процессоров
Характеристик у ЦП достаточно много, однако, главной является его набор команд или система команд. В настоящее время все ЦП для компьютеров используют систему команд, совместимую с 8086 (так называемое семейство х86). Для ЦП с 64-х битной архитектурой эта система команд расширяется дополнительным набором команд, но при этом, совместимость с х86 остаётся.
Следующей важной характеристикой ЦП является его разрядность или битность. Это число показывающее, со сколькими единичными разрядами ЦП может работать за 1 машинный цикл. Современные ЦП имеют разрядность 32 или 64 бита.
Помимо перечисленных, основными характеристиками ЦП являются:
применяемая технология изготовления;
используемый ЦП разъём или сокет;
частота работы ЦП;
наличие дополнительных ядер (как основных, так и графических);
объём быстродействующей памяти на кристалле (кэша);
наличие дополнительных функций.
Рассмотрим их более детально.
Основные характеристики
Сокет
Сокет материнской платы – это разъём, в который ЦП устанавливается. Он определят число выводов ЦП, подключённых к материнской плате. В зависимости от типа сокета их число, как и их тип (ножки или контактные площадки) могут быть различными.
Количество ядер центрального процессора
В настоящее время одноядерных ЦП практически не выпускается. Хотя, до сих пор эксплуатируются устаревшие модели Pentium и Celeron, имеющие только одно ядро. Большинство современных ЦП имеет их, как минимум 4. Максимальное их количество составляет 28 у ЦП Xeon от фирмы Intel и 32 у Threadripper от AMD.
Это число является важным параметром, поскольку именно оно определяет производительность ЦП в работе под многозадачной операционной системой.
Важно! В настоящее время существует дополнительная косвенная характеристика, относящаяся к числу ядер и называемая количество потоков. Поток – это минимально существующая часть кода, предназначенная для непрерывного выполнения одиночным ЦП. В большинстве случаев количество потоков в два раза больше числа ядер.
Тактовая частота процессора
Тактовая частота определяет быстродействие ЦП, то есть частоту с которой он может обрабатывать команды. Она выражается в герцах; 1 герц – это тактовый импульс в секунду. У современных ЦП её значение составляет тысячи мегагерц или гигагерцы (миллиарды герц).
i,k:integer;
begin;
randomize;
writeln('Array:');
for i:=1 to 10 do
begin;
ar[i]:=random(0,2);
writeln(ar[i]);
if ar[i]=1 then inc(k);
end;
writeln('Result:',k);
end.