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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.05.2021

Просмотров: 257

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

  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. длинами сторон треугольника, площадь которого максимальна среди всех площадей. Определить вид этого треугольника: равносторонний, равнобедренный, разносторонний, прямоугольный, тупоугольный, остроугольный.