philosoff's.community.forum

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » philosoff's.community.forum » Учеба и ВМК. » Прак!


Прак!

Сообщений 1 страница 30 из 37

1

Пока вопрос. Насчёт отсчётов. Предлагаю приколоть тему в важные, дабы сей вопрос не мешали с ДЗ.

0

2

Ну что я могу сказать. Собственно, ждем выложенных готовых отчетов, чтобы мы посмотрели, как их надо писать.

0

3

Вот. Прогу сдал сёдня, отчёт Волканов проверит, вроде к понедельнику

0

4

Хотел спросить насчет графиков. Где можно про них почитать? И долго ли в это дело втыкать? Просто ни разу с этим не сталкивался, не знаю, стоит ли париться.

0

5

Открываешь паскаль, включаешь хэлп. Нагло сдираешь пример для initgraf, когда он заработает, добавляешь рисование того, что надо, рисуя коорд. сетку в цикле при помощи line () и графики lineto() все.

0

6

чорт! долбанная 205я ошибка. "переполнение плавающей запятой". не работает программка.  :(

0

7

долбанная 205я ошибка. "переполнение плавающей запятой"

Странно, ни разу с ней не столкнулся во время написания первой проги
А она почему то у всех выскакивает...

0

8

Случайно не при рисовании какой-нибудь гиперболы? Там функция в бесконечность уходит и происходит переполнение. Просто не рисуй там функцию.

0

9

Да нет, на root. До рисования графиков мне еще далеко...

0

10

Никто не может подсказать, как  во втором задании (вариант 1) реализовать фишку, чтобы при нажатии "лево", "право" ReadKey опознавала их не как K и М соответственно, а как управляющие символы (просто ASCII коды совпадают), это нужно для модификации слов? Очень не хочется использовать процедуру inkey модуля CRT1, так как наверняка есть намного более простое решение!

:niggabotan:  :idol:  :niggabotan:  :idol:  :niggabotan:

0

11

Надо использовать библиотеку CRT1 и какую-то функцию из нее вмето readkey (в методичке где-тов конце написано). Или использовать хитрую вставку, использующую прерывания.
Более простого решения нет т.к. клавиши стрелок кодируются как нажатие 4х кнопок сразу.

0

12

Очень не хочется использовать процедуру inkey модуля CRT1

Видимо всё-таки придётся делать так. Тогда другой вопрос: у кого-нибудь есть модуль CRT1, а то в Сети нашёл только crt1.0 для Linux?

Отредактировано DiMan (2006-03-07 21:22:58)

0

13

Эх, жаль не сохранилась моя прога из первого сема, там этот вопрос решался как то так:

var key: char;
...
key:=readkey;
if key=#0 then key:=readkey; {на самом деле клавишу надо всего 1 раз нажимать}
if key=#<что-то> then... {реакция на нажатие влево}
if key=#<что-то другое> then... {нажатие вправо}

кстати, кажется этот способ я позаимствовал у Artem'а, может у него сохранилась его прога...

0

14

c:=ReadKey;
if c=#0 then begin
c:=ReadKey;
if c=#72 then {вниз вроде}
if c=#80 then {вверх вроде - а мож и наоборот}
end

а лево-право я коды не помню

0

15

Во-первых, действительно наоборот, а во-вторых, код 72 также имеет буква "H", а код 80 - буква "P", так что если юзер захочет ввести эти буквы в слово, то получит результат как от нажатия кнопок "вверх" и "вниз". Просто в ваших прогах не надо было вводить буквы.

Хотя я придумал ещё один вариант решения проблемы: сделать два режима - ввода слов и редактирования.  Как вы считаете, нормально будет или лучше задействовать CRT1? :niggabotan:

0

16

2 DiMan. Стрелки имеют не один код, а несколько, они воспринимаются как последовательность символов. Поэтому нажатие на стрелку сначала зайдет в иф с условием кода 0, а потом пойдет разделение по стрелкам.
А нажатие на буквы не породит кода 0, так что все пройдет нормально. Вот только насколько я помню, стрелки генерят событие нажатия 4х кнопок, соответсвенно надо отлавливать 4 кнопки, а не 2.

0

17

не, в Паскале только два кода - нолик и свой код.

Кстати, по просьбам трудящихся! Вот мой отчёт!

0

18

*Посмотрел на кучу крякозябр, которые вывел опен офис.

А титульный лист делать или нет?

0

19

Чёрт...

Все срочно выходим в нирвану и линкуем её на меня!

У меня отсчёт не пишется....

Списать совесть не позволяет....

Посоветуйте что-нибудь по существу?

0

20

У меня отсчёт не пишется....

Что ты там отсчитываешь?  :D

0

21

Что ты там отсчитываешь?  :D

Мллин. Ну, если тебе, знатоку русского языка, интересно - дведцать третьи доли секунд, оставшиеся до сдачи отсчёта

Я не знаток, к сожалению. :no: Всего лишь борец за чистоту.

Отредактировано Philosoff (2006-03-16 21:04:23)

0

22

Функция очистки экрана на асме, на будущее..

Код:
clrscr proc
       mov cx,26
L1:    newline
       loop L1
       mov ah,2
       mov bh,0
       mov dx,0
       int 10h
       ret       
clrscr endp

0

23

Она с использованием Пильщиковских макросов  :blink:

0

24

Да она вообще кривая. Надо всего-то обнулить видеопамять и переместить курсор на начало. Т.е. в cx надо загнать размер экрана помноженный на 2 (там по два байта) а вместо newline писать ноль в видеопамять и увеличивать указательна еденичку.

0

25

УРРА! Я доделал вторую задачу! А вот по матану так ничего и не решил...

0

26

А как писать в видеопамять?
у меня самое короткое clrscr получилось так:

    mov ax,0600h
mov bh,07
mov cx,0000
mov dx,184Fh 
int 10h
mov ah,02
mov bh,00
mov dh,00
mov dl,00
int 10h 

Отредактировано Freak on a Leash (2006-03-22 00:34:20)

0

27

Помогите, пожалуйста, решить проблему!
Не могу запустить программу на Ассемблере: ввожу в Far "ma.bat prog1" (prog1.asm находится в директории MASM), на полсекунды появляется и сразу пропадаeт DOS-окошко. В появившемся lst-файле вижу:
 
0 Warning Errors
0 Severe  Errors

Вот, собственно, сама программа (выдаёт число нулевых элементов массива; решил сначала написать что-нибудь попроще перед тем, как писать третью зачётную программу):

include io.asm
S segment stack
dw 32 dup (?)
S ends
D segment
N equ 10
X dw N dup (?)
D ends
C segment
assume cs:C,ss:S,ds:D
Begin: mov ax,D
mov ds,ax
mov cx,N
i equ bx
mov i,0
L: inint x[i]
add i,2
Loop L
sub ax,ax
mov cx,N
mov bx,offset x
L1: cmp word ptr [bx],0
jne L2
inc ax
L2: add i,type X
Loop L1
outword ax
inint ax
finish
C ends
end Begin

Вроде всё по Бауле. Возможно, ошибка не в самой программе? Всё-таки я первый раз сел за Ассемблер.

Отредактировано DiMan (2006-04-04 21:59:12)

0

28

Просто нажав ctrl+F1 ctrl+F2 (может быть alt) закрой окна фара и посмотри, что не так.
А вообще учитесь полозоваться командной строкой. Я понимаю, что в виндах нет командной строки, а есть какая-то хрень под названием cmd.exe, но и она сойдет, за неимением bash.

0

29

дальше запускай exe-шник prog1.exe

0

30

Всем спасибо, я сам разобрался: забыл переписать конфиг-файл ma.bat под соответствующую директорию для MASM.

0


Вы здесь » philosoff's.community.forum » Учеба и ВМК. » Прак!