Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 170
∙ повысить рейтинг >>
Зенченко Константин Николаевич
Статус: Профессор
Рейтинг: 74
∙ повысить рейтинг >>
Airyashov
Статус: Студент
Рейтинг: 9
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1174
от 04.02.2009, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 325, Экспертов: 11
В номере:Вопросов: 3, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 159058: Программа выполняет следующие действия: - ввод массива целых положительных и отрицательных чисел. - вычисление суммы тех чисел из массива, которые одновременно нечетны и отрицательны; - вывод исходного массива чисел и полученного значен...


Вопрос № 159117: Здравствуйте Пишу программу на ассемблере - заполнение массива данными A = {ai} (i = 1..20) a[i] = (i/5 + i/3) +50 По идее, в результате должны выдаваться значения: 50 51 51 52 52 53 53 54 54 55 55 56 56 57 58 5...
Вопрос № 159149: Большое спасибо, ваши советы очень помогли. Осталась последняя проблема. Я дополнил программу, теперь она заполняет массив по схеме: A = {ai} (i = 1..20) ai = 3*i + i/3 0 < i < 11 ai = (i/5 + i/3) + 50 10 <...

Вопрос № 159.058
Программа выполняет следующие действия:
- ввод массива целых положительных и отрицательных чисел.
- вычисление суммы тех чисел из массива, которые одновременно нечетны и отрицательны;
- вывод исходного массива чисел и полученного значения суммы на экран терминала.
Отправлен: 29.01.2009, 00:10
Вопрос задал: Alex24 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, Alex24!
Вот посмотрите в приложении. Немного (совсем немного комментировал) - лучше спросите, что не понятно
Ввод каждого числа завершается ENTER
Если нужно изменить размерность массива, то ищите в конце и исправьте константу numbers_count

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
ICQ: 320096696
----
Ответ отправлен: 30.01.2009, 16:26

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 242554 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 159.117
    Здравствуйте

    Пишу программу на ассемблере - заполнение массива данными

    A = {ai} (i = 1..20)

    a[i] = (i/5 + i/3) +50

    По идее, в результате должны выдаваться значения:

    50 51 51 52 52 53 53 54 54 55 55 56 56 57 58 58 59 59 60 60

    Программа же выдает другие значения

    0 50 50 51 51 52 53 53 53 54 55 55 56 56 56 58 58 58 59 59 61

    Помогите, пожалуйста, разобраться.

    Откуда взялся 0, ведь я начал с i = 1, и почему остальные значения другие?

    Приложение:

    Отправлен: 29.01.2009, 19:22
    Вопрос задал: Койбаев Олег Артурович (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 3)

    Отвечает: Airyashov
    Здравствуйте, Койбаев Олег Артурович!
    массив нумеруется с 0
    mov si,1 ;индекс начального элемента в cx
    div это целочисленное деление
    Ответ отправил: Airyashov (статус: Студент)
    Ответ отправлен: 29.01.2009, 21:42

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 242501 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Койбаев Олег Артурович!
    Как верно заметил Airyashov, массив нумеруется с 0, а не с 1.
    Кроме того, Вы его заполняете с 1 элемента, а выводите с нулевого, вот этот непроинициализированный элемент равный 0,
    мы и видим. Это первое.
    Второе. "Другие значения" - это результат целочисленного деления с отбрасыванием остатка.
    Но...нужный результат можно достичь! Только для этого надо немного изменить формулу (этим мы уменьшим погрешность!)
    i/5 +i/3 = (8*i)/15 = (i<<3)/15 В последнем выражении умножение на 8 я заменил на сдвиг влево на 3 бита.
    Программа в приложении, реализующая эту формулу, выводит нужные числа...

    Приложение:

    ---------
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
    Украина, Кировоград
    ICQ: 234137952
    ----
    Ответ отправлен: 29.01.2009, 23:03

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 242507 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 159.149
    Большое спасибо, ваши советы очень помогли.

    Осталась последняя проблема. Я дополнил программу, теперь она заполняет массив по схеме:

    A = {ai} (i = 1..20)

    ai = 3*i + i/3 0 < i < 11

    ai = (i/5 + i/3) + 50 10 < i < 21

    Работает все вроде бы правильно.

    Теперь нужно в этом массиве найти все простые элементы. Нашел в интернете алгоритмы типа решето Эратосфена. Алгоритм вроде бы простой, но как его реализовать на Ассемблере и вставить в свою программу не знаю. Или может быть есть другие алгоритмы? Подскажите, пожалуйста.

    Приложение:

    Отправлен: 30.01.2009, 00:12
    Вопрос задал: Койбаев Олег Артурович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 13)

    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Койбаев Олег Артурович!
    А вот и решение.
    Простые числа ищутся по алгоритму Эратосфена.
    Сначала строится массив, в котором находятся все числа от 2 до максимального.
    Затем все составные заменяются на 0.
    Все элементы нашего массива ищутся в построенном массиве, если нашелся, значит - простое.
    В качестве бонуса, дополнительно реализовал формирование массива простых чисел по алгоритму Сундарама :)
    Описание в Википедии
    Вызов подпрограммы вместо решета Эратосфена закомментирован...
    Если не надо, то можно просто удалить...

    Приложение:

    ---------
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
    Украина, Кировоград
    ICQ: 234137952
    ----
    Ответ отправлен: 30.01.2009, 12:06

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 242541 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное