Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // тут мы разбирали константные указатели и указатели на константу
- void constreference() {
- int a = 12;
- int* pa = &a;
- cout << pa << " " << a
- << " " << *pa << endl;
- int b = 13;
- *pa = b;
- // a = 14;
- pa = &b;
- cout << pa << " " << a
- << " " << *pa << endl;
- }
- // это пример шаблона
- template <typename Type1, typename Type2>
- Type2 mult(Type1 a, Type2 b) {
- return a * b;
- }
- // это пример перегруженных функций
- int mult(int a, int b) {
- cout << "For int\n";
- return a * b;
- }
- double mult(double a, double b) {
- cout << "For double\n";
- return a * b;
- }
- void test_reload(){
- cout << mult(2, 3) << endl;
- cout << mult(2, 3.0) << endl;
- cout << mult(2.0, 3.0) << endl;
- }
- // это про линейный элемента поиск в массиве
- const int sz = 10;
- void createArr(int arr[]) {
- for (int k = 0; k < sz; k++) {
- arr[k] = k + 5;
- }
- }
- void showArr(int arr[]) {
- for (int k = 0; k < sz; k++) {
- cout << arr[k] << " ";
- }
- cout << endl;
- }
- inline int searchArr(int arr[], int val);
- void searchArrs(int arr[], int arr2[], int sz2);
- void test_search(){
- int arr[sz];
- createArr(arr);
- showArr(arr);
- cout << "7 at " << searchArr(arr, 7) << endl;
- cout << "111 at " << searchArr(arr, 111) << endl;
- int arr2[]{5, 7, 33 , 12, 6};
- searchArrs(arr, arr2, 5);
- }
- int x = 16; // это глобальная переменная х
- void fun1() {
- static int counter; // это статическая переменная (память выделяется при
- //первом вызове функции и освобождается после завершения работы программы)
- counter++; // можно посчитать сколько раз была вызвана функция
- cout << counter << endl;
- int x = 23; // это локальная переменная x
- cout << x << endl; // локальная
- cout << ::x << endl; // глобальная
- }
- void test_fun1(){
- int x = 13; // это локальная переменная для test_fun1()
- //в функции fun1() - доступа к ней нет, а к глобальному x есть.
- fun1();
- fun1();
- fun1();
- }
- // пример параметра по умолчанию для функции округления до знака d
- double my_round(double x, int d = 2) {
- int mult = 1;
- for (int k = 0; k < d; k++)
- mult *= 10;
- return (int)(x * mult) * 1.0 / mult;
- }
- void test_round(){
- double d = 13.9894541111;
- printf("data: %f\n", d); // способ вывода на консоль
- cout << d << " " << my_round(d, 3) << endl;
- }
- // решение линейного уравнения
- double solve(double a, double b) {
- return -b/a;
- }
- // квадратное ур-е (возвращает один из корней)
- double solve(double a, double b, double c, int m) {
- double D = sqrt(b * b - 4 * a * c);
- return (m == 1) ?
- (-b + D) / (2 * a):
- (-b - D) / (2 * a);
- }
- // квадратное уравнение возвращает корни в массив параметров(передача по ссылке)
- int solve(double a,
- double b,
- double c,
- double x[2])
- {
- double D = (b * b - 4 * a * c);
- if (D > 0) {
- x[0] = (-b + sqrt(D)) / (2 * a);
- x[1] = (-b - sqrt(D)) / (2 * a);
- return 2;
- } else if (D == 0) {
- x[0] = (-b + sqrt(D)) / (2 * a);
- x[1] = x[0];
- return 1;
- }
- else {
- return 0;
- }
- }
- void test_solve(){
- double x[2];
- solve(1, -8, 15, x);
- cout << " " << x[0] << " " << x[1] << endl;
- }
- // обмен значений через указатели
- void my_swap1(int* a, int* b) {
- int tmp = *a;
- *a = *b;
- *b = tmp;
- }
- // обмен значений через ссылки
- void my_swap(int& a, int& b) {
- int tmp = a;
- a = b;
- b = tmp;
- }
- void test_swap(){
- int a = 3, b = 5;
- cout << a << " " << b << endl;
- my_swap(a, b);
- cout << a << " " << b << endl;
- }
- void main() {
- //test_fun1();
- //test_search();
- //test_round();
- //test_solve()
- test_reload();
- //test_swap();
- }
- // встраевыемые функции
- inline int searchArr(int arr[], int val) {
- static int counter = 0;
- for (int k = 0; k < sz; k++) {
- counter++;
- if (arr[k] == val)
- return k;
- }
- return -1;
- }
- void searchArrs(int arr[], int arr2[], int sz2) {
- for (int k = 0; k < sz2; k++)
- cout << arr2[k] << " "
- << searchArr(arr, arr2[k]) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement