Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка для изучения основ С++ 4 массивы

.doc
Скачиваний:
79
Добавлен:
20.05.2015
Размер:
174.59 Кб
Скачать

Составные типы данных

  1. Массивы

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

typeName arrayName [arraySize];

Например

short months[12]

создается массив с именем months, который содержит 12 элементов, каждый из которых может хранить значение типа short.Каждый элемент массива можно обрабатывать как обычную переменную. Для обращения к элементам массива используется индекс, который позволяет перечислять элементы. Нумерация элементов массива начинается с нуля. Таким образом, для указания i-го элемента массива нужно использовать команду

months[i]

Существует два варианта объявления массива

  1. инициализированный

int cards[4] = {3, 6, 8, 10}

Такую форму можно использовать только при определении массива, после определения применять ее нельзя.

int cards[4];

cards[4] = {3, 6, 8, 10}

  1. неинициализированный

В этом случае значения элементам массива можно присвоить индивидуально

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";

}

Задачи

  1. Написать фрагмент программы для вычисления:

    1. y = ;

    2. y = ;

    3. y = ;

    4. y = ;

    5. y = ;

y = .

  1. Дано 100 целых чисел. Распечатать их в обратном порядке по 6 чисел в строке.

  2. Дано 50 чисел. Определить, сколько среди них отличных от последнего числа.

  3. Дано 100 чисел. Напечатать сначала все отрицательные из них, а затем все остальные

  4. По заданным вещественным числам вычислить значение многочлена и его производной в точке t.

  5. Дано натуральное число n и действительные числа . В последовательности все отрицательные члены увеличить на 0.5, а все неотрицательные, меньшие среднеарифметического, заменить на 0.1

  6. Даны натуральное число n, целые числа . Получить сумму положительных, число отрицательных и число нулевых членов последовательности .

  7. Дан текст из 80 литер. Напечатать сначала все цифры, входящие в него, а затем все остальные литеры, сохраняя при этом взаимное расположение литер в каждой из этих двух групп

  8. Даны целые числа . Получить новую последовательность из 100 целых чисел, заменяя нулями, если || не равно max(), и заменяя единицей в противном случае (i = 1, ..., 100).

  9. Даны целые числа , . Преобразовать последовательность по правилу: если , то увеличить в 10 раз, иначе заменить нулем (i = 1, ..., 25)

  10. Даны вещественные числа . Требуется умножить все члены последовательности на квадрат ее наименьшего члена, если , и на квадрат ее наибольшего члена, если .

  11. Даны целые числа , каждое из которых отлично от нуля. Если в последовательности отрицательные и положительные члены чередуются, то ответом должна служить сама исходная последовательность. Иначе получить все отрицательные члены последовательности, сохранив порядок их следования.

  12. Дана последовательность из 100 различных целых чисел. Найти среднее арифметическое чисел этой последовательности, расположенных между максимальным и минимальным числами (в сумму включить и оба этих числа).

  13. Даны координаты n точек на плоскости: (n=20). Найти номера двух точек, расстояние между которыми наибольшее (считать, что такая пара точек единственная).

  14. В массиве содержаться результаты измерений температуры воздуха, которые проводились ежедневно в течение декабря месяца. Определить:

    1. среднемесячную температуру декабря;

    2. сколько раз температура была выше 0С;

    3. день, когда температура была наибольшей;

    4. день, когда первый раз температура поднялась выше нуля и увеличить эту температуру на 1С;

    5. любой из самых холодных дней декабря;

    6. сколько дней в декабре температура была выше средней;

    7. день, когда температура была ближе всего к средней температуре в декабре;

    8. минимальную температуру второй декады декабря;

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

    10. обменять местами температуры любого из самых холодных и самых теплых дней;

    11. среднюю температуру тех дней, которые предшествуют первому из самых холодных дней в декабре;

    12. любых два самых холодных дня;

    13. сколько раз в декабре температура меняла знак;

    14. вытеснить первую из минимальных температур на последнее место, сдвинув все остальные к началу массива;

  15. Сдвиг вправо массива

  16. Сдвиг влево массива

  17. Циклический сдвиг

  18. В массиве из 20 целых чисел найти наибольший элемент среди отрицательных и поменять его местами с первым элементом.

  19. Даны натуральные числа . Определить количество членов последовательности :

    1. являющихся нечетными числами;

    2. кратных 3 и не кратных 5;

    3. являющихся квадратами четных чисел;

    4. удовлетворяющих условию ;

    5. удовлетворяющих условию ;

  20. Дан массив из N элементов. Каждый отрицательный элемент заменить полусуммой тех двух элементов, которые стоят рядом с ним справа и слева.

  21. Даны: вещественное число а и массив вещественных чисел Q[1..n]. Выбрать два числа b и с из массива Q таким образом, чтобы числа а, b, с могли быть

    1. длинами сторон треугольника. Если таких чисел в массиве Q несколько выбрать первые из них;

    2. длинами сторон треугольника. Если таких чисел в массиве Q несколько выбрать последние из них. Вычислить площадь этого треугольника;

    3. длинами сторон треугольника. Подсчитать сколько таких чисел а и b в массиве Q;

    4. длинами сторон остроугольного треугольника. Вычислить его площадь;

    5. длинами сторон равнобедренного тупоугольного треугольника. Вычислить его площадь;

    6. длинами сторон треугольника, площадь которого максимальна среди всех площадей;

    7. длинами сторон прямоугольного треугольника, площадь которого максимальна среди всех площадей;

    8. длинами сторон треугольника. Определить вид этого треугольника: равносторонний, равнобедренный, разносторонний;

    9. длинами сторон треугольника, определить вид этого треугольника: прямоугольный, тупоугольный, остроугольный;

    10. длинами сторон треугольника, площадь которого максимальна среди всех площадей. Определить вид этого треугольника: равносторонний, равнобедренный, разносторонний, прямоугольный, тупоугольный, остроугольный.