Методичка для изучения основ С++ 4 массивы
.docСоставные типы данных
-
Массивы
Массив – это тип данных, который может включать несколько значений одного типа. Объявить массив можно следующим образом
typeName arrayName [arraySize];
Например
short months[12]
создается массив с именем months, который содержит 12 элементов, каждый из которых может хранить значение типа short.Каждый элемент массива можно обрабатывать как обычную переменную. Для обращения к элементам массива используется индекс, который позволяет перечислять элементы. Нумерация элементов массива начинается с нуля. Таким образом, для указания i-го элемента массива нужно использовать команду
months[i]
Существует два варианта объявления массива
-
инициализированный
int cards[4] = {3, 6, 8, 10}
Такую форму можно использовать только при определении массива, после определения применять ее нельзя.
int cards[4];
cards[4] = {3, 6, 8, 10}
-
неинициализированный
В этом случае значения элементам массива можно присвоить индивидуально
int hand[4];
hand[0] = 5;
hand[1] = 3;
hand[2] = 8;
hand[3] = 9;
Если массив инициализируется частично, то транслятор устанавливает для оставшихся элементов нулевые значения. Таким образом, чтобы присвоить всем элементам массива нулевые значения, нужно лишь присвоить первому элементу нуль.
float totals[500] = {0};
При работе с массивами следует также следить, чтобы не выйти за объявленные границы.
Пример. Заполнить массив значениями возраста некоторых людей.
Решение
#include<iostream>
#include<clocale>
usingnamespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int age[4];
for (int j=0; j<4; j++)
{
cout <<"Введите возраст: ";
cin >> age[j];
}
for (int j=0; j<4; j++)
cout <<"Вы ввели: "<< age[j]<<'\n';
return 0;
}
Описанные выше массивы являются одномерными, т.е. данные массивы можно представить в виде одной строки данных. Двумерный массив схож с таблицей, имеющей строки и столбцы данных. В этом случае создается массив, каждый элемент которого также является массивом.
int mas [4][5];
mas является массивом из 4 элементов, причем каждый элемент данного массива представляет собой массив из 5 целочисленных значений.
Инициализировать двумерный массив можно следующим образом
int mas[4][5] =
{
{25,35,45,85,65},
{10,25,23,65,85},
{87,45,32,65,98},
{65,85,11,23,65}
};
Для того чтобы вывести содержимое всего массива, можно воспользоваться вложенным циклом.
for (int row = 0; row < 4; row++)
{
for (int col = 0; col < 5; col++)
cout << mas[row][col] <<'\t';
cout <<"\n";
}
Задачи
-
Написать фрагмент программы для вычисления:
-
y = ;
-
y = ;
-
y = ;
-
y = ;
-
y = ;
-
y = .
-
Дано 100 целых чисел. Распечатать их в обратном порядке по 6 чисел в строке.
-
Дано 50 чисел. Определить, сколько среди них отличных от последнего числа.
-
Дано 100 чисел. Напечатать сначала все отрицательные из них, а затем все остальные
-
По заданным вещественным числам вычислить значение многочлена и его производной в точке t.
-
Дано натуральное число n и действительные числа . В последовательности все отрицательные члены увеличить на 0.5, а все неотрицательные, меньшие среднеарифметического, заменить на 0.1
-
Даны натуральное число n, целые числа . Получить сумму положительных, число отрицательных и число нулевых членов последовательности .
-
Дан текст из 80 литер. Напечатать сначала все цифры, входящие в него, а затем все остальные литеры, сохраняя при этом взаимное расположение литер в каждой из этих двух групп
-
Даны целые числа . Получить новую последовательность из 100 целых чисел, заменяя нулями, если || не равно max(), и заменяя единицей в противном случае (i = 1, ..., 100).
-
Даны целые числа , . Преобразовать последовательность по правилу: если , то увеличить в 10 раз, иначе заменить нулем (i = 1, ..., 25)
-
Даны вещественные числа . Требуется умножить все члены последовательности на квадрат ее наименьшего члена, если , и на квадрат ее наибольшего члена, если .
-
Даны целые числа , каждое из которых отлично от нуля. Если в последовательности отрицательные и положительные члены чередуются, то ответом должна служить сама исходная последовательность. Иначе получить все отрицательные члены последовательности, сохранив порядок их следования.
-
Дана последовательность из 100 различных целых чисел. Найти среднее арифметическое чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).
-
Даны координаты n точек на плоскости: (n=20). Найти номера двух точек, расстояние между которыми наибольшее (считать, что такая пара точек единственная).
-
В массиве содержаться результаты измерений температуры воздуха, которые проводились ежедневно в течение декабря месяца. Определить:
-
среднемесячную температуру декабря;
-
сколько раз температура была выше 0С;
-
день, когда температура была наибольшей;
-
день, когда первый раз температура поднялась выше нуля и увеличить эту температуру на 1С;
-
любой из самых холодных дней декабря;
-
сколько дней в декабре температура была выше средней;
-
день, когда температура была ближе всего к средней температуре в декабре;
-
минимальную температуру второй декады декабря;
-
минимальную температуру тех дней декабря, которые следуют после последнего из самого теплых дней в этом месяце;
-
обменять местами температуры любого из самых холодных и самых теплых дней;
-
среднюю температуру тех дней, которые предшествуют первому из самых холодных дней в декабре;
-
любых два самых холодных дня;
-
сколько раз в декабре температура меняла знак;
-
вытеснить первую из минимальных температур на последнее место, сдвинув все остальные к началу массива;
-
-
Сдвиг вправо массива
-
Сдвиг влево массива
-
Циклический сдвиг
-
В массиве из 20 целых чисел найти наибольший элемент среди отрицательных и поменять его местами с первым элементом.
-
Даны натуральные числа . Определить количество членов последовательности :
-
являющихся нечетными числами;
-
кратных 3 и не кратных 5;
-
являющихся квадратами четных чисел;
-
удовлетворяющих условию ;
-
удовлетворяющих условию ;
-
-
Дан массив из N элементов. Каждый отрицательный элемент заменить полусуммой тех двух элементов, которые стоят рядом с ним справа и слева.
-
Даны: вещественное число а и массив вещественных чисел Q[1..n]. Выбрать два числа b и с из массива Q таким образом, чтобы числа а, b, с могли быть
-
длинами сторон треугольника. Если таких чисел в массиве Q несколько выбрать первые из них;
-
длинами сторон треугольника. Если таких чисел в массиве Q несколько выбрать последние из них. Вычислить площадь этого треугольника;
-
длинами сторон треугольника. Подсчитать сколько таких чисел а и b в массиве Q;
-
длинами сторон остроугольного треугольника. Вычислить его площадь;
-
длинами сторон равнобедренного тупоугольного треугольника. Вычислить его площадь;
-
длинами сторон треугольника, площадь которого максимальна среди всех площадей;
-
длинами сторон прямоугольного треугольника, площадь которого максимальна среди всех площадей;
-
длинами сторон треугольника. Определить вид этого треугольника: равносторонний, равнобедренный, разносторонний;
-
длинами сторон треугольника, определить вид этого треугольника: прямоугольный, тупоугольный, остроугольный;
-
длинами сторон треугольника, площадь которого максимальна среди всех площадей. Определить вид этого треугольника: равносторонний, равнобедренный, разносторонний, прямоугольный, тупоугольный, остроугольный.
-