Вы можете ознакомиться и скачать презентацию на
тему Числовые и символьные массивы.
Доклад-сообщение содержит 38 слайдов.
Презентации для любого класса можно скачать бесплатно.
Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь
им с друзьями с помощью социальных кнопок и добавьте в закладки в своем
браузере.
Слайды и текст этой презентации
Слайд 1
Описание слайда:
Использование массивов
Слайд 2
Описание слайда:
Определение массива
Массив – это линейный тип данных или последовательность ячеек памяти одинакового типа. Массивы используются практически в любой программе. Массивы могут быть одномерными, двумерными и многомерными. Одномерные массивы соответствуют строке, двумерные – матрице.
Слайд 3
Описание слайда:
Объявление массивов
При объявлении массива указывают тип его элементов и в квадратных скобках размер массива.
Для одномерного массива объявление запишется в виде:
int a[10];
Слайд 4
Описание слайда:
Одномерные массивы
Удобно использовать при объявлении массива директиву препроцессора #define:
#define SIZE 10 // определили поименованную константу, задающую
размер массива
void main()
{
int a[SIZE];
…
}
Слайд 5
Описание слайда:
Одномерные массивы
Для доступа к элементу массива указывают в квадратных скобках его номер. При этом следует отметить, что в языке С индексация элементов массива начинается с нуля.
То есть для инициализации первого элемента массива единицей необходимо записать оператор:
a[0]=1;
Слайд 6
Описание слайда:
Одномерные массивы
Для работы с массивами обычно используют цикл for.
Инициализировать массив можно разными способами.
Если требуется можно инициализировать элементы массива сразу после объявления:
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Слайд 7
Описание слайда:
Одномерные массивы
Можно заполнить элементы массива непосредственно в программе:
int a[10];
a[5] = 5;
for (int i=0; i<10; i++)
a[i]=0;
В этом примере сначала шестому элементу массива присваивается значения пять, затем все элементы массива обнуляются.
Слайд 8
Описание слайда:
Одномерные массивы
Инициализация одномерного массива пользователем запишется в виде:
int a[10];
for (int i=0; i<10; i++) {
printf(″Введите значение a[%d]\n″, i);
scanf(″%d″, &a[i]);
}
В этом примере сначала элементам массива присваиваются значения введенные пользователем.
Слайд 9
Описание слайда:
Примеры
Рассмотрим пример нахождения количества отрицательных элементов массива.
int a[10], count=0;
…
for (int i=0; i<10; i++)
if (a[i]<0) count++;
…
Слайд 10
Описание слайда:
Примеры
Пример нахождения суммы отрицательных элементов массива.
int a[10], sum=0;
…
for (int i=0; i<10; i++)
if (a[i]<0) sum=sum+a[i];
…
Слайд 11
Описание слайда:
Примеры
Пример нахождения минимального элемента массива и его индекса.
int a[10], min, mini;
…
min=a[0];
for (int i=1; i<10; i++)
if (a[i]<min) {
min=a[i];
mini=i;
}
…
Слайд 12
Описание слайда:
Использование многомерных массивов
При создании двухмерного массива после его имени ставится два значения – количество строк и столбцов:
int a[10][12];
Слайд 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
};
Слайд 14
Описание слайда:
Далее на примере показаны инициализация и вывод элементов двухмерного массива.
int a[10][20];
for (int i=0; i<10; i++)
for (int j=0; j<20; j++)
a[i][j] = 0;
Слайд 15
Описание слайда:
for (int i=0; i<10; i++)
for (int j=0; j<20; j++)
if(i==j)
a[i][j] = 1;
Слайд 16
Описание слайда:
for (i=0; i<10; i++)
{
for (int j=0; j<20; j++)
printf(“%i”, a[i][j])
printf(“\n”);
}
Слайд 17
Описание слайда:
Алгоритм сортировки пузырьком
Слайд 18
Описание слайда:
Сортировка методом пузырька
Слайд 19
Описание слайда:
Результат работы
srand(4); for (int i=0; i<10; i++) a[i] = rand()*10;
Слайд 20
Описание слайда:
Функция srand() устанавливает исходное число для последовательности, генерируемой функцией rand(). (Функция rand() возвращает псевдослучайные числа.)
Часто функция srand() используется, чтобы при различных запусках программа могла использовать различные последовательности псевдослучайных чисел, — для этого она должна задавать различные исходные числа. Кроме того, с помощью функции srand() можно многократно генерировать одну и ту же последовательность псевдослучайных чисел, — для этого нужно задавать в качестве исходного числа одно и то же значение. Иными словами, чтобы многократно генерировать одну и ту же последовательность псевдослучайных чисел, нужно вызывать данную функцию с одним и тем же значением параметра seed до начала генерации этой последовательности.
Слайд 21
Описание слайда:
Функция rand() генерирует последовательность псевдослучайных чисел.
При каждом обращении к функции возвращается целое в интервале между нулем и значением RAND_MAX, которое в любой реализации должно быть не меньше числа 32 767.
Слайд 22
Описание слайда:
Символьные строки
Слайд 23
Описание слайда:
Строковые константы
Строковая константа – это последовательность символов кода ASCII, заключённая в кавычки "..." и имеющая тип char.
Примеры:
char str="This is character string"
char str1="Это строковая константа"
char str2="A"
char str3="1234567890"
char str4="0"
char str5="$"
В конце каждой строки компилятор помещает нулевой байт '\0', отмечающий конец данной строки
Слайд 24
Описание слайда:
Каждая строковая константа, даже если она идентична другой строковой константе, сохраняется в отдельном месте памяти
Если необходимо ввести в строку символ кавычек ("), то перед ним надо поставить символ (\)
В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ \. При этом символ \ и следующий за ним символ новой строки игнорируется
Строковые константы размещаются в статической памяти. Вся фраза в кавычках является указателем на место в памяти, где записана строка. Это аналогично использованию имени массива, служащего указателем на расположение массива.
Слайд 25
Описание слайда:
/* Строки в качестве указателей */
main( )
{
printf("%s, %u, %c\n", "We", "love“,*"Pascal");
}
В примере, формат %s выводит строку We.
Формат %u выводит целое без знака. Если слово "love" является указателем, то выдается его значение, являющееся адресом первого символа строки.
Наконец, *"Pascal" должно выдать значение, на которое ссылается адрес, т.е. первый символ строки "Pascal".
Вот что выдаст программа:
We, 34, P
Слайд 26
Описание слайда:
Массивы символьных строк и их инициализация
При определении массива символьных строк необходимо сообщить компилятору требуемый размер памяти
Первый способ - инициализация массива при помощи строковой константы
Например:
char m1[]="Только ограничьтесь одной строкой.";
Здесь оператор инициализировал внешний по умолчанию массив m1 для указанной строки
Без символа ‘\0’ мы имеем массив символов, а не строку. Для той и другой формы компилятор подсчитывает символы и таким образом получает размер памяти.
Как и для других массивов, имя m1 является указателем на первый элемент массива:
m1==&m1[0]
*m1=='T', и
*(m1+1)==m1[1]=='o’
* - оператор разыменования
& - оператор взятия адреса
Слайд 29
Описание слайда:
Функции ввода-вывода строк
Слайд 30
Описание слайда:
Чтение и запись строк
Функция gets() читает строку символов, введенную с клавиатуры, и записывает ее в память по адресу, на который указывает ее аргумент
char *gets(char *cmp);
Здесь cmp - это указатель на массив символов, в который записываются символы, вводимые пользователем, gets() также возвращает cmp.
Функция puts() отображает на экране свой строковый аргумент, после чего курсор переходит на новую строку. Вот прототип этой функции:
int puts(const char *cmp);
Слайд 31
Описание слайда:
Пример использования
Следующая программа читает строку в массив str и выводит ее длину:
#include <stdio.h>
#include <string.h>
int main(void) {
char str[80];
gets(str);
printf("Длина в символах равна %d", strlen(str));
return 0;
}
Слайд 32
Описание слайда:
Функции для обработки строк
Для выполнения описанных в этом подразделе функций необходимо подключить файл string.h командой
#include <string.h>
Пример 2:
/* cцепить две строки, причем из второй строки копировать не более n символов*/
#include <string.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
char destination[25];
char *source = "structured ";
strcpy(destination, "programming");
strncat(destination, source, 11);
printf("%s\n", destination);
getch();
return 0;
}
Слайд 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 <string.h>
#include <stdio.h>
#include <conio.h>
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;
}