Помогите начинающему

  • Автор темы NetDigger
  • Дата начала
Статус
Закрыто для дальнейших ответов.
N

NetDigger

#1
Здравствуйте, уважаемые!
На работе начальство наседает, в универе преподы мучают - все как обычно:D
Не могли бы Вы помочь написать программки ( а может у кого ссылки или готовые программы есть). Среда разработки - обычный ТАСМ.
1) Организовать ввод чисел с клавиатуры и вывод их на экран после нажатия Ентера (числа дабл вордовского типа - однако можно и увеличить разрядность).
2) Организация работы с массивами - вводим небольшой массив из dWord'ов (15 элементов к примеру). Нажимаем Ентер - выдают сколько чисел в массиве всего, сколько четных, можно упорядочить (реализовать с помощью процедур).
3) Вычисление среднего арифметического (видимо можно реализовать на предыдыщей задаче - для чисел массива).
4) Организация оператора выбора (аналог case), т.е. на экране менюшка с цифрами (1/ Ввод чисел с клавиатуры; 2/ Работа с массивом; 3) Среднее арифметическое массива; 4) ЕХИТ) и надпись типа: "Where do you want to go today?" - дальше процедурно выбор

Все задачи взаимосвязанны - по нарастанию и предыдущую можно приспособить для решения следующей. Буду благодарен за любую помощь

Спасибо. С уважением
 

admin

Well-known member
08.08.2003
2 754
0
#2
NetDigger
такие просьбы сложно выполнять, т.к. они смахивают на попрошайничество.
кусок кода дать можно, направить можно, но делать работу бесплатно - несерьезно.
 
L

logosman

#3
Честно говоря детские задачи. У нас такие в университете на 2 курсе решали!!!
 
G

Guest

#4
logosman
так помог бы человеку. проято я в АСМЕ 0.
 
L

logosman

#7
Нашёл 5 минут свободного времени, кидаю перевод числа из проц.вида в DEC. На остальное уже времени нет:(
За оптимизацию не ругать:ph34r:, смотреть некогда...

.386
code segment use16
assume cs:code, ds:code
org 100h

main:
; Не DW, а DD, что тоже не плохо:)
mov eax, 123
call decimal

; Вывод чтсла на экран
mov ah,9
lea dx, [ASCFormat+1]
int 21h

ret

; Перевод числа в DEC(десятичную) систему без унарного '-'
; IN: EAX - чтсло
; OUT: [ASCFormat] - выход
;
; Универсальное преобразование:
; ASCFormat:
; Смещение:
; 0 - длина числа в байтах как в Pascal 
; 1..n - число
; n+1 - терминатор '$' для ДОС вывода
decimal proc
push eax

mov ebx,10

xor cx,cx
@rdec1:
xor edx,edx
div ebx

inc cl

cmp eax,0
jnz @rdec1

mov si,cx

mov [ASCFormat], cl
mov [ASCFormat+si+1],'$'

pop eax

@rdec2:
xor edx,edx
div ebx

add dl,'0'
mov [ASCFormat+si],dl

dec si

loop @rdec2

ret
endp

ASCFormat db ?
ends
end main
 
N

NetDigger

#8
Спасибо, уважаемые!
Бессонная ночка, море кофе, книжка по АСМу в электронном виде и все получилось... Несколько коряво, но работает именно так, как нужно. Особый гимор вызвал лишь вывод чисел: допустим в ах я получил число, как его вывести на экран (ну типа в ASCII). Пользовался процедурой деления на 10.... Гиморрррно. Может, кто получше способ(покороче) подскажет... И еще не совсем разобрался с типами данных, вводишь одно, изменяется другое - ужассс...Ето вам не циски настраивать:ph34r:
Вот пример:
.data
message1 db 'Введите строку : $'
message2 db 'Введенная строка: $'
buffer db 10
namelen db ?
bufcont db 10 dup(' '),'$'


.code
start :

mov ax, @data
mov ds, ax
mov es, ax
mov ax, 03h ; Чистим экран
int 10h

lea dx, message1 ; Выводим мессадж
mov ax, seg message1
mov ds, ax
mov ah, 09h
int 21h

lea dx, buffer; вводим число - ПОЧЕМУ ПОЛУЧАЕТСЯ ВВОД КОЛИЧЕСТВА БАЙТ, ОПИСАННЫХ В переменной buffer?
mov ah, 0Ah
int 21h

mov ah, 02h ; перемещаем курсор
mov dh, 1
mov dl, 0
int 10h

lea dx, message2
mov ax, seg message2
mov ds, ax
mov ah, 09h
int 21h

mov bh, 00 ; И почему уже здесь инфа изменилась....
mov bl, namelen
mov bufcont[bx], '$'

lea dx, bufcont
mov ah, 09h
int 21h

mov ah, 0Ah
int 21h
mov ax, 4C00h ; Выход
int 21h

end
 
G

Guest

#10
ШЕСТАЯ ВЕРСИЯ НОВОГО ЯЗЫКА ПРОГРАММИРОВАНИЯ: CompaSofT Xeno
ВЕРСИЯ: Dirihle (версия 6.00.2134 релиз 6.00)
РАЗМЕР 12600Кб
----------------------------------------------------
http://CompaSofT.flip.ru/xeno_dirihle.rar
http://CompaSofT.flip.ru/xeno_dirihle.jpg
----------------------------------------------------
Очень мощный математический язык программирования. Убедитель сами - он может то, что невозможно ни Basic'у, ни С/С++.
Перед Вами центр высокоуровневых технологий: CompaSofT Xeno Dirihle (версия 6). Xeno Dirihle выпущен 30.07.2004 в честь двухлетия в конце августа языка Xeno с начала его разработки.
Новая, «продвинутая» версия высокоуровневого языка программирования Xeno. Теперь Вы можете дописывать вручную внешние команды на языке C++ (при помощи Xeno ParaXedaza) и внешние плагины. Теперь в языке реализованы команды для работы с файлами, с сигнальными процессами, реестром и с сетью. Традиционно добавлены новые математические команды.
Xeno, как и раньше, не уступает в возможностях программирования языку C++. Как и раньше, имеется возможность модификации кода уже компилированной программы без использования виртуальной машины. Это разрешает удалять переменные, переименовывать процедуры, добавлять элементы класса, выполнять замену одного текста кода на другой, выполнять текст программы, записанный в переменную и т. д..
В пакете официального шестого релиза Xeno поставляется больше примеров программ (Xeno Carayo), новые инклуд – библиотеки, генератор кода, больше плагин; улучшен интерфейс Xeno IDE. Одним словом, Xeno Dirihle имеет всяческие улучшения.
При переустановке Xeno Dirihle, сохраняются все предпочтения – инсталлятор улучшен.
Xeno - победитель конкурсов по программированию и научных конференций, в том числе и конференций по математике.
Внимание! Надёжная работа, как и прежде, гарантирована только в операционных системах Windows серии 9x / ME.
MUST HAVE!!! :)
 
Статус
Закрыто для дальнейших ответов.