[C++] [Уроки от Cool_Story] [Урок №3] - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
[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(;;)

полноценно, он бы выглядел следующим образом -
Code
for(переменная = "" ; условие ; действие )
// Например
for(i = 0; i < 10; i++)
// Переменнпя i принимает значение = 1
// Если i < 10 то i++
// Иначе, если i > 10 то выходим из цикла


2. Char -
Code
char b;

Здесь ничего особенного нет, мы просто объявляем символьную переменную.
Т.е. содержащую 1 символ. Если же мы хотим в "будущем" поместить в неё строку,
то мы объявим её следующим образом -
Code
char b[20];

[20] - максимальное кол-во символов. Вместо 20 может быть сколько угодно.

3. Ввод сразу нескольких чисел -
Code
cin >> a >> b >> c;

То-есть, мы должны будем ввести, например - "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
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
PUPS12124 [02:09]

Bioksit [00:15]

Dafdaf [23:27]

ячеченец [21:00]

balbesbizad [12:02]

cpark [11:40]

Mario_Imperator [11:33]

leonovichstas97 [22:40]

ubeyefudu [18:53]

zheniakuzma [17:47]

Moonberg [16:04]

tamararl6 [15:04]

consuelobm3 [08:03]