MnBMnB
Новичок
|
всем спасибо, задачу я решил
|
Всего сообщений: 2 | Присоединился: январь 2010 | Отправлено: 18 янв. 2010 13:56 | IP
|
|
sharkid
Новичок
|
Ребят помогите решить задачу не понимаю ни черта в этом языке. Задача: дан массив из 20 чисел.Найти в этом массиве все числа,содержащие четное число единиц и создать из них новый массив.
|
Всего сообщений: 1 | Присоединился: январь 2010 | Отправлено: 20 янв. 2010 19:29 | IP
|
|
Splain
Новичок
|
ОГРОМНАЯ просьба помочь-сделать надо совсем чут ьчуть-испарвить маленькие недочёты!вобщем вот задача-С клавиатуры вводится 5 символов. Нужно посчитать в регистре DX, сколько среди них в сумме точек и запятых. я решил её следующим образом- ;===[ Начало сегмента кода ]============================================ mycode segment 'code' org 100h ; Обязательная директива ТОЛЬКО для COM-файлов START: ;---[ Точка старта ]--------------------------------------------------------------------- ; обнуляем dx mov dx, 0 ; вводим 5 символов mov ah, 01h int 21h mov byte[DS:0], al mov ah, 01h int 21h mov byte[DS:1], al mov ah, 01h int 21h mov byte[DS:2], al mov ah, 01h int 21h mov byte[DS:3], al mov ah, 01h int 21h mov byte[DS:4], al mov bx, 0 mov cx, 5 MYLOOP: cmp byte[bx], 2Eh ; если введённый символ ',' jnz METKA inc dx ; то увеличиваем dx на 1 METKA: cmp byte[bx], 2Ch ; если введённый символ '.' jnz METKA2 inc dx ; то увеличиваем dx на 1 METKA2: inc bx LOOP MYLOOP ;---[ Стандартное завершение программы ]---------------------------------------- mov AX, 4C00h int 21h ;===[ Начало сегмента данных ]========================================== ; ... на что препод ответил- В целом все работает корректно, но есть замечания: 1) если понадобится вводить не 5, а 125 символов, вы будете каждый раз переписывать программу? нужно сделать один раз универсально.1 2) у вас присутствуют некие константы, с которыми вы проводите сравнение. А что если на какой-то машине будет установлена иная кодировка символов? Здесь тоже нужно делать универсально. большая просьба помочь исправить недочёты-от этого решается экзамен!) сделать это надо до 7-8 утра!!вот такая сложная ситуация)))поэтому буду очень благодарен за помощь..! (Сообщение отредактировал Splain 23 янв. 2010 2:05)
|
Всего сообщений: 6 | Присоединился: январь 2010 | Отправлено: 23 янв. 2010 1:40 | IP
|
|
Splain
Новичок
|
всё спасибо не надо
|
Всего сообщений: 6 | Присоединился: январь 2010 | Отправлено: 23 янв. 2010 10:14 | IP
|
|
SergioVelaskes
Новичок
|
всем привет... помогите плиз.....задача в принципе легкая...но переклинило и все тут....ни строчки не могу написать........ задача: напишите программу заменяющую в строке каждый символ "*" на символ "-"
|
Всего сообщений: 1 | Присоединился: февраль 2010 | Отправлено: 3 фев. 2010 13:46 | IP
|
|
banderlog
Новичок
|
программа позволяет менять местами группы массива состоящая из 20 элементов uses crt; const NA = 20; var a: array[1..NA] of integer; N,i: byte; begin N:= NA; clrscr; randomize; writeln('Array:'); for i:=1 to N do begin a:= random(10); write(a:4); if i mod 5 = 0 then writeln; end; writeln; writeln; textcolor(lightgray); writeln('Result array:'); asm lea si,a xor dx,dx mov dl,N shr dl,1 {v dl smeshenie dlya 1 gruppi} add si,dx add si,dx{smeshaemsya na 2 gruppu} mov cx,dx{v cx N/4} shr cx,1 @cycle1: sub si,2 mov ax,[si] push ax {pomeshaem gruppu v stack} inc ch cmp ch,cl jne @cycle1 lea si,a add si,dx add si,dx add si,dx add si,dx {smeshaemsya na 4 gruppu} mov cx,dx shr cx,1 @cycle2: sub si,2 mov ax,[si] push ax {pomeshaem gruppu v stack} inc ch cmp ch,cl jne @cycle2 lea si,a add si,dx {smeshaemsya na 1 gruppu} mov cx,dx shr cx,1 @cycle3: sub si,2 mov ax,[si] push ax {pomeshaem gruppu v stack} inc ch cmp ch,cl jne @cycle3 lea si,a add si,dx add si,dx add si,dx {smeshaemsya na 3 gruppu} mov cx,dx shr cx,1 @cycle4: sub si,2 mov ax,[si] push ax {pomeshaem gruppu v stack} inc ch cmp ch,cl jne @cycle4 lea si,a xor cx,cx mov cl,N {prohodim ves massiv} @cycle5: pop ax {kladem v massiv zna4eniya iz stack'a} mov [si],ax add si,2 inc ch cmp ch,cl jne @cycle5 end; for i:=1 to N do begin write(a:4); if i mod 5 = 0 then writeln; end; readkey; end.
|
Всего сообщений: 3 | Присоединился: ноябрь 2009 | Отправлено: 3 фев. 2010 13:57 | IP
|
|
banderlog
Новичок
|
если кому надо у меня есть файловый менеджер на определенные темы написанный на асм. Там вообщем такое решение 1) написан файловый менеджер на 4 задачи 2) первая задача написана на паскале, вторая на начало паскаль потом асм, третья начало асм потом паскаль, четвертая полностью на асм 3) есть 3 варианта задач если кому надо пишите могу скинуть ну или вот моя почта пишите туда gostuhinav@mail.ru
|
Всего сообщений: 3 | Присоединился: ноябрь 2009 | Отправлено: 3 фев. 2010 14:06 | IP
|
|
Konung
Новичок
|
Всем привет! Прошу помочь решить две задачи по Ассемблеру (было три, одну сам уже сделал, с остальными маюсь). Задача адын: Дана матрица [4,4]. Найти среднеарифметическое элементов третьей строки. Результат вывести на экран. Задача вторая: Задан массив целых чисел: 200,300,15,1,12,5,27,14,30,4 Сформировать новый массив, в котором элементы расположены по возрастанию. Исходный массив и сформированный вывести на экран с соответствующим текстом. Третья написанная задача: Задан массив целых чисел из 10 элементов: 100,200,130,12,15,60,50,70,80,90 Найти разность между первым и последним элементом массива. Результат с сообщением вывести на экран. (сказали вроде правильно сделал) С первыми двумя запутался по самое не могу. Теперь туплю и пытаюсь из одной задачи подставить в другую...блин преподаватель посмотрел и ужаснулся. Знающий народ, помогите пожалуйста. Буду премного благодарен.
|
Всего сообщений: 1 | Присоединился: март 2010 | Отправлено: 11 марта 2010 21:38 | IP
|
|
Sevand
Новичок
|
люди помогите плиз, в ассамблере начинающий,можно сказать полный нубнемогу решить эти задачи заранее оч благодарен {y = |x-5|, если x > 0 {y = x(в квадрате)+4x-3, если x <=(меньше либо равно)0 x - должен быть в регистре C y - должен быть в регистре D а так же {y = (x-1)(в квадрате), если x > 1 {y = (x+1)(в квадрате), если x <=(меньше либо равно)1 x - должен быть в регистре C y - должен быть в регистре D
|
Всего сообщений: 1 | Присоединился: март 2010 | Отправлено: 18 марта 2010 19:51 | IP
|
|
Krestokril
Новичок
|
Здравствуйте. Можете помочь решить задачу к сессии. Заданны три числа X,Y,Z. Если вычислить L=X-Y*Z*B. В противном случае вычислить L=(X конъюнкция Y) дизъюнкция Z. помогите пожалуйста!!!! Заранее спасибо.))
|
Всего сообщений: 1 | Присоединился: март 2010 | Отправлено: 24 марта 2010 18:50 | IP
|
|
|