Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Распределение массивов




Распределение скаляров

Распределение памяти

ПРОЦЕДУРЫ

Вопросы для самопроверки

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

Вывод

Ввод

printf("Ввод массива\n");

fo r(i=0; i<10; i++){

for (j=0; j<10; j++){

scanf("%f", &a[ i ][ j ]);

}

}

printf("%32cИсходный массив\n", ' ');

for (i=0; i<10; i++){

for (j=0; j<10; j++){

printf("%15.5g", a[ i ][ j ]);

if ((j+1)%5==0)printf("\n"); // Перевод строки после вывода каждого

} // 5-го значения, чтобы не выйти за пределы

} // экрана. Его размер 80 позиций

1. Что происходит, когда длина выводимого значения больше величины W?

2. При каких условиях при выводе значений с плавающей точкой не ставится десятичная точка?

3. Перечислите символы – ограничители ввода.

4. Чем отличаются правила ввода значений по спецификациям f и e?

5. Что возвращают функции printf и scanf?

Контрольные вопросы

1. Почему при вводе не используется второй параметр спецификации D?

2. При каких условиях производится округление выводимого значения?

3. Как организуется ввод элементов массива?

4. Когда разумно применять спецификацию g?

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

СХЕМА

Предметная область Программист Память

скаляры,

элементы массивов имена адреса

и структур

Источник информации: определения переменных.

C: инструкции описания типа: int long float double char.

Basic: инструкция dim.

C(C++) Basic Объем в байтах
char, bool Byte, string (1 символ)  
short integer, boolean  
int, long, float long, single  
double double  

Для некоторых трансляторов языка C, в том числе для Borland 3.1, длина значения типа int равна 2 байта.

 
 

Объем памяти, занимаемый массивом, равен:

где S – длина одного элемента данного типа,

m – число измерений (размерность массива),

di – число элементов массива в i -м измерении (длина измерения),

hi – максимальное значение индекса в i -м измерении (верхняя граница),

li – минимальное значение индекса в i -м измерении (нижняя граница).

Пример.

dim aMatr(1 to 10, 1 to 10) as double V=(10-1+1)*(10-1+1)*8=800 байтов.

 
 

Иногда (особенно при отладке программы) требуется определить номер по порядку следования в памяти элемента многомерного массива по известным индексам (развернуть в одномерный). Он определяется по формуле:

где ni – значение i -го индекса.

Пример. Описание массива имеет вид: float array[10][6][5];

Адрес элемента массива array[2][3][1] равен: N=6*5*2+5*3+1+1=77

Напомним, что формула и пример относятся к языку C, где минимальный индекс в каждом измерении равен 0.





Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 331; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.