§ 17. Массивы и структуры как параметры функций

Упражнения

    

1.  Для задачи из примера 17.5 выполните перечисленные задания.

1. Перечислите ситуации, которые относятся к «остальным случаям» в условии задачи.
2. Измените программу так, чтобы для «остальных случаев» выводились значения  begin mathsize 16px style min open parentheses straight b subscript 0 space... space straight b subscript straight m space minus space 1 end subscript close parentheses end style и  max open parentheses straight b subscript 0 space... space straight b subscript straight m space minus space 1 end subscript close parentheses. 

2.  Даны натуральные n, m, k целые a0, ..., an-1, b0, ..., bm-1, c0, ..., ck-1, получить:

1. begin mathsize 16px style t space equals space open curly brackets table attributes columnalign left end attributes row cell min open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses space plus space max open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space если space space space space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses less than negative 100 end cell row cell min open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses space plus space min open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space если space space space space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses greater than 100 end cell row cell m a x open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses space plus space max open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space straight в space остальных space случаях end cell end table close end style

2. t space equals space open curly brackets table attributes columnalign left end attributes row cell min open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses space plus space max open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space если space space space space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses space asterisk times space max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space greater than space 0 end cell row cell max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space plus space min open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space если space space space space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses space asterisk times space max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space less than negative 100 end cell row cell min open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space plus space max open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses comma space space space straight в space остальных space случаях end cell end table close

3. t space equals space open curly brackets table attributes columnalign left end attributes row cell min open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses space plus space max open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space если space space space space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses space asterisk times space max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space less than negative 10 end cell row cell max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space plus space min open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space space если space space space minus 10 space less or equal than space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses space asterisk times space max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space less than 0 end cell row cell max open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses space plus space max open parentheses straight b subscript 0... straight b subscript straight m space minus space 1 end subscript close parentheses comma space space если space space space 0 space less or equal than space min open parentheses straight с subscript 0... straight с subscript straight k space minus space 1 end subscript close parentheses space asterisk times space max open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space less than 10 end cell row cell min open parentheses straight c subscript 0... straight c subscript straight k space minus space 1 end subscript close parentheses space plus space max open parentheses straight a subscript 0... straight a subscript straight n space minus space 1 end subscript close parentheses comma space space space straight в space остальных space случаях end cell end table close

3.  Дано натуральное n и целые x0, ..., xn – 1, y0, ..., yn – 1. Получить:

1. begin mathsize 16px style t space equals space open curly brackets table attributes columnalign left end attributes row cell sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i superscript 2 comma space text при end text space sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i space straight y subscript straight i space greater than 0 end cell row cell sum from straight i space equals space 0 to straight n space minus 1 of space straight y subscript straight i superscript 2 comma space иначе end cell end table close end style

2. t space equals space open curly brackets table attributes columnalign left end attributes row cell sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i superscript 2 space minus space straight y subscript straight i superscript 2 comma space при space space sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i superscript 2 space minus space sum from straight i space equals space 0 to straight n space minus 1 of space straight y subscript straight i superscript 2 space less than space 0 end cell row cell sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i straight y subscript straight i comma space при space space sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i superscript 2 space minus space sum from straight i space equals space 0 to straight n space minus 1 of space straight y subscript straight i superscript 2 space greater than space 10 end cell row cell sum from straight i space equals space 0 to straight n space minus 1 of space straight x subscript straight i superscript 2 space straight y subscript straight i superscript 2 comma space straight в space остальных space случаях end cell end table close

Запись  begin mathsize 16px style begin inline style sum from straight i space equals space 0 to straight n space minus 1 of end style space straight x subscript straight i end style  обозначает сумму всех xi  при изменении i от 0 до n – 1: x0 + x1 + ... + xn – 1.

4. Задан двумерный массив a из m строк и n столбцов. Получить линейный массив b, в котором b[i] — это:

1. Количество положительных элементов i-й строки массива a
2. Целая часть среднего арифметического i-й строки массива a
3. Минимальный элемент i-й строки массива a.
4. Количество чисел, модуль которых равен модулю максимального элемента i-й строки массива a.  
5. Количество чисел, которые при делении на 3 и на 5 дают одинаковые остатки. 
6. Число, встречающееся в i-й строке массива a чаще других чисел. Если таких чисел несколько, то взять число с меньшим номером в строке. 
7. Реализовать пункты 1–6 для столбцов. Для этого транспонировать матрицу (см. пример 15.13).

5.  Задан двумерный массив a из m строк и n столбцов.

  1. Вывести номера строк, содержащих минимальный элемент двумерного массива.
  2. Вывести номера строк, в которых есть равные элементы. Если таких строк нет, то вывести соответствующее сообщение.
  3. Вывести номера строк, в которых все элементы различны. Если таких строк нет, то вывести соответствующее сообщение.
  4. Вывести номера строк, суммы элементов в которых равны. Вывод осуществить в виде таблицы.

Пример

Пояснение

0:

1: 2, 3

2: 3

3:

4: 5

5:

Сумма элементов первой стоки равна сумме элементов 2-й и 3-й строк, сумма элементов 2-й строки равна сумме элементов 3-й строки.

Сумма элементов 4-й строки равна сумме элементов 5-й строки.

Для строк 0 и 3 нет строк с равными им суммами.

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

5. реализовать пункты 1—4 для столбцов. Для этого транспонировать матрицу (см. пример 15.13).

6.  Внесите изменения в программу примера 17.8 так, чтобы программа корректно обрабатывала названия городов, состоящие более чем из одного слова (например, Старые Дороги или Нижний Новгород).

7.  Создать текстовый файл описанной ниже структуры. В первой строке в текстовом файле записать количество данных. Количество данных увеличить до 10, подобрав подходящую информацию. Вывести в текстовый файл с именем otchet.txt данные, удовлетворяющие перечисленным условиям.

1. В файле хранятся: название страны[1], столица, площадь (тыс. км2) и количество населения (млн чел):

Беларусь     Минск           208        9.41

Россия       Москва          17075      143.3

США          Вашингтон       9373       310.2

Канада       Оттава          9985       34.2

Франция      Париж           547        65.4

И т.д.

Найти количество стран с населением <=50 млн чел. и названия тех стран, название столицы которых состоит из k (вводится с клавиатуры) букв.

2. В файле хранятся: название производителя стиральной машины, ее модель, мощность и максимальная загрузка белья (кг).

Samsung     WW65K52E69S      2400    6.5

Bosch       WLT24440OE       2300    7

Haier       HW70-BP12758S    1900    7

LG          F12M7NDS0        1700    6

И т.д.

Найти количество стиральных машин с мощностью >2000 и названия производителей, в модель которых входит буква «х» (значение «х»  вводится с клавиатуры).

3. В файле хранятся: название озера[2], область, в которой оно расположено; его объем (млн м3), площадь (км2), максимальная глубина (м) и прозрачность(м).

Нарочь      Минская         710       79.6     24.8     7.4

Снуды       Витебская       107       22       16.5     6.6

Ричи        Витебская       131.5     12.9     51.9     5.5

Свитязь     Гродненская     7.76      25.2     15       5.2

И т.д.

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



[1] http://ostranah.ru/ – географический справочник «О странах» (дата доступа 20.06.2020).