Ребята, помогите пожалуйста. Завтра экзамен, а я до сих пор не понимаю задачи:
- рандомный генератор чисел (из изначально определенного числа чисел)
- мин, макс (integers)
- медиана
- средн знач
- сумма
- геометр сумма
И floats (сумма, ср знач)
Если не хотите мне обьяснять лично, скиньте пожалуйста инфу почитать, я сам разберусь. Я новичок в ассемблере, прошу не гневайтесь. Спасибо за понимание.
1) простейший генератор смотри здесь:
https://ru.m.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D0%B3%D1%80%D1%83%D1%8D%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4;
2) min и max -- последовательно идём по массиву и проверяем каждое число -- оно больше чем max или меньше, чем min? Начальное значение для min = max = n[0];
3) медиана -- сортируем массив по возрастанию. Если массив имеет нечётное количество элементов, то берём центральный элемент med = n[size / 2], если чётное количество, то среднее med = (n[size / 2] + n[size / 2 + 1]) / 2;
4) среднее значение: суммируем все элементы и делим на size;
5) сумма - ну это ясно;
Регистр AX аккумулятор - в нём считаешь сумму add ax, [si]. SI - указывает на начало массива (mov si, offset array); не забываем увеличивать SI после каждой итерации (на 1 для байта; на 2 для слова - add si, 2). Регистр CX - количество повторений: mov cx, size.
Mov si, offset array (устанавливаем начало массива)
Mov ax, 0 (обнуляем аккумулятор)
Mov cx, size
Again:
Add ax, [si]
Add si, 2 (следующий элемент массива - слово)
Loop Again (повторение)
Ret (конец программы)
Изучи div, mul, add, sub.
Cmp и ja / jb.