пятница, 25 марта 2011 г.

Проверка работы прямой публикации из письма

На blogspot.com имеется возможность сразу опубликовать статью из письма присланного по почте или сохранить черновик статьи.

В связи с этим возникают вопросы насколько удобно это. Будет ли сохранятся форматирование, вложенные файлы и т.п.

 

Ну во первых заголовок

 

·        Список 1

·        Список 2

·        Список 3

 

1.      Список 1

2.      Список 2

3.      Список 3

 

Таблица:

Ячейка1

 

 

 

ываываыва

 

 

 

Картинка:

vosk2.png

 

Внешние ссылки

Эта ссылка на меня

 

А это внутренняя ссылка в документе на элемент структуры или на закладку.

вторник, 22 марта 2011 г.

Шаблон консольной программы


Пока не знаю почему, но только такой стартовый файл работает и в MinGW и MSVC++.
Дает консольную программу



Кстати этот шаблон по умолчанию открывает Code::Blocks для консольной программы.

Алгоритм Евклида

По Кнуту:

Программа реализующая алгоритм Евклида (Кнут 1.1Е, поиск наибольшего общего частного для двух целых чисел)




Программа определения среднего количества шагов по алгоритму Евклида если n=5.



Программа дает следующий результат:



1. i=2   mid=2
2. i=3   mid=2.5
3. i=4   mid=3.25
4. i=3   mid=3.125
5. i=1   mid=2.0625
6. i=2   mid=2.03125
7. i=3   mid=2.51562
8. i=4   mid=3.25781
9. i=3   mid=3.12891
10. i=1  mid=2.06445
11. i=2  mid=2.03223
12. i=3  mid=2.51611
13. i=4  mid=3.25806
14. i=3  mid=3.12903
15. i=1  mid=2.06451
16. i=2  mid=2.03226
17. i=3  mid=2.51613
18. i=4  mid=3.25806
19. i=3  mid=3.12903
20. i=1  mid=2.06452
21. i=2  mid=2.03226
22. i=3  mid=2.51613
23. i=4  mid=3.25806
24. i=3  mid=3.12903
25. i=1  mid=2.06452

то есть видно, что при значении m кратном 5, шагов надо 1. При увеличении m на единицу, количество шагов увеличивается. Среднее кол-во шагов тоже будет меняться в соответствии с законом:
q*5  --------- 2.0645...
q*5+1 ------- 2.0322...
q*5+2 ------- 2.5161...
q*5+3 ------- 3.2580...
q*5+4 ------- 3.1290...


суббота, 19 марта 2011 г.

Элементы языка C++

Рассмотрим C++ с точки зрения реализации основных типов ориентированного графа.
  1. составной оператор
  2. ветвление
  3. цикл

Составной оператор


Оператор это строка кода ограниченная с правой стороны ; (точкой с запятой).
i=1;
Соответственно оператор можно составить из выражений соединив их , (запятой). Здесь есть тонкость. Каждое выражение возвращает результат своего вычисления, в случае соединения выражений запятой будет возвращен результат вычисления последнего.
i=1, b=2+i, c=d=1;
Еще один способ, это использовать {...}  (фигурные скобки). Они позволяют соединять операторы.
{
   int i;
   i = 1;
   j = ++i;
}

Ветвление (альтернатива)


Стандартный оператор if.
Исполнение 1:
if (i == 1) {оператор1}
else {оператор2};

Исполнение 2:
if (i==1) оператор1;
else оператор2;

Исполнение 3:
if (i==1) оператор1;
else if (j>2) оператор2;
else {...};

Оператор-переключатель:
switch (переключатель)
{
    case константа1: оператор1.1;
                               оператор1.2;
                               оператор1.3; break;
    case константа2: оператор2.1;
                               оператор2.2; break;
    case константа3: оператор3; break;
    case константа4: оператор4; break;
    else  оператор5; break;
    default: оператор6;
}
здесь переключатель - выражение дающее в результате что-то, что сравнивается с константами;
константы - должны быть того же типа что и переключатель;
case различные атернативы (работает как метка, на оператор, стоящий после нее, переходит выполнение программы);
break - осуществляет переход вне фигурной скобки;
else - выполняется если ни одна из альтернатив не совпала;
default - выполняется в любом случае (я так думаю).

Есть еще один вариант ветвления - условное выражение:
(выражение1) ? выражение2 : выражение3
Если выражение1 !=0, то выполняется выражение2 и возвращается его результат, иначе возвращается результат выражения3.

Цикл


Со всеми циклами работают инструкции break (выйти из цикла), continue (продолжить, следующая итерация).

Цикл с предусловием


while (выражение) {...}

Пока (!=0) {...}


Цикл с постусловием


do {...} while (выражение)
делай {...} пока (!=0)


Цикл счетный


for (выражение1 ; выражение2 ; выражение3) оператор;
причем здесь перед началом цикла выполняется выражение1 (оно выполняется только один раз), начиная со второй итерации вычисляется выражение3, после выполнения оператора выполняется выражение2 (если оно !=0 то опять выражение3-оператор).

пятница, 18 марта 2011 г.

Выбор компилятора C

Первый шаг который необходимо сделать при входе в язык, это конечно же выбор инструментария. Для новичка, каким я являюсь, инструментарий языка C включает в себя:

  1. компилятор
  2. IDE - интегрированная среда разработки

Рассмотрим первый - компилятор. Сейчас существуют следующие виды компиляторов (wikipedia).
  1. MinGW
  2. Microsoft Visual C++
  3. C++ Builder
  4. Watcom
  5. Intel C++ compiler
Ну и о них по порядку:
MinGW
Компилятор для Windows, позволяет создавать кросс-платформенные приложения. Позволяет обращаться к Windows API. Однако имеется мнение (неподтвержденное) что с его использованием программы получаются большие. Возможно, настройка компилятора позволит как-то с этим побороться.
Размер для скачивания Code::Blocks+MinGW+GDB составляет 74 Mb. Такой дистрибутив можно таскать с собой на флэхе.
Отдельно компилятор (со всеми прибамбасами) весит 99.1 Mb - парадокс ))
Характеристика: бесплатный
Microsoft Visual C++
Пишут, что это вообще-то не компилятор а IDE. Кроме того, распространяется бесплатно в отличие от Microsoft Visual Studio, и является его обрезанной версией. Но кроме самой IDE включает еще и компилятор фирменный. Пишут что IDE сильно обрезанный (даже пишут в чем именно). Но мне пока эти тонкости не понятны.
Некоторые авторы указывают, что напрямую с сайта можно скачать только загрузчик, а тот в свою очередь будет качать и устанавливать что ему надо. То есть, недостаток: нельзя с собой дистрибутив таскать.
Характеристика: бесплатный
C++ Builder
Компилятор+IDE от Borland/CodeGear/Embarkadero, платный.
Реализует парадигму (йииихаа) визуального программирования с использованием Drag-Drop.
Есть сведения, что имелся бесплатный аналог Turbo C++ Explorer, но владельцы пишут что он больше не доступен.
Характеристика: платный

Watcom

Бесплатный компилятор. С начала 2000 разрабатывается силами сообщества под маркой OpenWatcom.
Характеристика: бесплатный
Intel C++
Платный компилятор от флагмана мировой компьютерной индустрии Intel. Поддерживает C, C++, Fortran. Ограниченно кросс-платформенный.
Характеристика: платный
Вывод
Этим обзором не затронуты компиляторы на платформах отличных от Windows и их настройки. Такие GCC, Cygwin.
Основным критерием обзора была возможность быстрого старта (скачал, сел, начал работать).
В результате можно выделить два варианта MinGW и Visual C++ Express.
Окончательный выбор можно будет сделать в процессе работы и на основе полученного опыта.