Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

В массиве C[1..N] все элементы, больше среднего арифметического положительных чисел, заменить на первое положительное значение массива.

Определить среднее арифметическое четных элементов, лежащих после максимального значения в массиве D[I..N]. Все нечетные рассортировать по возрастанию. | Создать массив М[ 1 ..N]. Определить минимальное значение среди первых N DIV 2 чисел. Максимальное всего массива заменить в массиве на это минимальное значение. | Определить, сколько нулей лежит между минимальным и максимальным значениями массива H[1..N]. До и после экстремумов массив отсортировать по убыванию. | В массиве Z[1..N] определить сумму нечетных чисел от последнего нулевого значения до Z[N] и среднее арифм. четных до последнего нуля. | Дан массив из 40 символов, содержащий слова, разделенные одним пробелом. Определить, сколько раз каждое слово встречается в этом массиве. | В массиве A[1..15] определить минимальное значение. Все числа, лежащие за минимальным записать в новый массив В и определить в нем среднее арифметическое положительных чисел. | Определить средн. арифм. положительных чисел, лежащих после минимального значения в массиве B[1..N]. Числа до минимального рассортировать по возрастанию. | В матрице D[1..N.1..M] максимальный элемент заменить средним арифметическим элементов строки в которой находится максимальный элемент. |


Читайте также:
  1. B матрице A[1..N,1..M] упорядочить элементы столбца. содержащего наибольшее количество отрицательных чисел, по убыванию.
  2. Cтадия 6. Интимность - изоляция. Ранняя взрослость. От 18 лет до начала среднего возраста
  3. I. Значение и первоисточники этого тома
  4. I. Первое размышление Христофора Таубеншлага
  5. Quot;Перестань, Бибер, её больше нет. Ты не должен плакать, не должен".
  6. а сколько в десятичной нумерации число10000002больше508?
  7. А) Больше чем дополнительная прибыль от заемного капитала

uses crt;

const

c=20;

var i:integer;

m:array[1..20]of integer;

sum,sr:integer;

begin

clrscr;

randomize;

for i:=1 to 20 do

begin

m[i]:=-10+random(20);

write(m[i]:4);

end;

writeln;

asm

{вычисление суммы положительных элементов и их количества}

lea si,m

xor ax,ax

xor dx,dx

mov cx,c

@1: mov bx,[si]

cmp bx,0

jle @3

inc dx

add ax,[si]

@3: add si,2

loop @1

mov sum,ax;

{вычисление среднего арифметического положительных элементов}

mov x,dx

cwd

div bx

mov bx,ax

mov sr,ax;

{если элемент массива меньше среднего арифметического то заменяем его на первый}

xor ax,ax

lea si,m

mov cx,c

mov dx,[si]

@2: cmp [si],bx

jge @4

mov [si],dx

@4: add si,2

loop @2

end;

{выводим результат на экран}

writeln('Sum = Sr = ',sr);

writeln;

for i:=1 to 20 do

write(m[i]:4);

readkey

 

end.

 

 

Дан массив из 30 символов, содержащий слова с одинаковыми первой и последней буквами, но ничем не разделенные. Сформировать новый массив, в котором эти слова были бы разделены пробелами.

{$L 32.obj}

program p01;

Uses crt;

type mystr = string[30];

var a: mystr;

 

procedure work01(var a:mystr);

external;

 

Begin

clrscr;

writeln ('Исходная строка: a:= '1sd1113asd33as37df7df7df';

writeln (a);

work01 (a);

writeln (a);

readkey;

End.

 

.286

public work01

data segment public

temp db 30 dup data ends

 

code segment byte public

assume cs:code,ds:data

 

work01 proc near

push bp

mov bp,sp

pusha

 

lea di,temp;адрес строки Temp

mov si,[bp+4];адрес строки А

xor cx,cx;очистили сч-к

mov cl, [si];кол-во букв в строке А

inc si;перешли на первый символ

mov bx, 1;индекс в строке Temp

 

;Взять первый символ слова

loop02: mov ah, [si];взять символ из строки А

mov bx[di],ah;Записать его в строку TEMP

 

inc bx;Увеличить индекс в TEMP

cmp bx, 30;Если вышли за границу строки

je EOP;то на выход

 

 

inc si;Перейти к след. букве

loop01: mov al, [si];Считать символ

mov bx[di],al;Записать его в TEMP

 

inc bx;Увеличить индекс в TEMP

cmp bx, 30;Если вышли за границу строки

je EOP;то на выход

 

cmp ah, al;Сравнить символы

je match;Если символ = первому символу слова

;то вставить пробел

 

inc si;Перейти к слещд. символу

loop loop01

jmp EOP;Пока не достигнем конца исх. строки

 

match:;добавление пробкла в массив TEMP

inc bx;Увеличить индекс в TEMP

cmp bx, 30;Если вышли за границу строки

je EOP;то на выход

mov byte ptr bx[di], ';записать пробел

inc si;след. символ в исх. строке

loop loop02;взять первую букву след. слова

 

EOP:;перенести Temp в строку

lea si, temp;адрес TEMP

mov di, [bp+4];адрес строки

mov cx, 30;кол-во букв

mov bx, 1;адрес первого символа

loop03: mov ah, bx[si];взять сивол из TEMP

mov byte ptr bx[di],ah;записать его в строку

inc bx;Перейти к след. символу

loop loop03;пока не обработаем всю строку

 

popa

pop bp

ret 6

work01 endp

code ends

end

 

 


Дата добавления: 2015-08-02; просмотров: 255 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
B матрице A[1..N,1..M] упорядочить элементы столбца. содержащего наибольшее количество отрицательных чисел, по убыванию.| Подсчитать количество предложений. Расставить предложения по возрастанию количества слов в каждом

mybiblioteka.su - 2015-2024 год. (0.006 сек.)