Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2023-01-02 | 15 |
5.00
из
|
Заказать работу |
v Ключевое слово const можно задавать как перед типом, так и после него.
V В одном операторе можно определить несколько величин одного типа, разделяя их запятыми.
Именованная константа
Примеры:
const char C = 'C', X = '|';
int const y = 56;
const long a=6;
const float pp=6.6e-34;
Переменные
V С помощью инициализатора можно присвоить переменной начальное значение (инициализировать переменную).
v Инициализатор можно записывать в двух формах - со знаком равенства:
= выражение
или в круглых скобках:
(выражение)
V Выражение должно быть вычисляемым на момент выполнения оператора,.
Переменные
short int a = 1;
short int b(a + 1);
char s, sf = 'f';
// инициализация относится только к sf
Char t (54);
float c = 0.22, x(3), sum;
Int f,c,d;
float r;
I, j;
// две переменные типа int (по умолчанию)
unsigned int max,min;
с har c1,c2;
unsigned char c5;
double k=89.34; float eps=0.1e-4; char ch=’G’;
Переменные
Int a; //глобальная переменная a
Int main()
{ int b; //локальная переменная b
static int c; //локальная статическая переменная c
a = 1; //присваивание глобальной переменной
int a; //локальная переменная a
a = 2; //присваивание локальной переменной
::a = 3; //присваивание глобальной переменной
extern int x;
//переменная х объявлена; определение дальше
...
return 0;
}
int x = 4; //определение и инициализация x
СТРУКТУРЫ ДАННЫХ
АДРЕСНАЯ АРИФМЕТИКА
План лекции
• Массивы
• Строки
• Структуры
• Объединения
• Указатели
• Взаимосвязь массивов и указателей
Массивы
СТРУКТУРЫ ДАННЫХ
Массивы
• Конечная именованная последовательность однотипных величин называется массивом.
• В С++ различают массивы фиксированного размера и массивы переменного размера (динамические).
• Количество элементов в массиве первого типа известно при написании программы и никогда не меняется.
• Память под такой массив выделяет компилятор.
Массивы
• Количество элементов динамического массива на этапе компиляции не известно и, как правило, зависит от входных данных.
• Память под динамический массив выделяется во время выполнения программы с помощью операций выделения памяти.
Массивы
• Описание массива фиксированного размера отличается от описания простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива (размерность):
<Тип элемента> <Имя>[<Размер1>]
[<Размер2>]...[= {<Список значений >}];
Массивы
float a [10];
int a[4][5];
unsigned int koord[10];
float b[10][20][2];
char buffer[10];
const int array_size = 10;
int ia[ array_size ];
int b[100], х [27];
Массивы
• Тип элементов массива - любой допустимый тип С++.
• Элементами массива не могут быть функции и элементы типа void.
• Кроме того, не разрешается использовать массив ссылок.
• Элементы массива нумеруются с нуля.
Массивы
• Глобальный массив по умолчанию инициализируется нулями.
• Локальный массив, как и обычная переменная, по умолчанию никак не инициализируется.
• Инициализирующие значения при желании задают в фигурных скобках:
extern int a[5]={0,-36,78,3789,50};
Массивы
const int array_size = 3;
int ia[ array_size ] = { 0, 1, 2 };
int b[5] = {3, 2, 1};
// b [0]=3, b [1]=2, b [2]=1, b [3]=0, b [4]=0
// массив размера 3
int ia[] = { 0, 1, 2 };
extern long double c[]={7.89L,6.98L,0.5L,56.8L};
// 4 элемента
Массивы
• Размерность массива может быть задана только целой положительной константой или константным выражением.
• Размерность массивов предпочтительнее задавать с помощью типизированных констант.
• Для доступа к элементу массива после его имени указывается номер элемента (индекс) в квадратных скобках.
Массивы
# include <iostream.h>
using namespace std;
int main(){
const int n = 10;
int marks[n] = {3, 4, 5, 4, 4};
for (int i = 0, sum = 0; i<n; i++) sum += marks[i];
cout << " Сумма элементов: " << sum;
}
Массивы
#include <iostream.h>
void main() {
const int n = 10;
// Размерность массива
int a [ n ]; // Объявление массива
for(int i = 0; i < n; i++) {
cout << "Input the a[" << i <<
"]element:\t";
cin >> a[i];
// Ввод значений массива
}
Массивы
int count = 0;
// Счетчик отрицательных элементов
for (i = 0; i < n; i ++)
if(a[i] < 0) count++; // Подсчет
cout << endl;
for(i = 0; i < n; i++)
cout << a[i] << "\t";
// Вывод исходного массива
cout << "\nNumber of negative elements:\t" << count << endl;
// Вывод результатов подсчета
}
Массивы
• В качестве индекса массива может выступать любое выражение, дающее результат целого типа.
• Массиву не может быть присвоено значение другого массива, недопустима и инициализация одного массива другим.
• Чтобы скопировать один массив в другой, придется проделать это для каждого элемента по отдельности.
Массивы
• Многомерные массивы фиксированного размера задаются указанием каждого измерения в квадратных скобках.
• В памяти такой массив располагается в последовательных ячейках построчно.
• Многомерные массивы размещаются так, что при переходе к следующему элементу быстрее всего изменяется последний индекс.
Массивы
• При инициализации многомерного массива для улучшения наглядности элементы инициализации каждого измерения можно заключать в фигурные скобки.
• Внутренние фигурные скобки, разбивающие список значений на строки, необязательны и используются, как правило, для удобства чтения кода.
Массивы
int mass2 [][] = { {1, 1}, {0, 2}, {1, 0} };
int mass2 [3][2] = {1, 1, 0, 2, 1, 0};
int ia[ 4 ][ 3 ] = {
{ 0, 1, 2 },
{ 3, 4, 5 },
{ 6, 7, 8 },
{ 9, 10, 11 }
};
int ia[4][3] = { 0,1,2,3,4,5,6,7,8,9,10,11 };
Массивы
• В многомерном массиве размер самого левого измерения также можно не указывать.
int MN [][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
Массивы
int XYZ [][3][4] = {
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
},
{
{13, 14, 15, 16},
{17, 18, 19, 20},
{21, 22, 23, 24}
}
};
Массивы
• При обращении к элементам многомерного массива необходимо использовать индексы для каждого измерения (они заключаются в квадратные скобки), например, matr [ i ][ j ].
• Конструкция ia[ 1, 2 ] эквивалентна ia[2]!
Массивы
Int main()
{
const int rowSize = 4;
const int colSize = 3;
int ia[ rowSize ][ colSize ];
for (int i = 0; i < rowSize; ++i)
for (int j = 0; j < colSize; ++j)
ia[ i ][ j ] = i + j;
}
Массивы
#include <stdio.h>
int main() {
int j, i, matr[3][4];
for(j = 0; j < 3; j++)
for(i = 0; i < 4; i++)
matr[j][i] = 4 * j + i + 1;
/* вывод массива на экран */
for (j = 0; j < 3; j ++) {
for(i = 0; i < 4; i++)
printf ("%3d", matr[j][i]);
printf ("\n");
}
Массивы
void main() {
const int N = 4;
int a[N][N],i,j,s[N];
for(i=0; i<N; i++){
printf("Input numbers of %2d string:\n",i);
for (j=0; j<N; j++)
scanf("%d",&a[i][j]); }
for(i=0;i<N;i++)
for (j=0,s[i]=0;j<N;j++) s[i]+=a[i][j];
for(i=0; i<N; i++){
for (j=0; j<N; j++)
printf("%3d ",a[i][j]);
printf("sum=%4d\n",s[i]); }
getch();}
Строки
СТРУКТУРЫ ДАННЫХ
Строки
• Строка представляет собой массив символов, заканчивающийся нуль-символом.
• Нуль-символ - это символ с кодом, равным 0, что записывается в виде управляющей последовательности '\0'.
• По положению нуль-символа определяется фактическая длина строки.
Объявление строки
Объявление строки:
char <Имя>[<Объем памяти>] [= <Значение>];
char str1[5] = {‘A’,’B’,’C’,’D’,’\0’};
Строку можно инициализировать строковым литералом:
char str[10] = "Vasia";
char str[] = "Vasia";
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!