[C++] [Уроки от Cool_Story] [Урок №9, Часть №1]
|
|
Cool_Story_Bro=) |
Дата: Пятница, 09.11.2012, 09:58 | Сообщение # 1
|
Любитель
Сообщений: 49
Статус: Offline
|
Урок №9, часть №1 Hard Lesson
Итак. Сегодня будет сложный для понимания урок и соответственно не каждый его поймёт. Начнём.
Повторение.
Прежде всего, хочу напомнить, что переменные бывают двух видов: Глобальные объявляются вне функции ( будь-то main() или любая другая ), а с локальными соответственно всё наоборот и более запутанно. Например, локальная переменная может быть объявлена в цикле for - Code for (int i; i < 5; i++) и она потеряет своё значение, после выхода из цикла.
Указатели.
Ну прежде всего, указатель - это переменная, которая содержит в себе адрес другой переменной. Объявляется она след. образом - Code int *b // Вместо 'b' может быть любая другая переменная Ну в общем, формат объявления указателя таков - С указателями используются лишь два оператора: * и &. Например - Здесь, в переменную a, помещается адрес переменной b. Например, если b = 10, то после выполнения данного фрагмента кода, переменная a тоже станет равна 10.
Рассмотрим небольшую программу - Code #include <iostream> usinf namespace std;
int main() { int a; int *b; int c; a = 100; // Присваиваем значение переменной b = &a; // Помещаем адрес переменной a, в переменную b c = *b; // Присваиваем переменной c, значение a, на которую указывает переменная b. cout << "C = " << c << endl; // Выводим на экран значение переменной c system("pause"); return 0; } Так-вот, при выполнении этой программы получаем вот такой результат -
_______________________________________________________________
На сегодня всё. Завтра напишу вторую часть урока.
Д/z на сегодня: 1) Написать любую программу с использованием указателей; 2) Написать программу, которая будет складывать 3 последних числа в массиве. Например - Code Введите кол-во чисел: 5 Введите 1 число: 2 Введите 2 число: 6 Введите 3 число: 1 Введите 4 число: 8 Введите 5 число: 12 12 + 8 + 1 = 21 Удачи ! _______________________________________________________________ The End
|
|
|
|
alex3931 |
Дата: Пятница, 09.11.2012, 16:39 | Сообщение # 2
|
Боец
Сообщений: 129
Статус: Offline
|
Вот часть кода, дальше не могу додуматя как сложить 3 последних числа Напиши ответ
Пишу софт на заказ.Скайп sprilt
|
|
|
|
Cool_Story_Bro=) |
Дата: Пятница, 09.11.2012, 17:16 | Сообщение # 3
|
Любитель
Сообщений: 49
Статус: Offline
|
alex3931, Вот более-менее качественный код программы. Писал специально для того, чтобы в случае каких-либо затруднений с вашей стороны, выложить его - Code #include <iostream> #include <cstdio> using namespace std;
int main() { setlocale(LC_ALL,"Russian"); int mass[20]; int a,c,d; int b=0; cout << "Введите кол-во чисел: "; cin >> a; // Вводим кол-во чисел) for (int i = 0; i < a; i++) { cout << "[" << i+1 << " число]: "; cin >> mass[i]; // Думаю тут понятно } for (int i = a-3; i < a; i++) { cout << mass[i]; if (i!=(a-1)) cout << " + "; b+=mass[i]; } cout << " = " << b; system("pause>>null"); return 0; } Вот этот фрагмент кода на самостоятельный разбор - Code for (int i = a-3; i < a; i++) { cout << mass[i]; if (i!=(a-1)) cout << " + "; b+=mass[i]; }
Подумай, какую роль в этой программе он играет и по возможности отпишись. Желательно, чтобы ты скомплимировал эту программу у себя. Тогда тебе будет легче понять, как она работает.Добавлено (09.11.2012, 17:16) --------------------------------------------- Если есть какие-либо вопросы, отвечу завтра. Сегодня времени нет.
|
|
|
|
alex3931 |
Дата: Пятница, 09.11.2012, 17:44 | Сообщение # 4
|
Боец
Сообщений: 129
Статус: Offline
|
что означает эта строчка Добавлено (09.11.2012, 17:29) --------------------------------------------- Понял что это значит Добавлено (09.11.2012, 17:44) --------------------------------------------- Вроде частично понял обьясни что это
Пишу софт на заказ.Скайп sprilt
|
|
|
|
Cool_Story_Bro=) |
Дата: Суббота, 10.11.2012, 06:33 | Сообщение # 5
|
Любитель
Сообщений: 49
Статус: Offline
|
alex3931, Ну смотри, - Code for (int i = a-3; i < a; i++) { cout << mass[i]; if (i!=(a-1)) cout << " + "; b+=mass[i]; } -------------------- -------------------- Нам ведь необходимо сложить три последние числа, верно ? Для этого, мы и "используем" - Напомню, что переменная a - кол-во наших чисел. Допустим, что a = 10. Так вот, чтобы сложить именно 3 наших последних числа, нам необходимо от a отнять 3. В итоге мы сложим - mass[7], mass[8] и mass[9], вместо всех 10 штук.
--------------------- --------------------- Здесь, - Code if (i!=(a-1)) cout << " + "; Мы выводим +, если i не равняется a-1. Не будь этого условия, то у нас к примеру вместо - Было-бы - --------------------- Ну всё остальное проще простого и думаю не нуждается в объяснении.
|
|
|
|