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

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

Подсчитать количество предложений. Расставить предложения по возрастанию количества слов в каждом | Определить среднее арифметическое четных элементов, лежащих после максимального значения в массиве 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. I. Количество и качество проведенных воспитательных мероприятий за год
  2. II.Количество и качество проведенных концертных мероприятий за год
  3. Oslash;Олигополия – это рыночная структура, где оперируют:небольшое количество конкурирующих фирм
  4. А) резко увеличивается количество участников,
  5. Агиографические элементы, преобладающие в конце повести, не разрушают цельности ее содержания, основанного на художественном вымысле.
  6. азовите два числа, у которых количество цифр равно количеству букв, составляющих название каждого из этих чисел.

Дан массив из 16 целых чисел. Найти суммы: 1-го и последнего элементов. 2-го и последнего н т.д. Из сумм создать новый массив и определить минимальное в этом массиве.

{$L l120.obj}

uses crt;

const n=10;

type mas=array[1..n] of integer;

var i,k,a,min:integer;

y,c:mas;

procedure l120(var y,c:mas;var i,a,min,k:integer);

external;

begin

randomize;

clrscr;

writeln('source array:');

for i:=1 to n do

begin

y[i]:=-50+random(100);

write(y[i]:4);

end;

writeln;

k:=n;

l120 (y,c,i,a,min,k);

writeln('massiv sum:');

a:=n div 2;

for i:=1 to a do

write(c[i]:4);

writeln;

writeln('min = ',min);

readkey;

end.

 

 

extrn y,c,i,a,min,k

public l120

cseg segment byte public

assume cs:cseg

l120 proc near

lea si,y

lea di,c

mov cx,k

xor bx,bx

mov bx,si; {adres nachala mas peresilaem v bx}

add bx,k; {nahodim adres konca massiva}

add bx,k

sub bx,2

lea si,y

 

@1: mov ax,[bx]; {znachenie konca mas v bp}

add ax,[si]; {skladivaem nachalo i konec}

mov [di],ax;{summu v nov mas}

add si,2

sub bx,2

add di,2

loop @1

lea di,c; {poisk min}

mov cx,k

ror cx,1

mov bx,[di]

@2: cmp bx,[di]

jle @3

mov bx,[di]

@3: add di,2

loop @2

mov min,bx

ret

l120 endp

cseg ends

end;

 

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

{$L bilet.obj}

{

в матрице A[1..N,1..M] упорядочить элементы столбца,

 

содержащего наибольшее кол-во отриц-ых чисел, по убыванию

}

program bilet_9;

uses crt;

const n=5;

m=5;

type matr=array[1..n,1..m]of integer;

var a:matr; {матрица}

i,j:integer;

ind:integer; {номер cтолбца с максимальным кол-вом отр.чисел}

max:integer; {максимальное кол-во отр-ых чисел}

{---------------}

procedure bilet(var a:matr;n,m:integer;var ind,max:integer);

external;

{---------------}

BEGIN

clrscr;

randomize;

writeln('Матрица А: for i:=1 to n do

begin

for j:=1 to m do

begin

a[i,j]:=-5+random(11);

write(a[i,j]:3);

end;

writeln;

end;

bilet(a,n,m,ind,max);

writeln('Макс. кол-во отриц-ых чисел: ',max);

writeln('Номер столбца: ',ind);

writeln('Матрица А после перестановки: for i:=1 to n do

begin

for j:=1 to m do

write(a[i,j]:3);

writeln;

end;

readkey;

Writeln(' (c) & (p) orlic@udm.ru 2001');

END.

 

.286

public bilet

data segment byte public

assume ds:data

max dw 0;макс-ое кол-во отриц-ых чисел в столбце

ind dw 0;номер столбца с макс-ым кол-вом отр-ых

x dw 0;номер обрабат.286

public bilet

data segment byte public

assume ds:data

max dw 0;макс-ое кол-во отриц-ых чисел в столбце

ind dw 0;номер столбца с макс-ым кол-вом отр-ых

x dw 0;номер обрабатываемого столбца

data ends

code segment byte public

assume cs:code

bilet proc near

push bp

mov bp,sp

pusha

;-------------------------------

mov bx,[bp+12];кол-во столбцов для смещения

shl bx,1;умножили на 2 - смещение до след-го числа

;в столбце

mov cx,[bp+12];кол-во столбцов для внешнего цикла

mov x,1;номер обрабатываемого столбца

cycl1: lds si,[bp+16];адрес начала матрицы

mov dx,x;номер обрабатываемого столбца

dec dx

shl dx,1;смещение до начала столбца

add si,dx;встали на начало столбца

xor dx,dx;счетчик отр-ых чисел

push cx

mov cx,[bp+14];кол-во строк

cycl2: mov ax,[si]

cmp ax,0;сравниваем число с 0

jge next;если полож-ное

inc dx;считаем кол-во отр-ных

next: add si,bx;переадресация на след-щее число в столбце

loop cycl2

cmp dx,max;сравниваем кол-во отр-ых в столбце

;с максимальным

jle met1;если не больше максимума

mov max,dx;запомнили максимум отр-ых чисел

mov dx,x

mov ind,dx;запомнили номер столбца с макс-ым кол-вом

;отрицательных чисел

met1: pop cx;вспомнили сх для внешнего цикла

inc x;встали на следующий столбец

loop cycl1;на обработку следующего столбца

;-----------передача параметров в паскаль

lds si,[bp+8]

mov dx,ind

mov [si],dx;отправили номер столбца в паскаль

lds si,[bp+4]

mov dx,max

mov [si],dx;отправили макс-ное кол-во отр-ых в паскаль

;-----------сортировка столбца-----------------------

met3: lds si,[bp+16];адрес начала матрицы

mov cx,[bp+14];кол-во строк

mov bx,ind;номер столбца с макс-ным кол-вом отр.

dec bx

shl bx,1;смещение до начала столбца

add si,bx;встали на начало столбца

mov bx,[bp+12];кол-во столбцов для смещения

shl bx,1;умножили на 2 - смещение до след-го числа

dec cx;кол-во пар чисел (n-1) - для сортировки

xor dx,dx;признак сортировки

sort: mov ax,[si]

cmp ax,[si+bx];сравниваем число со след-щим в столбце

jge met2;если первое больше второго, то перестав-

;лять не надо - на переадресацию

xchg ax,[si+bx];перестановка

xchg ax,[si]

mov dx,1;изменили признак сортировки

met2: add si,bx;переадресацию

loop sort

cmp dx,0

jne met3

;-------------------------------

popa

pop bp

ret

bilet endp

code ends

end

ываемого столбца

data ends

code segment byte public

assume cs:code

bilet proc near

push bp

mov bp,sp

pusha

;-------------------------------

mov bx,[bp+12];кол-во столбцов для смещения

shl bx,1;умножили на 2 - смещение до след-го числа

;в столбце

mov cx,[bp+12];кол-во столбцов для внешнего цикла

mov x,1;номер обрабатываемого столбца

cycl1: lds si,[bp+16];адрес начала матрицы

mov dx,x;номер обрабатываемого столбца

dec dx

shl dx,1;смещение до начала столбца

add si,dx;встали на начало столбца

xor dx,dx;счетчик отр-ых чисел

push cx

mov cx,[bp+14];кол-во строк

cycl2: mov ax,[si]

cmp ax,0;сравниваем число с 0

jge next;если полож-ное

inc dx;считаем кол-во отр-ных

next: add si,bx;переадресация на след-щее число в столбце

loop cycl2

cmp dx,max;сравниваем кол-во отр-ых в столбце

;с максимальным

jle met1;если не больше максимума

mov max,dx;запомнили максимум отр-ых чисел

mov dx,x

mov ind,dx;запомнили номер столбца с макс-ым кол-вом

;отрицательных чисел

met1: pop cx;вспомнили сх для внешнего цикла

inc x;встали на следующий столбец

loop cycl1;на обработку следующего столбца

;-----------передача параметров в паскаль

lds si,[bp+8]

mov dx,ind

mov [si],dx;отправили номер столбца в паскаль

lds si,[bp+4]

mov dx,max

mov [si],dx;отправили макс-ное кол-во отр-ых в паскаль

;-----------сортировка столбца-----------------------

met3: lds si,[bp+16];адрес начала матрицы

mov cx,[bp+14];кол-во строк

mov bx,ind;номер столбца с макс-ным кол-вом отр.

dec bx

shl bx,1;смещение до начала столбца

add si,bx;встали на начало столбца

mov bx,[bp+12];кол-во столбцов для смещения

shl bx,1;умножили на 2 - смещение до след-го числа

dec cx;кол-во пар чисел (n-1) - для сортировки

xor dx,dx;признак сортировки

sort: mov ax,[si]

cmp ax,[si+bx];сравниваем число со след-щим в столбце

jge met2;если первое больше второго, то перестав-

;лять не надо - на переадресацию

xchg ax,[si+bx];перестановка

xchg ax,[si]

mov dx,1;изменили признак сортировки

met2: add si,bx;переадресацию

loop sort

cmp dx,0

jne met3

;-------------------------------

popa

pop bp

ret

bilet endp

code ends

end

 

В матрице F[1..N,1..N] упорядочить элементы главной диагонали в порядке возрастания. Определить сумму элементов, лежащих под главной диагональю.

 

{$L lab3.obj}

{ сортировка главной диагонали и сумма под ней }

uses crt;

const n=5;

type mat=array[1..n,1..n] of integer;

var i,j,sum:integer;

a:mat;

 

procedure matr (var a:mat; k:integer; var sum:integer); external;

begin randomize;

clrscr;

writeln ('Исходная матрица');

for i:=1 to n do begin writeln;

for j:=1 to n do

begin

a[i,j]:=random(10);

write(a[i,j]:4)

end;

end;

writeln; writeln; writeln;

 

matr (a,n,sum);

 

writeln ('Отсортированная матрица');

for i:=1 to n do begin writeln;

for j:=1 to n do

write(a[i,j]:4)

end;

writeln; writeln;

writeln ('Сумма элиментов лежащих под глав. диагональю = ',sum);

readkey;

end.

.286

public matr

code segment byte public

 

xor si,si

mov dx,[bx]

mov cx,[bp+8]

 

mm1: mov ax,[bx]

cmp ax,dx

je mm2

add si,ax

add bx,2

mov mm1

mm2: mov dx,[bx+di+2]

add bx,2

loop mm1

mov [bp+4],si

 

popa

pop bp

ret 10

matr endp

code ends

end

 

 

В матрице E[1..N,1..M] в строках, содержащих нуль, расположить элементы по убыванию.

{$L l16.obj}

Program Lab3;

Uses Crt;

Const N=6; M=8;

Type Mas=array[1..N,1..M] of integer;

Var i,j: integer;

E: Mas;

Procedure Sort(Var E:mas; var i,j:integer); external;

Begin

clrscr;

randomize;

writeln('Исходная матрица:');

for i:= 1 to n do

begin

for j:=1 to m do

begin

e[i,j]:=-15+random(25);

write(e[i,j]:4);

end;

writeln;

end;

i:=n; j:=m;

Sort(E,i,j);

writeln;

writeln('Полученная матрица:');

for i:= 1 to n do

begin

for j:=1 to m do write(e[i,j]:4);

writeln;

end;

readkey;

End.

 

.286

public Sort

code segment byte public

assume cs:code

M dw 0; Переменная для столбцов

N dw 0; Переменная для строк

Sort proc near

push bp; Сохраняю bp

mov bp,sp; Указатель базы в bp

pusha; Сохраняю регистры в стеке

lds bx,[bp+8]

mov ax,[bx]

mov N,ax; Заносим количество строк в N

lds bx,[bp+4]

mov ax,[bx]

mov M,ax; Заносим количество столбцов в M

lds bx,[bp+12]; В bx адрес матрицы

Cycl: mov si,0; Для движения по строке

mov cx,M; Заносим количество столбцов в сx

mov ax,0; Здесь хранится ноль для сравнения

Cycl1: cmp [bx][si],ax; Двигаемся по строке

jne m4; Если не 0 то на m4

; Сортировка по убыванию

mov dx,M; В di кол-во столбцов

m1: mov si,0; Встаю на первый элемент

mov cx,M; В сх кол-во столбцов

dec cx; Во внутреннем цикле прохожу m-1 раз

m2: mov ax,[bx][si]; Первый элемент в ax

add si,2

cmp ax,[bx][si]; Сравниваем со вторым

jge m3; Переход на m3 если менять не надо

push ax; Меняю местами

push [bx][si]

pop [bx][si-2]

pop [bx][si]

m3: loop m2; Внутренний цикл сортировки

dec dx

jne m1; Внешний цикл сортировки

jmp m5; Переход на следующую строку

m4: add si,2

loop Cycl1

m5: add bx,M; Встаю на следующую строку

add bx,M

dec N

jne Cycl; Основной цикл

popa; Восстанавливаю ранее сохраненые

pop bp; значения регистров

ret 12; Овсобождаю стек

Sort endp

code ends

end

 


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


<== предыдущая страница | следующая страница ==>
Бескупонная облигация куплена на аукционе по курсу 40 и продана по курсу 58 через 90 дней. Рассчитать доходность вложения по схеме сложных и простых процентов.| В массиве C[1..N] все элементы, больше среднего арифметического положительных чисел, заменить на первое положительное значение массива.

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