Видео уроки по языку C++ / Функции с аргументами строками с стиле C / #20

Функции с аргументами — строки в стиле Си. В этом уроке мы научимся обрабатывать динамически выделенный символьный массив типа Char, а также узнаем некоторые особенности передачу символьных массивов и указателя на массив в функции и как их можно обрабатывать. Будет рассмотрен пример программы с функцией принимающей константный указатель на строку, и работа с ним.

Видео уроки по языку C++ / Передача массивов в функцию / #19

Передача массива в функцию по указателю. В ней мы узнаем как можно передавать одномерный и двумерный массив в функцию через указатель, также рассмотрим пример двух одинаковых функций но написанных с разными видами передачи одномерного массива. Напишем небольшую программу которая будет считать сумму всех элементов в одномерном динамическом массиве. Составим две функции, одна для вывода элементов этого массива в консоль а другая для подсчета суммы всех элементов в этом массиве.
 

Видео уроки по языку C++/ Аргументы функций и передача по значению / #18

Передача параметров (аргументов) в функцию по значению. В ней мы узнаем некоторые нюансы такой передачи аргументов в функцию и убедимся в них проверив это все на одном примере а именно на функции возведения числа в куб.

Видео уроки по языку C++ / Прототипирование и вызов функции / #17

 
Прототип функции и вызов функции в языке программирования С++. Для чего они нужны функциям и как они помогают компилятору и программисту. Будут рассмотрены примеры с тщательным описанием и разбором прототипов в примерах.
 

Видео урок по языку C++ / Основы функций / #16

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

Видео уроки по языку C++ / Структуры, Битовые поля, Объединения / #15

В этом уроке мы пройдем такой тип данных как структуры в Си. Мы узнаем чем они отличаются от массивов и в чем их преимущество. Научимся объявлять и инициализировать динамические структуры в помощью операции выделения памяти new[]. Также мы пройдем битовые поля, которые могут быть полями структуры. Для того чтобы лучше освоить урок по структурам мы напишем программу в которой поработаем с ней, в конце урока также будет дано домашнее задание на структуру того же типа которая была в уроке. Также мы узнаем что такое объединение (union) в Си и чем оно отличается от структуры и для чего они нужны.

Обсуждение и вопросы задавайте на форуме: Forum.ManySource.ru 

Видео уроки по языку C++ / Работа со строками.Стандартная библиотека. / #14

 

В этом 14 видео уроке мы разберем [page=163]домашнее задание[/page] которые было дано в прошлом уроке. После этого мы приступим к изучению темы Строки в Си.

И так начнем, что же такое строки в языке Си? На самом деле все довольно просто, строки в си представляют из себя ничто иное как одномерный массив символов но этот массив содержит символ \’\\n\’ называемый нулевым символом или Си конец строки, а когда он используется как маркер конца строки то называют — нуль терминатором. С помощью таких маркеров можно считывать массив символов и знать когда остановить ведь если мы достигнем нулевого символа то это будет означать что мы дошли до конца строки. Строка хранящаяся в таком формате называется строкой С.

Например массив символом состоящий из десяти элементов может хранить в себе 9 символов и 10 символ означающий конец строки, нулевой символ компилятор добавляет сам, поэтому не забывайте объявлять массив на 1 значение больше чем вам необходимо. Также вместо записи

char name[6] = "Pavel";

вы можете использовать такую запись:

char name[] = "Pavel";

запись name[] означает что компилятор сам посчитает сколько нужно будет выделить памяти для хранения данной строки и для нуль символа. Возможно также объявлять константный указатель на строку

char* name = "Pavel";

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

name[0]= "F";

потому что мы не можешь заносить новые значения по этому адресу, но это не запрещает нам получить значение находящееся по этому адресу

cout<<name[0];

таким образом результат будет вывод символа \’P\’.

Для работы с символами существует стандартная библиотека Си подключаемая следующим образом, либо заголовочным файлом

#include <cctype>

либо

#include <ctype.h>

. Функции в этих библиотеках разделены на два вида, классификации и преобразования.

Функции классификации:

  • isalnum — Проверяет, является ли символ буквой или цифрой
  • isalpha — Проверяет, является ли символ буквой
  • iscntrl — Проверяет, является ли символ управляющим
  • isdigit — Проверяет, является ли символ цифрой
  • isgraph — Проверяет, является ли символ символ видимым
  • islower — Проверяет, является ли символ буквой нижнего регистра
  • isprint — Проверяет, является ли символ печатным
  • ispunct — Проверяет, является ли символ знаком пунктуации
  • isspace — Проверяет, является ли символ разграничительным
  • isupper — Проверяет, является ли символ буквой верхнего регистра
  • isxdigit — Проверяет, является ли символ цифра шестнадцатеричной системы исчисления

Функции преобразования:

  • tolower — Возвращает символ в нижнем регистре
  • toupper — Возвращает символ в верхнем регистре

Прототипы этих функций имеют вид:

int имя_функции( int );

Функции возвращают значение целого типа либо 1 либо 0, распознаются эти значения как истина и ложь. То есть если функция проверила символ на принадлежность к какому то множеству и она входит в него то она вернет значение истины(1) иначе вернет ложь(0).
Пример функции isalnum:

#include <iostream> // для оператора cout#include <cctype> // для функции isalnum#include <locale>void main() {  setlocale(LC_ALL,"Rus");  int counter = 0; // счетчик букв и цифр  char str[] = "Ar2D2|\\-/|"; // строка с текстом   while ( isalnum(\'j\') ) // пока текущий символ в строке буква или цифра      counter++; // инкрементируем счётчик букв и цифр  std::cout << "Первые " << counter << " символов - или буквы или цифры.\\n";  system("pause");}
На этом урок окончен, если что то не поняли советуем вам посмотреть видео урок находящийся в начале статьи.
 Обсуждение и вопросы задавайте на форуме: Forum.ManySource.ru 

Автор: Павел Кадыров

Видео уроки по языку C++ / Ссылки. Работа с указателями.Динамическое выделение памяти для массива / #13

В этом видео уроке по языку С++ мы пройдем такую тему как Ссылки, мы разберем принцип их работы и в чем их преимущество между указателями а также какие существуют правила их определения в программе. После мы вернемся к предыдущему уроку в котором мы начали изучать указатели с помощью которых можно динамически выделять память под переменные и массивы переменных и различных структур данных начиная от стандартных и заканчивая пользовательскими определениями типов. Мы научимся объявлять указатели и выделять динамически память оператором new и new [] и присваивать блок выделенного участка памяти указателям, также для того чтобы не происходила утечка памяти в наших программах мы научимся еще освобождать оператором delete и delete [] в зависимости от того что нам необходимо освободить либо одну переменную либо же целый массив, на освобождение массива указывают квадратные скобки после оператора delete [] и после пишется имя нашего указателя из под которого необходимо освободить оперативную память в операционную систему. Для примера мы научимся создавать двумерный динамический массив под который будет выделена динамически память в зависимости от размерности введенной пользователем в клавиатуры и также мы заполним этот динамический массив случайными(random) числами с генерированными функцией rand() srand(), с помощью подключаемой стандартной библиотеки ввода/вывода в языке си «stdlib.h», также мы освободим память массива, после завершения вывода массива в консоли, для этого мы сперва освободим память массива числе из массива указателей, а после уже освободим память массива указателей.

Обсуждение и вопросы задавайте на форуме: Forum.ManySource.ru 

Автор: Павел Кадыров

Видео уроки по языку C++ / Указатели / #12

В этом уроке вы сперва разберем домашнее задание в котором нужно было написать программу которая ищет максимальный и минимальный элемент в каждой строке в массиве 5 на 8. Сама же тема урока Указатели.
Указатели в С++ позволяют нам работать прямо с памятью компьютера а также динамически выделять память в процессе работы программы. Возможно также создать указатель на функцию С++, с помощью которого мы сможем не явно вызывать нашу функцию по её адресу вызова.

void f( int a) { /* ... **/ } // определение функцииvoid (*pf)(int);   //указатель на функциюpf = f;   // присваивание адреса функции

Операции с указателями:
С указателями можно выполнять следующие операции: разадресация или косвенное обращение к объекту (*) ,инкремент(++) и декремент(++), сложение с константой, вычитание, присваивание, сравнение и приведение типов.
Для того чтобы получить значение хранящий определенный указатель нужно использовать операцию разадресации(*).

char a;char *p = new char;*p = \'Ю\'; a= *p;

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

Обсуждение и вопросы задавайте на форуме: Forum.ManySource.ru 

Автор: Павел Кадыров

Видео уроки по языку C++ / Одномерные и Двумерные массивы / #11

Что же такое массив? Массив это набор однотипных данных которые имеют свой определенный номер(индекс) в этом наборе. Массивы бывают двух видов Одномерные и Двумерные. Одномерный массив задает следующим образом, сперва пишется тип данных массива, после задается имя массива и размерность этого массива в квадратных скобках.

Например: int Massiv[10];

Таким образом мы объявили массив целых чисел состоящий из 10 элементов.
Также можно сразу инициализировать массив значениями.

Например: int Massiv[10]= {5,15,36,14,24,19,24,78,93,15};
У массива есть определенные нюансы, например такой как обращение к элементам массива начинается не с единицы а с нуля. То есть если мы хотим обратиться к первому элементу массива нам необходимо записать следующее:

Massiv[0] = 12;

Этим самым мы присвоили первому элементу массива значение 12.

А если вы хотите побольше узнать о массивах то видео урок вам будет кстати!

Обсуждение и вопросы задавайте на форуме: Forum.ManySource.ru 

Автор: Павел Кадыров