Главная страница
Навигация по странице:

  • Теоретическая часть

  • Элемент Вид Описание

  • Вопросы для самоконтроля

  • Практическая часть Задание №1.

  • Варианты задания №1

  • Задание №2.

  • Задание №4.

  • Задание №6.

  • Контрольные вопросы

  • Лабораторные работы №3-7. Лабораторная работа программирование алгоритмов линейной структуры на языке c#


    Скачать 0.74 Mb.
    НазваниеЛабораторная работа программирование алгоритмов линейной структуры на языке c#
    АнкорЛабораторные работы №3-7.docx
    Дата22.02.2018
    Размер0.74 Mb.
    Формат файлаdocx
    Имя файлаЛабораторные работы №3-7.docx
    ТипЛабораторная работа
    #15811
    страница5 из 7
    1   2   3   4   5   6   7

    ЛАБОРАТОРНАЯ РАБОТА № 6. ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ НА ЯЗЫКЕ C#.



    Цель работы: овладение практическими навыками работы с одномерными массивами, особенностями их ввода и вывода и обработке данных в них.
    Теоретическая часть
    Массив - набор элементов одного и того же типа, объединенных общим именем. Массивы в С# можно использовать по аналогии с тем, как они используются в других языках программирования. Однако С#-массивы имеют существенные отличия: они относятся к ссылочным типам данных, более того - реализованы как объекты. Фактически имя массива является ссылкой на область динамической памяти, в которой последовательно размещается набор элементов определенного типа. Выделение памяти под элементы происходит на этапе инициализации массива. А за освобождением памяти следит система сборки мусора - неиспользуемые массивы автоматически утилизируются данной системой.

    Одномерные массивы

    Одномерный массив - это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент имеет свой номер. Нумерация элементов массива в С# начинается с нуля, то есть, если массив состоит из 10 элементов, то его элементы будут иметь следующие номера: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

    Одномерный массив в С# реализуется как объект, поэтому его создание представляет собой двухступенчатый процесс. Сначала объявляется ссылочная переменная на массив, затем выделяется память под требуемое количество элементов базового типа, и ссылочной переменной присваивается адрес нулевого элемента в массиве. Базовый тип определяет тип данных каждого элемента массива. Количество элементов, которые будут храниться в массиве, определяется размер массива.

    В общем случае процесс объявления переменной типа массив, и выделение необходимого объема памяти может быть разделено. Кроме того на этапе объявления массива можно произвести его инициализацию. Поэтому для объявления одномерного массива может использоваться одна из следующих форм записи:

    Форма записи

    Пояснения

    базовый_тип [ ] имя__массива;

    Например:

    int [ ] a;

    Описана ссылка на одномерный массив, которая в дальнейшем может быть использована:

    - для адресации на существующий массив;

    - передачи массива в метод в качестве параметра

    - отсроченного выделения памяти под элементы массива

    базовый_тип [ ] имя__массива = new базовый_тип [размер];

    Например:

    int [ ]a=new int [10];

    Объявлен одномерный массив заданного типа и выделена память под одномерный массив указанной размерности. Адрес данной области памяти записан в ссылочную переменную. Элементы массива равны нулю. Замечание. В C# элементам массива присваиваются начальные значения по умолчанию в зависимости от базового типа: для арифметических типов - нули, для ссылочных типов - null, для символов - пробел.

    базовый_тип [ ] имя__массива={список инициализации};

    Например:

    int [ ]a={0, 1, 2, 3};

    Выделена память под одномерный массив, размерность которого соответствует количеству элементов в списке инициализации. Адрес этой области памяти записан в ссылочную переменную. Значение элементов массива соответствует списку инициализации.

    Обращения к элементам массива происходи с помощью индекса, для этого нужно указать имя массива и в квадратных скобках его номер. Например, a[0], b[10], c[i].

    Так как массив представляет собой набор элементов, объединенных общим именем, то обработка массива обычно производится в цикле.

    Пример:

    static void Main()

    {

    int[ ] myArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

    int i;

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

    Console.WriteLine(myArray[i]);

    }
    Массив как параметр

    Так как имя массива фактически является ссылкой, то он передается в метод по ссылке и, следовательно, все изменения элементов массива, являющегося формальным параметром, отразятся на элементах соответствующего массива, являющимся фактическим параметром.

    Пример: передача массива как параметра:

    class Program

    {

    static void Print(int n, int[ ] a) //n - размерность массива, а - ссылка на массив

    {

    for (int i = 0; i < n; i++) Console.Write("{0} ", a[i]);

    Console.WriteLine();

    }
    static void Change(int n, int[ ] a)

    {

    for (int i = 0; i < n; i++)

    if (a[i] > 0) a[i] = 0; // изменяются элементы массива

    }
    static void Main()

    {

    int[ ] myArray = { 0, -1, -2, 3, 4, 5, -6, -7, 8, -9 };

    Print(10, myArray);

    Change(10, myArray);

    Print(10, myArray);

    }

    }
    Массив как объект

    Так как массивы в С# реализованы как объекты и они реализованы на основе базового класса Array, определенного в пространстве имен System. Данный класс содержит различные свойства и методы. Например, свойство Length позволяет определять количество элементов в массиве. Преобразуем предыдущий пример:

    class Program

    {

    static void Print(int[ ] a) // передаем только ссылку на массив

    {

    for (int i = 0; i < a.Length; i++) Console.Write("{0} ", a[i]);

    Console.WriteLine();

    }
    static void Change(int[ ] a)

    {

    for (int i = 0; i < a.Length; i++)

    if (a[i] > 0) a[i] = 0;

    }
    static void Main()

    {

    int[] myArray = { 0, -1, -2, 3, 4, 5, -6, -7, 8, -9 };

    Print(myArray);

    Change(myArray);

    Print(myArray);

    }

    }
    Некоторые свойства и методы класса Array:


    Элемент

    Вид

    Описание

    Length

    Свойство

    Количество элементов массива (по всем размерностям)

    BinarySearch

    Статический метод

    Двоичный поиск в отсортированном массиве

    Clear

    Статический метод

    Присваивание элементам массива значений по умолчанию

    Copy

    Статический метод

    Копирование заданного диапазона элементов одного массива в другой

    CopyTo

    экземплярный метод

    Копирование всех элементов текущего одномерного массива в другой массив

    GetValue

    экземплярный метод

    Получение значения элемента массива

    IndexOf

    статический метод

    Поиск первого вхождения элемента в одномерный массив

    LastIndexOf

    статический метод

    Поиск последнего вхождения элемента в одномерный массив

    Reverse

    статический метод

    Изменение порядка следования элементов на обратный

    SetValue

    экземплярный метод

    Установка значения элемента массива

    Sort

    статический метод

    Упорядочивание элементов одномерного массива


    Вызов статических методов происходит через обращение к имени класса, например, Array.Sort(myArray). В данном случае происходит обращение к статическому методу Sort класса Array и происходит передача данному методу в качестве параметра объект myArray - экземпляр класса Array.

    Обращение к свойству или вызов экземплярного метода производится через обращение к экземпляру класса, например, myArray.Length или myArray.GetValue(i).
    Пример:

    class Program

    {

    static void Main()

    {

    try

    {

    int[ ] MyArray;

    Console.Write("Введите размерность массива: ");

    int n = int.Parse(Console.ReadLine());

    MyArray = new int[n];

    for (int i = 0; i < MyArray.Length; ++i)

    {

    Console.Write("a[{0}]=",i);

    MyArray[i] = int.Parse(Console.ReadLine());

    }

    PrintArray("исходный массив:", MyArray);

    Array.Sort(MyArray);

    PrintArray("массив отсортирован по возрастанию", MyArray);

    Array.Reverse(MyArray);

    PrintArray("массив отсортирован по убыванию", MyArray);

    }

    catch (FormatException)

    {

    Console.WriteLine("неверный формат ввода данных");

    }

    catch (OverflowException)

    {

    Console.WriteLine("переполнение");

    }

    catch (OutOfMemoryException)

    {

    Console.WriteLine("недостаточно памяти для создания нового объекта");

    }

    }
    static void PrintArray(string a, int[ ] mas)

    {

    Console.WriteLine(a);

    for (int i = 0; i < mas.Length; i++) Console.Write("{0} ", mas[i]);

    Console.WriteLine();

    }

    }

    }

    Вопросы для самоконтроля


    1. Дайте определение массиву.

    2. Почему максимальный номер элемента массива на единицу меньше размерности массива?

    3. Как задается размерность массива?

    4. Что такое «индекс массива»?

    5. Как происходит обращение к элементам массива?

    6. Ограниченно ли количество измерений массивов в языке С#?

    7. Какие данные могут выступать в качестве индексов и элементов массива?

    8. В чем состоит особенность организации цикла при обработке массива?

    9. Какие способы задания исходных значений элементов массива вам известны?

    10. Как осуществляется доступ к каждому элементу массива?

    11. Может ли индекс быть выражением вещественного типа?


    Практическая часть
    Задание №1. Работа с одномерными массивами

    Пример: Найти сумму и количество четных чисел массива x1, x2, ... , xn, где n  30. Проверить правильность работы программы на тесте при n=3 и элементах массива 2, 5, 4.

    Блок-схема алгоритма:


    Варианты задания №1


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

    2. Вычислить сумму и количество элементов массива вещественных чисел.

    3. Вывести на экран дисплея порядковые номера нечетных элементов массива целых чисел.

    4. Вычислить среднее арифметическое массива вещественных чисел.

    5. Найти минимальный элемент массива и его порядковый номер.

    6. В массиве вещественных чисел найти количество отрицательных элементов.

    7. Найти сумму чисел кратных трем в массиве целых чисел.

    8. В массиве вещественных чисел найти произведение элементов, стоящих на четных позициях.

    9. Найти количество отрицательных элементов массива А.

    10. Найти порядковый номер максимального элемента массива вещественных чисел.

    11. Вывести на экран дисплея положительные элементы массива и найти их количество.

    12. Вывести на экран дисплея номера элементов массива, удовлетворяющих условию 0<xi<3,2.

    13. Заменить четные элементы в массиве целых чисел нулями и вывести новый массив на экран.

    14. Найти среднее арифметическое элементов массива целых чисел кратных пяти.

    15. В массиве вещественных чисел найти минимальный элемент среди отрицательный элементов.

    16. Найти сумму двузначных элементов в массиве целых чисел.

    17. Найти количество и сумму положительных элементов в массиве вещественных чисел, удовлетворяющих условию 0<xi<5,7.

    18. Заменить отрицательные элементы массива находящиеся на нечетных позициях единицей и вывести новый массив на экран дисплея.

    19. Вывести на экран дисплея первый отрицательный элемент и его порядковый номер.

    20. Найти сумму максимального и минимального элементов массива.

    21. Найти произведение элементов находящихся на четных позициях в массиве.

    22. Найти количество и порядковые номера элементов массива вещественных чисел, удовлетворяющих условию 2,1  xi  7.

    23. Поменять местами в массиве вещественных чисел максимальный и минимальный элементы и вывести массив на экран дисплея.

    24. Найти среднее геометрическое элементов массива вещественных чисел.

    25. Найти порядковый номер максимального элемента среди четных значений массива целых чисел.



    Задание №2. В одномерном массиве, состоящем из n вещественных элементов, вычислить:


    1. сумму отрицательных элементов массива;

    2. произведение элементов массива, расположенных между максимальным и минимальным элементами;

    3. сумму положительных элементов массива;

    4. произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами;

    5. произведение элементов массива с четными номерами;

    6. сумму элементов массива, расположенных между первым и последним нулевыми элементами;

    7. сумму элементов массива с нечетными номерами;

    8. сумму элементов массива, расположенных между первым и последним отрицательными элементами;

    9. максимальный элемент массива;

    10. сумму элементов массива, расположенных до последнего положительного элемента;

    11. минимальный элемент массива;

    12. сумму элементов массива, расположенных между первым и последним положительными элементами;

    13. произведение элементов массива, расположенных между первым и вторым нулевыми элементами;

    14. номер минимального элемента массива;

    15. сумму элементов массива, расположенных между первым и вторым отрицательными элементами;

    16. максимальный по модулю элемент массива;

    17. сумму элементов массива, расположенных между первым и вторым положительными элементами;

    18. минимальный по модулю элемент массива;

    19. сумму модулей элементов массива, расположенных после первого элемента, равного нулю;

    20. номер минимального по модулю элемента массива;

    21. сумму модулей элементов массива, расположенных после первого отрицательного элемента;

    22. номер максимального по модулю элемента массива;

    23. сумму элементов массива, расположенных после первого положительного элемента;

    24. количество элементов массива, лежащих в отрезке от А до В;

    25. сумму элементов массива, расположенных после максимального элемента.



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


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

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

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

      4. сколько раз температура была ниже 0°С;

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

      6. среднемесячную температуру первой и второй декады декабря;

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

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

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

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

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

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

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

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

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

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

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

      18. любые два самых холодных дня;

      19. температуры всех дней выше среднемесячной заменить на +10 С;

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

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

      22. любые два самых теплых дня;

      23. температуры всех дней ниже среднемесячной заменить 0;

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

      25. первую из максимальных температур перенесите на первое место, сдвинув все остальные к концу массива.


    Задание №4. Напишите программу для решения задачи:


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

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

    3. Пусть дано 100 чисел. Напечатайте сначала все отрицательные из них, затем - все остальные.

    4. Пусть дано натуральное число п и вещественные числа а1, ..., аn. В последовательности а1, ..., аn, все отрицательные члены увеличьте на 0,5, а все неотрицательные, меньшие среднего арифметического, замените на 0,1.

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

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

    7. Пусть даны целые числа а1, ..., а25, b1, ..., b25. Преобразуйте последовательность b1, ..., b25 по правилу, согласно которому если , то bi увеличивается в 10 раз, иначе bi заменяется нулем (i = 1, …, 25).

    8. Пусть даны вещественные числа а1, ..., а25. Требуется умножить каждый член последовательности аi (i = 1,..., 25) на квадрат ее наименьшего члена, если , и на квадрат ее наибольшего члена, если аi<0.

    9. Пусть даны целые числа а1, ..., а99. Получите новую последовательность, выбросив из исходной максимальный и минимальный члены.

    10. Пусть даны целые числа а1, ..., аn, каждое из которых отлично от нуля. Если в последовательности отрицательные и положительные члены чередуются, то ответом должна служить сама исходная последовательность. Иначе - получите все отрицательные члены последовательности, сохранив порядок их следования.

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

    12. Пусть даны вещественные числа а1, ..., а20. Преобразуйте эту последовательность по правилу: большее из аi и а10+i (i = 1,..., 10) примите в качестве нового значения аi, меньшее - в качестве нового значения а10+i.

    13. Пусть даны целые числа а1, ..., ап. Если в данной последовательности ни одно четное число не расположено после нечетного, то напечатайте все отрицательные члены последовательности, иначе - все положительные. Порядок следования чисел в обоих случаях замените обратным.

    14. Пусть даны натуральные числа п, а1, ..., ап. Определите количество членов ак последовательности а1, ..., ап являющихся нечетными числами.

    15. Пусть даны натуральные числа п, а1, ..., ап. Определите количество членов ак последовательности а1, ..., ап кратных 3 и не кратных 5;

    16. Пусть даны натуральные числа п, а1, ..., ап. Определите количество членов ак последовательности а1, ..., ап являющихся квадратами четных чисел;

    17. Пусть даны натуральные числа п, а1, ..., ап. Определите количество членов ак последовательности а1, ..., ап удовлетворяющих условию: ;

    18. Пусть даны натуральные числа п, а1, ..., ап. Определите количество членов ак последовательности а1, ..., ап удовлетворяющих условию ;

    19. Пусть даны натуральные числа п, а1, ..., ап. Определите количество членов ак последовательности а1, ..., ап имеющих четные порядковые номера и являющихся нечетными числами.

    20. Пусть даны целые числа , среди которых могут быть повторяющиеся. Составьте новый массив из чисел, которые входят в последовательность по одному разу.

    21. Пусть даны целые числа , среди которых могут быть повторяющиеся. Составьте новый массив из чисел, взятых по одному из каждой группы равных членов данной последовательности.

    22. Пусть числовая прямая разбита на произвольные отрезки точками . Выясните, какому из отрезков принадлежит данная точка х.

    23. В массиве из п элементов подсчитайте количество четверок идущих подряд членов, в которых все члены равны.

    24. В массиве из п элементов подсчитайте количество четверок идущих подряд членов, в которых все члены различны.

    25. Произвольный выпуклый многоугольник задан координатами своих вершин на плоскости. Найдите самую длинную диагональ данного многоугольника.


    Задание №5. Дан одномерный массив из действительных чисел:


    1. Составить программу расчета квадратного корня из любого элемента массива;

    2. Составить программу расчета среднего арифметического двух любых элементов массива;

    3. Выяснить является ли j-й элемент массива положительным числом;

    4. Выяснить является ли k-й элемент массива четным числом;

    5. Выяснить какой элемент массива больше: k-й или s-й;

    6. Все его элементы увеличить в 2 раза;

    7. Все его элементы уменьшить на число А;

    8. Все его элементы разделить на первый элемент;

    9. Все его элементы умножить на последний элемент;

    10. Определить сумму квадратов всех элементов массива;

    11. Определить сумму шести первых элементов массива;

    12. Определить сумму элементов массива с k1-го по k2-й (значения k1 и k2 вводятся с клавиатуры; k2>k1);

    13. Определить среднее арифметическое элементов массива с sl-гo по s2-й (значения sl и s2 вводятся с клавиатуры; s2>s1);

    14. Напечатать все элементы, оканчивающиеся нулем;

    15. Все элементы с нечетными номерами заменить на их квадратный корень;

    16. Из всех положительных элементов вычесть элемент с номером k1, из остальных — элемент с номером k2;

    17. Все элементы с нечетными номерами увеличить на 1, с четными – уменьшить на 1;

    18. Ко всем отрицательным элементам прибавить элемент с номером k1, к остальным – элемент с номером k2;

    19. Ко всем нулевым элементам прибавить n, из всех положительных элементов вычесть а, ко всем отрицательным прибавить b;

    20. Ко всем отрицательным элементам прибавить элемент с номером аl, из всех нулевых вычесть число b. Положительные элементы оставить без изменения;

    21. Из всех положительных элементов вычесть а, из всех отрицательных вычесть b, ко всем нулевым элементам прибавить с;

    22. Все элементы, оканчивающиеся цифрой 4, уменьшить вдвое;

    23. Все четные элементы заменить на их квадраты, а нечетные удвоить;

    24. Четные элементы увеличить на а, а из элементов с четными номерами вычесть b;

    25. Определить частное от деления суммы положительных элементов массива на модуль суммы отрицательных элементов.


    Задание №6. Решите задачу:


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

    2. В массиве хранится информация о численности книг в каждом из 35 разделов библиотеки. Выяснить, верно ли, что общее число книг и библиотеке есть шестизначное число.

    3. Оценки, полученные спортсменом в соревнованиях по фигурному катанию (в баллах), хранятся в массиве из 18 элементов. В первых шести элементах записаны оценки по обязательной программе, седьмой – двенадцатом – по короткой программе, в остальных – по произвольной программе. Выяснить, по какому виду программы спортсмен показал лучший результат.

    4. Известно число жителей, проживающих в каждом доме улицы. Нумерация домов проведена подряд. Дома с нечетными номерами расположены на одной стороне улицы, с четными – на другой. На какой стороне улицы прожинает больше жителей?

    5. В массиве хранятся сведения об общей стоимости товаров, проданных фирмой за каждый день марта. Определить количество дней, в которые стоимость проданных товаров превысила значение s.

    6. Известны стоимости нескольких марок легковых автомобилей и мотоциклов. Верно ли что средняя стоимость автомобилей превышает среднюю стоимость мотоциклов более чем в 3 раза? Стоимость одного автомобиля превышает 5000, что больше стоимости любой марки мотоцикла.

    7. В массиве записаны оценки по информатике 22 учащихся группы. Определить количество учащихся группы, оценка которых меньше средней оценки по группе, и вывести номера элементов массива, соответствующих таким учащимся.

    8. В массиве хранится информация о стоимости 1 килограмма n видов конфет. Определить, порядковый номер самого дорогого вида конфет. Если таких видов несколько, то должен быть найден номер последнего из них.

    9. Известно количество осадков (в миллиметрах), выпавших в Москве за каждый год в течение первых 50 лет нашего столетии. Выяснить среднее количество осадков и отклонение от среднего для каждого года.

    10. В массиве хранится информация о количестве страниц в каждой из 100 книг. Все страницы имеют одинаковую толщину. Определить количество страниц в самой толстой книге.

    11. В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить порядковый номер самого быстрого автомобиля. Если таких автомобилей несколько, то должен быть найден номер последнего из них.

    12. В массиве хранится информация о годе рождения каждого из 30 человек. Определить, на сколько лет возраст самого старого человека превышает возраст самого молодого. При определении возраста учитывать только год рождения (месяц и день не учитывать).

    13. В массиве хранится информация о максимальной скорости каждой из 40 марок легковых автомобилей. Определить порядковый номер самого быстрого автомобиля. Если таких автомобилей несколько, то должен быть найден номер первого из них.

    14. В массиве хранится информация о стоимости 1 килограмма n видов конфет. Определить, порядковый номер самого дорогого вида конфет. Если таких видов несколько, то должен быть найден номер первого из них.

    15. Известна численность каждой из 40 групп ВУЗа. Верно ли, что в самой многочисленной группе учится на 10 учащихся больше, чем в самой малочисленной.

    16. В массиве записано количество очков, набранных 20 командами-участницами чемпионата по футболу. Определить команды, занявшие первое и второе место.

    17. При выборе места строительства жилого комплекса при металлургическом комбинате необходимо учитывать «розу ветров» (следует расположить жилой комплекс так, чтобы частота ветра со стороны металлургического комбината была бы минимальной). Для этого в течение года проводилась регистрация направления ветра в районе строительства. Данные представлены в виде массива, в котором направление ветра за каждый день кодируется следующим образом: 1 – северный, 2 – южный, 3 – восточный, 4 – западный, 5 – ceверо-западный, 6 – северо-восточный, 7 – юго-западный, 8 – юго-восточный. Определить, как должен быть расположен жилой комплекс по отношению к комбинату.

    18. В массиве хранится информация о результатах 22 спортсменов, участвовавших в соревнованиях по бегу на 100 м. Определить результаты спортсменов, занявших первое и второе места.

    19. В массиве хранится информация о количестве людей, живущих на каждом из 15 этажей дома (на первое этаже – в первом элементе массива, на второй – во втором и т. д.). Определить два этажа, на которых проживает меньше всего людей.

    20. В массиве записана информация о росте каждого из 25 учащихся группы (в порядке уменьшении роста) Один из учащихся выбыл. Получить новый массив с упорядоченными в том же порядке данными о росте оставшихся учащихся. Рассмотреть случай, когда известен рост выбывшего учащегося.

    21. В массиве а записаны измеренные в сотых долях секунды результаты 23 спортсменов в беге на 100 м. Составить команду из четырех лучших бегунов для участия в эстафете 4х100 м, т.е. указать одну из четверок натуральных чисел i, j, k, m, для которой и сумма имеет наименьшее значение.

    22. В массиве записана информация о стоимости каждого из 20 видов товара, продаваемые фирмой. С 1 января очередного года фирма прекращает продавать товар, стоимость которого записана в n-м элементе массива. Получить массив со стоимостью всех оставшихся видов товара.

    23. В массиве записана информация о росте каждого из 25 учащихся группы (в порядке уменьшении роста) Один из учащихся выбыл. Получить новый массив с упорядоченными в том же порядке данными о росте оставшихся учащихся. Рассмотреть случай, когда известен порядковый номер выбывшего учащегося.

    24. В массив записали информацию о высоте над уровнем моря двадцати горных вершин мира. Данные записаны в порядке, соответствующем алфавитному порядку названия вершин. После этого решили ввести в массив сведения еще по одной вершине. Получить новый массив, имея в виду, что место в массиве для записи дополнительной информации известно.

    25. В массиве должна быть записана информация о результатах соревнований по плаванию, в котором приняли участие 25 спортсменов. Данные должны быть записаны в порядке ухудшения результата. После заполнения массива выяснилось, что значение первого элемента не соответствует требованию упорядоченности. Изменить массив так, чтобы данные были упорядочены.



    Контрольные вопросы


    1. Каким образом описывают массивы?

    2. Укажите особенности ввода и вывода одномерных массивов?

    3. В чем состоит особенность использования приемов программирования при обработке одномерных массивов?

    4. Существуют ли ограничения на размерность массива?

    5. Где и как определяется общее число элементов массива?

    6. Когда индекс элемента в массиве совпадает с порядковым номером этого элемента?

    7. Что называется базовым типом?

    8. Верно ли, что элементами массива могут быть данные любого типа, включая структурированные?

    9. Какой массив называется одномерным?

    10. Можно ли с помощью стандартной процедуры write(x) вывести весь массив х целиком?



    1   2   3   4   5   6   7


    написать администратору сайта