Тема 9 Дефиниране и използване на масиви в език С/C++
|
|
- Ани Владова
- преди 2 години
- Прегледи:
Препис
1 Тема 9 Дефиниране и използване на масиви в език С/C++ 1. Обща характеристика на тип данни масив Типовете данни в програмните езици се разделят най-общо на прости (скаларни) и структурирани. Скаларните типове данни са тези, които се състоят от един елемент. В С/С++, пример за такива данни са аритметичните типове: int, char, float и double. Структурираните типове се състоят от повече от един елемент. Масивът е структура от данни, състояща се от множество последователно наредени елементи от един и същи тип, достъпът до който се осъществява чрез името на масива и поредния номер на елемента т.нар. индекс.типът масив се характеризира със следните особености: структуриран тип данни от еднотипни елементи - за разлика от простите типове, масивите се състоят от повече от един елемент, като елементите задължително са от един и същи тип. Типът на елемента определя типа на масива. структуриран тип данни от статичен вид - броят на елементите на масива трябва да се определи по време на компилация; той не се изменя в процеса на изпълнение на програмата. Компилаторът заделя необходимата памет. индексиран тип данни - достъпът до даден елемент се осъществява чрез името на масива и неговият индекс (пореден номер). Масивите, според размерността си се разделят на: едномерни и многомерни. Многомерните масиви се разделят на двумерни, тримерни и т.н. Едномерните масиви могат да се представят като редица от последователно наредени елементи (фиг. 9.1). Двумерните се представят като матрици (фиг. 9.2). В тримерното пространство е трудно да се даде представа за масив с повече от три индекса и затова такъв тип масиви рядко се използва Фиг Структура на едномерен масив от 100 елемента В паметта на компютъра многомерните масиви се представят като едномерни. Например, двумерен масив се нарежда последователно ред по ред. Двумерният масив се третира като едномерен масив, чиито елементи са едномерни масиви.
2 Фиг Структура на двумерен масив от 10х10 елемента 2. Дефиниране на масиви. Достъп до елементите Общият вид на дефиницията на едномерен масив е следния: иметип имемасив[размерност]; Съответно: иметип - определя типа на елементите на масива; може да е някой от стандартните типове или дефиниран от програмиста; имемасив е идентификатор, определящ името на променливата от тип масив; размерност - константен израз, който определя броя на елементите в масива и се нарича още граница. Примери за дефиниции на масиви са: int massiv[10]; елемента */ char str[20]; /* дефиниране на едномерен масив massiv от 10 цели // дефиниране на едномерен масив ch от 20 символа float a[10], b[20]; /* дефиниране на два едномерни, реални масива а и b от 10 и 20, елемента съответно */ Достъпът до даден елемент на масива е чрез името на масива и индекса на елемента. Например: massiv[0] = 10; a[2]=0.5; b[18]=1.9; str[10]= y ; Особеност на език C/С++ относно масивите е, че индексите на елементите започват от 0 (нула), т.е. ако даден масив е с n елемента, първият елемент е с номер 0, а последният е с номер n-1. Например, масив а от 10 елемента има следните индекси : а[0],a[1],a[2], a[3], a[4], a[5], a[6], a[7], a[8],a[9];
3 Дефинирането на многомерни масиви е чрез следната декларация: име_тип име_масив[граница1][граница2]...; Примери: float ax[10][20]; /* дефиниране на двумерен масив ax от 10х20 реални елемента */ int bx [10][10][5]; целочислени елемента */ /* дефиниране на тримерен масив bx от 10х10x5 Индексите при многомерните масиви се изменят по същия начин като едномерните: от 0 до n-1. Двумерният масив е частен случай на многомерен. Достъпът до елементите е чрез два индекса. Подобно на математическото описание на матрица, първият индекс е за редове, вторият за стълбове. Примери за достъп до елементи на многомерни масиви са: ax[0][0]=0; bx[0][0][0]=1; Относно разположението на многомерните масиви в паметта на компютъра, елементите се подреждат последователно, по реда на нарастване на индексите, като най-бързо нарастват десните индекси. Например, подредбата на матрица ax в паметта на компютъра е: ax[0][0] ax[0][1] ax[0][2]..ax[0][19] ax[1,0] 3. Примерни задачи за работа с масиви 3.1. Едномерни масиви За обработката на масиви се използват итерационните конструкции и в програмен език C/C++ това най-често е конструкция for, чрез която се обхожда масива от първия до последния елемент или обратно. Пример 1. Въвеждане на елементите на едномерен масив от целочислени елементи от клавиатурата и извеждане на стойностите в обратен ред. Задачата е пример за обхохдане елементите на масива от първия до последния и обратно от последния до първия. int ma[10],i; for(i=0; i<10; i++) printf("item[%d]=",i); scanf("%d",&ma[i]); //въвеждане стойности на елементите printf("\n"); // извеждане стойностите на елементите for(i=9; i>=0; i--) printf("%d ",ma[i]);
4 Пример 2. Търсене на средно аритметична стойност. Задачата е да се намери средноаритметичната стойност от елементите на едномерен масив от 10 реални елемента с двойна точност. В реализацията, при намирането на общата сума на елементите, чрез конструкция for се обхожда масивът и при всяка итерация към общата сума се добавя стойността на поредния елемент. double mb[10]; int i; double suma, average; for(i=0;i<10;i++) printf("item[%d]=",i); scanf("%lf",&mb[i]); //въвеждане стойностите на елементите suma = 0; // намиране сумата на елементите for(i=0; i<10; i++) suma += mb[i]; average = suma/10; // намиране на средноаритметична стойност printf("\naverage = %lf",average); 3.2. Двумерни масиви При работата с двумерни масиви е необходимо да се използват вложени цикли. Обикновено итерациите се реализират с две вложени една в друга конструкции for. Пример 1. Въвеждане и извеждане елементите на друмерен масив. Задачата е да се въведат стойностите на двумерен масив от 5x4 целочислени елемента и да се изведат на екрана в подходящ фомат. Примерното решение е следното: int matrix[5][4]; int i,j; for(i=0;i<5;i++) for(j=0;j<4;j++) printf("item[%d][%d]=",i,j); scanf("%d",&matrix[i][j]);
5 for(i=0;i<5;i++) printf("\n"); for(j=0;j<4;j++) printf("%d ",matrix[i][j]); 4. Инициализиране на масиви При дефинирането на масиви могат да бъдат зададени начални стойности на елементите, т.е. масивите да бъдат инициализирани. Определянето на тип масив, заедно със задаване на начални стойности на елементите е чрез следната дефиниция: име_тип име_масив [размерност]=списък стойности; Стойностите на елементите се разделят със запетаи. Пример: int array[3] = 1, 3, 5; Съответно стойностите на елементите са: array[0]=1; array[1]=3; array[2]=5. Възможно е, когато се инициализира масив, да не се задава брой на елементите. Тази стойност се определя от броя на зададените стойности. Пример: double d[] = 2.23, 0, 18.5, 4.8; Масивът d е от четири реални елемента с двойна точност; стойностите на елементите са: d[0]=2.23; d[1]=0; d[2]=18.5; d[3]=4.8 Ако размерът на масива е по-голям от броя на зададените стойности, инициализират се първите елементи с посочените стойности, а останалите приемат стойност 0 (нула). Пример: double d[10] = 2.23, 0, 18.5, 4.8; В случая, задават се стойности само на първите четири елемента, а останалите шест приемат стойност 0. При инициализацията на двумерни масиви се изисква да се зададе множество от списъци, съответстващи на редовете на двумерният масив. Пример: int array[2][3] = 1,1,0, 0,1,1 ; Относно въпроси по темата на адрес: ln_zh_st@yahoo.com
Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор
Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15.11-6.12.2018 г. 1 / 17 Масиви
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма
Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 29 ноември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15 29 ноември 2018 г. 1 / 16 Масиви Логическо
ПодробноДинамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр
Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември
ПодробноМаисви
МАСИВИ 1. Структурни типове данни Структура от данни - организирана информация, която може да бъде описана, създадена и обработена с помощта на програма. Скаларни типове данни: Целочислен int Реален double
ПодробноЛабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн
Лабораторно упражние 6 Тема: Оператори за цикли в езика C++. Реализира на циклични алгоритми I. Цел на лабораторното упражние Да се затвърдят знанията на студентите за организацията и синтаксиса на програми
ПодробноC++
Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
ПодробноПрограмиране на Паскал
Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като
ПодробноLush Green
Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция
ПодробноВ тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц
В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операции в езикът C и С++. Символ Предназначение Аритметични
ПодробноСтруктура на програма в C - Част 2 - типове, функции
Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.
ПодробноI
. Числено решаване на уравнения - метод на Нютон. СЛАУ - метод на проста итерация. Приближено решаване на нелинейни уравнения Метод на допирателните (Метод на Нютон) Това е метод за приближено решаване
ПодробноЛинейна алгебра 11. Собствени стойности и собствени вектори на матрица и линейно преобразувание. Диагонализиране на матрица специалности: Математика,
на матрица и линейно преобразувание. Диагонализиране на матрица специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Собствени стойности и собствени вектори
ПодробноЛинейна алгебра 7. Умножение на матрици. Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс
. Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Кратка история Матричното умножение е въведено от немския математик
ПодробноЛинейна алгебра 12. Квадратични форми специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Линейна алгебра
специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Реални квадратични форми Израз от вида f(x 1, x 2,..., x n ) = n i=1 j=1 n a ij x i x j, (1) където x i
ПодробноSlide 1
Списъци. Структура и синтаксис. Създаване и показване. Основни операции(добавяне, изваждане на елемент или цял подсписък; подреждане). Трансформации. проф. дмн С. Христова Списъци Списъците / list са основна
ПодробноMicrosoft PowerPoint - DBoyadzhieva
: Изграждане на висококвалифицирани млади изследователи по съвременни информационни технологии за оптимизация, разпознаване на образи и подпомагане вземането на решения Минимизиране на броя на признаците
ПодробноГрафика и Презентации - Стандартизация на графичният Вход/Изход
Компютърна Графика и ГПИ Технически средства. Стандартизация на графичния вход/изход. Графични фаи лови формати доц. д-р А. Пенев Технически Средства 2/44 Технически Средства В компютърната графика с термина
ПодробноМасиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф
и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Трифон Трифонов (УП 16/17) и низове 9 ноември 2016 г. 1 / 5 Логическо
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Какво е векторизация? 2. Примери 3. на цикли 4. Масиви от структури или структури от масиви 5. на при различни
ПодробноМИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА
МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:
ПодробноВиртуални функции
Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,
ПодробноMicrosoft Word - Sem03+04sup_KH_VM2-11.doc
Връзка между символ на Кронекер (Conece delta i ) и символ на Леви Чивита (Levi-Civita symbol ε i ) Примери от векторния анализ Всички разглеждания се правят за случая на тримерно евклидово пространство
ПодробноПри изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и
При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) или изменящи се (променливи). Тези данни най-често бива
Подробно3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението
3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.
ПодробноКласове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1
Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 1.1 Модулност............................ 1 1.2 Обектно-ориентирана
ПодробноУЧЕБНА ПРОГРАМА ПО ВИЗУАЛНО ПРОГРАМИРАНЕ ЗА III КЛАС (ВЪВЕЖДАНЕ НА ДИСЦИПЛИНАТА ПО ПРОЕКТ ИНОВАТИВНО УЧИЛИЩЕ ) КРАТКО ПРЕДСТАВЯНЕ НА УЧЕБНАТА ПРОГРАМА
УЧЕБНА ПРОГРАМА ПО ВИЗУАЛНО ПРОГРАМИРАНЕ ЗА III КЛАС (ВЪВЕЖДАНЕ НА ДИСЦИПЛИНАТА ПО ПРОЕКТ ИНОВАТИВНО УЧИЛИЩЕ ) КРАТКО ПРЕДСТАВЯНЕ НА УЧЕБНАТА ПРОГРАМА Обучението по Визуално Програмиране в начален етап
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноПрограмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5
Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Литература Необходими програми Kernighan & Ritchie - The C Programming
ПодробноLush Green
Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се
ПодробноMicrosoft Word - Sem02_KH_VM2-19.doc
Семинар Действия с матрици. Собствени стойности и собствени вектори на матрици. Привеждане на квадратична форма в каноничен вид. Матрица k всяка правоъгълна таблица от k-реда и -стълба. Квадратна матрица
ПодробноГрафика и Презентации - Геометрично Моделиране
Компютърна Графика и ГПИ Геометрично Моделиране. Представящи схеми. Свойства. Математическо пространство. Геометрични преобразования и задачи. доц. д-р А. Пенев Геометрично Моделиране КГиГПИ - Геометрично
ПодробноСУ ДИМИТЪР МАРИНОВ ГРАД ЛОМ ул. Дунавска 67, тел: 0971/60011, Утвърдил: Директор на СУ Димитър Марин УЧЕБНА ПРОГРАМА ПО
СУ ДИМИТЪР МАРИНОВ ГРАД ЛОМ ул. Дунавска 67, тел: 0971/60011, e-mail: sou_4emi_lom@yahoo.com Утвърдил: Директор на СУ Димитър Марин УЧЕБНА ПРОГРАМА ПО ДИГИТАЛНА КРЕАТИВНОСТ ЗА VIII КЛАС КРАТКО ПРЕДСТАВЯНЕ
ПодробноДефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class
ПодробноСтруктура на програма в C - Част 9 - низове от символи, C-string
Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,
ПодробноПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА
СРЕДИ ЗА ПРОГРАМИРАНЕ ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА Същност на програмното осигуряване За да могат компютрите да разбират описаните на езика за програмиране алгоритми, те трябва да бъдат преведени
Подробно1 КаБел ЕООД Документация за софтуерния продукт КаБел ЕООД, подпомагащ организация на складовата дейност в железария Автор: Румен Ангелов История на в
1 КаБел ЕООД Документация за софтуерния продукт КаБел ЕООД, подпомагащ организация на складовата дейност в железария Автор: Румен Ангелов История на версиите 1.10 *подредба име, размер в наличност екран
ПодробноMathematica CalcCenter
Mathematica CalcCenter Основни възможности Wolfram Mathematica CalcCenter е разработен на базата на Mathematica Professional и първоначално е бил предназначен за технически пресмятания. Информация за този
ПодробноСеминар № 2: Граници на редици, признаци на Даламбер и Коши за сходимост на редове
Семинар / 7 Семинар : Парциална сума на числов ред. Метод на пълната математическа индукция. Критерии за сходимост на редове.! Редица (последователност): x, x,, x, x! Ред: x x x...... Числов ред (безкрайна
ПодробноСинтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/
Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016
Подробно