реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> QSORT
Oldring
сообщение Oct 23 2007, 15:24
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 23 2007, 19:20) *
*** Error 51 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 13(65,71): A numeric expression must


Посмотрите что у вас записано в 13 строке в позициях с 65 по 71. Внизу в редакторе вероятно написана текущая позиция курсора.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 23 2007, 15:43
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



все проверю,до завтра.

Цитата(Евгений Германович @ Oct 23 2007, 18:32) *
все проверю,до завтра.

{ qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 23 2007, 16:38
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 23 2007, 19:43) *
все проверю,до завтра.
{ qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13

А позиции-то? Мне их вручную по буквам считать? Лень как-то...

Цитата(Евгений Германович @ Oct 23 2007, 19:43) *
все проверю,до завтра.
{ qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13


Попробуйте поставить амперсанд перед compar. Я точно не уверен - но кажется получение адреса функции без амперсанда появилось в языке не сразу.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 23 2007, 18:24
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Oldring @ Oct 23 2007, 19:38) *
Я точно не уверен - но кажется получение адреса функции без амперсанда появилось в языке не сразу.

Имена массивов, структур и функций отродясь были адресами - не верите, спросите у Ритчи smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 23 2007, 19:16
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(zltigo @ Oct 23 2007, 22:24) *
Имена массивов, структур и функций отродясь были адресами - не верите, спросите у Ритчи smile.gif


Вы скорее всего правы - в тонкой синей книжечке, которой у меня под рукой уже давно нет wink.gif кажется именно так и было. Но амперсанд я бы все равно попробовал поставить и посмотреть на результат в такой сиуации. Мало ли какие ошибки допустили программисты компилятора?

Цитата(Евгений Германович @ Oct 23 2007, 19:43) *
все проверю,до завтра.
{ qsort( nums, sizeof(nums)/sizeof(int), sizeof(int), compar );это строка 13


Кстати, если нужно отсортировать пяток чисел - лучше вместо библиотечной qsort использовать самописный классический пузырек. Всего двойной вложенный цикл. И горадо быстрее будет работать, и код будет компактнее, что на 8-битках может быть существенным. В CRTL от MS для Win32 в qsort короткие последовательности длины меньше 8 сортируются пузырьком - так быстрее.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
dxp
сообщение Oct 24 2007, 03:35
Сообщение #36


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(zltigo @ Oct 24 2007, 01:24) *
Имена массивов, структур и функций отродясь были адресами - не верите, спросите у Ритчи smile.gif

Насчет структур не погорячились? smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 24 2007, 07:14
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(dxp @ Oct 24 2007, 06:35) *
Насчет структур не погорячились? smile.gif

Ага, самое смешное, что написал правильно а потом почему-то спустя полчаса добавил. Бзик какой-то sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 24 2007, 12:59
Сообщение #38


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Не ссорьтесь.Я до неприличия упростил программу.Вся проблема в самой функции QSORT
Программу для сортировки я уже написал ипользовав прототип QSORT,но есть жгучее желание добить.
#include "C:\Program Files\PICC\CHUDO\asdf\asd1.h"

#include <stdlib.h>
#define A_SIZE 5
int nums[A_SIZE] = { 2,3,1,5,4 };



//int compar( char *arg1, char *arg2 )

//{
// return( *(int *)arg1 - *(int *)arg2 );
//}
compar()
{
return 1;
}

void main()
{
qsort( nums, sizeof(nums)/sizeof(int), sizeof(int),compar);
}

Clean: Deleting intermediary and output files.
Clean: Deleted file "asd1.ERR".
Clean Warning: File "C:\Program Files\PICC\CHUDO\asdf\asd1.o" doesn't exist.
Clean: Done.
Executing: "C:\Program Files\PICC\Ccsc.exe" "asd1.c" +FH +DF +LN +T -A +M +Z +Y=9 +EA
*** Error 51 "C:\Program Files\PICC\CHUDO\asdf\asd1.c" Line 21(53,59): A numeric expression must appear here
1 Errors, 0 Warnings.
Halting build on first failure as requested.
BUILD FAILED: Wed Oct 24 18:50:54 2007


53.59 это слово компар.Мне кажется перед компар нужно воткнуть какоето извращение.
Мне в этом компиляторе при передаче параметров пришлось весьма нестандартно описывать указатели.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 24 2007, 16:11
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 24 2007, 16:59) *
Мне в этом компиляторе при передаче параметров пришлось весьма нестандартно описывать указатели.


Весьма возможно, хоть и странно в данном случае. Лучше всего посмотреть примеры от этого конкретного компилятора на предмет указателей на функции. У примитивных компиляторов для восьмибиток разработчики нередко экономят на универсальных указателях. Так как у них с адресными пространствами беда - их много разных и несовместимых, и поддержка универсальных указателей нередко недешева. И глюкава. При этом, конечно, получается неполная поддержка языка - но разработчиков часто это мало волнует.

P.S. Кстати, лучше не называйте этот алгоритм сортировки qsort. Этот алгоритм обычно называется shellsort - сортировка Шелла. qsort - это другой алгоритм, обычно применяемый в библиотеках для нормальных процессоров.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 25 2007, 13:11
Сообщение #40


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Поробую.Кстати почему вы считаете что это для 8 битовых,все типы я не смотрел ,но мой проц 16 разрядный.Ваш текст нормально работает,но не у меня beer.gif
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 25 2007, 13:20
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 25 2007, 17:11) *
Поробую.Кстати почему вы считаете что это для 8 битовых,все типы я не смотрел ,но мой проц 16 разрядный.Ваш текст нормально работает,но не у меня beer.gif


Почему-то показалось, что речь идет про 8-битник.
С 16-битниками обычно все лучше. Правда, кривые компиляторы для любых процессоров попадаюся.
Ваш проц не поддержан в gcc? Если поддержан - может оказаться проще сменить компилятор, чем разбираться с глюками этого smile.gif


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Oct 25 2007, 13:50
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Oldring @ Oct 25 2007, 16:20) *
Правда, кривые компиляторы для любых процессоров попадаюся.

В существовании настолько нерабочих не верится совсем, ну а поскольку свой пример вопрошающий не смог даже BCC откомпилить (кстати я в ответ на многочисленные упреки в неумении писать и нежелание "проверять" компилятором выложил компилирующийся пример и..... тишина..), то не верится уже на 99,9999(9)%.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 25 2007, 14:45
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Я ответил,но перепутал адресата,все работало и еще один вариант из предложенных но ...
Что такое gcc У меня проц микрочиповский пик18.Си которые для них это хайтекси и с18 но у меня их нет.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Oct 25 2007, 15:36
Сообщение #44


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Евгений Германович @ Oct 25 2007, 18:45) *
Я ответил,но перепутал адресата,все работало и еще один вариант из предложенных но ...
Что такое gcc У меня проц микрочиповский пик18.Си которые для них это хайтекси и с18 но у меня их нет.


Я вообще говоря с пиками дела никогда не имел и особо не хотел бы smile.gif Но мне казались что они когда-то были восьмибитниками. Они как-то поддержали 16-битный режим?

GCC:
http://gcc.gnu.org/
Но пики кажется не поддерживает - по крайней мере, я про это ничего не помню.

P.S. Вы меня обмануть пытаетесь!
http://ww1.microchip.com/downloads/en/Devi...c/DS-39630d.pdf
8-битник да еще и с Гарвардовской архитектурой! Нет ничего хуже для C компиляторов smile.gif


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Oct 26 2007, 13:39
Сообщение #45


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Цитата(Oldring @ Oct 25 2007, 18:36) *
Я вообще говоря с пиками дела никогда не имел и особо не хотел бы smile.gif Но мне казались что они когда-то были восьмибитниками. Они как-то поддержали 16-битный режим?

GCC:
http://gcc.gnu.org/
Но пики кажется не поддерживает - по крайней мере, я про это ничего не помню.

P.S. Вы меня обмануть пытаетесь!
http://ww1.microchip.com/downloads/en/Devi...c/DS-39630d.pdf
8-битник да еще и с Гарвардовской архитектурой! Нет ничего хуже для C компиляторов smile.gif

Нет не пытаюсь мин длина команды 12 бит, у 18 пиков 16 бит те шина данных 16бит.У 24 пиков не знаю.
А по данным конечно байт.Для си может и нет но прирост скорости по сравнению с нейманом впечатляет.За ссылку спасибо но аглицким не владею.

Сообщение отредактировал Евгений Германович - Oct 26 2007, 13:43
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 5th July 2025 - 22:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.78751 секунд с 7
ELECTRONIX ©2004-2016