Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Теория программирования > Алгоритмы
Перезагрузить страницу Язык без оператора сравнения
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 08.11.2006, 22:24

Цитата:
Ну да. Для целой арифметики - сгодится.
не понял - почему для целочисленной?
Цитата:
А sign внутри, думаешь, без сравнения обходится? А if?
По условиям задачи предпологается, что в компьютере не предусмотрена операция сравнения. Остальные арифм. действия реализованны аппаратно. если хочешь ввести програмно операцию сравнения, или что-то подобное, то надо сделать это явно. что и было предложено.


импортирован с progz.ru
Ответить с цитированием
  (#17 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 09.11.2006, 00:56

Цитата:
не понял - почему для целочисленной?
Потому что:
а) по условию - массив целых чисел
б) a=1e30, b=1e-30, что получим в итоге? min=0, max=1e30. А всё почему? Потому что машинная арифметика выполняется с конечной точностью.
Ответить с цитированием
  (#18 (permalink)) Старый
Among Among вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 09.11.2006, 07:00

Уф ребята сколько я интересного узнал...про мето пузырька у меня мысль мелькала - в поисках я это где то встречал ...спасибо пойду искать алгоритм

Прочитал..и вообще-то метод пузырька предполагает использование оператора сравнения в том числе для поиска минимального в массиве числа..так что здесь он скорее всего не пойдет
Ответить с цитированием
  (#19 (permalink)) Старый
SiMM SiMM вне форума
Member
 
Сообщений: 1,961
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.08.2003
По умолчанию 09.11.2006, 08:40

Цитата:
Прочитал..и вообще-то метод пузырька предполагает использование оператора сравнения в том числе для поиска минимального в массиве числа..так что здесь он скорее всего не пойдет
Ещё как подойдёт, как и любой другой алгоритм. Вы сути метода не поняли - а суть его проста как две копейки - переставить два числа местами так, чтобы большее имело больший индекс в массиве, а меньшее - меньший (или наоборот, если требуется сортировка по убыванию). А вышеописанный выкрутас как раз таки легко позволяет эту проблему решить.
Ответить с цитированием
  (#20 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 09.11.2006, 12:41

Цитата:
вообще-то метод пузырька предполагает использование оператора сравнения
Любая нормальная сортировка предполагает его использование
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
kelz kelz вне форума
Member
 
Сообщений: 511
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.05.2004
По умолчанию 09.11.2006, 13:36

Цитата:
Любая нормальная сортировка предполагает его использование
Равно как и "ненормальная" ибо сортировка невозможна без сравнения
Можно не использовать операторы ==, >=, <=, >, < и что там еще есть, но в любом случае, какие бы ухищрения мы не использовали, машинный код все равно БУДЕТ содержать по крайней мере одну инструкцию условного перехода. А это, как мы определили, тоже является сравнением
Ответить с цитированием
  (#22 (permalink)) Старый
zarazka zarazka вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 09.11.2006, 14:28

Господа что б понять как эту задачу решить надо полностью прочесть задание:
Цитата:
Дан язык программирования в котором отсутствует опрератор сравнения, написать программу на этом языке, которая отсортирует массив целых чисел a[k], где a[i] = n..m
в итоге имеем тапорное решение:
Код:
type
    int  = integer;
    bool = boolean;
const
    k =  10;
    n = -10;
    m =  10;
var
    a    : array[1..k] of int;
    i,j,e: int;
    sort : array[n..m] of int;
begin
    randomize;
    for i:=1 to k do
        a[i] := random(m-n+1)+n;

    for i:=1 to k do
        write(a[i], ' ');
    writeln;

    for i:=n to m do
        sort[i]:=0;
    for i:=1 to k do
        inc(sort[a[i]]);
    e:=1;
    for i:=n to m do
        for j:=1 to sort[i] do
        begin
            a[e] := i;
            inc(e);
        end;

    for i:=1 to k do
        write(a[i], ' ');
    writeln;

    readln;
end.
Ответить с цитированием
  (#23 (permalink)) Старый
kelz kelz вне форума
Member
 
Сообщений: 511
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.05.2004
По умолчанию 09.11.2006, 15:33

Цитата:
Дан язык программирования в котором отсутствует опрератор сравнения
Ну так пусть сначала дадут такой язык программирования. Отсутсвие данного оператора должно компенсироваться стандартными функциями (библиотеками языка), которые один пень используют операцию сравнения. Процессоры умеет только складывать и сравнивать значения регистров числа
Ответить с цитированием
  (#24 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 09.11.2006, 17:48

Цитата:
Дан язык программирования в котором отсутствует опрератор сравнения
И на кой он такой сдался? Реально, пользоваться ж никто не будет
Ответить с цитированием
Ads
  (#25 (permalink)) Старый
zarazka zarazka вне форума
Новичок
 
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.11.2006
По умолчанию 10.11.2006, 10:23

Цитата:
И на кой он такой сдался? Реально, пользоваться ж никто не будет
Есть задание, что делать, копать с утра и до следующего дуба...
А в адекватности преподавателя я засомневалась после фразы "Строка char*"...
Ответить с цитированием
  (#26 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 10.11.2006, 12:26

Так адекватность програмёров вообще под сомнением
Ответить с цитированием
  (#27 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 10.11.2006, 13:47

Цитата:
Ну так пусть сначала дадут такой язык программирования. Отсутсвие данного оператора должно компенсироваться стандартными функциями (библиотеками языка), которые один пень используют операцию сравнения. Процессоры умеет только складывать и сравнивать значения регистров числа
Мля.. ну не умеет комп из задачи сравнивать!!!
Зато умеет модуль числа брать (удаляя знаковый бит, или что-то в этом роде)
Решение для задачи приведено уже - с модулями..


импортирован с progz.ru
Ответить с цитированием
  (#28 (permalink)) Старый
kelz kelz вне форума
Member
 
Сообщений: 511
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.05.2004
По умолчанию 10.11.2006, 14:12

Цитата:
Мля.. ну не умеет комп из задачи сравнивать!!!
Зато умеет модуль числа брать (удаляя знаковый бит, или что-то в этом роде)
Решение для задачи приведено уже - с модулями..
Причем здесь модули? А разве операция взятия модуля не приводит к сравнению? Я про jz/ja/jb и им подобные.
Ответить с цитированием
  (#29 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 10.11.2006, 16:26

Цитата:
А разве операция взятия модуля не приводит к сравнению?
Обычная - приводит, но можно ж и через поразрядные операции реализовать
Ответить с цитированием
  (#30 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 10.11.2006, 18:54

Цитата:
Причем здесь модули? А разве операция взятия модуля не приводит к сравнению? Я про jz/ja/jb и им подобные.
Приводит, но на твоём компе, а мы говорим про гипотетический комп, на котором нет сравнения, а есть арифм. операции. - и нас вообще не волнует, как они исполнены, хоть через битовые операции, хоть как....


импортирован с progz.ru
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Утилита сравнения двух каталогов Matematic Офтопик 49 20.12.2013 11:38
Программа для сравнения двух BMP-файлов 5neverthesame94 Вопросы начинающих программистов 9 02.04.2012 22:29
Сортировка слиянием - количество операций сравнения Rizza Вопросы начинающих программистов 0 30.06.2011 14:22
Программа для сравнения фотографий одного человека валерьич Вопросы начинающих программистов 1 11.12.2010 07:34
Цены в моем городе. Зацените для сравнения? ELECTRONIC Процессоры 2 03.04.2010 17:17
Функция сравнения ячеек Nagv Visual Basic 4 09.06.2006 15:37
Операции сравнения и приведения типов imported_Ferz Вопросы начинающих программистов 17 29.03.2006 17:56
Алгоритм сравнения двух текстов :shock: rutman Visual Basic 0 28.10.2004 14:41
Скриптовый язык vs Язык программирования relonar Мысли вслух 4 24.09.2004 02:14
По умолчанию язык ввода стоит английский, то в паскале язык не переключается imported_Liliya Pascal 17 16.01.2004 03:36
Операция сравнения в классе AnsiString Templar C++ Builder 5 18.01.2003 17:08
Команда сравнения в INTEL 8085 ortho Assembler 5 18.06.2002 18:08



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов