Мбоу «славкинская средняя школа»

Зачем нужны символы икс и игрек?

Переменные — это имена, а не локации

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

Операция присваивания не копирует значение, а только лишь прикрепляет имя к объекту, содержащему нужные данные. Имя — это ссылка на объект, а не сам объект. Можно представить, что имя — это этикетка, приклеенная на коробку с объектом, которая размещается где-то в памяти компьютера (рис. 2.3).

В других языках программирования переменные сами по себе имеют тип и привязываются к локации в памяти. Вы можете изменить значение в этой локации, но оно должно быть того же типа. Именно поэтому в статических языках нужно объявлять тип переменных. В Python этого делать не требуется, поскольку имя может ссылаться на все что угодно: значение и тип мы получаем, идя по цепочке к самому объекту с данными. Такой подход экономит время, но при этом имеет свои недостатки.

• Вы можете неверно написать имя переменной и получить исключение, поскольку она ни на что не ссылается, Python не выполняет такую проверку автоматически в отличие от статических языков.

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

Попробуйте сделать следующее с помощью интерактивного интерпретатора (рис. 2.4).

1. Как и раньше, присвойте значение 7 имени a. Это создаст объект-«ящик», содержащий целочисленное значение 7.

2. Выведите на экран а.

3. Присвойте имя а переменной b, заставив b прикрепиться к объекту-«ящику», содержащему значение 7.

4. Выведите b.

Рис. 2.3. Имена указывают на объекты (переменная указывает на целочисленный объект со значением 7)

Рис. 2.4. Копирование имени (теперь переменная b указывает на тот же целочисленный объект)

Попробуйте сделать следующее с помощью интерактивного интерпретатора (рис. 2.4).

1. Как и раньше, присвойте значение 7 имени a. Это создаст объект-«ящик», содержащий целочисленное значение 7.

2. Выведите на экран а.

3. Присвойте имя а переменной b, заставив b прикрепиться к объекту-«ящику», содержащему значение 7.

4. Выведите b.

В Python, если нужно узнать тип какого-либо объекта (переменной или значения), можно использовать конструкцию type(объект). type() — одна из встроенных в Python функций. Чтобы проверить, указывает ли переменная на объект определенного типа, используйте конструкцию isinstance(type):

Когда я упоминаю функцию, то после ее имени размещаю круглые скобки (()) и таким образом подчеркиваю, что это именно функция, а не имя переменной или что-либо еще.

Попробуем проделать это с разными значениями (58, 99.9, ‘abc’) и переменными (a, b):

Класс — это определение объекта. В Python значения терминов «класс» и «тип» примерно одинаковы.

Как вы могли заметить, при упоминании имени переменной Python ищет объект, на который она ссылается. Неявно Python выполняет большое количество действий и часто создает временные объекты, которые будут удалены спустя одну-две строки.

Снова рассмотрим пример, показанный ранее:

В этом фрагменте кода Python сделал следующее:

• создал целочисленный объект со значением 5;

• создал переменную у, которая указывает на этот объект;

• нарастил счетчик ссылок для объекта, содержащего значение 5;

• создал еще один целочисленный объект со значением 12;

• вычел значение объекта, на который указывает переменная у (5), из значения 12, содержащегося в анонимном объекте;

• присвоил результат (7) новому (пока еще безымянному) целочисленному объекту;

• заставил переменную х указывать на этот новый объект;

• нарастил счетчик ссылок для объекта, на который указывает переменная х;

• нашел значение объекта, на который ссылается переменная х (7), и вывел его на экран.

Когда количество ссылок на объект становится равным нулю, это означает, что ни одно имя на него больше не ссылается, поэтому хранить такой объект нет необходимости. В Python имеется сборщик мусора, который позволяет повторно использовать память, занятую уже ненужными на данный момент объектами: представьте себе, будто кто-то следит за этими полками с памятью и забирает ненужные коробки на переработку.

В нашем случае объекты со значениями 5, 12 и 7, а также переменные x и y больше не нужны. Сборщик мусора Python может или отправить их в небесный рай для объектов7, или сохранить, исходя из соображений производительности, так как небольшие целые числа используются довольно часто.

Понятие X

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

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

Однако, в зависимости от контекста использования, X может иметь и другие значения. Например, в биологии X может обозначать ген или мутацию, в искусстве – цвет или форму, в лингвистике – звук или фонему.

Пример использования понятия X:

В задаче определения площади круга, понятие X может обозначать радиус. Формула для расчета площади круга будет выглядеть следующим образом: S = π * X^2, где X – это радиус круга.

Что такое X

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

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

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

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

Примеры использования X:

  1. Решение уравнения: 2X + 3 = 7 (X = 2)
  2. Объявление переменной в программировании: int X = 5;
  3. Анализ статистических данных: среднее значение X = 10;
  4. Представление неизвестной величины: X — загадочный покемон.

Пример использования X

Для наглядного объяснения, приведем пример использования X в контексте системы управления веб-контентом. Предположим, у нас есть компания, специализирующаяся на разработке веб-сайтов. Мы создали систему управления веб-контентом, которая позволяет нашим клиентам легко добавлять и редактировать содержимое своих сайтов.

Одним из ключевых элементов нашей системы является функциональность X, которая обеспечивает мощные возможности по управлению различными типами контента на сайте. Допустим, наш клиент имеет сайт, который содержит раздел «Новости». Используя функциональность X, он может создавать, редактировать и удалять новости без необходимости вмешательства разработчика.

Давайте представим, что наш клиент хочет добавить новость о последнем проекте компании. Он входит в систему управления веб-контентом, переходит в раздел «Новости» и кликает на кнопку «Добавить новость». Открывается форма, где клиент может заполнить заголовок, текст и выбрать изображение для новости. После заполнения формы и нажатия кнопки «Сохранить», новость автоматически появляется на сайте.

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

Таким образом, наша функциональность X значительно упрощает процесс управления содержимым веб-сайта, позволяя клиентам быстро и легко вносить изменения без привлечения разработчиков. Это экономит время и упрощает процесс обновления сайта.

Пример использования X Преимущества
Добавление новостей Клиенты могут самостоятельно добавлять новости без помощи разработчика
Редактирование новостей Клиенты могут быстро внести изменения в уже опубликованные новости
Удаление новостей Клиенты могут удалить неактуальные или ошибочные новости в одно нажатие

Свойства линейной функции

Область определения функции — множество всех действительных чисел.

Множеством значений функции является множество всех действительных чисел.

График линейной функции — прямая. Для построения прямой достаточно знать две точки. Положение прямой на координатной плоскости зависит от значений коэффициентов k и b.

Функция не имеет ни наибольшего, ни наименьшего значений.

Четность и нечетность линейной функции зависят от значений коэффициентов k и b:

b ≠ 0, k = 0, значит, y = b — четная;

b = 0, k ≠ 0, значит, y = kx — нечетная;

b ≠ 0, k ≠ 0, значит, y = kx + b — функция общего вида;

b = 0, k = 0, значит, y = 0— как четная, так и нечетная функция.

Свойством периодичности линейная функция не обладает, потому что ее спектр непрерывен.

График функции пересекает оси координат:

ось абсцисс ОХ — в точке (−b/k; 0);

ось ординат OY — в точке (0; b).

x = −b/k — является нулем функции.

Если b = 0 и k = 0, то функция y = 0 обращается в ноль при любом значении переменной х.

Если b ≠ 0 и k = 0, то функция y = b не обращается в нуль ни при каких значениях переменной х.

Функция монотонно возрастает на области определения при k > 0 и монотонно убывает при k 0 функция принимает отрицательные значения на промежутке (−∞; −b/k) и положительные значения на промежутке (−b/k; +∞).

При k 0, то этот угол острый, если k

sizeof

В си есть оператор, который позволяет получить размер переменной в байтах.
sizeof переменная, или sizeof(переменная) или sizeof(тип). Это именно оператор, потому что функция не имеет возможности получить информацию о размере типов
во время выполнения приложения.
Напишем небольшую программу чтобы удостовериться в размерах переменных.

#include<conio.h>
#include<stdio.h>

int main() {
	char c;
	short s;
	int i;
	long l;
	long long L;

	//Вызов sizeof как "функции"
	printf("sizeof(char)  = %d\n", sizeof(c));
	printf("sizeof(short) = %d\n", sizeof(s));
	printf("sizeof(int)   = %d\n", sizeof(i));
	printf("sizeof(long)  = %d\n", sizeof(l));
	printf("sizeof(long long) = %d\n", sizeof(L));

	//Вызов как оператора
	printf("sizeof(char)  = %d\n", sizeof c);
	printf("sizeof(short) = %d\n", sizeof s);
	printf("sizeof(int)   = %d\n", sizeof i);
	printf("sizeof(long)  = %d\n", sizeof l);
	printf("sizeof(long long) = %d\n", sizeof L);
	
	_getch();
}

(Я думаю ясно, что переменные могут иметь любое валидное имя). Эту программу можно было написать и проще

#include<conio.h>
#include<stdio.h>

int main() {

	printf("sizeof(char)  = %d\n", sizeof(char));
	printf("sizeof(short) = %d\n", sizeof(short));
	printf("sizeof(int)   = %d\n", sizeof(int));
	printf("sizeof(long)  = %d\n", sizeof(long));
	printf("sizeof(long long) = %d\n", sizeof(long long));
	//нельзя произвести вызов sizeof как оператора для имени типа
	//sizeof int - ошибка компиляции

	_getch();
}

В си один и тот же тип может иметь несколько названий
short === short int
long === long int
long long === long long int
unsigned int === unsigned

Литералы

В Python есть несколько типов литералов:

Числовые литералы

Числовые литералы неизменяемы (в Python это называется immutable). Они могут принадлежать к 3 числовым типам: , , и .

Вывод:

10 100 200 30010,5 150,03,14j 3,14 0,0

В приведенной выше программе:

  • Мы присвоили целочисленные литералы различным переменным. — двоичный литерал, — десятичный литерал, является восьмеричным литералом, а — шестнадцатеричным.
  • Когда мы выводим переменные на экран с помощью функции , все литералы преобразуются в десятичные значения.
  • и — литералы с плавающей запятой (они же вещественные). — это просто экспоненциальная запись числа .
  • Мы присвоили комплексный литерал переменной . Затем мы использовали мнимый литерал и действительный литерал для создания мнимой и действительной частей комплексных чисел.

Строковые литералы

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

Вывод:

Это PythonCЭто многострочная строка.Ünicödeсырая \n строка

В приведенной выше программе:

  • является строковым литералом, а — символьным литералом.
  • Значение в тройных кавычках , присвоенное является многострочным строковым литералом.
  • Строка —  это unicode-литерал, который поддерживает символы, отличные от английских. — это Ü, а — ö.
  • — сырая, то есть необработанная строка.

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

Логический литерал может иметь одно из двух значений: или .

Вывод:

x: Truey: Falsea: 5b: 10

В приведенной выше программе мы используем логические литералы и . В Python равно значению , а — . Значение переменной — , потому что равно . А значение — , поскольку не равно .

Точно так же мы можем использовать и в числовых выражениях в качестве значения (1 и 0 соответственно). Значение = 5, потому что мы к 4 прибавляем , которое равно 1. Точно так же = 10, поскольку к 10 мы прибавляем , которое равно 0.

Специальные литералы

В Python есть только один специальный литерал — . Он указывает на отсутствие значения.

Вывод:

В наличииNone

В приведенной выше программе мы написали функцию . Внутри этой функции печатается сообщение «В наличии», если переданный аргумент равен . Если аргумент равен , выведется .

Литералы-коллекции

В Python четыре различных литералов-коллекций: литералы списка, литералы кортежа, литералы словаря и литералы множества.

Вывод:

(1, 2, 3){'а' : 'арбуз', 'б' : 'баран', 'в' : 'ворон'}{'а', 'е', 'и' , 'о', 'у', 'ы', 'э', 'ю', 'я' }

В приведенной выше программе мы создали список (фрукты), кортеж (числа), словарь (алфавит) и множество (гласные звуки).

Переменные в C++

Теперь попробуем создать свои переменные.

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

Код Как читается
int x; Объявить целочисленную переменную x без значения.

Так создаётся переменная без значения. Если вы хотите, чтобы в ней сразу было какое-то число, то нужно использовать знак присваивания (=):

Код Как читается
int y = 5; Объявить целочисленную переменную y со значением 5.

Теперь в любое время можно менять значения переменных:

Код Как читается
x = 6; Присвоить переменной x значение 6.

Математический знак равенства (=) в программировании называется знаком присваивания.

Важно! Указывать тип данных нужно только при объявлении переменной.

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

Внимательно прочтите этот код, а потом скомпилируйте и запустите программу:

Применение икс и игрек в практике математики для детей 2 класса

Понимание и использование символов икс и игрек — одни из основных навыков, которые дети учат во втором классе математики. Эти символы используются для обозначения неизвестных чисел или переменных в уравнениях и выражениях. Вместе с числами и арифметическими знаками, икс и игрек играют важную роль в развитии математического мышления и логического мышления у детей.

Второклассники начинают знакомиться с идеей переменных через простые математические примеры. Например, в уравнении «х + 5 = 10» дети должны вычислить, что значение икса равно 5, потому что икс — это неизвестное число, которое прибавлено к 5 даёт 10. Это помогает детям понять, что буквенные символы могут представлять числа и служить для нахождения решений уравнений и задач.

Икс и игрек также используются для обозначения координат и точек на координатной плоскости. Дети учатся читать и писать координаты точек в формате (x, y), где x — это горизонтальное положение, а y — вертикальное положение точки на плоскости. Это помогает детям понять, как располагать и перемещать объекты в пространстве и решать геометрические задачи.

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

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

Общие сведения

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

Однако аргументы необходимо также обследовать, поскольку они могут обратить тождество в пустое множество. Одним из таких примеров является функция у = к / х. Ее аргумент x может принимать любые значения, кроме 0. Именно это число превращает уравнение в неопределенность, поскольку в математике существует следующее правило: запрещается делить на 0.

Следует отметить, что существует функция y = k/x и ее график — кривая, имеющая название гипербола. Многие путают его с параболой (в степени 2). Однако она является квадратичной. График строится в системе координат, которая называется декартовой. Кроме того, в математике встречается еще одно уравнение вида y = кх. Ее графиком является прямая.

Прямоугольная система координат

В математике существуют специальные инструменты для построения графиков функций. Одним из них считается распространенная прямоугольная система координат. Она может быть на плоскости и в пространстве. Поскольку y = k/x и y = kx являются элементарными, то для иллюстрации их графиков используется однородная прямоугольная декартовая система координат (рис. 1), элементом которой является точка.

Для декартовой системы на плоскости имеется только две координаты: по взаимно перпендикулярным осям ординат (ОУ) и абсцисс (ОХ). Они пересекаются в некоторой точке О, которая называется началом координат.

Рисунок 1. Прямоугольная декартова система координат (ДСК).

При указании координат нужно учитывать четверть. От нее зависит знак. Оси ординат (игрек) и абсцисс (икс) делят систему на четыре четверти. Они обозначаются римскими цифрами (рис. 1) и имеют такие свойства:

  • Первая — I: координаты x и y являются положительными числами, т. е. x > 0 и y > 0.
  • II: x < 0 и y > 0.
  • III: x < 0 и y < 0.
  • IV: x > 0 и y < 0.

Базовыми знаниями являются правильное нахождение координат произвольной точки и их запись. Например, на рисунке 1 нужно найти координаты С. Их нужно искать по следующему алгоритму:

  • Опустить из точки перпендикуляры на ОУ и ОХ: b и a соответственно.
  • Найти координаты по х и у (размерность шкалы деления осей нужно задавать при построении ДСК): B и С соответственно.
  • Записать значения: C(В;С).

Допускается задавать одну шкалу в одних единицах, а вторую — в других. Например, при построении графика y = 100x можно задавать х в виде единичных значений, а вот уже у будут исчисляться сотнями. Чтобы приступать к дальнейшему изучению материала, математики рекомендуют потренироваться в нахождении координат любых точек.

Коэффициент пропорциональности

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

Прямой пропорциональностью называется некоторая линейная функция вида y = kx, в которой аргументом является х, а к — коэффициент прямой пропорциональности. Иными словами, произведение к на аргумент x есть величина, определяющая прямую пропорциональную зависимость одной величины от другой. Обратной пропорциональностью называется некоторая функция вида y = k/x, значение аргумента которой никогда не равно нулю.

Графиком линейной функции вида y = kx является прямая, проходящая через начало координат в точке О(0;0). От к зависит угол наклона прямой. Если к > 0, то он является острым, т. е. его значение меньше 90 градусов. При к < 0 угол наклона больше 90 градусов (тупой).

Для обратной пропорциональности, заданной уравнением у = к / х, значение коэффициента влияет на расположение гиперболы в четвертях ДСК. Если к > 0, то она располагается в I и III. Когда к < 0, тогда ее расположение заключено во II и IV четвертях.

Гипербола и обратная пропорциональность

Ранее мы уже строили графики . Однако мы рассматривали только случаи, при которых показателем в степени являлось натуральное число. Теперь же изучим функцию у = х– 1. Напомним, что по определению отрицательной степени

Найдем область определения функции у = 1/х. Ясно, что аргумент не может равняться нулю, так как иначе получим деление на ноль:

у(0) = 1:0

При любых других значениях х значение у вычислить можно, а потому областью определения будет промежуток (– ∞; 0)⋃(0;+ ∞).

При положительных значениях аргумента ф-ция также будет положительной:

у(5) = 1:5 = 0,2

у(2) = 1:2 = 0,5

у(10) = 1:10 = 0,1

При отрицательных х величина у будет становиться отрицательной:

у(– 5) = 1:(– 5) = – 0,2

у(– 2) = 1:(– 2) = – 0,5

у(– 10) = 1:(– 10) = – 0,1

Это означает, что график ф-ции будет располагаться в I и III четвертях.

Можно заметить, что чем больше х, тем ближе у к нулю:

у(1) = 1

у(10) = 0,1

у(100) = 0,01

И наоборот, чем ближе х к нулю, тем больше у:

у(0,1) = 1:0,1 = 10

у(0,01) = 100

у (0,001) = 1000

При этом у не может равняться нулю. Действительно, дробь равна нулю только тогда, когда ее числитель равен нулю. Однако варьируя х, мы меняем только знаменатель, а в числителе остается единица. Поэтому областью значений функции у = х– 1 является промежуток (– ∞; 0)⋃(0;+ ∞).

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

Теперь можно посмотреть и на сам график:

Первое, что бросается в глаза – это то, что график не представляет собой единую, непрерывную линию. Он разбит на две ветви, одна из которых располагается в III четверти, а другая – в I четверти. Такой «разрыв» связан с тем, что ноль не входит в область определения ф-ции.

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

Построенный нами график называется гиперболой.

На координатной плоскости есть две прямые линии, к которым гипербола приближается, но при этом он не касается их. Это оси Ох и Оу. Для наглядности покажем их штриховой линией:

В математике подобные линии называют асимптотами функции. Горизонтальная асимптота прямая соответствует линии х = 0, а вертикальная асимптота линии у = 0.

Зная, как выглядит график у = 1/х, мы можем построить и другие, схожие с ним графики для ф-ций у = k/х, где k– это некоторое число. Их можно получить из гиперболы, используя сжатие и растяжение графиков. Если коэффициент k больше единицы, то график «отдаляется» от осей Ох и Оу:

Все эти линии являются примерами гипербол. Если коэффициент k отрицательный, то графики переворачиваются относительно оси Ох и занимают II и IV четверти:

Все приведенные зависимости вида у = k/х называют обратными пропорциональностями.

Примерами обратной пропорциональности являются ф-ции:

Обратная пропорциональность очень часто встречается в жизни. Так, время, затрачиваемое на поездку на автомобиле, обратно пропорционально средней скорости движения. Количество товара, которое можно купить на одну зарплату, обратно пропорционально стоимости этого товара.

Математические символы в LaTeX

LaTeX — это система компьютерной вёрстки, которая специализирована на создании качественных документов научной тематики, включая математические формулы.

В LaTeX доступно множество математических символов, которые помогают в создании полноценных формул и уравнений. Эти символы разделены на несколько категорий:

  • греческие буквы;
  • операторы и функции;
  • скобки и символы группировки;
  • индексы и верхние индексы;
  • другие символы (например, стрелки, матрицы, интегралы и др.).

Для того, чтобы использовать математические символы в LaTeX, предусмотрены специальные команды. Например, чтобы ввести греческую букву α (альфа), необходимо написать символ \alpha.

В LaTeX также есть возможность использовать систему разметки для обозначения математических формул. Для того, чтобы выделить формулу, нужно использовать символы $ и $ или \. Например:

Пример:

Формула на одной строке: $x^2 + y^2 = r^2$

Формула на нескольких строках:

\[

\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}

\]

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

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

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

Понравилась статья? Поделиться с друзьями:
Бронивиль
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: