
- •Какую ide(Среду разработки) выбрать?
- •3) Символьная переменная — char.
- •4) Логическая переменная — bool
- •1) Вывод
- •1) Ввод
- •1)Стандартные математические операции,
- •2)Бинарные операции,
- •2) Бинарные операции, продолжение
- •1) Sqrt(a)
- •3) Fmod(a,b)
- •2) While
- •2) Создание функции.
- •3) Функция для перевода из 10-ой системы счисления в k-ую.
- •Поделиться в соц. Сетях
- •Имя файла:
- •Поделиться в соц. Сетях Структуры данных. Стек
- •1) Сокращение выражений:
- •2) Инкремент, декремент
- •3) Считывание переменных в цикле
- •Поделиться в соц. Сетях
1) Sqrt(a)
Нахождение квадратного корня числа a. Вы любите комплексные числа? sqrt тоже, поэтому не задавайте ему отрицательные числа. Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
int x1, y1, x2, y2; //координаты двух точек на плоскости int a, b; // катеты образованного точками треугольника double distance, number; //расстояние между A (x1, y1) и B (x2, y2), сумма квадратов катетов cin >> x1 >> y1 >> x2 >> y2; //ввод a = x1 - x2; b = y1 - y2; //находим длину катетов number = a*a + b*b; //складываем квадраты катетов distance = sqrt (number); //теперь, следуя теореме Пифагора, находим квадратный корень cout.precision (5); //задаем компилятору сколько знаков после плавающей точки нужно вывести cout << fixed << distance; //precision будет работать только если в начале cout-а вы напишите fixed |
Ну и картинка для лучшего понимания:
Желательно
чтобы в операции a=sqrt(b) обе
переменные были вещественными, используя
другие виды переменных возможно
получить ошибку
компиляции или неверное
решение.
2) pow(a,b)
Ставит a в степень b. Опять таки лучше чтобы все хранилось в вещественном типе, кстати pow можно использовать как sqrt, приравняв b к 0,5. Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
double a; //a - первый элемент геометрической последовательности
double d; //чтобы получить n-ый по счету элемент последовательности //нужно умножить (n-1)-ый элемент последовательности на d
double n; //n - какой элемент геометрической последовательности нужно вывести
double answer; //answer - наш ответ
cin >> a >> d >> n; //ввод
answer = a * pow (d, n - 1); //находим ответ
cout.precision (5); cout << fixed << answer; //вывод |
Опять картинка:
3) Fmod(a,b)
Возвращает a%b, разница с обычным модом в том, что этот предназначен специально для вещественных чисел. Пример:
1 2 3 4 5 6 7 8 9 |
double a, b;
cin >> a >> b; //создаем, затем вводим a и b
cout.precision(5);
cout << fixed << fmod (a, b); //выводим ответ |
Теперь тригонометрические функции, т.е косинусы, синусы, тангенсы и их арк-версии, ВНИМАНИЕ, в С++ используются не градусы а радианы. Универсальная формула:
1) cos(a) - возвращает cos угла, заданного в радианах; 2) sin(a) - возвращает cos угла, заданного в радианах; 3) tan(a) - возвращает cos угла, заданного в радианах; 4) acos(a) - возвращает угол в радианах из cos; 5) asin(a) - возвращает угол в радианах из sin; 6) atan(a) - возвращает угол в радианах из tan;
Немного кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# include <iostream> # include <cmath>
using namespace std;
int main() {
const double PI = 3.14; double degrees, radians;
cin >> degrees; // cin >> radians;
radians = (PI * degrees) / 180; // degrees = (radians * 180) / PI;
cout.precision(5);
cout << fixed << "Cos of angle " << degrees << " is equal to: " ; cout << fixed << cos(radians) << "\n";
cout << fixed << "Sin of angle " << degrees << " is equal to: " ; cout << fixed << sin(radians) << "\n";
cout << fixed << "Tan of angle " << degrees << " is equal to: " ; cout << fixed << tan(radians) << "\n";
system ("pause");
return 0; } |
Программе задается угол в градусах или радианах (для этого замените строку на комментарий под ней), и она выдает тригонометрические функции от этого угла.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# include <iostream> # include <cmath>
using namespace std;
int main() {
const double PI = 3.14; double result, arc_cos_rad, arc_sin_rad, arc_tan_rad, arc_cos_deg, arc_sin_deg, arc_tan_deg;
cin >> result;
arc_cos_rad = acos (result); arc_sin_rad = asin (result); arc_tan_rad = atan (result);
arc_cos_deg = (arc_cos_rad * 180) / PI; arc_sin_deg = (arc_sin_rad * 180) / PI; arc_tan_deg = (arc_tan_rad * 180) / PI;
cout.precision(5);
cout << fixed << "Arccos of trigonometric functions in radians: " << arc_cos_rad << "\n"; cout << fixed << "Arcsin of trigonometric functions in radians: " << arc_sin_rad << "\n"; cout << fixed << "Arctan of trigonometric functions in radians: " << arc_tan_rad << "\n";
cout << fixed << "Arccos of trigonometric functions in degrees: " << arc_cos_deg << "\n"; cout << fixed << "Arcsin of trigonometric functions in degrees: " << arc_sin_deg << "\n"; cout << fixed << "Arctan of trigonometric functions in degrees: " << arc_tan_deg << "\n";
system ("pause");
return 0; } |
Программе задается тригонометрическая функция, и она выдает их арк-функции в радианах и градусах.
Мне кажется, что комментарии к коду излишни, так как все должно быть понятно даже при беглом просмотре.
На этой ноте мы и закончим, все, до скорого!
C++. Урок 6. Условный оператор if
Опубликовано 02.11.2012 автором admin
Всем привет! Хочу извиниться за долгое отсутствие, навалило дел. Теперь в блоге будут выкладываться интересные алгоритмы, а предыдущие уроки теперь доступны по ссылке.
Итак, темой урока будет условный оператор if.
If имеет примерно следующую структуру:
Тоже самое, но в словах:
Если заданное условие верно, то выполнить функцию1, в остальных случаях выполнить функцию2.
Теперь примерный код:
1 2 3 4 5 6 7 8 |
if (условие == true) // если условие верно { функция1; // выполнить функцию1 } else // в остальных случаях { функция2; // выполнить функцию2 } |
Как вы видите условие пишется после if-а в круглых скобках.
Для else мы только задаем функции, которые нужно выполнить.
Все функции находящиеся между двумя фигурными скобками будут выполнены, если условие сработало (если скобок нет, то будет выполнена лишь следующая функция).
ВНИМАНИЕ! else писать необязательно:
1 2 3 4 |
if (условие == true) // если условие верно { функция1; // выполнить функцию1 } |
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
# include <iostream> using namespace std; int main () { int n; // создаем переменную cin >> n; // вводим ее if (n % 2 == 0) // если число без остатка делится на 2 cout << "The number is even \n"; // говорим, что число четное else // в остальных случаях cout << "The number is odd \n"; // говорим, что число нечетное system ("pause"); // пауза return 0; // завершение работы программы } |
ЗАПОМНИТЕ! Два знака равно «==» обозначают сравнение двух переменных, а одно равно «=» — операцию присваивания.
Помимо сравнения двух переменных (==) существуют другие условные операторы:
1) «==, !=, >, <. >=, <=», что значит «равно, неравно, больше, меньше, больше или равно, меньше или равно» соответственно. Пример:
1 2 3 4 5 6 7 |
if (a == b) cout << "a is equal to b \n"; if (a != b) cout << "a is not equal to b \n"; if (a > b) cout << "a is bigger than b \n"; if (a < b) cout << "a is less than b \n"; if (a >= b) cout << "a is bigger or equal to b \n"; if (a <= b) cout << "a is less or equal to b \n"; // думаю комментарии излишни |
2) &&, что означает «и». Пример:
1 2 3 4 5 6 7 |
if ( int(symbol) >= int('a') && int(symbol) <= int('z')) cout << "Your character is letter \n"; /* если ASCII код символа находится между кодами символов 'a' и 'z', то сообщить о том, что символ является буквой */ else cout << "Your character isn't letter \n"; // в остальных случаях сообщить об обратном |
3) ||, что означает «или». Пример:
1 2 3 4 5 6 |
if (url == "google.ru" || url == "ya.ru") cout << Your url is url of the search engine \n"; /* если url принадлежит google или yandex, то сообщаем, что это - поисковик */ else cout << "There's no search engine with this url \n"; // в остальных случаях выдаем ошибку |
4) побитовые операции, подробнее о них здесь.
На длину условия и количество операций ограничений нет (ну, практически нет). Также условия можно комбинировать и разбивать с помощь круглых скобок «()».
Ну и напоследок, программа для определения високосности года:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
# include <iostream> using namespace std; int main() { cin >> year; if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) cout << "Leap year! \n"; else cout << "Not leap year! \n"; system("pause"); return 0; } |
Год является високосным, если он делится без остатка на 400, или же делится без остатка на 4, но не делится на 100. Что наша программа и делает.
Если нашли ошибку или хотите улучшить статью — пишите комментарии. Вопросы по статье и предложения насчет темы для следующих уроков туда же. Спасибо за прочтение, надеюсь было полезно и интересно
C++. Урок 7. Циклы
Опубликовано 07.11.2012 автором admin
Всем привет! Сегодня наша тема — Циклы. Нет, даже так ЦИКЛЫ! Тема не сложная, но тем не менееочень важная.
Предыдущие уроки доступны по ссылке.
И так, что же такое цикл? Циклы — это повторяющаяся последовательность некоторых событий.Например:
Смена дня и ночи — цикл суток;
Смена времен года — цикл сезонов;
Цикады вылезающие на свет каждые 17 лет — это тоже некий цикл;
Огромное количество циклов, вот из чего состоит мир…
Извиняюсь, отвлекся. Теперь о программировании. Цикл — это выполнение неких функций и операций до тех пор пока некое условие выполняется.
Циклы есть двух категорий:
1) for
for — это цикл состоящий из 3 стадий:
1 стадия: будет выполнена ровно один раз, и в самую первую очередь. Обычно там инициализируют(т.е создают) переменные.
2 стадия: условие. Будет проверятся каждый такт цикла(т.е каждый раз, когда цикл закончился и теперь собирается начаться заново).
3 стадия: будет выполнятся после того, как завершится такт цикла, но перед тем, как цикл запустится заново.
В for эти стадии разделяются точкой-запятой `;`. Причем они(стадии) могут быть как и пустыми, так и заполненные огромным количеством данных. Вот сам синтаксис:
1 2 3 4 5 6 7 |
for (стадия_1; стадия_2; стадия_3) { функция_1; операция_1; ... и так далее } |
Стадия 1 состоит из любых функций, операций и всего прочего, т.е синтаксис стандартный, за исключением того, что в качестве разделителя будет выступать запятая `,`, а не точка-запятая `;`.
У 2-ой стадии синтаксис такой же, как и у if-а, исключений и особых правил нет.
Третья стадия идентична первой.
Пример использования цикла for:
1 2 3 4 5 6 |
int n; cin >> n; for (int i = 1; i <= n; i = i + 1) cout << i << " "; |
В 1-ой стадии мы инициализируем переменную i. Она будет доступна только внутри цикла. После завершения цикла компилятор не будет хранить значение переменной.
Во 2-ой стадии мы задаем программе условие — пока i меньше или равно n цикл не прерывать, т.е произойдет ровно n тактов(или, как более правильно итераций).
В третьей стадии мы увеличиваем переменную i на 1.