Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Многомерные массивы, как правило, реализованные как одномерные массивы, каждый элемент которых является ссылкой на другой одномерный массив.






    Обращение к многомерным массивам происходит по всем его индексам, так например: двумерный массив хорошо представляется как таблица со строками и столбцами. Данные в строках рассматриваются слева направо, в то время как в столбцах - сверху вниз. Для обращения к требуемому элементу двумерного массива необходимо указать номер строки и номер столбца.

    float *array1; // Одномерный массив int **array2; // Многомерный массив array1 = new float[10]; // выделение 10 блоков размером типа float array2 = new int*[16]; // выделение 16 блоков размером типа указателя на int for(int i = 0; i < 16; i++) array2[i] = new int[8];

     

    В С++ операции new и delete предназначены для динамического распределения памяти компьютера. Операция new выделяет память из области свободной памяти, а операция delete высвобождает выделенную память. Выделяемая память, после её использования должна высвобождаться, поэтому операции new и delete используются парами. Даже если не высвобождать память явно, то она освободится ресурсами ОС по завершению работы программы. Рекомендую все-таки не забывать про операцию delete.

    // высвобождение памяти отводимой под одномерный динамический массив:

    delete [] < имя массива>;

     

    // высвобождение памяти отводимой под двумерный динамический массив:

    for (int count = 0; count < n; count++)

    delete [] < имя массива> [count];

    // где n – количество строк в массиве

     

    Многомерные массивы передаются в функцию как:

    < тип> < имя массива> [][][][];

    // и все его размерности;

     

    Матрицы – смотри про двумерные массивы

     

     

    Структуры:

    Структуры - это объединенные данные, у которых есть некоторая логическая взаимосвязь. В отличие от массивов, структуры могут содержать данные разных типов.

    struct < имя> {

    //описание полей

    < тип> < имя>

    };

    Доступ к полям структуры: < имя переменной>.< имя поля>

    Cтруктуру можно передавать в функцию по значению и по адресу

    Функцияция может иметь значение: результат типа структуры и может возвращать результат типа структуры

    Ввод и вывод:

    Ввод данных типа структуры выполняется поэлементно стандартных типов:

    cin> > 01.b.x> > 01.b.y;

    cout< < 01.b.x< < 01.b.y;

    Можно сделать структуру типа структуры!

     

    Динамическая структура:

    Struct Prim
    {
    int nom;
    };
    Struct Zap
    {
    Prim a;
    Zap *next;
    };

    int main()
    {
    Zap *beg=0;
    //добавляем элемент структуры
    Zap *p=new Zap;
    p-> a.nom=1;
    *beg=p;
    p-> next=0;
    }

    В итоге получаем структуры из одно элемента, который состоит из поля типа int со значением 1 и указателем на конец структуры, т.е. на ноль.

    Массив структур:

    Объявляется структура

    struct MMM {

    int S;

    float F;

    char Str;

    }

    Объявляется массив типа структуры

    MMM mass[100];

    Присваивать по элементам

    mass[1].S=55;

    mass[1].F=0.75;

    mass[1].Str=”This Fucking World”;

     

    Билет

    Описание строк:

    Строка в С++ - это массив символов, оканчивающийся нулевым символом ('\0').

    Особенности инициализации и хранения строк:

    А)одновременная инициализация и объявление

    Char slovo[6]=”tiger”;

    Или

    Charslovo[]={‘t’, ’I’, ’g’, ’e’, ’r’, ’\0’);

    Если одновременно происходят инициализация и объявление, то указывать размер не обязательно.

    Б) вручную

    For (int n=0; n< 6; n++)

    Cin> > Slovo[n]; Строка есть не что иное, как набор символов, и, соответственно, для хранения строк можно использовать символьные массивы. Например, строка " QWERTY" имет тип char[7]

    Доступ к элементу строки (символу) осуществляется также как и доступ к элементу массива

    Основные функции для обработки строк в С++

    string.h - это библиотека обработки строк

    1)Функция int strlen (const char* s); - определяет длину строки s. Возвращает количество символов, предшествующих завершающему нулевому символу

    2) Функция char *strcpy(char *s1, const char *s2); - копирует строку s2 в массив символов s1. Возвращает значение s1

    3)Функция int *strcmp(const char *s1, const char *s2); - сравнивает строки s1 и s2 (по ASCII-кодам). Функция возвращает значение 0, если строки s1 и s2 равны, значение меньше ноля, если строка s1 меньше s2, и значение больше ноля, если s1 больше s2.

    4) Функция char *strcat(char *s1, const char *s2); - добавляет строку s2 к строке s1. Первый символ строки s2 записывается поверх ноль-символа строки s1. Возвращает s1.

    5)Функция char *strncpy(char *s1, const char *s2, int n); - копирует не болеее n символов строки s2 в массив символов s1. Возвращает s1.

    6)Функция char *strncmp(char *s1, const char *s2, int n); - сравнивает до n символов строки s1 со строкой s2. Возвращает 0, меньше, чем 0 или больше, чем 0, если s1 соответственно равн, меньше или больше s2.

    7)Функция char *strncat(char *s1, const char *s2, int n); - присоединяет первые n символов строки s2 в строку s1. Возвращает s1.

    8)Функция char *strchr(const char *s, int c); - проверяет строку s на содержание символа хранящегося в c. Результатом функции является адрес первого вхождения символа c в строку s. Если символ не найден, возващается NULL.

    9)Функция char *strstr(const char *s1, const char *s2); - проверяет строку s1 на содержание подстроки s2. Результатом функции является адрес первого вхождения подстроки s2 в строку s1. Если подстрока не найдена, возващается NULL.

    10)Функция char *strlwr(char *s); - конвертирует строку к нижнему регистру (т.е. переводит строку в строчные символы).

    11) Функция char *strupr(char *s); - конвертирует строку к верхнему регистру

    12) Функция char *strset(char *s, int ch); - заменяет ВСЕ символы в строке s на символ ch.

    13)Функция char *strnset(char *s, int ch, int n); - заменяет первые n символов в строке s на символ ch.

    14) Функция char *strrev(char *s); - меняет порядок следования символов в строке на противоположный (меняет первый символ с последним, второй символ с предпоследним и т.д.).

     

    Ввод/вывод: в символьный массив можно ввести сразу всю строку, используя оператор ввода

    cin > > Имя_массива;

    и, аналогичным образом, вывести сразу всю строку на экран, используя оператор вывода

    cout < < Имя_массива;

    Связь строки и указателя:

    2)использование указателя на символ

    #include< iostream.h>

    void main()

    {

    char str[] = " Здравствуй, мир! "; // объявляем символьный массив

    char *b; // объявляем указатель на символ

    b = & str[12]; // теперь b указывает на 12-ый символ str

    *b = 'M'; // присваиваем первому элементу b символ 'М'

    cout < < b; // выводим строку b на экран (Мир!)

    }

    Преобразование символьной информации в числовую:

    atof Преобразует символьную строку в значение типа float

    atoi Преобразует символьную строку в значение типа int

    atol Преобразует символьную строку в значение типа long int

    strtod Преобразует символьную строку в значение типа double

    strtol Преобразует символьную строку в значение типа long int

    Также для преобразования в строковый формат можно использовать прибавление символа “0”

    Для обратного преобразования можно отнять “0”, либо аналогично использовать функции:

    char *itoa(int value, char *string, int radix);

    char *ltoa(long value, char *string, int radix);

    char *ultoa(unsigned long value, char*string, int radix);

    Передача символьной строки в функцию подобна передаче любого массива в качестве параметра. Внутри функции вам нужно просто указать тип массива (char) и левую и правую скобки массива. Вам не надо указывать размер строки. Например, следующая программа SHOW_STR.CPP использует функцию show_string для вывода символьной строки на экран:

    #include < iostream.h>

    void show_string(char string[])

    {

    cout < < string < < endl;

    }

    void main(void)

    {

    show_string(" Привет, C++! ");

    show_string(" Учусь программировать на C++");

    }

    Как видите, функция show_string трактует параметр символьной строки как массив:

    void show_string(char string[])






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.