Доброго времени суток!Так классно объясняете! Пытаюсь освоить С со знанием делфинского, много чего непонятно по синтаксису было с функциями. В книжках муть какая-то если честно. У Вас всё по полочкам! Спасибо Вам огромное!
Читаю книгу "Язык программирования С Керниган, Ритчи" и там в примерах функций, описание аргументов функции происходит за круглыми скобками и перед фигурным, типа так int sum(x, y) int x, y; { return x + y; } в интернете таких примеров не находил, судя по тому что книга издана в 1978 году предполагаю что это устаревший вид записи. Все же хотелось услышать ваше мнение по этому поводу. Спасибо
Narod, скажите пожалуйста ,а можете вы показать урок написания программы как наглядно вывести в окне график функции например y=sin(x) или другой, или хотя бы для начала просто линию по точкам, вот это был бы класс! а так все только и могут показать хиллоу ворлд! )))))) спасибо, если сможете.
Спасибо! Да показать-то я может и покажу, но мы пока ещё не подошли к графическому отображению, да и, мало того, ещё не решили, какую графическую библиотеку выбрать. Я склоняюсь к GTK и QT, можно также использовать и Windows API, но мы тогда к данному OS привяжемся, равно как GTK нас привяжет к Linux. QT более мультиплатформенна, но для новичков, как я считаю, тяжелая. Мы к ней обязательно подойдём, причём лучше всего по моим наблюдением она поддерживается именно в Linux, поэтому предлагаю начать с GTK и затем плавно перейти к QT. Также Linux был выбран из соображения большей его адаптированности к разработке приложений, а также впоследствии планируется работа с LInux Yocto - системой сборки для встроенных систем, поэтому, думаю, что несколько уроков я в будущем всё-таки дам пока по GTK и именно графическое отображение функции, предлагаемое Вами, я обязательно возьму на вооружение. Ещё раз спасибо за интерес к ресурсу!
@@narodstream552 , спасибо за ответ, а меня интересует этот вопрос чисто из конкретных нужд, я в свое время писал много тестовых программ для железа, ( я электронщик на пенсии) на разных языках начиная с машинных кодов и ассемблеров разных платформ, Pascal, Delphi, осциллографы, АЧХ метры, дизассемблеры, крестики нолики,потом в 2000-х гг увлекся микроконтроллерами AVR и на Си писал тоже кучу программ синтезаторов для управления ТВ-тюнерами и АМ FM CW тюнерами от автомагнитол, а недавно мне захотелось свой осциллограф на паскале переписать на Си и произошел конфуз, оказалось что нигде среди огромного инета нет ничего, конкретного примера простой программы строк на 20-30 рисования в окне на Си или ++ простой линии и вывода туда же значений переменных. Сразу скажу Visual C++, Qt, C#, Piton и всякие другие монстры для того чтобы всего лишь вывести линию в окно и пару значений переменных конечно же бред сивой кобылы ))). Я пробовал Dev C++, CodeBlocks и еще какие то, но Falcon больше понравился. Вот такие у меня проблемы ))) правда после пары недель усердного просматривания разных уроков, примеров и описаний от майкрософта/ ВИКИПЕДИИ, и разных форумов понял что все всё скрывают или не знают, все вычисляют факториалы, интегралы, выводят на консоль хеллоу и всякую хрень, а простого работающего примера нарисовать в окне линию по точкам для моего осциллографа нет. Я конечно же много примеров проверял на этих IDE, и уже вроде вот вот схвачу его за хвост, но пока никак, кручeсь вокруг BitMap и BitBlt, а точнее как рисовать в битмапе и как вывести переменную, a BitBlt вроде уже работает предсказуемо ))) Да, потом надо будет получить в буфер звук с микрофона, но думаю с этим проблем не будет) хотя тоже не просто, в реале брать куски по милисекундам. На Pascal было проще, и там тоже многое делал на WinAPI c выводом на Canvas или потом прямо на tPanel.
Ребята а я правильно понимаю что если писать на ассемблере то для amd и intel подход написания будит разный. Ведь архитектуры то разные. Получается нужно сначала вникнуть в работу той или иной архитектуры а потом уже учить ассемблер?
Практически одинаковый, сейчас все инструкции универсальны. Поэтому программы, написанные для компьютера, запускаются везде. Иначе бы они поставлялись в исходном коде. И компиляторы для Intel и AMD были бы разные.
Запутался совсем я в этих функциях У вас создана функция void PrintSum(int x, int y);
int main() { PrintSum(15, 17); return 0; }
void PrintSum(int x, int y) { printf ("%d + %d = %d ", x, y, x+y); } 17+15=32. Зачем нужна еще одна функция ? Также добавим на неё прототип ? Зачем? Полная путаница.
@@narodstream552 дак а разве она в первом варианте не видна? Я понимаю так. Функции требуется для того чтобы не повторять много раз одинаковый код. В разных задачах. Например Задача программе идти по ссылкам вбивая адрес в строке. Yandex.ru. Google.ru. Mail.ru. И чтоб не создавать каждый раз код вызова ссылки Пример кода Fopen("site1"); Fopen("site2"); Fopen3,4,10 и тд. Достаточно создать одну функцию и подставлять только ссылку. В программу. Верно или нет.?
Очень классно все объяснили, долгое время не мог понять передачу аргументов функции пока не посмотрел ваш урок ! Спасибо большое !
Спасибо огромное. Как всегда просто и понятно. Действительно про указатели хотелось бы поподробнее узнать.
Хорошо объясняет и начинает с базовых вещей ,сядешь книгу читать , там сразу сыпят функциями и не поймёшь что и откуда , спасибо!!!
Доброго времени суток!Так классно объясняете!
Пытаюсь освоить С со знанием делфинского, много чего непонятно по синтаксису было с функциями. В книжках муть какая-то если честно. У Вас всё по полочкам! Спасибо Вам огромное!
Да вот про указатели интересно будет послушать.
Очень здорово. Вы что-то говорили про уроки по ассемблеру. Было бы здорово!
Изумительно
возможность неявного преобразования типов также должна быть обозначена сразу - при объявлении прототипа или функции
Спасибо!
Читаю книгу "Язык программирования С Керниган, Ритчи" и там в примерах функций, описание аргументов функции происходит за круглыми скобками и перед фигурным, типа так
int sum(x, y)
int x, y;
{
return x + y;
}
в интернете таких примеров не находил, судя по тому что книга издана в 1978 году предполагаю что это устаревший вид записи.
Все же хотелось услышать ваше мнение по этому поводу.
Спасибо
спасибо огромное я это проевлю подпиской на вас
Narod, скажите пожалуйста ,а можете вы показать урок написания программы как наглядно вывести в окне график функции например y=sin(x) или другой, или хотя бы для начала просто линию по точкам, вот это был бы класс! а так все только и могут показать хиллоу ворлд! )))))) спасибо, если сможете.
Спасибо!
Да показать-то я может и покажу, но мы пока ещё не подошли к графическому отображению, да и, мало того, ещё не решили, какую графическую библиотеку выбрать. Я склоняюсь к GTK и QT, можно также использовать и Windows API, но мы тогда к данному OS привяжемся, равно как GTK нас привяжет к Linux. QT более мультиплатформенна, но для новичков, как я считаю, тяжелая. Мы к ней обязательно подойдём, причём лучше всего по моим наблюдением она поддерживается именно в Linux, поэтому предлагаю начать с GTK и затем плавно перейти к QT. Также Linux был выбран из соображения большей его адаптированности к разработке приложений, а также впоследствии планируется работа с LInux Yocto - системой сборки для встроенных систем, поэтому, думаю, что несколько уроков я в будущем всё-таки дам пока по GTK и именно графическое отображение функции, предлагаемое Вами, я обязательно возьму на вооружение.
Ещё раз спасибо за интерес к ресурсу!
@@narodstream552 , спасибо за ответ, а меня интересует этот вопрос чисто из конкретных нужд, я в свое время писал много тестовых программ для железа, ( я электронщик на пенсии) на разных языках начиная с машинных кодов и ассемблеров разных платформ, Pascal, Delphi, осциллографы, АЧХ метры, дизассемблеры, крестики нолики,потом в 2000-х гг увлекся микроконтроллерами AVR и на Си писал тоже кучу программ синтезаторов для управления ТВ-тюнерами и АМ FM CW тюнерами от автомагнитол, а недавно мне захотелось свой осциллограф на паскале переписать на Си и произошел конфуз, оказалось что нигде среди огромного инета нет ничего, конкретного примера простой программы строк на 20-30 рисования в окне на Си или ++ простой линии и вывода туда же значений переменных. Сразу скажу Visual C++, Qt, C#, Piton и всякие другие монстры для того чтобы всего лишь вывести линию в окно и пару значений переменных конечно же бред сивой кобылы ))). Я пробовал Dev C++, CodeBlocks и еще какие то, но Falcon больше понравился. Вот такие у меня проблемы ))) правда после пары недель усердного просматривания разных уроков, примеров и описаний от майкрософта/ ВИКИПЕДИИ, и разных форумов понял что все всё скрывают или не знают, все вычисляют факториалы, интегралы, выводят на консоль хеллоу и всякую хрень, а простого работающего примера нарисовать в окне линию по точкам для моего осциллографа нет. Я конечно же много примеров проверял на этих IDE, и уже вроде вот вот схвачу его за хвост, но пока никак, кручeсь вокруг BitMap и BitBlt, а точнее как рисовать в битмапе и как вывести переменную, a BitBlt вроде уже работает предсказуемо ))) Да, потом надо будет получить в буфер звук с микрофона, но думаю с этим проблем не будет) хотя тоже не просто, в реале брать куски по милисекундам. На Pascal было проще, и там тоже многое делал на WinAPI c выводом на Canvas или потом прямо на tPanel.
Ребята а я правильно понимаю что если писать на ассемблере то для amd и intel подход написания будит разный. Ведь архитектуры то разные. Получается нужно сначала вникнуть в работу той или иной архитектуры а потом уже учить ассемблер?
Практически одинаковый, сейчас все инструкции универсальны. Поэтому программы, написанные для компьютера, запускаются везде. Иначе бы они поставлялись в исходном коде. И компиляторы для Intel и AMD были бы разные.
Подскажите пожалуйста как расположить функцию по указанному адресу допустим @8000400.
есть еще процедуры (из языка паскаль) у которых аргументов больше одного
В паскале процедура - это функция, не возвращающая значения.
@@ProgrammerForever в си это диагностическая
А почему вы используете notepad вместо IDE??
В более поздних уроках пойдёт IDE. А блокнот в целях понимания процесса сборки. В IDE он скрыт от нас и ложится не на наши плечи, а на плечи IDE.
Запутался совсем я в этих функциях
У вас создана функция
void PrintSum(int x, int y);
int main()
{
PrintSum(15, 17);
return 0;
}
void PrintSum(int x, int y)
{
printf ("%d + %d = %d
", x, y, x+y);
}
17+15=32.
Зачем нужна еще одна функция ?
Также добавим на неё прототип ? Зачем?
Полная путаница.
1. Чтобы показать работу функции.
2. Чтобы функция была видна ибо текст интерпретатор читает сверху вниз.
@@narodstream552 дак а разве она в первом варианте не видна?
Я понимаю так.
Функции требуется для того чтобы не повторять много раз одинаковый код.
В разных задачах.
Например
Задача программе идти по ссылкам вбивая адрес в строке.
Yandex.ru.
Google.ru.
Mail.ru.
И чтоб не создавать каждый раз код вызова ссылки
Пример кода
Fopen("site1");
Fopen("site2");
Fopen3,4,10 и тд.
Достаточно создать одну функцию и подставлять только ссылку.
В программу.
Верно или нет.?