Вопросы по С/С++ (СИ)

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 21:07:09

Сообщение Sceam73 »

FreshMan писал(а):вопрос: а как это у автора получилось вывести текст в консольной строке ?
Обычно перед тем, как идут непосредственно уроки по с++, должен быть такой раздел как введение, софт который используеться, и тд, эти разделы сделаны не для того что б их тупо пропускать!
Тоесть источник, с которого вы пытаетесь начать изучать С++ уже расчитывает на то, что вы как минимум обладаете какой то базой! И я бы не рекомендовал начинать учиться в таких местах! Скачайте лучше книгу, их очень много, в большенстве пошагово описсано какой софт, и как использовать, и как делать ЕХЕ файлы, и тд и тп!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6296
Зарегистрирован: Пн ноя 22, 2010 00:57:15
Откуда: Ukraine

Сообщение FreshMan »

Sceam73 писал(а):Скачайте лучше книгу
например ?
Tell Me The Truth
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 21:07:09

Сообщение Sceam73 »

FreshMan писал(а):например ?
например я учился по
такой
Конечно староватая, мне выбирать не приходилось, у соседа на полке она валялась, вон и начал читать, для меня все показалось довольно таки понятно, единственный минус софт, о котором я упоминал выше, там приведен на 2001 год :))) (тоесть очень он уж древний на сегодняшний день) лучше его взять с других книг! Поищи, в интернете подобного материала предостаточно!
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

FreshMan писал(а):значит в консольной строке виндовс можна набирать команды Си и они будут обрабатываться ? :dont_know:
Кстати, так умеет любой интерпретатор. Бэйсик какой-нибудь, или Python например. Да полно их.

Или пока пониманий базовых основ информатики нет? Что такое компилируемые и интерпретируемые языки, например? Тогда советую с этого начать.
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 4
Зарегистрирован: Пт авг 31, 2012 19:03:10

Сообщение valexey »

ploop писал(а):
FreshMan писал(а):значит в консольной строке виндовс можна набирать команды Си и они будут обрабатываться ? :dont_know:
Кстати, так умеет любой интерпретатор. Бэйсик какой-нибудь, или Python например. Да полно их.

Или пока пониманий базовых основ информатики нет? Что такое компилируемые и интерпретируемые языки, например? Тогда советую с этого начать.
Деление языков на компилируемые и интерпретируемые сугубо условно, и, вообще говоря, не верно. Ну, например Си вполне интерпретируемый (см. например CINT ). А скажем php может быть компилируемым, равно как и basic(более того, vb.net таков и есть). Более того, наличие стадии компиляции не гарантирует отсутствие интерпретатора (см. java bytecode).

Делить ЯП можно по типизации в этих языках:
1) Статическая типизация
2) Динамическая типизация
В сучае статической типы проверяются на этапе компиляции, в случае динамической на этапе исполнения программы (замечу, что в языке высокого уровня со статической типизацией возможно соорудить динамические типы, а вот наоборот, в языке с динамической типизацией сделать статические типы не выйдет)

При этом любая из перечисленных типизаций может быть:
a) Слабой (weak) типизацией.
б) Сильной (строгой) типизацией.
В случае слабой типизации возможны неявные преобразования типов, в случае строго типизации - все преобразования типов явные (явно указываются программистом).

Также языки программирования можно делить по назначению:
1) Языки общего назначения.
2) Языки ориентированные на написание скриптов (скриптовые языки).
3) DSL (domain specific language).

Языки общего назначения годятся для всего подряд, но не всегда они удобны для этого самого всего подряд.
Скриптовые языки это языки ориентированые на написание сценариев (скриптов), то есть для автоматизации рутинных действий пользователя в некоторой оболочке, шеле (то есть например в консоли, в виндовозном gui и так далее). То есть все что в них пишется обычно пользователь может и ручками в, скажем, консоли сделать, только он задолбается.
DSL - это языки специального назначения (вообще говоря. скриптовые языки это частный случай DSL-языка), например SQL. Они часто даже не тьюрирг-полные. Умеют немного, но то что умеют, в той области для которой разрабатывались, они умеют отлично.

Теперь примеры:
Python: изначально разрабатывался как скриптовый язык (сколь я помню, как замена перлу который разрабатывался в свое время как дополнение к shell'у), но постепенно превратился в язык общего назначения. Типизация строгая динамическая.

basic: вообще говоря, он изначально язык общего назначения (убогий, но тем не менее). Вообще бейсиков МНОГО. Тот бейсик что был 20-30 лет назад и тот который сейчас (VB.NET) просто разные языки. Поэтому классифицировать эту кашу я затрудняюсь :-) (тем более что в VB.NET типизация вообще зависит от параметров компилятора, она настраиваема)

Си: Язык общего назначения. Типизация слабая статическая.
C++: Язык общего назначения. Типизация строгая статическая.
Java: Язык общего назначения. Типизация строгая статическая.

Надеюсь не утомил и окончательно не запутал :-)
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Если вы мне, то не стоит, можете заглянуть в профиль :) Если FreshMan'у - мне кажется рано еще. Терминов не поймёт.

А так да, в принципе всё правильно.
Реклама
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

ploop писал(а):Если вы мне, то не стоит, можете заглянуть в профиль :) Если FreshMan'у - мне кажется рано еще. Терминов не поймёт.

А так да, в принципе всё правильно.
Согласен. Либо это была лекция, рассчитанная на широкий круг (а мы просили?), либо демонстрация глубины собственных познаний. Но уж, действительно, никак не для FreshMan
Вспоминается окончание старого анекдота, когда папа, на вопрос дочурки, почему яблоко на срезе темнеет, ударился в объяснение физико-химических процессов и т.д. Окончательный вопрос дочурки был: "Папа, а с кем ты сейчас разговаривал?". Стараюсь постоянно помнить этот анекдот... :)
С уважением,
Виктор.
Родился
Сообщения: 6
Зарегистрирован: Пт мар 16, 2012 09:19:24

Сообщение BiNaRs »

Не знал куда написать, решил здесь более подходящая тема...
такой вопрос:
пишу первую программу на pic контроллер в mplab ide. Есть опрос кнопок, который находится в цикле while(1). при нажатии на кнопку, на LCD должна выезжать надпись (допустим HELLO) и оставаться на экране пока я не нажму другую кнопку...
так вот, у меня получается что при нажатии на кнопку надпись выезжает и исчезает, снова выезжает и исчезает и так бесконечно...
выезд строки выполнен вот так:

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

sprintf(lcd_buff, "H E L L O");
for(i=strlen(lcd_buff);i>=0;i--){
    ptr_ch = lcd_buff+i;
    lcd_gotoxy(0,0);
    lcd_puts(ptr_ch);
    DelayMs(10);
}
То есть получается в цикле while находится цикл for.. Как ее остановить после первого раза?
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Тут проблема не в языке, на котором пишите, а в алгоритме. И больше подходит для темы "мелкие вопросы по МК и ПЛИС". Ну да ладно.

Вы нажали кнопку. Текст выехал. Кнопка остаётся нажатой. Что по-вашему должно произойти дальше? Условие работает? Работает. Текст едет дальше. А вам нужно, чтобы условие не сработало, т.е. добавить еще одно условие, чтобы текст выезжал только в том случае, если он не выехал до этого. То есть вам надо где-то хранить состояние: сделано действие или нет.

Обычно для этого используются логические переменные, называемые "флагами". Перед выполнением действия проверяем флаг, если не стоит - выполняем. А после выполнения устанавливаем этот флаг. Тогда второй раз действие точно не выполнится, пока этот флаг никто не сбросит.
Родился
Сообщения: 6
Зарегистрирован: Пт мар 16, 2012 09:19:24

Сообщение BiNaRs »

Спасибо, буду пробовать...
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 21:07:09

Сообщение Sceam73 »

В тексте программы СИ соблюдаються простые матиматические законы? типа:
Х=6; Y=-6; Z=10
Z-X=4
Z-Y=16
Будить ли такое выполняться на СИ ?
Тоесть вычитание отрицательного числа , даст ли в итоге СЛОЖЕНИЕ ?
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Конечно даст. Что уж Вы думаете, что компиляторы совсем дураки создавали ? :))
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

добавлю, будет, если тип переменных со знаком задан, если тип указан без знака, неизвестно что у вас в результате получится.Либо просто компилятор или препроцессор скажет при сборке на несоответствие, либо промолчит и вы увидите несоответствие результата действительности :facepalm: :dont_know:
В поисках истины человек развивается.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Вт авг 28, 2012 21:07:09

Сообщение Sceam73 »

Вот у меня как раз было unsigned int, это получаеться что мне нужно просто инт писать, что б были и отрицательные числа ?
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

Sceam73 писал(а):Вот у меня как раз было unsigned int, это получаеться что мне нужно просто инт писать, что б были и отрицательные числа ?
signed int
С уважением,
Виктор.
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Аlex писал(а):Конечно даст. Что уж Вы думаете, что компиляторы совсем дураки создавали ? :))
Очень смелое заявление... :))
"Я не даю готовых решений, я заставляю думать!"(С)
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

HHIMERA писал(а):Очень смелое заявление... :))
А что, я не прав ? :))
Контактная информация:
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Sceam73 писал(а):В тексте программы СИ соблюдаються простые матиматические законы?
По большому счёту нет... или с оговорками...
За всем вам придётся следить самостоятельно... и за вводными данными, и за результатом...
"Я не даю готовых решений, я заставляю думать!"(С)
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

По большому счёту нет..
Ага, 2+2=5

Работа с отрицательными числами там поставлена нормально, как и любая целочисленная арифметика. Сложнее с всякими флоатами, но всё равно это нормально применяется, главное понимать, что и как.
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

По большому счёту нет...
Смелое заявление :))
Контактная информация:
Ответить

Вернуться в «Разные вопросы по МК»