![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.02.2014
Сообщений: 6
|
![]()
У меня такая проблема. У меня есть файл, в котором двумерный массив, необходимо вывести сначала размерность массива, потом сам двумерный массив, и вывести одномерный массив состоящий из отрицательных элементов. Как вывести размерность массива я не представляю! По поводу отрицательных элементов тоже особых мыслей нету, только если сравнить аски-код элементов, но как это реализовать тоже не понятно. Попытался вывести сам двумерный массив, но получается вывести только первый символ(
Код:
|
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,609
|
![]()
У беззнаковых целых чисел (signed) один бит занимает знак, так можно определить, отрицательное число или нет. Чтобы достать этот бит, нужно осуществить операции левого (SHL) и правого сдвига (SHR). Размер сдвига зависит от количества бит, занятых числом. В регистре ax - 16 битные числа.
Чтобы определить, что массив закончился, нужно, чтобы массив заканчивался определенным символом, например, строки терминируются нулем. Размерность массива определяется последовательным считыванием и увеличением на единицу значения счетчика.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,830
|
![]() Цитата:
2. есть представления без знакового бита |
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 15.02.2014
Сообщений: 6
|
![]()
Как сделать чтобы из файла считывались не только числа от -9 до 9, но и больше? Доступный промежуток если не ошибаюсь от -128 до 127
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 474
|
![]()
Ну а как бы ты мысленно преобразовывал строку "123" в число?
1. Инициализация: result:=0 2. result:=result*10 3. Берём очередной символ ("1"), преобразуем его в число x и добавляем к result: result:=result+x 4. Если строка не закончилась, то переходим к п.2. Вот пример для преобразования в двухбайтовое знаковое число. На входе паскалевская строка - т.е. ds:[di] указывает на длину строки, а ds:[di+1] уже на первый символ строки. Код:
-длину строки с числом, определяемую в основной программе, передавать в cx -переделать под байты Мне уже давно недоступен DOS и переделать сам я уже ничего не могу. Предвидя вопрос об преобразовании двухбайтового числа в строку (вывод на экран, но можно переделать и в буфер памяти) Код:
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 15.02.2014
Сообщений: 6
|
![]()
Может я что-то не так делаю, но у меня сбивается весь массив на экране... и вместо массива у меня получается строка, и результата никакого
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 474
|
![]()
Пока никто не подошел, попробуй пройтись отладчиком. Если tasm, то отладчик зовут td.exe (TurboDebugger). Он идёт в комплекте с tasm. В сети должны быть руководства по работе с ним. Тебе нужно лишь настроить окно сегмента данных, ходить по-шагам и смотреть регистры и в сегмете данных переменные, мысленно сравнивать полученные и ожидаемые результаты.
Заодно увидишь присутствие или отсутствие ошибок чтения/записи из/в файл. Ты не обрабатываешь - а зря. Пожалуй это лучшее, что могу предложить. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование в VBA: двумерный массив M на N, нужно создать новый одномерный массив | TheAnnihilyator | Помощь студентам | 1 | 04.06.2014 09:16 |
Java: Дан двумерный массив чисел А размером 6х6 и одномерный массив Х из 6-ти чисел. Заменить первые три строки массива A | vikysha55 | Помощь студентам | 1 | 16.04.2014 10:50 |
Двумерный массив развернуть в одномерный массив по строкам[QBASIC] | TrueStyle777 | Помощь студентам | 3 | 29.05.2013 21:56 |
Одномерный массив и Двумерный массив | eugene1437 | Общие вопросы C/C++ | 15 | 25.05.2011 19:17 |
Двумерный массив, одномерный массив. | Branbal | Помощь студентам | 14 | 18.11.2009 12:40 |