![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Стандартный цикл обработки строкиСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
1) char str[80]; for (i=0; str[i]!=0; i=0) { алгоритм обработки str[i]/*(str+i) } 2) перебор строки, когда переменная цикла – адрес текущего символа char *pBegin=new char[80]; char *p; // адрес текущего символа for (p=pBegin;*p!=0;p++) { алгоритм обработки текущего символа *p }
Задача: дана строка, вычислить её размер
СТАТИЧЕСКИ int main(void) { char str[80]; int i, kol; cin.getline(str,80); for(kol=0,i=0;str[i]!=0;i++) kol++; cout<<kol<<endl; return 0; }
ДИНАМИЧЕСКИ int main(void) { char *p=new char[80]; int n=0; cout << "\n vvedite stroky "; cin.getline(p,80); // цикл построен таким образом, что p содержит адрес текущего символа while(*p!=0) { n++; p++; // Увеличиваем адрес для перехода к следующему символу } cout << "\n kolichestvo=" << n << endl; return 0; } + 24.Одномерные числовые массивы в языке С++: объявление (статически), инициализация, доступ к элементам массива, стандартный цикл обработки. Одномерные числовые массивы Особенность – любая обработка численного массива – цикл. Под числовой массив выделяем памяти столько, сколько необходимо. Статические массивы 1) Как объявить? Размерность задается только константным данным(или целым) #define SIZE 7 или const int SIZE=7; int mas[SIZE]; или int mas1[SIZE]={1,2,3,4,5,6,7}; // с инициализацией После выделения памяти в элементах массива находится «мусор». При объявлении массива возможна инициализация. Если количество инициализирующих меньше, чем необходимо, остальные обнуляются. Если больше – ошибка компиляции.
2) Как определить адрес и значение элемента массива? Имя массива – константный адрес первого элемента массива. mas+i – адрес элемента с индексом i *(mas+i) или mas[i]– значение элемента с индексом i
Динамические массивы Размер может задаваться константным или переменной, значение которой должно быть определено присваиванием или вводом. Память выделяется в процессе выполнения программы. const int SIZE=7; // или #define SIZE 7 int *p=new int[SIZE];
Указатель инициализируется адресом первого байта
p+i – адрес элемента с индексом i *(p+i) или p[i] – значение элемента с индексом i Перебор элементов for (i=0;i<n;i++)
//Обращение к элементам массива по имени осуществляется по индексу, значение которого начинается с нуля. mas[0]=1 mas[1]=2; mas[2]=3;
ð for(i=0;i<SIZE;i++) { алгоритм обработки i-го элемента; cin>>* (a+i) или cin>>a[i];
} + 25.Двумерные числовые массивы в языке С++: объявление (статически), инициализация, доступ к элементам массива, стандартные циклы обработки. Многомерные массивы на примере матриц #define RAZ1 2 #define RAZ2 4 … #define RAZN 7 // объявление многомерного массива
int MAS[RAZ1][RAZ2]…RAZ[N];
Элементы массива лежат в памяти последовательно – друг за другом, так, что быстрее всего изменяется самый правый индекс. // Двумерный массив располагается построчно. a [0] [0], a [0] [1], a [0] [2] a [1][0], a [1] [1], a [1] [2]
Матрицы Матрицы имеют два набора. Элементы матрицы лежат в памяти по одному, друг за другом, построчно. Статические матрицы Как объявить матрицу? Размер – константное данное #define STR 3 #define STLB 4 или const int STR=3, STLB=4; int A[STR][STLB]; int B[STR][STLB]={ int C[STR][STLB]={{1,2,3},{5,6,7,8},{9,10,11,12};
2) Адрес элемента матрицы A[i] – адрес i-ой строки, т.е. адрес 1-го элемента в i-ой строке 0<=i<STR A[i]+j – адрес элемента матрицы 0<=i<STR 0<=j<STLB 3) Значение элемента матрицы *(A[i]+j) или A[i][j]
Динамические матрицы Работаем как с одномерным массивом. Как объявить матрицу? Размер – константное данное или переменная int STR, STLB; cin>>STR>>STLB; int *p; p=new int[STR*STLB] … delete []p;
2) Адрес элемента массива p+i*STLB – количество в полных строках p+i*STLB+j – смещение по неполной строке
3) Значение элемента массива *(p+i*STLB+j) или p[i*STLB+j]
Циклы перебора матрицы Пусть есть матрица A, STR=3 и STLB=4 a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23
Способ: перебор конкретной строки с номером N N--; // номер превратился в индекс строки for (j=0; j<STLB; j++) { алгоритм обработки a[n][j] }
Способ: перебор всей матрицы построчно for (i=0; i<STR;i++) { for(j=0;j<STLB;j++) { алгоритм обработки } //конец i-ой строки }
Способ: перебор конкретного столбца с номером M
M--; // номер превратился в индекс столбца for (i=0;i<STR;i++) { алгоритм обработки }
|
|||||
Последнее изменение этой страницы: 2016-06-06; просмотров: 575; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.187.121 (0.009 с.) |