[C++] [Уроки от Cool_Story] [Урок №3]
|
|
Cool_Story_Bro=) |
Дата: Вторник, 30.10.2012, 14:00 | Сообщение # 1
|
Любитель
Сообщений: 49
Статус: Offline
|
Урок №3
Итак, сегодня мы создадим нашу вторую полноценную программу "калькулятор". Соответственно, вот её код:
[ОТРЕДАКТИРОВАННО] Code #include <iostream> using namespace std;
int main() { setlocale(LC_ALL,"Russian"); float a,c; // Объявляем "дробные" либо целые перемнные char b; // Объявляем "символьную" переменную cout << "Введите пример: "; cin >> a >> b >> c; if (b == '+') cout << "Сумма чисел = " << a+c << endl; else if (b == '-') cout << "Разность чисел = " << a-c << endl; else if (b == '*') cout << "Произведение чисел = " << a*c << endl; else if (b == '/') { if (c) cout << "Деление чисел = " << a/c << endl; else cout << "Деление на ноль недопустимо" << endl; } else { cout << "Проверьте правильность введённых данных" << endl; } system("pause"); return 0; }
Теперь более подробное описание строк кода: 1.Цикл for - полноценно, он бы выглядел следующим образом - Code for(переменная = "" ; условие ; действие ) // Например for(i = 0; i < 10; i++) // Переменнпя i принимает значение = 1 // Если i < 10 то i++ // Иначе, если i > 10 то выходим из цикла
2. Char - Здесь ничего особенного нет, мы просто объявляем символьную переменную. Т.е. содержащую 1 символ. Если же мы хотим в "будущем" поместить в неё строку, то мы объявим её следующим образом - [20] - максимальное кол-во символов. Вместо 20 может быть сколько угодно.
3. Ввод сразу нескольких чисел - То-есть, мы должны будем ввести, например - "1+2" и программа считает сначала все числа до символа, затем все числа после символа и выведет результат. Например, мы можем ввести - "100+43", но не можем ввести "100+43-2". Скомплимировав данную программу, вам будет намного легче понять, как она работает.
4. Проверка "правильности" - Code if (c) cout << "Деление чисел = " << a/c << endl; else cout << "Деление на ноль недопустимо" << endl; В строке: Code if (c) cout << "Деление чисел = " << a/c << endl; Мы проверяем правильность числа 'c'. Как мы знаем, на ноль делить нельзя и при попытке деления, программа выдаст ошибку. Следовательно, если мы введём 0, то программа выполнит следующий фрагмент кода - Code else cout << "Деление на ноль недопустимо" << endl; Ну впринципе, всё остальное должно быть Вам понятно. Переходим далее...
Циклы.
Циклы бывают 3 видов:
1. Code do { //тело цикла } while( условие, при котором выполняется тело цикла ) 2. Code while(условие, при котором выполняется тело цикла ) { //тело цикла } 3. Code for(переменная; условие; действие) { //тело цикла }
Чем же они отличаются друг от друга ? В 1 цикле, изначально выполняется тело цикла, затем сверяется условие, и если оно неверно, то мы выходим из цикла. Во 2 цикле, изначально проверяется условие, и если оно верно, то выполняется тело цикла. 3 цикл значительно сложнее в изучении, нежели 1 и 2. В условии данного цикла, переменная принимает значение, "проходит" через условие и принимает соответственное значение. Только лишь после всего этого, выполняется тело цикла.
Пример №1 ( выводит числа от 1 до 9 ) - Code #include <iostream> using namespace std;
int main() { setlocale(LC_ALL,"Russian"); int i = 1; do { cout << i << " "; i++; } while(i < 10); system("pause"); return 0; }
Пример №2 ( выводит числа от 1 до 4 ) - Code #include <iostream> using namespace std;
int main() { setlocale(LC_ALL,"Russian"); int i = 1; while(i < 5) { cout << i << " "; i++; } system("pause"); return 0; }
Пример №3 ( выводит числа от 20 до 2 ) - Code #include <iostream> using namespace std;
int main() { setlocale(LC_ALL,"Russian"); int i; for(i=20; i > 1; i--) cout << i << " "; system("pause"); return 0; }
______________________________________
Поэкспериментируйте с циклами. Только читая, Вы никогда не освоите язык программирования. Всё познаётся на практике, но и теория не помешает) В след.уроке возможно рассмотрим массивы и строки.
1 урок - http://cheat-master.ru/forum/118-37516-1 2 урок - http://cheat-master.ru/forum/118-37529-1
Сообщение отредактировал Cool_Story_Bro=) - Пятница, 02.11.2012, 10:55 |
|
|
|
alex3931 |
Дата: Вторник, 30.10.2012, 19:25 | Сообщение # 2
|
Боец
Сообщений: 129
Статус: Offline
|
Можно еще было сделать возведение в степени
Пишу софт на заказ.Скайп sprilt
|
|
|
|
EnD1ZeR |
Дата: Вторник, 30.10.2012, 19:57 | Сообщение # 3
|
Дизель
Сообщений: 137
Статус: Offline
|
Quote (alex3931) Можно еще было сделать возведение в степени даладно? можно сделать все математические вычисления как бэ
C:
|
|
|
|
Ch0c0Cube |
Дата: Четверг, 01.11.2012, 20:44 | Сообщение # 4
|
Admin
Сообщений: 2486
Статус: Offline
|
Хм, как сделать проверку на вводимые символы? Т.к при вводе букв, программа начинает спам сообщением "Проверьте правильность введенных данных"
|
|
|
|
Cool_Story_Bro=) |
Дата: Пятница, 02.11.2012, 11:02 | Сообщение # 5
|
Любитель
Сообщений: 49
Статус: Offline
|
Quote (|CM|Chocolate) Хм, как сделать проверку на вводимые символы? Т.к при вводе букв, программа начинает спам сообщением "Проверьте правильность введенных данных" Всё из-за цикла. Просто в этой программе, тело цикла будет выполняться бесконечно. И именно из-за этого программа спаммит ошибками, а не выводит её один раз.Добавлено (02.11.2012, 10:56) ---------------------------------------------
Quote (Cool_Story_Bro=)) Всё из-за цикла. Просто в этой программе, тело цикла будет выполняться бесконечно. И именно из-за этого программа спаммит ошибками, а не выводит её один раз. Проще говоря, программа получилась - "зацикленная". И в этом моя ошибка. Отредактировал код программы.Добавлено (02.11.2012, 11:02) --------------------------------------------- И ещё... Сегодня не успеваю написать урок, так-что напишу его завтра. Возможно, попытаюсь рассказать про указатели, закончим со строками и как всегда повторим пройденный материал. Sorry za zaderzhky
Сообщение отредактировал Cool_Story_Bro=) - Пятница, 02.11.2012, 10:52 |
|
|
|