Краткий курс WPF

👁 55 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

  1. Введение в WPF
    • Особенности WPF
    • Начало работы с WPF
  2. Язык программной разметки XAML
    • Введение XAML
    • Разделение частей проекта
    • Свойства и конвертеры типов XAML
    • Пространства имен XAML
  3. Компоновка элементов
    • Элемент компоновки Grid
    • Элемент компоновки GridSplitter
    • Элемент компоновки StackPanel
    • Элемент компоновки DockPanel
    • Элемент компоновки WrapPanel
    • Элемент компоновки Canvas
    • Свойства элементов компоновки
  4. Элементы управления
    • Общий обзор элементов управления XAML/WPF
    • Элементы управления содержимым
    • Элемент нажатия Button
    • Элемент выборки CheckBox
    • Элемент выборки RadioButton
    • Элемент всплывающий ToolTip
    • Элемент всплывающий Popup
    • Элемент контейнер GroupBox
    • Элемент контейнер Expander
    • Элемент прокрутки ScrollViewer
    • Элементы текста
    • Элемент списка ListBox
    • Элемент списка ListView
    • Элемент выпадающего списка ComboBox
    • Элемент вкладок TabControl
    • Элемент меню Menu
    • Элемент панели инструментов ToolBar
    • Элемент дерева TreeView
    • Элемент обработки данных DataGrid
    • Элемент прогресса ProgressBar
    • Элемент ползунка Slider
    • Элемент даты Calendar
    • Элемент даты DatePicker
    • Элемент изображений Image
    • Элемент рисования InkCanvas
  5. Работа с зависимостями
    • Свойства зависимостей DependencyObject
    • Прикрепляемые свойства
    • Создание свойств зависимостей
  6. События в WPF
    • Маршрутизация событий
    • События с клавиатуры
    • События мыши и фокуса
  7. Команды
    • Основы команд
    • Создание новых команд
  8. Кисти

Выражения и их типы в C(Си)

👁 57 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

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

Арифметические операторы

Операция (выражение)Оператор
Присваивание=
Сложение+
Вычитание
Унарный минус
Унарный плюс+
Умножение*
Деление/
Операция модуль%
Инкремент префиксный++a
Инкремент постфиксныйa++
Декремент префиксныйa
Декремент постфиксныйa

Логические операторы

Операция (выражение)Оператор
Логическое отрицание, НЕ!
Логическое умножение, И&&
Логическое сложение, ИЛИ||

Побитовые операторы

Операция (выражение)Оператор
Побитовая инверсия~
Побитовое И&
Побитовое ИЛИ (or)|
Побитовое исключающее ИЛИ (xor)^
Побитовый сдвиг влево<<
Побитовый сдвиг вправо>>

Операторы сравнения

Операция (выражение)Оператор
Равенство==
Неравенство!=
Больше>
Меньше<
Больше или равно >=
Меньше или равно<=

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

Операция (выражение)Оператор
Сложение, совмещённое с присваиванием+=
Вычитание, совмещённое с присваиванием-=
Умножение, совмещённое с присваиванием*=
Деление, совмещённое с присваиванием/=
Вычисление остатка от деления, совмещённое с присваиванием%=
Побитовое «И» (AND), совмещённое с присваиванием&=
Побитовое «ИЛИ» (or), совмещённое с присваиванием|=
Побитовое «исключающее ИЛИ» (xor), совмещённое с присваиванием^=
Побитовый сдвиг влево, совмещённый с присваиванием<<=
Побитовый сдвиг вправо, совмещённый с присваиванием>>=

Константы в C(Си)

👁 58 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Константы в Си можно определить 2 базовыми способами

  1. через препроцессор: #define MYCONST ‘A’;
  2. через ключевое слово: const char MYCONST ‘A’.

В первом случае это будет не совсем константа в привычном понимании языка Си, а макроподстановка, которая выполнится в процессе компиляции, а во втором случае для этого используется специальное ключевое слово, которое реально указывает на то, что это есть константа. Значение константы нельзя менять за все время выполнения программы и если поменять, то будет выкинута ошибка присвоения.

Путаница связана главным образом с заблуждением о том, что #define объявляет константу. Это неверно.

define — макроподстановка, предназначенная для обработки препроцессором.

Настоящая константа в C записывается как:

const int alpha = 3;
const char beta[]="beta";

Разница состоит в том, что макроподстановку препроцессор чисто механически воткнет во все места в исходном тексте, где она встречается.

В то же время, константу обрабатывает компилятор, на более высоком, «умном» уровне. Обратите внимание, что у настоящей константы есть тип — это означает, что глупая ошибка вроде «число вместо строки» просто не откомпилируется. А вот с макроподстановкой такой номер может не пройти.

Одно из важных правил — макроподстановкам нужно всегда предпочитать константы, чтобы избежать чудесных глюков.

Переменные и их типы в C(Си)

👁 60 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

В C(Си) множество видов производных переменных. В данном посте познакомимся основными базовыми видами. Но прежде, чем перейти к типам, нужно разъяснить само понятие переменная. Общий вид объявления переменной выглядит так

char x;
   int a, b, c;
   unsigned long long y;

Общий принцип объявления

[модификаторы] спецификатор_типа идентификатор [, идентификатор] …

  • Модификаторы — ключевые слова signed, unsigned, short, long;
  • Спецификатор типа — ключевое слово char или int, определяющее тип объявляемой переменной;
  • Идентификатор — имя переменной.

Переменная в языке программирования похожа на переменные в математике с тем отличием, что в языке Си каждая переменная имеет тип данных, которая она может хранить, иначе говоря спецификатор. И роль этих переменных — это промежуточные хранения данных на всем цикле выполнения программы. Основные спецификаторы переменных делятся на

  1. char — символьный тип данных;
  2. int — целочисленных тип данных;
  3. short — целочисленный тип данных;
  4. long — целочисленный тип данных;
  5. bool — булевый тип данных для хранения TRUE или FALSE;
  6. float — число с плавающей точкой;
  7. double — число с плавающей точкой двойной точности;

Важно отметить, что числовые переменные могут еще быть отрицательными ли абсолютными. Для указания абсолютности или возможности быть отрицательными у переменных есть ключевые слова, которые еще называются модификаторы

  • signed — есть отрицательные и положительные (стоит по умолчанию);
  • unsigned — есть только положительные;
  • short — это, еще может быть короткой записью типа short int;
  • long — это, еще может быть короткой записью типа long int;

Если цифровая переменная указана, как signed, то диапазон положительных чисел делится поровну с отрицательными, потому что старший бит уходит на указание знака числа.

ТипДиапазонШестнадцатиричный диапазонРазмер
unsigned char0 … 2550x00 … 0xFF8 bit
signed char 
или просто
char
-128 … 127-0x80 … 0x7F8 bit
unsigned short int
или просто
unsigned int или unsigned short
0 … 655350x0000 … 0xFFFF16 bit
signed short int или signed int
или просто
short или int
-32768 … 327670x8000 … 0x7FFF16 bit
unsigned long int
или просто
unsigned long
0 … 42949672950x00000000 … 0xFFFFFFFF32 bit
signed long
или просто
long
-2147483648 … 21474836470x80000000 … 0x7FFFFFFF32 bit
unsigned long long0 … 184467440737095516150x0000000000000000 … 0xFFFFFFFFFFFFFFFF64 bit
signed long long
или просто
long long
-9223372036854775808 … 92233720368547758070x8000000000000000 … 0x7FFFFFFFFFFFFFFF64 bit

Ввод и вывод данных в C(Си)

👁 47 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Ввод и вывод данных — это один из основных этапов цикле жизни приложения. Т.е., на всем протяжении, пока приложение работает он принимает некоторые данные и выдает результат вычисления и наша задача — это придумать некоторый алгоритм на языке C(Си), который обработает эти данные так, как нам нужно и выдаст результат. Для простого консольного приложения на языке C(Си) можно воспользоваться 2 соответствующими функциями из стандартного заголовочного файла stdio.h

  1. printf() — функция вывода на консоль в форматированном виде;
  2. scanf() — функция чтения с клавиатуры в форматированном виде;

Для усвоения темы придумаем пример приложения, который запуститься и будет ожидать ввод с клавиатуры, а после ввода обработает введенное значение и завершит программу

#include 

char message[20];
int main(int args, char * vargs[])
{
   scanf("%s", &message[0]);
   printf("My first app with %s \n", message);
}

В данном код мы определяем переменную, которая будет хранить вводимую строку и после ввода эта строка будет склеена с текстом в printf() и будет выведена на экран. Результат будет следующим

Результат ввода и вывода данных в программу

Жизненный цикл базового приложения на C(Си)

👁 69 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Код на C(Си) можно разделить на 3 части, которые, в последующем, собирается в один

  1. код из стандартных заголовочных файлов языка;
  2. код за пределами функции main, в том числе и виде пользовательских файлов, которые потом подключаются в основной файл через команды препроцессора;
  3. код внутри функции main, который является точкой входа в любом приложении на языке C(Си).

Короче говоря, точка входа — это необходимое условие приложения, чтобы оно запустилось. Приложение может быть и без точки входа, но тогда это уже будет библиотекой. Ниже приведен минимальный исходный код приложения на C(Си)

#include 
char message[] = "Hello, World";
int main(int args, char * vargs[])
{
   printf("My first app with %s \n", message);
}

Работа данного кода в консоли будет выглядеть, так, как ниже

Работа приложения main

В данном коде мы сначала подключаем стандартный заголовочный файл stdio.h, далее определяем переменную message со строкой приветствия и в функции main выводим посредством функции printf, который определен в стандартном заголовочном файле stdio для взаимодействия с экраном в виде форматированного склеивания параметров в общую строку вывода. Это значит, что там, где %s будет вставлен текст из переменной, которая задается вторым параметром.

Компиляция и запуск исходного кода на C(Си) в Linux

👁 59 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

По умолчанию в десктопной версии Ubuntu или в Debian должен быть установлен компилятор GNU GCC в папке usr/bin/gcc. Для проверки того, что он у вас есть можно выполнить следующие команды

$ whereis gcc
$ which gcc
$ gcc --version

Если этого всего нет, то следует установить по следующим командам

$ sudo apt-get update
$ sudo apt-get install build-essential manpages-dev

Компиляция исходника

Чтобы компилировать исходник нам сначала нужно написать некоторый код на C(Си)

#include <stdio.h>
/* main.c:  My first C program on a Linux */
int main(void)
{
   printf("Hello! This is a test prgoram.\n");
   return 0;
}

и выполнить команду компиляции одним из способов

$ cc main.c -o main

или

$ gcc main.c -o main

или, предполагая, что в текущей директории есть файл main.c

$ make main

или

$ cc main.c -o main

или, предполагая, что в текущей директории есть файл main.c

$ make main

Если в коде нет ошибок, то компилятор выполнит свою работу и в текущей директории появится исполняемый файл main , наличие которого можно проверить через команду

$ ls -l main*

В противном случае, придется найти ошибку в коде и исправить.

Запуск скомпилированного приложения

Для запуска в скомпилированного файла достаточно выполнить команду

$ ./main

или

$ /path/to/main

Краткий курс C(Си)

👁 56 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Данный список тем программирования на языке C(Си) больше предназначен для быстрого освежения знаний по этому языку. Компиляция и выполнение программы будут выполнены на GCC в системе Linux(Ubuntu), но это не является проблемой изучения и для другой ОС, так как язык C(Си) стандартизирован.

  1. Компиляция и запуск исходного кода на C(Си) в Linux
  2. Жизненный цикл базового приложения на C(Си)
  3. Ввод и вывод данных в C(Си)
  4. Переменные и их типы в C(Си)
  5. Константы в C(Си)
  6. Выражения и их типы в C(Си)
  7. Массивы в C(Си)
  8. Функции в C(Си)
  9. Условные операторы ветвления в C(Си)
  10. Циклические операторы итераций в C(Си)
  11. Указатели и ссылки в C(Си)
  12. Структуры в C(Си)
  13. Команды препроцессора в C(Си)
  14. Включение исходных файлов в C(Си)
  15. Файл сборки MakeFile в C(Си)