Интернет портал

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Интернет портал » Программирование » Статьи по С++


Статьи по С++

Сообщений 1 страница 3 из 3

1

Предлагаю всем скидывать сюда статейки по с++ или с(Turbo c)
Я скину инфу для начинающих,но в принципе можно вылаживать статейки любой сложности.
Многократное повторение каких-либо действий (команд) называется циклом.
    В языке С известны три вида операторов цикла: for, while, do-while. Рассмотрим подробнее каждый из указанных циклов.
    Оператор цикла for имеет следующую структуру команды:
for (инициализация; проверка условия; изменение) оператор;
или в более общем виде:
for (выражение1; выражение2; выражение3) оператор;
    Инициализация используется для присвоения начального значения параметру цикла. Проверка условия обычно содержит условное выражение. Оно позволяет определить момент завершения цикла. Изменение или приращение аргумента обычно используется для изменения параметра цикла.
    Цикл выполняется, если условие (условное выражение) истинно. Например, простейший оператор цикла имеет вид:
for(i=0; i<10; i++) printf("%d\n", i);
    При выполнении этого оператора будут распечатаны в столбик цифры: от 0 до 9. Чтобы напечатать цифры в обратном порядке, нужно использовать другой оператор:
for(i=9; i>=0; i--) printf("%d\n", i);

2

Оператор цикла while имеет следующую структуру:
while (условие) оператор;
Названный оператор может быть простым, составным или даже пустым. Цикл будет выполняться до тех пор, пока условие цикла принимает значение "истинно".
    Теперь просто сравним цикл while с циклом for. В цикле while сначала проверяется выполнение условия. Точно так же работает и цикл for. То есть, как первый, так и второй циклы относятся к циклам с предусловием.
    В отличие от двух предыдущих циклов: for и while цикл do-while относится к циклам с постусловием. Это значит, что упомянутое условие выполнения цикла проверяется в конце оператора цикла do-while.
    Оператор do-while имеет следующую форму:
do {
последовательность операторов
} while (условие);
    Если внутри фигурных скобок находится всего один оператор, то можно не записывать его в фигурных скобках. В этом случае они просто опускаются. Однако, чаще всего их проставляют для более лучшей читаемости текста программы. Кроме того так проще всего не перепутать цикл do-while с циклом while.
    Оператор цикла в постусловием всегда выполняется хотя бы один раз. Это объясняется тем, что набор операторов в фигурных скобках (или без них) стоит перед проверкой выполнения условия цикла do-while. Для сравнения отметим, что в операторах for и while относящихся к циклам с предусловием, цикл может ни разу не выполняться. Это будет в том случае, если условие выполнения цикла при первом же обращении к циклу не выполняется.

3

На основе базовых (встроенных) типов данных язык С позволяет строить другие типы данных и структуры данных. Массив – одна из наиболее простых и часто используемых структур данных. Под массивом понимают набор данных одного и того же типа, собранных под одним именем. Каждый элемент массива определяется именем массива и порядковым номером элемента, который называется индексом. Индекс в языке С всегда целое число.  В основе идеи массивов лежит заимствованное из математики понятие матрицы.
Определение одномерного массива в языке С выглядит следующим образом:
тип имя_массива [константное_выражение];
здесь тип – базовый тип элементов массива; имя массива – идентификатор; константное выражение – определение размера массива (в некоторых случаях может отсутствовать).
Компилятор не контролирует допустимость указываемого индекса. Присвоение значения несуществующему элементу массива приведет к повреждению данных или кода. Поэтому программисту необходимо заботиться о том, чтобы в программе использовались только допустимые значения индекса
Допускается описание массива без явного указания количества элементов в нем:
а) при описании внешнего массива, определенного в другой части программы,
extern long A[];
б) при явной инициализации массива в случае его определения
int А[] = {10,50,1,100};
в этом случае число элементов подсчитывается при обработке компилятором списка инициализации.
Массивы, как и простые переменные, могут инициализироваться при определении. Число элементов в списке инициализации не должно превышать размеры массива:
int A[5] = {0,1,2,3,4};
short MASSIW[5] = {4,2,0};
В случае, если количество элементов в списке инициализации меньше, чем размерность массива, начальные значения приписываются первым по счету элементам массива. Необходимо отметить различное поведение массивов на этапах определения (описания) и использования. При определении массива ему выделяется память, а его имя ассоциируется со всем массивом.
При использовании массива его имя воспринимается как константный указатель базового типа элементов массива. Исключение составляет операция sizeof(имя_массива). Она вычисляет длину в байтах всего участка памяти, выделенного под массив. Особенность операции взятия адреса (&), примененной к имени массива, является:
имя_массива == &имя_массива == &имя_массива[0].
Доступ к элементам массива осуществляется с помощью индексированных переменных:
имя_массива[индекс]
Для первого элемента массива индекс равен нулю. В записи индексированной переменной квадратные скобки являются операцией с двумя операндами, выполняемой по правилам адресной арифметики.
Здесь имя массива – константный указатель, являющийся адресом начала массива в основной памяти ЭВМ, а индекс – выражение целого типа, являющееся смещением от начала массива. Эта операция аналогична операции обращения по адресу:
*(имя_массива + индекс).
Так как сложение коммутативно, то эта операция эквивалентна записи
*(индекс + имя_массива).
Таким образом, выражение имя_массива[индекс] адресует тот же элемент в памяти, что и выражение индекс[имя_массива].
Многомерный массив в языке С представляется как массив массивов. Определяется он следующим образом:
тип имя_массива [N1][N2];
Многомерные массивы инициализируются по строкам по возрастанию номеров элементов.
Пример:
int A[2][3] = {0, 1, 2, 3};
В указанном примере элементы массива получат следующие значения: A[0][0] = 0; A[0][1] = 1;
A[0][2] = 2; A[1][0] = 3;.
В случае, когда надо изменить порядок инициализации элементов массива, используют фигурные скобки, выделяющие элементы, предназначенные для одной строки.
int A[4][3] = {{0}, {1, 2}, {3, 4, 5}};
здесь элементы списка инициализации расположатся в следующем порядке:
A[0][0] = 0; A[1][0] = 1;
A[1][1] = 2; A[2][0] = 3; A[2][1] = 4; A[2][2] = 5; остальные элементы массива начальных значений не получили.
Обратиться к элементу массива можно еще одним способом, используя для этого указатель. Указатель – это переменная, значением которой является адрес другой переменной, т. е. номер единицы памяти, которая выделена для переменной. Указатель может ссылаться только на объекты заданного типа.
Имя массива является константой-указателем на первый элемент массива.
В любом случае массив будет представлять собой последовательность ячеек
известной длины указанного базового типа, а указатель связывается с адресом первого элемента массива.
Пример:
int A[5], *Pa = A;
Доступ к элементам массива с помощью указателя может осуществляться двумя способами:
1) с помощью операции разыменования указателя '*'  *Pa;
здесь необходимо перемещаться по области памяти, выделенной под массив с помощью аддитивных операций '+' и '-' или унарных '++' и '--';
2) с помощью операции индексирования элементов массива '[ ]'  Pa[i];
Так как имя А ассоциируется с адресом начала массива в памяти, а указатель Pa содержит этот адрес, то операция индексирования может одинаково применяется к этим объектам. A[0] адресует тот же элемент массива, что и Pa[0].
Увеличивая на единицу значение указателя, получаем адрес следующего элемента (числовое значение адреса при этом увеличивается на размер памяти элемента массива).  Над элементами массива можно выполнять все операции, допустимые для типа элемента. Особенностью алгоритмов обработки массивов является то, что все или большинство (или какое-то число) элементов обрабатываются одинаково (по одному алгоритму). Поэтому, решая задачу, приходится в том или ином порядке просматривать (перебирать) элементы массивов. Чтобы осуществить перебор, надо определить правило изменения индекса элементов (для многомерных массивов – индексов).


Вы здесь » Интернет портал » Программирование » Статьи по С++