программа оболочка для win и программирование

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

Дизассемблированный код:
Размер кода явно больше чем на FastAVR, это вы сами подтверждаете 4.8% памяти ATmega8.
Как видно, ассемблер существенно эффективнее высокоуровневых языков. Поэтому его целесообразно использовать для небольших проектов, где выигрыш в объеме кода существенен.
С этим глупо спорить, но мы обсуждаем именно высокоуровневые языки, а не асм.
Пока что AVR-GCC проигрывает FastAVR'у в размере кода.
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: программа оболочка для win и программирование

Сообщение YS »

4.8% памяти ATmega8.
Пардон, опечатка вышла (уже поправил). Я писал и компилировал все под ATmega48. У ATmega48 в два раза меньше памяти, и программа у меня немного сложнее по логике (я уже говорил, больше ТВП и код инициализации). Так что расхождение спорно... Ладно, Бог с ним. Я готов признать, что компиляторы С и Бейсика генерируют код, примерно одинаковый по размеру (с учетом вышесказанного).
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

YS писал(а):ИМХО хватит плодить быдлокодеров - не стоит замусоривать мозг Basic'ом. Лучше сразу изучать С для ПК и МК и ассемблер для МК - без знания специфического ассемблера невозможно достаточно хорошо изучить архитектуру МК и писать эффективные программы (и вообще понимать, что к чему), а про реализацию USB (и четких временных интервалов вообще) на бейсике можно просто забыть.
Т.е. хотите сказать, что бейсик не стоит даже внимания? Дело в том, что самостоятельное изучение С взорвёт мне мозг. Считаю, что для меня это сложно, так как нет рядом никого, кто мог бы на пальцах разъяснить основы.

Думаю, что С и другие языки имеют гораздо больше возможностей по сравнению с бейсиком, но без учителя самостоятельно я их выучить не сумею. Зато сейчас читаю 20-и страничный учебник по PureBasic-у и что-то начинаю понимать (или так только кажется). Может, когда пойму основы будет и проще С или Ассемблер освоить, но пока буду "быдлокодером".
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

Кстати, почему не пишутся буквы äüõö?
кириллические шрифты пишутся без проблем
Реклама
Эиком - электронные компоненты и радиодетали
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

Думаю, что С и другие языки имеют гораздо больше возможностей по сравнению с бейсиком
С++ и ассемблер конечно помощнее, но в тоже время, намного сложнее!
Ассемблер сам по себе не очень сложный, сложно на нём кодить большие проги.
Для создания прог, прикладного типа (оконные проги, игры), хватит и бейсика, но для создания системных прог (уровень ядра ОС, драйверы), нужно использовать Си или асм.
Может, когда пойму основы будет и проще С или Ассемблер освоить, но пока буду "быдлокодером".
Все начинающие программисты, в той или иной являются "быдлокодерами" не зависимо от языка программирования!
Это проходит со временем, при появляении опыта.
Например, я пишу проги в основном на бейсике, но в тоже время не являюсь "быдлокодером", т. к. чётко понимаю что делаю и как всё это работает.
Кстати, почему не пишутся буквы äüõö?
Где?
Реклама
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

PB_EXPERT писал(а):
Кстати, почему не пишутся буквы äüõö?
Где?
в окне программы.
пробовал менять шрифт, не получилось.
Хотя, на самом деле не сильно они мне и нужны :)
Реклама
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

Для этого нужно перевести редактор в режим юникода.

Изображение


В настройках проекта (меню, Компилятор --> Настройки компилятора) включить поддержку юникода.

Изображение
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: программа оболочка для win и программирование

Сообщение YS »

С++ и ассемблер конечно помощнее, но в тоже время, намного сложнее!
Дело в том, что самостоятельное изучение С взорвёт мне мозг.
Все это неправда. Синтаксис С гораздо проще синтаксиса Бейсика и Паскаля. Я сам когда-то был ярым фанатом Паскаля, но когда познакомился с C, сразу перешел на него. Однако, мы сравниваем с Бейсиком. Итак:

Объявление переменных.

Бейсик: Dim x As Integer
C: int x;

Что проще?

Условный оператор:

Бейсик:

If <условие> Then
<код истинного условия>
Else
<код ложного условия>
End If

C:

if (<условие>)
{
<код истинного условия>
}
else
{
<код ложного условия>
}

Циклы:

Бейсик:

Do Until <условие>
<код>
Loop

С:

do
{
<код>
}
while (!<условие>);

Бейсик:

Do While <условие>
<код>
Loop

С:

while (<условие>)
{
<код>
}

Бейсик:

For <переменная>=<консатнта> To <константа> Step <число, которое прибавляется к переменной на каждом шаге цикла>

<код>

Next <переменная>

С:

for (<переменная>=<константа>; <условие>; <код, выполняющийся на каждом шаге>)
{
<код>
}

Здесь надо отметить особое преимущество С: в цикле for на С мы можем не только просто инкрементировать переменную на каждом шаге, но и вообще изменять ее КАК УГОДНО, хоть по синусу. Это определяется кодом, выполняющимся на каждом шаге.

Описание подпрограмм:

Бейсик:

Процедура:

Sub <имя подпрограммы> [(<параметры>)]
<код>
End Sub

Функция:

Function <имя функции> [(<аргументы>)] [As <Тип>]

<код>

<имя_функции> = <выражение>

End Function

С:

Процедура:

void <имя процедуры>([<параметры>])
{
<код>
}

Функция:

<тип> <имя функции>([<параметры>])
{
<код>
return <выражение>
}

Как видно, синтаксис С гораздо легче и эффективнее. И вместе с тем он дает дополнительные возможности (см. хотя бы пример с циклом for). Тут еще есть сторонники Бейсика? :)))
Разница между теорией и практикой на практике гораздо больше, чем в теории.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

Все это неправда. Синтаксис С гораздо проще синтаксиса Бейсика и Паскаля. Я сам когда-то был ярым фанатом Паскаля, но когда познакомился с C, сразу перешел на него. Однако, мы сравниваем с Бейсиком.
Один из недостатков синтаксиса Си заключается в том, что многие операции завершаются фигурной скобкой и если писать по быдлокодёрски, без отступов и лепить всё в кучу, то потом сам не разберёшся что к чему!
Объявление переменных.

Бейсик: Dim x As Integer
C: int x;
Нет, вот бейсик

Код: Выделить всё

x.l     ; Переменная типа Long
y.b     ; Переменная типа Byte
Ну и что проще? :)))
Бейсик:

For <переменная>=<консатнта> To <константа> Step <число, которое прибавляется к переменной на каждом шаге цикла>

<код>

Next <переменная>
Step <число, которое прибавляется к переменной на каждом шаге цикла> и <переменная> после Next это не обязательные параметры и их можно не использовать.
Здесь надо отметить особое преимущество С: в цикле for на С мы можем не только просто инкрементировать переменную на каждом шаге, но и вообще изменять ее КАК УГОДНО, хоть по синусу. Это определяется кодом, выполняющимся на каждом шаге.
Думаете что на бейсике это нельзя сделать?

Код: Выделить всё

For i=0 To 10
     If i=4         ; Если в переменной i чило 4
         i=8        ; записывеем в неё число 8.
     EndIf
Next
Обратите внимание на то, что завершающие операторы имеют разные имена, а не как в Си, тупо фигурная скобка }.

вместе с тем он дает дополнительные возможности (см. хотя бы пример с циклом for).
Где эти возможности?
А for не всчёт, т. к. вы ошиблись посчитав что в бейсике нельзя присвоить произвольное значение переменной-счётчику. :)
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: программа оболочка для win и программирование

Сообщение YS »

Хотел бы обратиться к топикстартеру - пока мы с ув. PB_EXPERT спорим, Вы пишите, на чем Вам удобно. На самом деле язык не так важен, как мозг... :)

#pragma _holywar :)))
если писать по быдлокодёрски, без отступов и лепить всё в кучу, то потом сам не разберёшся что к чему!
Собственно, это вынуждает использовать отступы, прививая хороший стиль программирования.
Обратите внимание на то, что завершающие операторы имеют разные имена
Давно уже обратил. А еще я обратил внимание на то, что фигурная скобка быстрее в написании и удобочитаемее (меньше загромождает текст программы, позволяя сконцентрироваться на именах функций и операторов). Поэтому и перешел с Паскаля на С. И, кстати, если команда всего одна, то фигурные скобки можно вообще не ставить. Т.е. будет

if (<условие>)
<команда>
Где эти возможности?
А for не всчёт, т. к. вы ошиблись посчитав что в бейсике нельзя присвоить произвольное значение переменной-счётчику.
Я не имел в виду присвоение значения переменной-счетчику - естесственно, это можно сделать. А вот как Вы опишете на Бейсике такие конструкции:

for (;;);

или

float i;

for (i=10; i>0; i=i-i*log(i))
{
...
}

Заметьте, последняя инструкция в for выполняется на каждом шаге, без всяких инекрементов по умолчанию. Т.е. это мы определяем, что делать с переменной на каждом шаге цикла, и делать ли вообще. В Вашем же примере все равно по-умолчанию будет производмться инкремент. :wink:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

А еще я обратил внимание на то, что фигурная скобка быстрее в написании и удобочитаемее
Ну да быстрее, но насчёт удобочитаемости не совсем согласен. Чтобы понять что она завершает, нужно найти начальную команду.
Я не имел в виду присвоение значения переменной-счетчику - естесственно, это можно сделать. А вот как Вы опишете на Бейсике такие конструкции:
Но ведь цикл можно организовать не только с помощью FOR'а. Есть и другие операторы.
Я бы сделал так

Код: Выделить всё

i.f=10  ; Переменая пипа Float
Repeat 
   i-i*Log(i)
Until i>0
for (;;);
Это безконечный цикл?
Тогда можно сделать так

Код: Выделить всё

Repeat

ForEver
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

YS писал(а):Хотел бы обратиться к топикстартеру - пока мы с ув. PB_EXPERT спорим, Вы пишите, на чем Вам удобно. На самом деле язык не так важен, как мозг...

#pragma _holywar
Мне очень интересно наблюдать за вашим спором :) Хоть я и ещё мало, что понимаю, но зато, теперь понимаю, в чём же заключается отличие разных языков программирования. Если удастся освоить бейсик и решу дальше заниматься программированием (для себя, для своих скромных нужд), то следующий язык программирования, который решу выучить, будет С или ассемблер (т.к. МК программировать нужнее мне, чем оболочки) и, возможно, к Вам обращусь за помощью с советом порекомендовать какой-нибудь учебник.
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

PB_EXPERT писал(а):Для этого нужно перевести редактор в режим юникода.

Изображение


В настройках проекта (меню, Компилятор --> Настройки компилятора) включить поддержку юникода.

Изображение
Помогло, спасибо!
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

PB_EXPERT

А существует ли портированая версия этой программы? Одну в интернете нашёл, но что-то вылетает постоянно.

Дело в том, что на работе запрещено устанавливать нелицензионные программы :(
И ещё, когда сделаю программу в Visual Designer и выбираю в ней PureBasic editor, то выскакивает куча окон с ошибкой о невозможности создать код. :(
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

memento писал(а):PB_EXPERT

А существует ли портированая версия этой программы? Одну в интернете нашёл, но что-то вылетает постоянно.
Все версии являются портабельными и без проблем работают с флешки.
Для этого, нужно установить PureBasic как обычно, а затем скопировать папку с установленой программой на флешку. Для перевода среды в портабельный режим, её следует запускать с ключом /PORTABLE
Это можно делать с помощью BATника или небольшой программки

Код: Выделить всё

CurrentDir.s = GetPathPart(ProgramFilename()) ; Папка в которой запущена прога.
RunProgram(CurrentDir+"PureBasic.exe", "/PORTABLE", CurrentDir)
Программу нужно скомпилировать и поместить на флешку в папку с PureBasic.

Другой выход из ситуации - использовать бесплатную демо версию http://purebasic.com/download.php
memento писал(а):И ещё, когда сделаю программу в Visual Designer и выбираю в ней PureBasic editor, то выскакивает куча окон с ошибкой о невозможности создать код. :(
Что за ошибки?
Вложения
PureBasic_Portable.rar
(2.67 КБ) 305 скачиваний
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

PB_EXPERT писал(а):Что за ошибки?
Cannot load Source code!
C:\...\GeneratedMainFile.pb


Cannot load Source code!
C:\...\GeneratedIncludeFile.pb


Наверное что-то не так сделал. Хотя стараюсь делать, как по учебнику.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

Пишет что не удалось найти файлы.
В место точек путь к установленой программе, или реально точки?
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

PB_EXPERT писал(а):Пишет что не удалось найти файлы.
В место точек путь к установленой программе, или реально точки?
ой, да, забыл дописать, что это путь. C:\Program Files\PureBasic\
Но в той папке и нет этих файлов.

Создал два пустых файла, теперь эта ошибка не выскакивает. Зато программа открывает их, но в них уже записаны параметры окна программы.
PB_EXPERT
Потрогал лапой паяльник
Сообщения: 331
Зарегистрирован: Вс мар 30, 2008 14:31:51

Re: программа оболочка для win и программирование

Сообщение PB_EXPERT »

Возможно что было не достаточно прав для создания файлов.
memento
Родился
Сообщения: 19
Зарегистрирован: Вт май 18, 2010 11:07:19

Re: программа оболочка для win и программирование

Сообщение memento »

PB_EXPERT писал(а):Возможно что было не достаточно прав для создания файлов.
видимо да, я тоже так подумал. Вот такие вот проблемы с виндовс 7
Ответить

Вернуться в «Интеграция с ПК»