Задание 3. Работа с массивами и строками.

Массив - упорядоченная структура, созданная для хранения однотипных данных.

Упорядочение частей в массиве происходит по их индексам. Индекс - порядковый номер элемента (нумерация с 0).

Массив задается именованием, типом хранимых данных и размерностью. Размерность - очень вероятное количество частей в массиве.

Массивы бывают одномерные (линейные), двумерные (матрицы) и многомерные.

Объявление массива происходит последующим образом:

int ma[10];

/* Объявлен одномерный массив с именованием Задание 3. Работа с массивами и строками. ma на 10 частей целого типа*/

float b[10][5]

/* Объявлен 2-мерный массив (матрица) с именованием b

на 10 строк по 5 частей вещественного типа в каждой.*/

int c[5] = {5,6,1,8,9};

//Объявление массива

// и задание исходных значений при объявлении

Для воззвания к элементу массива в программке (записи либо чтении данных из массива) указывается имя массива и в квадратных скобках индексы элемента.

Пример Задание 3. Работа с массивами и строками.:

Присвоение переменной х значения ячейки №0 массива mа:

x = ma [0];

Ввод значения c клавиатуры в ячейку №2 массива ma:

scanf (“%d”, &ma[2] );

Изменение значения ячеек массивов:

ma [i] = 5; /*ячейке массива ma , номер которой записан в переменной i, присвоено значение 5*/

b [1][2] = 3; /*ячейке массива b с индексами 1, 2(строчка массива 1, элемент 2 в строке) присвоено значение 3 */

Вывод значения ячейки №2 массива Задание 3. Работа с массивами и строками. ma на экран:

printf (“%d”, ma[2]);

Обычными задачками работы с массивом являются поиск по массиву, ввод-вывод значений частей, сортировка массивов и т.п. Такие задачки решаются обработкой значения каждой ячейки массива. При всем этом над каждой ячейкой массива совершаются одни и те же деяния (употребляются одни и те же операторы, функции Задание 3. Работа с массивами и строками. и т.п.), а меняется только номер элемента. Таким макаром, происходит последовательное перемещение по массиву. Для перемещения заместо определенного номера элемента в квадратных скобках ставится переменная целочисленного типа (обычно int). Значение переменной можно изменять при помощи цикла for либо простых математических действий (сложения, вычитания) в циклах while и do while.

В процессе обработки массива Задание 3. Работа с массивами и строками. нередко появляется задачка перестановки частей массива. Для этого нужно иметь дополнительную (буферную) переменную для временного хранения значения одной из переставляемых ячеек. Тип переменной должен соответствовать типу данных в массиве. Порядок перестановки последующий:

1. значение текущего элемента записывается в буферную переменную;

2. значение заменяемого элемента присваивается текущему;

3. значение буферной переменной присваивается заменяемому элементу Задание 3. Работа с массивами и строками..

При поиске по массиву происходит сопоставление проверяемой ячейки (дальше – текущей) с каким или граничным значением. К примеру, последними значениями спектра, условным минимумом либо максимумом и др.

Локальные максимумы (минимумы) – это значения частей массива, которые больше (меньше) обоих примыкающих, т.о. 1-ый и последний элементы не могут являться Задание 3. Работа с массивами и строками. ими.

Строчки в С++ представляются в виде массива целых чисел типа char - кодов букв (от -128 до 127). Эмблемой, обозначающим конец строчки, является нулевой б ‘\0’. Знаки, расположенные в массиве после него игнорируются. Соответственно, объявление строчки не отличается от объявления массива. Количество ячеек массива должно быть на 1 больше наибольшей вероятной длины строчки (для нулевого Задание 3. Работа с массивами и строками. б). При работе со строчками элементы массива ассоциируют с граничными значениями, представленными в виде символьных констант, к примеру:

char str[26]; // объявлена строчка с именованием str.

//Длина строчки – менее 25 знаков

if (str[i] = = ‘f’) /*Если элемент строчки str номер i содержит

знак f, то … */

Для ввода строк с клавиатуры можно использовать функцию gets(str) [1, с Задание 3. Работа с массивами и строками.. 25], где str – имя массива типа char, в каком будет храниться строчка.

Пример 1: Дан целочисленный массив на 10 частей. Конвертировать и вывести его возведя все отрицательные элементы в квадрат.

#include

#include

//Подключаем библиотеки

int main(int argc, char* argv[])

{

int mas[10] = {-5, 7, 9, -8, 12, -4, -2, 1, -6, 2}, i, col; //*

//Объявление массива и переменных i и col целого типа.

for(i = 0; i <= 9; i++) /*Начало цикла:

( изменяем значение счетчика i от 0 до Задание 3. Работа с массивами и строками. 9 с шагом 1)*/

{

if (mas[i] < 0) //Если элемент массива отрицательный, то …

{

mas[i] = mas[i] * mas[i]; /*его значение возводится в

квадрат*/

}

printf("\n Элемент № %d = %d", i, mas[i]);

// Вывод перевоплощенных частей

}

//Конец цикла.

getche();

/*Ожидание нажатия хоть какой кнопки

для окончания программки*/

return 0;

//Конец программки

}

* В учебных целях допускается задание значений частей массива при его Задание 3. Работа с массивами и строками. объявлении, но, при написании программки, необходимо учесть, что массив может быть введен при выполнении программки.

Пример 2: Дана строчка. Подсчитать долю в % первых 4 букв российского алфавита (а,б,в, г) от всех знаков строчки.

#include

#include

//Подключаем библиотеки

int main(int argc, char* argv[])

{

int i, col =0, str_l; //Объявление переменных целого типа.

char str[50]; //Объявление строчки на 49 знаков

printf(“\n Введите Задание 3. Работа с массивами и строками. строчку:”);

gets(str); //Ввод строчки с клавиатуры

str_l = strlen(str); //Определяем длину введенной строчки

for(i = 0; i < str_l; i++) /*Начало цикла:

( изменяем значение счетчика i от 0 до номера последнего

элемента строчки с шагом 1)*/

{

if ( ((str[i] >= ‘А’) && (str[i] <= ‘Г’)) ||

((str[i] >= ‘а’ ) && (str[i] <= ‘г’ )) )

/*Если буковка №i строчки str является строчной Задание 3. Работа с массивами и строками. либо

строчный буковкой в интервале от а до г, то …*/

{

col = col +1; /*счетчик возрастает на 1

}

} //Конец цикла

printf("\n Толика букв а,б,в,г = %f %%", col*100/str_l); //*

// Вычисление и вывод результата

getche();

/*Ожидание нажатия хоть какой кнопки

для окончания программки*/

return 0;

//Конец программки

}

* Для вывода на экран знака % его нужно напечатать 2 раза.

№ вар. Задание
1. Отыскать Задание 3. Работа с массивами и строками. малый и наибольший элемент в массиве из 10 частей.
2. Отыскать номера малого и наибольшего элемента в массиве из 10 частей.
3. Отыскать малый положительный из 10 частей массива. Если требуемые элементы отсутствуют, то вывести 0.
4. Отыскать наибольший отрицательный из 10 частей массива. Если требуемые элементы отсутствуют, то вывести 0.
5. Дан массив на 10 чисел. Вывести их среднее арифметическое Задание 3. Работа с массивами и строками..
6. Дан целочисленный массив на 10 частей. Конвертировать и вывести его, прибавив к элементам с четным номером 1-ый элемент. 1-ый и последний элементы массива не изменять.
7. Дан целочисленный массив на 10 частей. Конвертировать и вывести его, прибавив к элементам с нечетным номером последний элемент. 1-ый и последний элементы массива не изменять Задание 3. Работа с массивами и строками..
8. Дан массив на 10 частей. Отыскать 1-ый его локальный минимум.
9. Дан массив на 10 частей. Отыскать 1-ый его локальный максимум.
10. Дано число k (0 < k < 9) и массив (матрица) размера 10 x 10. Отыскать сумму частей k-го столбца данного массива.
11. Дано число k (0 < k < 9) и массив (матрица) размера 10 x 10. Отыскать произведение частей k Задание 3. Работа с массивами и строками.-го столбца данной массива.
12. Дана матрица размера 10 x 10. Отыскать сумму частей главной диагонали (имеют однообразные индексы – 1,1; 3,3 и т.п.).
13. Дано число k (0 < k < 9) и массив (матрица) размера 10 x 10. Отыскать наибольший элемент k-ой строчки данного массива.
14. Дано число k (1 < k < 9) и массив (матрица) размера 10 x 10. Поменять местами 1-й и Задание 3. Работа с массивами и строками. k-ый столбец массива.
15. Дана строчка случайных знаков. Подсчитать количество содержащихся в ней цифр.
16. Дана строчка случайных знаков. Подсчитать количество содержащихся в ней строчных британских букв.
17. Дана строчка случайных знаков. Подсчитать количество содержащихся в ней строчных британских букв.
18. Дана строчка случайных знаков. Если она представляет собой запись целого числа (все знаки - числа Задание 3. Работа с массивами и строками.), то вывести 1, если нет, то 0.
19. Дана строчка, состоящая из слов, разбитых пробелами. Найти количество слов в строке.
20. Дана строчка, содержащая несколько круглых скобок. Если скобки расставлены верно (другими словами каждой открывающей соответствует одна закрывающая), то вывести число 0. В неприятном случае вывести число 1.


zadanie-3-napishite-otricatelnie-predlozheniya.html
zadanie-3-oboznacheniya-rezus-prinadlezhnosti-uchebnoe-posobie-dlya-samostoyatelnoj-vneauditornoj-raboti-studentov.html
zadanie-3-ocenka-nedvizhimosti-metodom-kapitalizacii-dohoda.html