1) Шина (магистраль) – совокупность проводников (физических линий) данных, адреса и линий передачи сигналов управления, синхронизации и электропитания, а также протоколов обмена данными между устройствами, подключенными к шине.Состав шины – количество линий данных определяет разрядность данных, количество линий адреса определяет адресуемое пространство памяти, количество линий сигналов управления и оповещения, частота шины, определяющая ее пропускную Контроллер шины является устройством, связывающим центральный процессор с периферийными устройствами по сигналу запроса и сигналу готовности внешнего устройства к обмену данными с центральным процессором. При этом управление шиной передается этому внешнему устройству через дешифратор номера и это устройство становится задатчиком шины.Задатчиками (хозяевами) шины могут выступать центральный процессор (обычная ситуация), контроллер ПДП, контроллер регенерации и некоторые платы системы расширения.В каждом цикле обмена задатчиком всегда является только одно устройство. Контроллер ПДП захватывает магистраль (запрещает работу центрального процессора с шиной данных) на время прямой передачи информации между устройством ввода/вывода и памятью (по запросу устройства ввода/вывода).Контроллер регенерации периодически становится задатчиком магистрали для проведения циклов регенерации системной динамической памяти через заданные интервалы времени.Для 32-разрядных компьютеров (386DX, 486, Pentium и т.д.) обмен процессора с памятью (а иногда и с другими устройствами) осуществляется через быстродействующую локальную шину VLB или через РСI.
3)На данный момент активно ведутся разработки молекулярных, оптических и квантовых устройств, а также ДНК-компьютеров. Сложность разработки таких систем заключается в необходимости перестроения всех основных узлов: центрального процессора, элементов памяти, устройств ввода/вывода.В основе молекулярных компьютеров лежат бистабильные молекулы, которые могут находится в двух устойчивых термодинамических состояниях. Каждое такое состояние характеризуется своими химическими и физическими свойствами. Переводить молекулы из одного состояния в другое можно с света, тепла, химических агентов, электрических и магнитных полей. По сути, эти молекулы являются транзисторами размером в несколько нанометров.
Не такое оно и сложное. Главная проблема - то, что между словами может быть несколько пробелов. Устраним её, написав функцию, которая оставляла бы между словами по 1 пробелу:
function RemoveSpaces(str : string) : string; begin //Тут цикл for, переписанный через while var iter := 1; //Проходим по строке while (iter < str.Length) do begin //Если видим 2 пробела подряд, удаляем 1 и откатывает итератор. if (str[iter] = ' ') and (str[iter + 1] = ' ') then begin str := str.Remove(iter, 1); iter -= 1; end; iter += 1; end; RemoveSpaces := str; end;
Теперь мы можем получить кол-во слов очень просто:
function CalcWords(str : string) : integer; begin CalcWords := RemoveSpaces(str).Split(' ').Count(); end;
Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.
var
a: array[1..3] of integer;
begin
Readln(a[1], a[2], a[3]);
var p := 1;
for var i := 1 to 3 do
if a[i] mod 2 = 0 then p := p * a[i];
Writeln(p);
end.