13. Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = , 3 — высота h, опущенная на гипотенузу (h = c/2), 4 — площадь S = c·h/2. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).

14. Элементы равностороннего треугольника пронумерованы следующим образом: 1 — сторона a, 2 — радиус R1 вписанной окружности (R1 = = ), 3 — радиус R2 описанной окружности (R2 = 2·R1), 4 — площадь S = . Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника (в том же порядке).

15. Мастям игральных карт присвоены порядковые номера: 1 — пики,
2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6 ≤N≤ 14) и M — масть карты
(1 ≤M≤ 4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.

16. Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».

17. Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Вывести строку-описание указанного количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий», 23 — «двадцать три учебных задания», 31 — «тридцать одно учебное задание».

НЕ нашли? Не то? Что вы ищете?

18. Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать».

19. В восточном календаре принят 60-летний цикл, состоящий из 12-лет­них подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и черный. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года определить его название, если 1984 год — начало цикла: «год зеленой крысы».

20. Даны два целых числа: D (день) и M (месяц), определяющие правильную дату. Вывести знак Зодиака, соответствующий этой дате: «Водолей» (20.1–18.2), «Рыбы» (19.2–20.3), «Овен» (21.3–19.4), «Телец» (20.4–20.5), «Близнецы» (21.5–21.6), «Рак» (22.6–22.7), «Лев» (23.7–22.8), «Дева» (23.8–22.9), «Весы» (23.9–22.10), «Скорпион» (23.10–22.11), «Стрелец» (23.11–21.12), «Козерог» (22.12–19.1).


Массивы

Массивы - это особый тип данных, предназначенный для обработки однотипной информации, например списка значений температуры или перечня имен. Предположим, необходимо написать программу, которая запрашивает у пользователя пять оценок за выполненные студентами тесты, после чего производит с введенными значениями некоторые операции. Например, находит самую высокую оценку, которая будет обнаружена только после ввода всех пяти оценок студента, и выводит разницу между ней и каждой из остальных оценок. Чтобы можно было отыскать самую высокую, все пять оценок должны храниться в памяти. Для этого требуется структура данных, эквивалентная пяти переменным типа int. Можно, конечно, использовать пять отдельных переменных типа int, но с ними неудобно работать, и такое решение имеет очень ограниченную область применения, так как годится для нескольких значений, но совсем не подходит для работы с сотней оценок. Самым подходящим решением в данном случае является массив. Так, если хранить пять оценок в массиве, названном baho, идентификаторами пяти переменных, каждая из которых хранит свою конкретную оценку, будут baho[0], baho[l], baho[2], baho[3] и baho[4]. Все он имеют одно и то же имя – baho и разные индексы, помещенные в квадратные скобки.

В C++ массив, состоящий из пяти переменных типа int, объявляется так: int baho[5]; Это объявление подобно объявлению пяти переменных типа int с именами: baho[0], baho[l], baho[2], baho[3] и baho[4]. Переменные, составляющие массив, называются индексированными переменными или элементами массива. Доступ к ним осуществляется несколькими способами. Номер элемента массива, заданный в квадратных скобках, называется его индексом,

В C++ элементы массива индексируются, начиная с 0, а не с 1 или какого-то другого числа. Число элементов массива называется его объявленным размером или просто размером массива. При объявлении массива его размер задается в квадратных скобках после имени. Таким образом, элементы массива нумеруются, начиная с 0 и заканчивая целым числом, на единицу меньшим размера массива. В нашем примере элементы массива имеют тип int, но в общем случае они могут быть любого типа. Для того чтобы объявить массив с элементами типа doublе, нужно просто использовать в его объявлении ключевое слово double вместо int. В одном массиве не могут храниться элементы разных типов. Тип данных, который имеют элементы массива, называется его базовым типом. Таким образом, в нашем примере объявляется массив baho с базовым типом int.

Массивы можно объявлять в одном операторе объявления вместе с переменными обычных типов. Скажем, следующий оператор: int next. baho[5]. max; объявляет две переменные типа int (next и max) и один массив с базовым типом int (baho). Элемент массива (например, baho[3]) может использоваться везде, где допускается применение простых переменных типа int. Когда квадратные скобки используются в объявлении массива, допустим, в таком: int baho[5]: заключенное в них число определяет количество содержащихся в массиве элементов. В любом другом месте программы в квадратных скобках после имени массива задается индекс необходимого элемента, и вся конструкция представляет собой обращение к этому элементу. Например, baho[0] - первый элемент массива baho, а baho[4] - его последний элемент. Номер в квадратных скобках не обязательно задавать с помощью константы. Это может быть любое выражение, возвращающее целочисленное значение от 0 до числа, на единицу меньшего, чем размер массива. В приведенном фрагменте кода: int n = 2; и baho[n+l] = 99; элементу массива baho[3] присваивается значение 99.

Листинг 4. Программа, в которой используется массив. Считывает 5 оценок и показывает, насколько каждая из них отличается от наивысшей оценки.

#include <cstdlib>

#include <iostream>

using namespace std;

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

{

int i, baho[5], max;

cout<< “Введите 5 оценок \n”;

cin>> baho[0];

max = baho[0];

for (i = 1; i <5; 1++)

{

  cin>>baho[i]:

  if (baho[i] > max)

  max = baho[i];

}

cout<<”Наивысшаяоценка ”<< max<< endl

<<” Оценки и их разности от наивысшей\n”

for (i = 0; i <5; i++)

cout<< baho[i]<<’/t’<< (max-baho[i])<< endl;

system("PAUSE"); 

return EXIT_SUCCESS;

}

10.1. Сортировка массива

Одной из самых распространенных и наиболее тщательно изученных задач теории алгоритмов является сортировка набора значений, например сортировка объемов продаж какой-либо продукции в порядке убывания, сортировка деталей по размеру или сортировка слов по алфавиту. Имеются разные методы сортировки. Более подробно опишем простейшего и наиболее понятного алгоритма сортировки, который называется сортировкой методом выбора.

Итак, пусть задан массив чисел, состоящий из n элементов: a[0], a[1],…,a[n-1]. Написать программу упорядочивания его элементов по возрастанию. Иначе говоря, получить массив, в котором a[0]≤ a[1] ≤ … ≤ a[n-1]

Разработка алгоритма может быть основана на постановке задачи. В данном случае

Рассмотрим работу алгоритма на конкретном примере, используя массив, показанный на рис. 1. Согласно алгоритму наименьшее значение помещается в элемент а[0] массива. Наименьшим является значение элемента а[3]. Поэтому меняются местами значения а[0] и а[3]. Затем среди оставшихся элементов а[1],а[2],а[3],... ,а[9] отыскивается следующее наименьшее значение. В нашем примере это значение элемента а[5], которое меняется местами со значением элемента а[1]. Далее алгоритм находит и помещает на нужное место третий наименьший элемент, затем четвертый и т. д. По мере сортировки все большая часть массива, начиная с начала, заполняется правильно отсортированными значениями. Обратите внимание, что в самом конце ничего не надо делать с последним элементом массива, а[9]. Если все остальные значения расположены правильно, а[9] тоже содержит верное значение. Ведь когда в неотсортированной части массива, откуда нужно выбрать наименьшее значение, остается только элемент а[9], он и является наименьшим значением, которое нужно поменять местами с самим собой.

а[0]

а[1]

а[2]

а[3]

а[4]

а[5]

а[6]

а[7]

а[8]

а[9]

8

6

10

2

16

4

18

14

12

20


8

6

10

2

16

4

18

14

12

20


2

6

10

8

16

4

18

14

12

20


2

6

10

8

16

4

18

14

12

20


2

4

10

8

16

6

18

14

12

20

  ……………………………………………………………………

Рис. 4.Порядок сортировки

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15