1. Для аппаратных средств (аппаратный уровень) - разновидности Ассемблеров - здесь важна точность;
2. Приближенное с ядру системы (системный уровень) - C, C++, Delphi (Paskal) (это нативные языки) - здесь важна скорость (как написания так и выполнения);
3. Для решения научных рутин (прикладной уровень) - любые, в основном это Java, C++, Delphi, но тут главное не язык, а куча разных библиотек для ускорения и упрощения написания. Чаше всего это интерпретируемые языки.
В основном чаще пользуются Java, С++, .NET, PHP, Python.
Потому что именно так можно коротко и лаконично работать с массивом. Например, давайте решим такое задание: заполнить 100 элементов массива случайными числами. Без цикла while или for этот код займёт ни много, ни мало 100 строк и выглядело бы это вот так:
arr[0] = rand();arr[1] = rand();...arr[100] = rand();Во-первых - это очень затрудняет читабельность кода. Во-вторых, если Вам придётся решать задачу, предполагающую ввод количества элементов, то Вы уже не сможете просто так написать N элементов, поскольку Вы не знаете, какое число даст программе человек. В таком случае Вам бы пришлось использовать рекурсивную функцию.
Вместо этого люди решили использовать цикл - то, что повторяет тело цикла i раз ("i - это итератор - счётчик цикла"). Давайте посмотрим, как будет выглядеть наша задача с циклом:
for(int i = 0; i < 100; i++){ arr[i] = rand();}В данном случае, как я писал выше, с каждой итерацией будет выполняться оператор присваивания случайного ("на самом деле псевдослучайного, но тема не об этом") числа элементу с индексом ("положением элемента в массиве"), равным номеру итератора.
ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\", Приём;
ПЕР a, b, c, x, f, b3, a_2: ВЕЩ;
УКАЗ
a := Приём.Число();
c := 3 * a / 2;
a_2 := a * a;
b := 3 * a_2 - c * c;
b3 := 3 * b;
x := a_2 + b3 * a_2 - b3;
f := x + a * b - 4;
Вывод.ЧВещ("%g", f, 0, 0, 0)
КОН Задание.