Разделы презентаций


Числовые и символьные массивы

Содержание

Определение массиваМассив – это линейный тип данных или последовательность ячеек памяти одинакового типа. Массивы используются практически в любой программе. Массивы могут быть одномерными, двумерными и многомерными. Одномерные массивы соответствуют строке, двумерные

Слайды и текст этой презентации

Слайд 1Использование массивов

Использование массивов

Слайд 2Определение массива
Массив – это линейный тип данных или последовательность ячеек

памяти одинакового типа. Массивы используются практически в любой программе. Массивы

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

Слайд 3Объявление массивов
При объявлении массива указывают тип его элементов и в

квадратных скобках размер массива.
Для одномерного массива объявление запишется в виде:
int

a[10];

Объявление массивовПри объявлении массива указывают тип его элементов и в квадратных скобках размер массива.Для одномерного массива объявление

Слайд 4Одномерные массивы
Удобно использовать при объявлении массива директиву препроцессора #define:
#define SIZE

10 // определили поименованную константу, задающую
размер массива
void main()
{
int a[SIZE];

}

Одномерные массивыУдобно использовать при объявлении массива директиву препроцессора #define:#define SIZE 10 // определили поименованную константу, задающую размер

Слайд 5Одномерные массивы
Для доступа к элементу массива указывают в квадратных скобках

его номер. При этом следует отметить, что в языке С

индексация элементов массива начинается с нуля.
То есть для инициализации первого элемента массива единицей необходимо записать оператор:
a[0]=1;
Одномерные массивыДля доступа к элементу массива указывают в квадратных скобках его номер. При этом следует отметить, что

Слайд 6Одномерные массивы
Для работы с массивами обычно используют цикл for.
 
Инициализировать

массив можно разными способами.
Если требуется можно инициализировать элементы массива сразу

после объявления:
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 
Одномерные массивыДля работы с массивами обычно используют цикл for.  Инициализировать массив можно разными способами.Если требуется можно инициализировать

Слайд 7Одномерные массивы
Можно заполнить элементы массива непосредственно в программе:
int a[10];
a[5] =

5;
for (int i=0; i

элементу массива присваивается значения пять, затем все элементы массива обнуляются.

Одномерные массивыМожно заполнить элементы массива непосредственно в программе:int a[10];a[5] = 5;for (int i=0; i

Слайд 8Одномерные массивы
Инициализация одномерного массива пользователем запишется в виде:
int a[10];
for (int

i=0; i

сначала элементам массива присваиваются значения введенные пользователем.
Одномерные массивыИнициализация одномерного массива пользователем запишется в виде:int a[10];for (int i=0; i

Слайд 9Примеры
Рассмотрим пример нахождения количества отрицательных элементов массива.
int a[10], count=0;

for (int

i=0; i

ПримерыРассмотрим пример нахождения количества отрицательных элементов массива.int a[10], count=0;…for (int i=0; i

Слайд 10Примеры
Пример нахождения суммы отрицательных элементов массива.
int a[10], sum=0;

for (int i=0;

i

ПримерыПример нахождения суммы отрицательных элементов массива.int a[10], sum=0;…for (int i=0; i

Слайд 11Примеры
Пример нахождения минимального элемента массива и его индекса.
int a[10], min,

mini;

min=a[0];
for (int i=1; i

ПримерыПример нахождения минимального элемента массива и его индекса.int a[10], min, mini;…min=a[0];for (int i=1; i

Слайд 12Использование многомерных массивов
При создании двухмерного массива после его имени ставится

два значения – количество строк и столбцов:
int a[10][12];

Использование многомерных массивовПри создании двухмерного массива после его имени ставится два значения – количество строк и столбцов:	int

Слайд 13
Многомерные массивы инициализируются так же, как и одномерные. В следующем

примере массив sqrs инициализируется числами от 1 до 10 и

их квадратами:
int sqrs[10][2] = {
1, 1,
2, 4,
3, 9,
4, 16,
5, 25,
6, 36,
7, 49,
8, 64,
9, 81,
10, 100
};

Многомерные массивы инициализируются так же, как и одномерные. В следующем примере массив sqrs инициализируется числами от 1

Слайд 14
Далее на примере показаны инициализация и вывод элементов двухмерного массива.
int

a[10][20];
for (int i=0; i

= 0;
Далее на примере показаны инициализация и вывод элементов двухмерного массива.int a[10][20];for (int i=0; i

Слайд 15
for (int i=0; i

a[i][j] = 1;

for (int i=0; i

Слайд 16
for (i=0; i


printf(“\n”);  
}

for (i=0; i

Слайд 17Алгоритм сортировки пузырьком
6 2 7 3 1 5
flag=0, i=0:

2 6 7 3 1 5, flag=1
flag=1, i=1:

2 6 7 3 1 5

flag=1, i=2: 2 6 3 7 1 5, flag=1

flag=1, i=3: 2 6 3 1 7 5, flag=1

flag=1, i=4: 2 6 3 1 5 7, flag=1

flag=0, i=0: 2 6 3 1 5 7

flag=1

flag=1

flag=0, i=1: 2 3 6 1 5 7, flag=1

flag=1, i=2: 2 3 1 6 5 7, flag=1

flag=1, i=3: 2 3 1 5 6 7, flag=1

flag=1, i=4: 2 3 1 5 6 7, flag=1

flag=1

flag=0, i=0: 2 3 1 5 6 7, flag=0

flag=0, i=1: 2 1 3 5 6 7, flag=1

Алгоритм сортировки пузырьком6 2 7 3 1 5 flag=0, i=0: 2 6 7 3 1 5,

Слайд 18Сортировка методом пузырька

Сортировка методом пузырька

Слайд 19Результат работы
srand(4); for (int i=0; i

a[i] = rand()*10;
srand(4); for (int i=0; i

a[i] = rand()*10;
Результат работыsrand(4); for (int i=0; i

Слайд 20
Функция srand() устанавливает исходное число для последовательности, генерируемой функцией rand().

(Функция rand() возвращает псевдослучайные числа.)
Часто функция srand() используется, чтобы

при различных запусках программа могла использовать различные последовательности псевдослучайных чисел, — для этого она должна задавать различные исходные числа. Кроме того, с помощью функции srand() можно многократно генерировать одну и ту же последовательность псевдослучайных чисел, — для этого нужно задавать в качестве исходного числа одно и то же значение. Иными словами, чтобы многократно генерировать одну и ту же последовательность псевдослучайных чисел, нужно вызывать данную функцию с одним и тем же значением параметра seed до начала генерации этой последовательности.

Функция srand() устанавливает исходное число для последовательности, генерируемой функцией rand(). (Функция rand() возвращает псевдослучайные числа.) Часто функция

Слайд 21
Функция rand() генерирует последовательность псевдослучайных чисел.
При каждом обращении к

функции возвращается целое в интервале между нулем и значением RAND_MAX,

которое в любой реализации должно быть не меньше числа 32 767.
Функция rand() генерирует последовательность псевдослучайных чисел. При каждом обращении к функции возвращается целое в интервале между нулем

Слайд 22Символьные строки

Символьные строки

Слайд 23Строковые константы
Строковая константа – это последовательность символов кода ASCII, заключённая

в кавычки "..." и имеющая тип char.
Примеры:
char str="This is character

string"
char str1="Это строковая константа"
char str2="A"
char str3="1234567890"
char str4="0"
char str5="$"
В конце каждой строки компилятор помещает нулевой байт '\0', отмечающий конец данной строки

Строковые константыСтроковая константа – это последовательность символов кода ASCII, заключённая в кавычки

Слайд 24
Каждая строковая константа, даже если она идентична другой строковой константе,

сохраняется в отдельном месте памяти
Если необходимо ввести в строку символ

кавычек ("), то перед ним надо поставить символ (\)
В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ \. При этом символ \ и следующий за ним символ новой строки игнорируется
Строковые константы размещаются в статической памяти. Вся фраза в кавычках является указателем на место в памяти, где записана строка. Это аналогично использованию имени массива, служащего указателем на расположение массива.

Каждая строковая константа, даже если она идентична другой строковой константе, сохраняется в отдельном месте памятиЕсли необходимо ввести

Слайд 25
/* Строки в качестве указателей */
main( )
{
printf("%s, %u, %c\n",

"We", "love“,*"Pascal");
}
В

примере, формат %s выводит строку We.
Формат %u выводит целое без знака. Если слово "love" является указателем, то выдается его значение, являющееся адресом первого символа строки.
Наконец, *"Pascal" должно выдать значение, на которое ссылается адрес, т.е. первый символ строки "Pascal".
Вот что выдаст программа:
We, 34, P
/* Строки в качестве указателей */main( ){ printf(

Слайд 26Массивы символьных строк и их инициализация
При определении массива символьных строк

необходимо сообщить компилятору требуемый размер памяти
Первый способ - инициализация массива

при помощи строковой константы
Например:
char m1[]="Только ограничьтесь одной строкой.";
Здесь оператор инициализировал внешний по умолчанию массив m1 для указанной строки
Массивы символьных строк и их инициализацияПри определении массива символьных строк необходимо сообщить компилятору требуемый размер памятиПервый способ

Слайд 27
char m1[ ]={
'T','o','л','ь','k','o','
','o','г'','p','a','н','и','ч','ь','т','e','c','ь','
',o','д','н','o','й','
','c','т','p','o','k','o','й','.','\0'
}

char m1[ ]={'T','o','л','ь','k','o','','o','г'','p','a','н','и','ч','ь','т','e','c','ь',' ',o','д','н','o','й',' ','c','т','p','o','k','o','й','.','\0'}

Слайд 28
Без символа ‘\0’ мы имеем массив символов, а не строку.

Для той и другой формы компилятор подсчитывает символы и таким

образом получает размер памяти.
Как и для других массивов, имя m1 является указателем на первый элемент массива:
m1==&m1[0]
*m1=='T', и
*(m1+1)==m1[1]=='o’

* - оператор разыменования
& - оператор взятия адреса
Без символа ‘\0’ мы имеем массив символов, а не строку. Для той и другой формы компилятор подсчитывает

Слайд 29Функции ввода-вывода строк

Функции ввода-вывода строк

Слайд 30Чтение и запись строк
Функция gets() читает строку символов, введенную с

клавиатуры, и записывает ее в память по адресу, на который

указывает ее аргумент
char *gets(char *cmp);
Здесь cmp - это указатель на массив символов, в который записываются символы, вводимые пользователем, gets() также возвращает cmp.
Функция puts() отображает на экране свой строковый аргумент, после чего курсор переходит на новую строку. Вот прототип этой функции:
int puts(const char *cmp);

Чтение и запись строкФункция gets() читает строку символов, введенную с клавиатуры, и записывает ее в память по

Слайд 31Пример использования
Следующая программа читает строку в массив str и выводит

ее длину:
#include
#include
int main(void) {
char

str[80];
gets(str);
printf("Длина в символах равна %d", strlen(str));
return 0;
}
Пример использованияСледующая программа читает строку в массив str и выводит ее длину: #include #include int main(void) {

Слайд 32Функции для обработки строк
Для выполнения описанных в этом подразделе функций

необходимо подключить файл string.h командой
#include

Функции для обработки строкДля выполнения описанных в этом подразделе функций необходимо подключить файл string.h командой #include

Слайд 34Пример 1:
/* сцепить две строки */
#include
#include
#include
int main(void)
{


char destination[25];
char *blank = " ",

*c = "C++", *turbo = "Turbo";
strcpy(destination, turbo);
strcat(destination, blank);
strcat(destination, c);
printf("%s\n", destination);
getch();
return 0;
}

Пример 1:/* сцепить две строки */#include #include #include int main(void){  char destination[25];  char *blank =

Слайд 35
char destination[25];
char blank[10], c[10], turbo[10];
printf

("введите строку");
gets(blank);
gets(c);
gets(turbo);
strcpy(destination,

turbo);
strcat(destination, blank);
strcat(destination, c);
puts(destination);
getch();
return 0;
}
char destination[25];  char blank[10], c[10], turbo[10];  printf (

Слайд 36Пример 2:
/* cцепить две строки, причем из второй строки копировать

не более n символов*/
#include
#include
#include
int main(void)
{
char destination[25];

char *source = "structured ";
strcpy(destination, "programming");
strncat(destination, source, 11);
printf("%s\n", destination);
getch();
return 0;
}
Пример 2:/* cцепить две строки, причем из второй строки копировать не более n символов*/#include #include #include int

Слайд 37
int main(void)
{
char buf1[] = "aaabbb", *buf2 = "bbbccc",

*buf3 = "ccc";
int ptr;
clrscr();
ptr

=;
if (strncmp(buf2,buf1,3)> 0)
printf("buffer 2 is greater than buffer 1\n");
else
printf("buffer 2 is less than buffer 1\n");
  ptr = strncmp(buf2,buf3,3);
if (ptr > 0)
printf("buffer 2 is greater than buffer 3\n");
else
printf("buffer 2 is less than buffer 3\n");
getch();
return(0);
}


Слайд 38
#include
#include
#include
int main(void)
{
char string[20];
char *ptr, c

= 'r';
strcpy(string, "This is a string");
ptr

= strchr(string, c);
if (ptr)
printf("The character %c is at position: %d\n", c, ptr);
else
printf("The character was not found\n");
getch();
return 0;
}

#include #include #include int main(void){char string[20];  char *ptr, c = 'r';  strcpy(string,

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика