Последующие десять лет проект «компьютеров пятого поколения» стал испытывать ряд трудностей разного типа.
Первая проблема заключалась в том, что язык Пролог, выбранный за основу проекта, не поддерживал параллельных вычислений, и пришлось разрабатывать собственный язык работать в мультипроцессорной среде. Это оказалось трудным — было предложено несколько языков, каждый из которых обладал собственными ограничениями.
Другая проблема возникла с производительностью процессоров. Оказалось, что технологии 80-х годов быстро перескочили те барьеры, которые перед началом проекта считались «очевидными» и непреодолимыми. А запараллеливание многих процессоров не вызывало ожидаемого резкого скачка производительности. Получилось так, что рабочие станции, созданные в рамках проекта, успешно достигли и даже превзошли требуемые мощности, но к этому времени появились коммерческие компьютеры, которые были ещё мощнее.
Последующие десять лет проект «компьютеров пятого поколения» стал испытывать ряд трудностей разного типа.
Первая проблема заключалась в том, что язык Пролог, выбранный за основу проекта, не поддерживал параллельных вычислений, и пришлось разрабатывать собственный язык работать в мультипроцессорной среде. Это оказалось трудным — было предложено несколько языков, каждый из которых обладал собственными ограничениями.
Другая проблема возникла с производительностью процессоров. Оказалось, что технологии 80-х годов быстро перескочили те барьеры, которые перед началом проекта считались «очевидными» и непреодолимыми. А запараллеливание многих процессоров не вызывало ожидаемого резкого скачка производительности. Получилось так, что рабочие станции, созданные в рамках проекта, успешно достигли и даже превзошли требуемые мощности, но к этому времени появились коммерческие компьютеры, которые были ещё мощнее.
Обратите внимание на то, что использование переменных c,k,j совершенно не нужно. Также в переменных
max,min лучше запоминать индексы, чтобы затем выполнить реверс.
const n = 10;
type mass = array[1..n] of integer;
var
a: mass;
i, max,min: integer;
begin
randomize;
for i := 1 to n do
A[i] := random(20)-10;
for i := 1 to n do
write(a[i]:3);
writeln();
// В переменных max и min будем запоминать
// ИНДЕКСЫ макс. и мин. элементов
max := 1;
min := 1;
for i := 1 to n do begin
if a[i] > a[max] then max := i;
if a[i] < a[min] then min := i;
end;
Writeln('A[',max,'] = ',a[max]);
Writeln('A[',min,'] = ',a[min]);
// Меняем местами max и min
i := a[max];
a[max]:=a[min];
a[min]:=i;
// Выводим результат на экран
for i := 1 to n do write(a[i]:3);
end.