Студентам с вопросами о лабораторных работах сюда

Тема в разделе "WASM.BEGINNERS", создана пользователем IceStudent, 11 ноя 2006.

  1. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    DANILA
    Фигею от такой постановки и от грамотности тоже. Не сразу понял, в честь какого товарища Задонного названо n, потом еще некоторое время ушло на то, чтобы понять, что означает "сумма своих чисел", помог "кривой" пример. Как же Вы в институт попали при таком уровне грамотности или это очередной диалект йазыка падонкаф?
     
  2. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    crypto
    IMHO думаю это какой-то из белорусских диалектов,
    только сейчас обратил внимание, что число 12 тоже оказывается простое! и равно оно как оказалось 1³+2³=9
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Mikl__
    аффтар не совсем уверен, что
    .
     
  4. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    DANILA
    Код (Text):
    1.  // максимальное n, сумма кубов разрядов, временная, остаток.
    2. long n = 1000, sum, tmp, mod;
    3. while ( n ) {
    4.   s = 0;
    5.  
    6.   // проверка на простое
    7.   tmp = 2;
    8.   while ( tmp++ < n )
    9.     if ( n % tmp ) break;
    10.   if ( tmp < n ) continue;
    11.  
    12.   // подсчет суммы кубов разрядов
    13.   tmp = n;
    14.   while (tmp) {
    15.     mod = tmp % 10;
    16.     tmp /= 10;
    17.     s += sqr( mod ) * mod;
    18.   }
    19.  
    20.   if ( s == n ) printf( "%d", n );
    21.  
    22.   --n;
    23. }
    Просто, но должно быть понятно. Желающие могут перенести на асм, "а так лень:)" Mikl__ (c)
     
  5. FireFox

    FireFox New Member

    Публикаций:
    0
    Регистрация:
    9 май 2008
    Сообщения:
    19
    Насчет моей задачи с динамиком...Может, кто-нибудь поможет?
     
  6. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    FireFox
    Найди отличие:
    Код (Text):
    1.         in         al,61h
    2.         and        al,11111100b         ; обнулить младшие два бита
    3.         out        61h,al               ; теперь динамик выключен
    Код (Text):
    1.     and al, 11111100b ;очистить биты 0 и 1
    2.     out 61h, al ;передать на динамик
    3.  
    4.     or al, 00000011b ;установить бит 1
    5.     out 61h, al ;передать на динамик
     
  7. FireFox

    FireFox New Member

    Публикаций:
    0
    Регистрация:
    9 май 2008
    Сообщения:
    19
    Xerx, второе работает, а первое - нет. :) Почему - не знаю. Мне бы рабочий пример, а не наводящие вопросы. Поезг ничего не дал.
     
  8. DANILA

    DANILA New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    4
    блин перевидите на асм
     
  9. t00x

    t00x New Member

    Публикаций:
    0
    Регистрация:
    15 фев 2007
    Сообщения:
    1.921
    неа )
    DANILA
    как минимум:
    Код (Text):
    1. ;// максимальное n, сумма кубов разрядов, временная, остаток.
    2. ;long n = 1000, sum, tmp, mod;
    3. mov ecx, 1000
    4. ;while ( n ) {
    5. @loop:
    6. ...
    7. ;  --n;
    8. loop @loop
    9. ;}
     
  10. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    t00x
    Код (Text):
    1. mov ecx, 1000
    2. @loop:
    3.  
    4. dec ecx
    5. jnz @loop
    так быстрее :)
     
  11. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    DANILA
    за пиво дам на асме или может еще кому не лень здесь запостит:)
     
  12. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    KeSqueer
    Mikl__ обещал "портировать". Надо Даниле его попросить.
     
  13. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Предполагалось, хоть что-то DANILA сделает сам:dntknw: но от своих слов я не отказываюсь
    Xerx мелкие замечания:
    1) однозначные числа не могут быть равны кубу самих себя (исключение - число 1)
    2) простое число всегда нечетное (исключение число 2) поэтому n+=2 или от "Задонного" нечетного числа n-=2
    3) делим на уже вычисленные простые числа до тех пор пока temp<√n
    4)составляем список кубов 1³=1 2³=8 3³=27 4³=64 5³=125 6³=216 7³=343 8³=512 9³=729 и получаем дополнительные условия -- т.е. число содержащее цифру "5" не может быть меньше 125, число содержащее цифру "6" не может быть меньше 216 и т.д.
    5) двузначные числа отметаем сразу и начинаем со 101 до "Задонного" числа искать числа методом Xerx 'a
    А теперь DANILA с учетом сказанных замечаний, напишет нам алгоритм на дельфи САМ:)
     
  14. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Я так понял - ответ от DANILA ждать бесполезно. В аттаче лежит две программки (сорц и ехе). Одна просто выводит на экран 250 первых простых чисел, вторая получает кубы из цифр, из которых состоят эти простые числа, сравнивает их и в случае успеха выводит на экран. Так вот из 5000 сформированных простых чисел, заданому условию соответствует только число 1. Хотел бы я в глаза посмотреть тому, кто дает подобные задачи пэтэушникам (если судить по грамотности)
     
  15. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Mikl__
    Судя по всему таких простых вообще нет (1 - не является простым числом). Если число знаков в числе m >= 5, то максимальное значение суммы m кубов чисел от 1 до 9 будет 729*m, что значительно меньше того числа, которое должно получиться (m-значное).
    ЗЫ
    Может просто найти любые числа до "Задонного" n, удовлетворяющие условию... ?
     
  16. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Переделал программу, чтобы выводила числа у которых сумма кубов, состоящих из них цифр была равна самому числу: таких чисел пять: 1, 153, 370. 371, 407 далее числа превышают барьер указанный crypto в 729*m (сорц и ехе в аттаче)
     
  17. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
  18. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Mikl__
    Это все понятно. Но я же не просто так написал "просто, но должно быть понятно". Это минимум кода - хот с ним пусть разберется. А насчет оптимизации - это нужно, но ведь речи не шло при формулировке задания.
     
  19. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Mikl__
    Правильно я понял, что в интервале от 408 до 9999 больше таких чисел нет?
    ЗЫ
    Мне вот эта парочка понравилась:
    370, 371
     
  20. Arwen

    Arwen New Member

    Публикаций:
    0
    Регистрация:
    16 май 2008
    Сообщения:
    10
    Ребята, помогите, пожалуйста, с лабой..я в асме совсем не разбираюсь, а лабу надо сдавать :dntknw:
    Программа win9.exe выводит в стандартное окно число в 16-ричном виде при нажатии на соответствующую кнопку. Изменить win9.exe так, чтобы изменился регистр с числом с dl на dh. Требуется открыть написаное преподом приложение в hiew насколько я поняла в режиме decode. Я открыла, но не могу понять где там кусок кода который делает основную работу :dntknw: да и задание вообще непонятное..там надо ввести 3 символа но программа ругается "it's not correct!". Подскажите, пожалуйста, где и что надо изменить.
    И выпишите сюда, пожалуйста, какой по номеру байт в файле пришлось поменять, а также старое его значение в шестнадцатеричном виде и новое.
    программка воть http://ifolder.ru/6587415