Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2015, 15:09   #1
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию Помогите написать программу для нахождения наибольшего из отрицательных чисел

Написать программу на языке Ассемблера, которая позволяет ввести с клавиатуры последовательность их N целых чисел, найти наибольший из отрицательных элементов и вывести его на экран.Помоги не могу разобраться как это сделать..а сдать программу надо..
Екатерина57 вне форума Ответить с цитированием
Старый 19.12.2015, 16:15   #2
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Екатерина57, что из этого Вы можете сделать:

1. Ввести с клавиатуры и сохранить;
2. Найти наибольший элемент;
3. Вывести на экран...
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 19.12.2015, 16:56   #3
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию

а вот как это будет выглядеть на ассемблере?я просто плохо знаю этот язык
Екатерина57 вне форума Ответить с цитированием
Старый 19.12.2015, 17:07   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

...просто там не всё так легко, как может показаться на первый взгляд.
Ввод с клавиатуры (символы) нужно перевести в цифры. Дальше найти среди них отрицательные и выделить наибольший из отрицательных. Потом перевести эту цифру опять в символ и вывести на экран... Вы готовы к этому?! Как будете объяснять преподу всё/это?
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 19.12.2015, 17:24   #5
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию

Те люди,которые уже сдавали работу,сказали,что достаточно показать код..я могу написать эту прогу на паскале,но как на ассемблере я просто не представляю..
Екатерина57 вне форума Ответить с цитированием
Старый 19.12.2015, 18:01   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Могу предложить такой вариант:
Код:
format PE console
entry start

include 'D:\fasmw16726\INCLUDE\win32a.inc'

section '.data' data readable writeable
scanfformat db '%d',0
message db 'Кол-во: %i',0
n dw ?
i dw ?
r db 'Russian',0
section '.code' code readable executable

start:
 cinvoke setlocale,1,r
 ;Вводим кол-во чисел
 cinvoke scanf,scanfformat,n
 xor eax,eax
 xor ecx,ecx
 ;Начинаем цикл по вводу массива
 mov cx,[n]
 for:
  push eax
  push ecx
   ;Вводим очередное число
   cinvoke scanf,scanfformat,i
  pop ecx
  pop eax
  ;Проверяем не меньше ли оно чем 0
  cmp [i],0
   jg nextfor ;Если меньше - в конец цикла
  ;И не самое ли оно максимальное
  cmp ax,[i]
   jl nextfor
  ;Если да - запоминаем
  xchg ax, [i]
 nextfor:
 loop for
  cinvoke printf,message,eax
  cinvoke getch
; INVOKE аналогичный макрос для STDCALL-функций.
  invoke ExitProcess,0
section '.idata' import data readable
library kernel,'kernel32.dll',\
	msvcrt,'msvcrt.dll'

import kernel,\
       ExitProcess,'ExitProcess'

import msvcrt,\
       setlocale,'setlocale',\
       printf,'printf',\
       scanf,'scanf',\
       getch,'_getch'
Потолочный скетч. Чутка барахлит вывод, но увы не знаю как правильно отрицательные выводить на экран. Если кто поправит - с меня плюсик.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2015, 19:31   #7
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
По умолчанию

Спасибо огромное
Екатерина57 вне форума Ответить с цитированием
Старый 19.12.2015, 19:42   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Пожалуйста.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2015, 11:48   #9
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Екатерина57 Посмотреть сообщение
..найти наибольший из отрицательных элементов
..а какое из двух/этих чисел является наибольшим: -100 или -1 ?!
По школьному курсу, вроде -1 больше...
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 21.12.2015, 20:22   #10
Екатерина57
Пользователь
 
Регистрация: 11.10.2015
Сообщений: 63
Печаль

Как эту программу изменить на формат exe??
Екатерина57 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить программу для нахождения наибольшего общего и наименьшего общего кратного двух натуральных чисел НОК(A,B)=A*B/НОД(A,B) sisaw Помощь студентам 0 06.05.2014 20:36
Дан массив из n целых чисел. Нужно написать программу определяющую каких элементов больше положительных или отрицательных koshakk Паскаль, Turbo Pascal, PascalABC.NET 1 17.12.2013 20:55
Написать функцию для нахождения наибольшего числа(Dev C++) scafandr Помощь студентам 6 22.05.2013 13:01
вставить процедуру нахождения наибольшего из двух чисел в программу kristja)) Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 17.12.2010 12:18
Помогите написать программу нахождения углов треугольника на Delphi _Andruha_ Помощь студентам 3 10.11.2010 09:17