![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Alexander_Veselov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 28.4.2007 Где: Саратов Репутация: нет Всего: нет |
Пользователь вводит последовательность K целых чисел с клавиатуры.Если ни одно четное число не расположено после нечетного,то получить все отрицательные члены последовательности,в противном случае все положительные.Порядок следования чисел в обоих случаях заменить на обратный.
Помогите пожалуйста с алгоритмом!!!! Нужно потом написать програмку на Ассемблере. |
|||
|
||||
| MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
А есть ли какие ограничения(ну там по времени или ещё почему)?
Я вижу только самое простое: исходя из условия я понимаю что, для того чтобы выполнялось условие "ни одно четное число не расположено после нечетного" то чётные числа должны идти только в начале строки, и если встретился хоть один нечётный, то потом просто проверить если дальше встретиться хоть один нечётный, то вывести все положительные иначе все отрицательные. Для того чтобы проверить чётность можно использовать деление по модулю на два, и если результат единица, то тогда числе не чётное, если результат нуль то число чётное. Вот применрно вот так:
Ну вот вроде бы так, код может быть и не рабочий...но смысл примерно такой. А на асме уже сам напишешь. -------------------- MaXL |
|||
|
||||
| jhane |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 13.8.2006 Где: Иерусалим Репутация: нет Всего: нет |
Запомни знак 1-го числа. Если не четное (проверяеш последний бит, LSD) бежиш в цыкле до четного, или до конца ввода. Пригаеш в фунцию, которая проверит не конец ли это ввода (если да, и был скочек, то тоже напечатает), если конец, печатаеш отрицательные.
А в прошлом варианте, выведеш на печать несколько раз, если было несколько скачков. |
|||
|
||||
| MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
jhane, ну да, это легко исправить, просто добавить break после вызово этих двух функций.
-------------------- MaXL |
|||
|
||||
| Azar3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 15.12.2007 Репутация: нет Всего: нет |
Если кто работал с СМ 1800 помогите составить программу :
2. Задача для разработки алгоритма и программной реализации на Эмуляторе микро-ЭВМ СМ-1800 Пользуясь программой-монитором, занести в память ЭВМ, начиная с адреса 500016, следующий массив из 10 шестнадцатиразрядных констант: Адрес16 Константа16 5000 00 57 5002 61 FF 5004 10 35 5006 80 40 5008 0A C0 500A 00 00 500C FF FF 500E 12 9A 5010 02 07 5012 0A 8D Будем рассматривать их как целые двухбайтные числа со знаком в дополнительном коде (1+15). Причем в младшем адресе хранится младший байт числа, а в старшем адресе – старший байт числа (например, 5000 – 00, 5001 – 5716, т.е. это на самом деле положительное число +5700). Составить программу, отыскивающую отрицательные числа в исходном массиве (с адреса 500016) и формирующую новый массив модулей (целые положительные числа) этих чисел с адреса 700016. В ячейке 600016 выдавать количество найденных отрицательных чисел. Программу располагать в памяти с ячейки 400016. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |