Создавая тему хочу подготовить аудиторию к появлению в данной теме. Запчастей учебника по сям, а так же кодов с моими личными пояснениями. Сюда с завтрашнего дня будут выливаться тонны кодов, текстов и всем кто захочет научиться программированию на C/C++ а так же работать с адекватной графикой в OpenGL с использование GLUT и заворачиванием всего этого в Bullet Physics. Выкладывать сюда буду с расчетом на школоту и с НЕРЕАЛЬНО доступными пояснениями.
Завтра в 19:00 по МСК появляется моя первая статья приготовьтесь.
Можно начать самостоятельно изучать материал:
1)
2)
ТАК ЖЕ СОЗДАНА ГРУППА RaidCall ДЛЯ ИНТЕРАКТИВНЫХ УРОКОВ И ВОПРОСОВ!
id 4571672
Последний раз редактировалось sidirovich; 29.04.2013 в 20:04.
"RF Online это не та игра где везет в заточке" MonoFenix server Novus
Это вводная лекция. И начнем мы пожалуй с самого важного с вашей рабочей зоны - вашего компилятора. Лично
я работаю в DevC++, другие работают в CodeBlocks. Разницы в них нет практически никакой, существует множество различных компиляторв
я предложу вам на выбор 4 из них. Вы сможете ознакомится с ними в самом низу где так же нахотятся ссылки на их скачивание.
И так сегодня я познакомлю вас с особенностямми "чистого" Си. Так в чем же его преимущество перед другими языками?
Язык Си является языком программирования общего назначения, характеризующийся краткостью выражений, современыми управляющими
кострукциями и структурами данных, а так же богатейшим набором операций. Си не является высокоуровневым языком.
Он не приспособлен для какой-либо конкретной области приложений. Но зато отсутствие в нем каких либо ограничений и большая общность делают
его более удобным и эффективным для решения многих задач, чем языки, даже считающиеся по разным причинам более мощными.
Самый лучший способ изучить новый язык - это сразу начать писать на нем программы. Программировать на любом языке начинают
с программы "Hello World". Ее задача в выведении этой строчки текста.
И эта программа выглядит так:
#include <stdio.h> //Это заголовочный файл(Им мы подключаем библиотеку, но пока мы этого не знаем)
int main() //Данная строка оглашает о появлении главной функции в программе. В ней заключено "Тело программы"
{
printf("Hello World"); //Выводит нашу строчку на экран
getchar(); //функция принимающая на ввод один символ
return 0;//сообщает об успешном завершении программы
} //условный оператор
И так как я посторался как можно подробнее закомментировать код. Сегодня наша задача научится делать пару простых программ влючая эту.
М так следующим шагом после написания данной программы является знакомсво с представлением данных в Си. Выглядит это примерно так.
int main()
{
int x, y, z; //Инициализация переменных
x=10;
printf("%d", x);
getchar();
return 0;
}
В своем коде я уже 2 раз без объяснения использую функцию "getchar();" суть ее использования заключается в том что она ждет считывания с потока
ввода любого символа и помогает нашей программе увидеть то что она нам выводит. Без использования этой функции наша программа моментально бы закрывалась.
Как вы уже могли заметить в конце каждой строчки я использую ";" это оператор в языке Си. Для чего он нужен нам пока знать не надо. Это мы обсудим позже.
Но его использование объязательно и даже я бы сказал необходимо. В любом случае код без него вам в программу не превратить.
И так в нашей программе мы задаем переменную что для этого нам необходимо знать?
Переменные — это именованные, понятные человеку ссылки на данные. Переменные в языке Си являются статическим и строготипизированными. На практике
это проявляется в следующем:
Переменная должна быть объявлена перед использованием.
При объявлении переменной должен быть определен ее тип данных, а точнее тип данных, на который она ссылается.
Тип данных переменной остается неизменным на протяжении всего выполнения программы.
Переменная бронирует ячейку в памяти, которая соответствует указанному типу данных и не может эту ячейку как-либо расширить.
По этой причине необходимо осторожно подбирать тип данных для того, чтобы быть уверенным, что памяти зарезервированной переменной
хватит для сохранения данных.
Типы данных:
Целочисленные INT типы
Тип int используется для хранения целых чисел и занимает не менее 4 байтов памяти. Тип int является, так сказать, семейством типов.
int типов существует несколько: short int, long int и long long int (C99). Признаться честно, все типы являются платформа-зависимыми, то есть, говоря, что
int занимает 4 байта, а не подразумеваю, что 4 байта и только так. На некоторых платформах int может занимать, например 8 байт памяти, а на других 2.
Насколько мне известно, стандарт Си все же регламентирует минимальное значение основных типов и потому, наверное, можно быть уверенным в том, что
int зарезервирует минимум 4 байта. Лично на моей машине int вмещает число 2147483647, long int занимает столько же места, как и int.
Тип short int занимает минимум 2 байта.
CHAR
char — это тип данных, которые требуют для хранения 1 байт памяти. Этого количества памяти хватает для хранения символа ASCII,
или чисел от -128 до +127, или от 0 до +255. Тип char применяется для хранения ASCII последовательностей, но может интерпретироваться и как число.
О других типах мы с вами поговрим позже. Сейчас главное научиться с ними работать. Работа с ними выглядит так:
Операции с битами.
Арифметические операции задаются следующими символами (табл. 2): +, -, *, /, % . Последнюю из них нельзя применять к переменным вещественного типа. Например:
Сложение a = b + c;
Вычитание x = y - z;
Умножение r = t * v;
Деление s = k / l;
Остаток от деления p = q % w;
Операция "=" это операция присваивания значения выражения к данной переменной.
А теперь давайте посмотрим как сделать же передать нашей программе какие либо значения. В этом нам поможет функиця "scanf".
include <stdio.h>
int main()
{
int x, y;
scanf("%d%d", &x, &y);
printf("%d%d", x, y);
getchar();
return 0;
}
Давайте разберем что мы написали. И так функция scanf принимает на вход целое число и записывает его в переменную x, что позволяет нашей программе
в дальнейшем работать с данной переменной. Производить с ней какие либо операции. "&" в функции scanf является адрессом ячейки для записи его напи
сание ОЧЕНЬ ВАЖНО.
Теперь я хотел бы дать вам так сказать домашнее задание:
1) Написать программу которая принимает вход 2 положительных целых числа и выводит их разность.
Пример:
Вход 10 и 5
Вывод 5
2) Написать программу которая принимает 2 числа и находит остаток от деления первого числа на второе.
Домашняя работа крайне проста и нужно приложить минимум усилий. Просто для закрепления в следующий раз задания будут разделятся
на уровни сложности за которые участини будут получать баллы. Уровней будет 3. 2 легкии задачи 2 средней тяжести и 2 сложные.
По результатам выполнения д/з будет выдано N-ое кол-во плюшек самым активным участиникам. Если у кого то будут возникать вопросы я всегда готов
помочь вам вы можете найти меня в скайпе sidirovich-v а так же я всегда онлайн в RaidCall в той самой комнате о которой я писал в первом сообщении.
Где вы можете задать мне любой интересующий вас вопрос относительно этого урока, а так же я могу ответить на другие вопросы всязаные с программированием.
Лекции будут более полными и появляться тут через день.
Ссылки на скачивание компиляторов:
Последний раз редактировалось sidirovich; 30.04.2013 в 17:28.
"RF Online это не та игра где везет в заточке" MonoFenix server Novus
ТС, держи архив, внутри и книги, и лекции одного препода из спбгпу. Мб что-то возьмёшь для своих статей. p/s: с орфографией и грамматикой у него не очень =)
А и почему не на Qt c++? Он ведь явно удобнее, не нужно перепысывать код программы для каждой системы отдельно, да и более актуален на мой взгляд.
Я же говорил моя шляпа рассчитана на школоту которая еще не знает что такое язык программирования но интересуется этим
Добавлено через 3 минуты
Ребят я предложил бы вам комментарии по тому что я сюда вылил говорить мне в скайп или в рк чтобы больше я такого не допускал) и тут давайте мы флудить не будем?)
Последний раз редактировалось sidirovich; 30.04.2013 в 18:33.
Причина: Добавлено сообщение
"RF Online это не та игра где везет в заточке" MonoFenix server Novus