[C++] [Уроки от Cool_Story] [Урок №5]
|
|
Cool_Story_Bro=) |
Дата: Четверг, 01.11.2012, 14:30 | Сообщение # 1
|
Любитель
Сообщений: 49
Статус: Offline
|
Урок №5 "Повторение изученного"
Отныне уроки будут иметь немного другой внешний вид и включать в себя больше информации. Итак, пожалуй начнём. ________________________________________________________ [След.информация будет полезна в основном для начинающих] -------------------------------------------------------------------------------------------------- Мы все знаем, что практический любой язык программирования, включает в себя конструкции - Code if (условие) { // действие } else if (условие) { // действие } else (условие) { // действие } Примечание: фигурные скобки нужны лишь тогда, когда тело конструкции будет включать в себя несколько действий. В иных случаях, фигурные скобки можно "опустить". Например - Code if (a>5) { a--; cout << "A = " << a << endl; } else cout << "A меньше 5" << endl; Переведём код на "понятный нам всем язык" - Code Если (a больше 5) то // действия Иначе, действия
Думаю, насчёт - "if , else, else if и т.д.", Вам всё понятно. Переходим далее... _________________________________________________ В некоторых случаях, условные конструкции можно заменить следующим образом - Фрагмент кода программы Code int a; cout << "Введите a: "; cin >> a;
switch(a) { case 1: // если переменная 'a' = 1 cout << "A = 1" << endl; break; // выходим из кейса case 2: cout << "A = 2" << endl; break; default: // если переменная 'a' не равна ни единице, ни двойке cout << "A не равна единице или двойке" << endl; break; // выходим из switch } Что-же такое "switch" ? Так-вот, "switch" - это инструкция многонаправленного ветвления ( то-есть имеет несколько значений так-сказать ). Code switch(a) { // кейсы и т.д. } Конструкция "switch" подобна конструкции "if". Например, данный фрагмент кода - Code int a; cout << "Введите a: "; cin >> a;
switch(a) { case 1: // если переменная 'a' = 1 cout << "A = 1" << endl; break; // выходим из кейса case 2: cout << "A = 2" << endl; break; default: // если переменная 'a' не равна ни единице, ни двойке cout << "A не равна единице или двойке" << endl; break; // выходим из switch } Можно заменить на - Code int a; cout << "Введите a: "; cin >> a; if (a == 1) cout << "A = 1" << endl; else if (a == 2) cout << "A = 2" << endl; else cout << "A не равна единице или двойке" << endl; Но согласитесь, что с инструкциями "switch" код смотрится намного опрятнее и в нём Вам будет сложнее запутаться, нежели в инструкциях "if", что немало важно. !!А так-же, пример использования символов в кейсе - Code case 'a': // Действие
Переходим далее... _____________________________________________ Теперь, вернёмся к циклам. Итак, надеюсь Вы помните те три их вида, что мы недавно с Вами изучали. Хотя... циклы это не такая-уж и сложная часть, чтобы на ней зацикливаться Да да, именно зацикливаться ( то-есть, повторять до тех пор, пока Вам не станет ясно, или пока условие не станет неверно ). Ладно, идём дальше... _____________________________________________ Что такое такое массивы ? Мы уже отвечали на данный вопрос, но сейчас копнём, так-сказать глубже. Представьте себе обычную коробку. Допустим она может вместить в себя десять яблок. На каждом яблоке имеется наклейка с его номером ( от 0 до 9 ). Вот так будет выглядить эта пустая коробка - Теперь начнём поочерёдно загружать в неё яблоки - Code int t; for(t = 0; t < 10; t++) box[i]=t; // Погружаем яблоки, до тех пор, пока наша коробка не заполнится ( box[0] будет с номером 0 ) Теперь, допустим мы их привезли на склад и должны выгрузить - Code for(t = 0; t < 10; t++) cout << box[t] << endl; На экране это будет выглядеть след.образом - Теперь, когда мы выгрузили яблоки, их не помешало-бы отсортировать, но в нашем случае они уже отсортированы. Самый простой и понятный для новичков метов сортировки массива - "Метод пузырьковой сортировки". О нём, Вы сможете почитать в интернете, так-как там слишком много придётся объяснять.
С массивами на данный момент - всё. Идём далее... ________________________________________________ Новая функция - "rand()". Думаю по названию уже стало понятно, что это способ получить "рандомное" число, ну или - случайное. Например - Но для её использования, необходимо подключить следующую библиотеку ( то-есть дописать в инклуды ) - Но если мы не зададим интервал для "rand()", то мы получим очень большое число, которое мало кого устроит . Так вот, чтобы задать интервал, мы должна дописать - Code int a - rand()%10+1 // Случайное число от 1 до 10 Ну в принципе всё, идём далее... _________________________________________________ Как и обещал, рассмотрим функции со строками. Для начала ко всем инклудам мы должны добавить - Все видов функций немного и сегодня мы разберём две из них. 1 - "strcpy()". Что-же это такое ? Общий формат вызоа данной функции таков - Code strcpy(stroka1, stroka2); // Вместо stroka1 и stroka2 должны быть Ваши объявленные переменные/ массивы... Функция "strcpy()" копирует содержимое строки "stroka2" в строку "stroka1". Вот пример программы с её использованием - Code #include <iostream> #include <cstring> using namespace std;
int main() { char str[100]; // Объявляем символьный массив strcpy(str, "World"); // Копируем в наш массив, строку - "World" cout << str; // Выводим на экран наш массив, то-есть строку - "World" return 0; } Думаю принцип понятен, переходим ко второй функции.
2 - "strcat()". Функция "strcat()" присоединяет вторую строку к концу первой, при этом вторая строка не изменяется. Пример программы - Code #include <iostream> #include <cstring> using namespace std;
int main() { char str1[30], str2[30]; // Объявляем символьный массив strcpy(str1, "Hello"); // Копируем в первый наш массив, строку - "Hello" strcpy(str2, " World"); // Копируем во второй наш массив, строку - " World" strcat(str1, str2); // Присоединяем " World" к "Hello". cout << str1; // Выводим на экран понлноценную строку - "Hello World" return 0; }
Функции со строками достаточно лёгкие, так-что думаю не стоит их так уплотнённо разбирать. Одного - два примера вполне достаточно для начала. И на этом мы заканчиваем 5 урок...
_________________________________________________ Домашнее задание: 1) Написать свою программу, с использованием "switch", которая при вводе буквы, выводит слово, начинающееся на эту букву. Программа в действии - Code Введите букву: а Слово на эту букву: Апельсин И соответственно выложить код в эту тему. 2) Написать программу - "угадай число", с использованием функции - "rand()" Программа в действии - Code Ваше число: 3 Неверно! Ваше число: 5 Правильно! Я не спорю, что Вы сможете найти готовые коды программ на просторах интернета, или вовсе проигнорировать это задание. Но помните, что Вы это делаете не для меня, а для себя в первую очередь... _________ The End !
Добавлено (01.11.2012, 14:30) --------------------------------------------- Ах-да, забыл в конце программ, перед последней фигурной скобкой, перед "return 0", добавить - system("pause"); чтобы программа внезапно не вылетала после её исполнения.
Сообщение отредактировал Cool_Story_Bro=) - Четверг, 01.11.2012, 14:31 |
|
|
|
alex3931 |
Дата: Четверг, 01.11.2012, 15:14 | Сообщение # 2
|
Боец
Сообщений: 129
Статус: Offline
|
Д\З
Пишу софт на заказ.Скайп sprilt
Сообщение отредактировал alex3931 - Четверг, 01.11.2012, 15:30 |
|
|
|
Cool_Story_Bro=) |
Дата: Пятница, 02.11.2012, 12:27 | Сообщение # 3
|
Любитель
Сообщений: 49
Статус: Offline
|
Quote (alex3931) Code #include <iostream> #include <cstdlib> using namespace std;
int main() { setlocale(LC_ALL,"Russian"); int a; int i; - rand()%10+1; cout << "Введите число: "; cin >> a; if (a = i) cout << "Вы угадали!"; else cout << "Неверно!"; system("PAUSE>>null"); return 0; } Следующая программа выдаст ошибку. Почему ? Потому-что в этом фрагменте - Мы должны были сравнить два числа, а не присвоить одно другому, сделующий фрагмент кода будет работать правильно -
А так-же в этом фрагменте есть грубая ошибка - Code int i; - rand()%10+1; Вот так правильно - Code int i; i = rand()%10+1;
И не совсем понимаю эту строчку - Code system("PAUSE>>null"); Почему-бы не написать вот-так -
|
|
|
|
alex3931 |
Дата: Пятница, 02.11.2012, 15:49 | Сообщение # 4
|
Боец
Сообщений: 129
Статус: Offline
|
Почему-бы не написать вот-так - Code system("pause"); Потому что когда включиш программу там будет текст"Для продолжения нажмите любую клавишу" >> Null это убирает
Пишу софт на заказ.Скайп sprilt
|
|
|
|
Pro100Gad |
Дата: Понедельник, 05.11.2012, 23:13 | Сообщение # 5
|
Новичок
Сообщений: 20
Статус: Offline
|
D/z №1 Д/з №2
|
|
|
|
4elovek1 |
Дата: Четверг, 29.11.2012, 21:17 | Сообщение # 6
|
Боец
Сообщений: 83
Статус: Offline
|
Д/З Code #include <conio.h> #include <iostream> #include <clocale>
using namespace std;
int main() { setlocale(LC_ALL,"Russian"); int x; int r; r = rand()%10+1; cout << "Специально для Cheat-Master" << endl; cout << "by 4elovek1" << endl;
cout << "Ваше число" << endl; cin >> x; if (x == r) cout << "Вы угадали" << endl; else cout << "Вы не угадали!" << endl;
_getch(); return 0; }
Второго нет, т.к случаено стер)
|
|
|
|
Ронни1 |
Дата: Пятница, 04.01.2013, 19:05 | Сообщение # 7
|
mdk
Сообщений: 235
Статус: Offline
|
Было б хорошо если б ты рассказал про функцию srand() ,потому что употребление rand() без нее не всегда удобно
---------------------------------------------------------------------------------------------------------------------
скайп man.ronny(нажми на няшку, чтобы добавить меня в скайп)
|
|
|
|
Toplivo |
Дата: Понедельник, 14.01.2013, 18:44 | Сообщение # 8
|
Советник
Сообщений: 728
Статус: Offline
|
1 Код char x; cout << "Введите букву" << endl; cin >> x; switch(x) { case 'a': cout << "Слово на эту букву: апельсин" << endl; break; case 'b': cout << "Слово на эту букву: белка" << endl; break; case 'c': cout << "Слово на эту букву: самокат" << endl; break; case 'd': cout << "Слово на эту букву: дружба" << endl; break; case 'e': cout << "Слово на эту букву: ель" << endl; break; case 'f': cout << "Слово на эту букву: фокус" << endl; break; case 'g': cout << "Слово на эту букву: глина" << endl; break; default: cout << "Допустимые буквы: a-g" << endl; break; }
2.Я чуть-чуть изменил его) Код int a = rand()%10+1; int b; cout << "Угадайте число" << endl; cin >> b; if(b == a) { cout << "Ваше число: " << b << endl; cout << "Правильно " << a << endl; } else { cout << "Ваше число: " << b << endl; cout << "Не верно!Правильный ответ: " << a << endl; }
Дурак дает,умный берет.
Сообщение отредактировал egor7878 - Понедельник, 14.01.2013, 18:51 |
|
|
|
MyCrofon |
Дата: Вторник, 09.07.2013, 15:28 | Сообщение # 9
|
Новичок
Сообщений: 5
Статус: Offline
|
1 код: #include <iostream> using namespace std; int main () { setlocale(LC_ALL,"Russian"); char i; cout <<"Введите букву"<<endl; cin >> i; switch (i) { case 'a': cout <<"Ваше слово: Апельсин"<<endl; break; case 'c': cout <<"Ваше слово: Самолет"<<endl; break; case 'p': cout <<"Ваше слово: Пакетик"<<endl; break; default: cout <<"Неправильно"<<endl; break; } system("pause"); return 0; }
2 код: #include <iostream> #include <cstdlib> using namespace std; int main () { setlocale(LC_ALL,"Russian"); int a; int b; b = rand()%5+1; cout <<"Введите ваше число"<<endl; cin >> a; if(a==b) cout <<"Вы выиграли!"<<endl; else cout <<"Попробуйте еще раз"<<endl; system("pause"); return 0; }
|
|
|
|
heartless_schoolboy |
Дата: Вторник, 09.07.2013, 16:06 | Сообщение # 10
|
Любитель
Сообщений: 42
Статус: Offline
|
Да уж, как в школе, один ошибся, другой списывает и повторяет за ним. Лучше д\з в личку кидать!
|
|
|
|
MyCrofon |
Дата: Вторник, 09.07.2013, 21:35 | Сообщение # 11
|
Новичок
Сообщений: 5
Статус: Offline
|
.А в чем у меня ошибка?
|
|
|
|