Старый 29.04.2009, 23:31   #1
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума

По умолчанию основы логики программирования на примере с++


и так, приступим к пониманию, что такое программирование.

программирование, это способ облегчить себе, ну или другим жизнь использую компьютер.
что же необходимо знать о программирование и о теории, постараюсь рассказать максимально доступно в этом цикле статей.
и так, во первых это логика, железная логика используемая для объяснения «железному мозгу», что же от него всё таки хотят. необходимо запомнить, что компьютер тупой и всё зависит от рук и умелого использования знаний.
второй пункт, это понимание задачи, которую необходимо решить, ну а как следствие это реализация её в первозданном виде. как уже не однократно говорилось: «главное это идея. а реализация, это всего лишь приложение».
реализация может быть разной, зависит от целей поставленных автором идеи. это может быть как простое, дружелюбное к пользователю приложение, так и что-то очень сильно углублённое требующее абсолютного понимания работы компа. для начала, постараемся не вникать сразу в суть происходящих процессов, а только поверхностно пройти эти этапы. и чем лучше человек понимает, что он хочет, чем более отчётливо он видит цель, тем проще найти решение этой задачи, тем проще её реализовать. значит… нужно начать всё-таки с алгоритмики…
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Re: основы логики программирования на примере с++
Старый 29.04.2009, 23:31   #2
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума
По умолчанию

Алгоритмика и логика.

Все действия имеют условия, все действия имеют описания своих действий, точку приложения и какую-то разумную необходимость. Для постановки вопроса о создание любой программы, в начале, нужно разборчиво составить план действий по уже описанной задаче.
И так, начнём с простейших условий, в примерах будет английский вариант написания, поскольку он более употребим, если же вы не хотите использовать 1С :-D, а если по 1С то этот форум вам не подходит ). И так, использовать буду синтакс C/C++, Java. Почему?! Да потому, что мне он нравится :).
И так, конец каждой строчки заканчивается ;
Действия функций и прочих вещей заключаются в фигурные скобки { }
Что ж приступим:
if (если) < условие > { условие истина (верно) } else (иначе) { условие ложно (НЕ верно) }
И так, вначале проверяется условие, на истинность. Если оно истина, то выполняется первый блок, если лож, то второй.
if будильник.прозвонил {
Поднимаемся;
} else {
Спим;
}
Думаю вполне понятно, что это значит.
Далее бывают случаи, когда происходит проверка, имеющая больше 2х значений, то есть уже не столь логическая.
switch ( переключатель ) < операнд/переменная > {
case (хранилище) < значение > ; < действия > ; < специальная команда > ;
case < значение > ; < действия > ; < специальная команда > ;

case < значение > ; < действия > ; < специальная команда > ;
default (по умолчанию) < действия > ; < специальная команда > ;
}
Итак, смотрим. Вначале происходит указание, значение какого операнда будем рассматривать. Далее будет поэтапное сравнение со всеми case`ами и если где то значение совпадает, то происходит выполнение действий вложенных в это «хранилище». По завершению выполнения следует выполнение специальной команды.
Расскажу про три основных, которые стоит пока что запоминать:
return (возврат) – прерывание выполнение основной функции
break (прерывание) – прерывание выполнение проверки
continue (продолжение) – продолжение проверки
И так пример:
switch ВремяГода {
case Зима ; Одеваем.ТёплуюОдежду ; break;
case Лето ; Одеваем.ЛёгкуюОдежду; break;
case Осень ; Одеваем.Зонтик ; break;
default Одиваем.Что-то ; break;
}
Довольно наглядно показано, что в зависимости от времени года происходит выбор одежды. Далее после каждого удачно выдранного сезона происходит прерывание, и последующая проверка не выполняется. Можно догадаться, что в дефолте находится Весна либо криво введенные данные.

Что ж, пожалуй, с этим хватит. Теперь рассмотрим циклы. Циклы это повторно выполняющиеся однотипные действия. Рассмотрим наиболее часто используемые:

Вот три варианта, рассмотрим разницу
while (пока) < условие > { <действия> }
while (пока) < условие > do (делать) {}
do (делать) {} while <условие>
Основная разница между while do и do while в том, что проверка идёт вначале или после выполнения.
while (Время == Ночь){
Спать;
}
Расшифровываем, пока идёт ночь, спим. Как только условие перестало быть истина (значит ночь закончилась) выходим из этого цикла.
Разница между вторым и третьим в следующем:
во втором: Вначале проверяем, истина ли выражение, а после выполняется тело цикла.
В третьем: Вначале выполняем, после проверяем, если выполняются условие, то выполняем ещё раз, до тех пор, пока выражение проверки не станет ложно.

И так, с циклом for, можно познакомится на довольно простом примере:
for (для) (< инициализация «счётчика» >;< условие >;< изменение «счётчика» >)
Используя пример while.
счётчик = 0; // значение счётчика обнуляем, то есть делаем равным 0.
while (счётчик < 3) {
что-то_делается;
счётчик_увеличивается_на_1;
}
И так, как видно, пока оно не выполнит 3 раза, оно будет выполняться. На примере for.
for (для) (счётчик = 0; счётчик < 3 ; счётчик_увеличивается_на_1

И так, основные моменты вроде упомянул, теперь будем рассматривать переменные и функции.
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Re: основы логики программирования на примере с++
Старый 29.04.2009, 23:32   #3
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума
По умолчанию

Начнём с переменных.

Переменные это то, куда засовываем какие-либо значения. Переменные можно разделить на категории по типу хранимых данных, и подкатегории по объёму хранящейся информации.
Важный аспект по выбору переменной, заключается в методе её использования. Конечно же, для того, что бы хранить число в диапазоне от 0 до 100 нет смысла задавать переменную (выделять память под данные) диапазон которой намного больше, чем она может в себе нести.
Для начала рассмотри целочисленные значения, они могут быть как натуральные (то есть только положительные и 0), так и просто целые (к натуральным добавляем отрицательные).
Вещественные числа, они ж числа с плавающей запятой, это значит все рациональные числа. То есть к целым прибавилось множество дробных. Поскольку международная запись гласит вид дробного числа X.XXX, и всё это в степени скажем десяти. Вообще такая запись по стандарту идёт X.XXE*N где X. целая часть числа .XX дробная, Е означает, что умножаем на 10 в степени N.
Запись числа Тип числа Диапазон Размер выделяемой памяти Бит/байт
int (integer) целое -32*768 до 32*767 16/2
enum целое -32*768 до 32*767 16/2
long (длинное) целое -2 147 483*648 до 2 147 483*647 32/4
unsigned (без знаковое) целое 0 до 65*535 16/2
unsigned long (без знаковое длинное) целое 0 до 4 294 967*295 32/4

float (дробное) вещественное 3.4*10^-38 до 3.4*10^38 32/4
double (двойное) вещественное 1.7*10^-308 до 1.7*10^308 64/8
long double (длинное двойное) вещественное 3.4*10^-4932 до 3.4*10^4932 80/10

char (символ) символ -128 до 127 1/8
unsigned char (без знаковый символ) символ 0 до 255 1/8

Как не сложно догадаться, что все символы, буквы и прочее хранятся в виде цифр. Поэтому каждая буковка это какое-то значение char переменной.
Коды символов идут по стандарту ASCII, так что можно погуглить и посмотреть какие коды у какого символа. При объявлении переменной стоит обратить внимание на тот факт, что не все компиляторы обнуляют переменные при их объявлении. Так, что не забудь обнулить переменную.

При работе с переменными, желательно пользоваться понятиями «культуры программировании» и обзывать их понятными именами (то есть, лучше переменную назвать не b, а, скажем, Summa) в результате чего код становится более читабельным и после проще разбираться в написанном.
Немаловажный аспект, это к чувствительности регистру имени. То есть, имена It и iT это разные имена переменных.

При выборе указания переменной нужно руководствоваться следующими правилами:
- Для чего будет использована?
- А нужна ли вообще она?
- Какой диапазон значений она может принять?
По возможности, лучше не объявлять переменной, если можно обойтись уже объявленными, это уже из раздела «стиль программирования». Поскольку под каждую переменную выделяется память и программа в результате потребляет больше ресурсов (ОЗУ). Далее, определяясь с её применением, можно определиться с типом переменной её размером и именем. Следует так же помнить, что если есть возможность то лучше брать минимальную по размеру выделяемой памяти переменную (уменьшение потреблений ресурсов ОЗУ, Процессор). Ну а имя, это уже для удобства использования.

Что ж, вроде бы рассказал основные положения. Об объявлении переменных. Теперь скажем пример:
int a;
a = 10;
Вот мы создали целочисленную переменную и присвоили ей значение 10. Хотя можно и так:
int a=10;
Но это уже из раздела «стиль программирования»

Занимательный вопрос:
int a=32767;
a=a+1;
a=?
Вот Вам и вопросик, кто читал раздел о памяти или регистрах, то понял, что тут получится. А кто даже это внимательно не прочел, получит… a=32768 :-)
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Re: основы логики программирования на примере с++
Старый 29.04.2009, 23:33   #4
HolyAnimal
RAM 96MB
 
Аватар для HolyAnimal
 
Регистрация: 25.04.2009
Сообщений: 114
HolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всемHolyAnimal - это имя известно всем
HolyAnimal вне форума
По умолчанию

Теперь немного о синтаксисе операндов.

Как наверно некоторые помнят, то цифры в которых привыкли считать называются арабскими. Так вот, как наверно, то же немногие помнят, у арабов принято писать и читать с право на лево. После этой памятки будет проще понимать следующие вещи:
а=1;
а=а+1;
В данном случае мы вначале присвоили значение переменной а единицу, а после… читаем с право на лево:
один плюс а присвоит а.
Переводи мы к текущему значению а прибавили ещё один, и записали результат в а.
Комментарии в коде, это очень важный аспект, без них код лишается своей читабельности и восприятия. Не следует, конечно же, комментировать каждую строку, а вот сложные и довольно не понятые с ходу моменты необходимо комментировать (об этом в разделе «культура программирования»). Комментарии пишутся после спец символа(ов), к примеру // (С/С++, Java и др.)
a=a+b // значение а увеличиваем на b
В С/С++ и Java, есть довольно занимательная вещь, к примеру:
a=a+b, можно записать как: a+=b. А вот а=а+1 можно записать как а++, как же это мило и сокращает жизнь облегчая восприятие, меньше букв проще читать.
По аналогии с основными действиями, как: умножение, деление, деление без остатка, вычитание, сложение.
Обычно присвоение (то есть запись значения в переменную) происходит при помощи символа =, хотя в некоторых языках бывают и другие вариации (в Паскаль это идёт через := )
а == b – проверка на равно
a < b ; a > b – больше ; меньше
a = b - присвоение
a != b – проверка на НЕ равно
&& - операнд И, разница между && и & существенна. На примере ниже покажу разницу.
|| - операнд ИЛИ, про разницу между || и | ниже.

Рассмотрим ситуацию
if (a==b & a==c & a==d)
В этом случае, проверяем первое равенство, после проверяем второе равенство, после третье. А вот скажем, если а не было равно b, тогда какой смысл проверять дальше, если уже не удовлетворяет условию И. Для этого и существуют операнды && (по аналогии ||). Основная задача, если условие уже не удовлетворяют (либо удовлетворяют, в случае с ИЛИ), то происходит завершение проверки с последующим выполнением команд следующих после данное проверки. Смысл?! Смысл в том, что каждая проверка, это загрузка процессора, чем меньше команд, тем лучше и тем быстрее (либо незаметней) программа.

Теперь о математических действиях:
+, -, /, * - ну это понятно: сложить, вычесть, разделить, умножить.
% - деление без остатка, бывает необходимо, к примеру, когда работаешь с целочисленными переменными, и ответ может быть дробным. При делении, остаток округляется.

Что ж. Основные вещи про переменные наверно были сказаны. Далее о функциях…
__________________
live(Action) {
while (Me.Emo_coder == True){
Me.Living();
If (Me.Emo == false){return 0;}
}
}
  Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



взломать аську аську взломать взлом программы сделать взлом программы как сделать взлом программы хакерские сайты как легко взломать аську лучшие хакерские сайты топ список хакерские сайты взлом паролей легкий взлом паролей

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. Перевод: zCarot