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

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

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

Сообщение Sceam73 »

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

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

Сообщение FreshMan »

Sceam73 писал(а):Скачайте лучше книгу

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

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

Сообщение Sceam73 »

FreshMan писал(а):например ?

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

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

Сообщение ploop »

FreshMan писал(а):значит в консольной строке виндовс можна набирать команды Си и они будут обрабатываться ? :dont_know:

Кстати, так умеет любой интерпретатор. Бэйсик какой-нибудь, или Python например. Да полно их.

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

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

Сообщение 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: Язык общего назначения. Типизация строгая статическая.

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

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

Сообщение ploop »

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

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

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

Сообщение ut1wpr »

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

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

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

Сообщение 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.. Как ее остановить после первого раза?
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

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

Сообщение ploop »

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

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

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

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

Сообщение BiNaRs »

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

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

Сообщение Sceam73 »

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

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

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

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

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

Сообщение vitalik_1984 »

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

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

Сообщение Sceam73 »

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

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

Сообщение ut1wpr »

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

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

Сообщение HHIMERA »

Аlex писал(а):Конечно даст. Что уж Вы думаете, что компиляторы совсем дураки создавали ? :))

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

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

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

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

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

Сообщение HHIMERA »

Sceam73 писал(а):В тексте программы СИ соблюдаються простые матиматические законы?

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

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

Сообщение ploop »

По большому счёту нет..

Ага, 2+2=5

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

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

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

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

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