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

  • 3.2.1. Ввод элементов массива

  • 3.2.2. Вывод элементов массива

  • 3.3. Описание двумерных массивов на языке Pascal

  • 4. Описание оборудования и используемых программных комплексов

  • 5. Краткое руководство по эксплуатации оборудования

  • 6. Задание 6.1. Варианты заданий с использованием одномерных массивов

  • 6.2. Варианты заданий с использованием двумерных массивов

  • 7. Методика выполнения задания

  • 7.1. Примеры типовых задач обработки одномерных массивов данных

  • 7.1.1. Нахождение суммы элементов массива

  • 7.1.2. Нахождение количества элементов массива

  • 7.1.3. Преобразование массивов путем замены и

  • 7.1.4. Поиск данных в массивах

  • 7.1.5. Сортировка одномерных массивов данных

  • Лабораторный практикум по информатике. Практикум по дисциплине Информатика Уфа 2012 3 Лабораторный практикум по дисциплине Информатика Уфимск гос авиац техн унт Сост. В. В. Мартынов, Е. Н. Прошин, Ю. В


    Скачать 8.39 Mb.
    НазваниеПрактикум по дисциплине Информатика Уфа 2012 3 Лабораторный практикум по дисциплине Информатика Уфимск гос авиац техн унт Сост. В. В. Мартынов, Е. Н. Прошин, Ю. В
    АнкорЛабораторный практикум по информатике.pdf
    Дата16.12.2017
    Размер8.39 Mb.
    Формат файлаpdf
    Имя файлаЛабораторный практикум по информатике.pdf
    ТипПрактикум
    #11702
    страница5 из 25
    1   2   3   4   5   6   7   8   9   ...   25
    векторами. Как правило, предполагается, что диапазон индексов вектора начинается с
    1. Например, если задан вектор V из 5 чисел (4, 2, 1, -7, 8), то первый элемент вектора равен 4 (т.е. V[1]=4), второй элемент вектора равен
    2, третий элемент вектора равен 1 и т.д.
    3.2.1. Ввод элементов массива
    Написание программ с использованием массивов необходимо начинать с ввода значений элементов массива. Для этого необходимо последовательно изменять значение индекса, начиная с первого до последнего, и вводить соответствующий элемент. Для реализации этих действий удобно использовать цикл с заданным числом повторений (FOR…), где параметром цикла будет выступать переменная – индекс массива. Значения элементов могут быть

    73 введены с клавиатуры или определены с помощью оператора присваивания.
    Пример фрагмента программы ввода элементов массива пользователем с клавиатуры:
    Var A : array [1..10] of integer ;
    I : byte ; {переменная I вводится как индекс массива}
    Begin
    For i:=1 to 10 do begin
    Write(‘введите [‘,I,’]-элемент массива’;
    Readln (a[i]); { ввод i- го элемента производится с клавиатуры } end;
    Для заполнения массива случайными числами необходимо воспользоваться процедурой Randomize и функцией Random (N).
    Функция random(n) служит для задания случайных целых чисел из диапазона 0 ≤ x ≤ n-1.
    Пример фрагмента программы заполнения массива случайными числами:
    Var A: array [1..10] of integer;
    I: byte ; {переменная I вводится как индекс массива}
    Begin
    Randomize; {вызов процедуры генерации случайных чисел}
    For i :=1 to 10 do
    A[i]:= random (20); {i -му элементу массива присваивается
    «случайное» целое число в диапазоне от 0 до 19 включительно, число
    20 не присваивается}
    3.2.2. Вывод элементов массива
    Вывод массива осуществляется также поэлементно, с помощью оператора цикла, где параметром выступает индекс массива, принимая последовательно все значения от первого до последнего.
    Пример фрагмента программы вывода массива:
    Var A: array [1..10] of integer;
    I: byte ; {переменная I вводится как индекс массива}
    Begin
    For i :=1 to 10 do

    74
    Write ( a [ i ],’ ‘); {вывод массива осуществляется в строку, после каждого элемента печатается три пробела}
    На экране в результате выполнения данного фрагмента программы будут следующие значения:
    2 4 1 -7 ……и т.д.
    Вывод можно осуществить и в столбик с указанием соответствующего индекса. Но в таком случае нужно учитывать, что при большой размерности массива все элементы могут не поместиться на экране и будет происходить скроллинг, т.е. при заполнении всех строк экрана будет печататься очередной элемент, а верхний смещаться за пределы экрана.
    Пример программы вывода массива Паскаля «столбиком»:
    Var A: array [1..10] of integer;
    I : byte ; {переменная I вводится как индекс массива}
    Begin
    For i:=1 to 10 do
    Writeln (‘a[‘, i,’]=’, a[i]); { вывод элементов массива в столбик }
    На экране в результате выполнения данного фрагмента программы будут следующие значения: a [1]=2 a [2]=4 a [3]=1 и т.д.
    3.3. Описание двумерных массивов на языке Pascal
    Массив, для задания элементов которого требуется использовать два индекса, называется двумерным. Примерами двумерных массивов являются разнообразные таблицы, в которых каждый элемент характеризуется номером строки и номером столбца.
    Например, в качестве двумерного массива можно представить оценки из аттестационной ведомости студентов, где каждая оценка показывает знания некоторого студента по определенному предмету:
    Ф.И.О.
    Математика Информатика
    Физика
    Химия
    Андреев А.Л.
    5 5
    4 5
    Биктимиров С.Р.
    3 4
    3 2
    Симонова В.П.
    4 3
    4 3

    75
    Двумерные массивы, в которых диапазоны индексов начинаются с 1, также называются иногда матрицами. Размерность каждой матрицы определяется как MxN, где М – число строк в матрице, N – число столбцов.
    Например, в предложенной выше матрице оценок из трех строк и четырех столбцов элемент A[3, 1]=4, A[1, 2]=5, A[3, 2]=3, A[2, 4]=2.
    Первый индекс элемента матрицы характеризует номер строки матрицы, в которой расположен элемент, второй индекс – номер столбца.
    Если число строк матрицы равняется числу столбцов, то матрицы данного типа называются квадратными. Элементы квадратной матрицы вида B[1,1], B[2,2], B[3,3]… составляют главную диагональ матрицы.
    Описание типов двумерных массивов в языке Pascal осуществляется аналогично описанию типов одномерных массивов с добавлением диапазона изменения второго индекса, например:
    TYPE MATR=ARRAY[1..4, 1..5] OF INTEGER;
    TYPE T=ARRAY[0..10, 2000..2004] OF REAL;
    Переменные, относящиеся к типу массива, должны быть соответствующим образом объявлены в разделе описания переменных, например:
    VAR А: MATR;
    VAR B, C, D: T; или описание массива происходит непосредственно в разделе описания переменных:
    VAR N: ARRAY [1..5, 1..10] OF INTEGER;
    4. Описание оборудования и используемых программных
    комплексов
    При выполнении лабораторной работы необходим специализированный компьютерный класс с минимальными системными требованиями компьютеров:

    Процессор – Intel Pentium III;

    ОЗУ – 256 Mb;

    видеокарта – 32 Mb.
    Требуемое программное обеспечение:

    Операционная система Microsoft Windows;

    Borland Pascal 7.0 for DOS /Borland Pascal 7.0 for Windows.

    76
    5. Краткое руководство по эксплуатации оборудования
    При использовании оборудования необходимо:

    соблюдать общие правила нахождения в учебных лабораториях, работы с компьютером и использования программных средств;

    привести в порядок одежду;

    осмотреть рабочее место, убрать все мешающие работе предметы;

    визуально проверить правильность подключения ПЭВМ к электросети.
    6. Задание
    6.1. Варианты заданий с использованием одномерных массивов
    Решить задачу с использованием одномерных массивов по указанному преподавателем варианту.
    Таблица 1
    Варианты заданий на тему «Одномерные массивы»
    № варианта
    Задание
    1
    Найдите среднее арифметическое элементов заданного массива из 8 целых чисел и определите, сколько элементов данного массива больше среднего.
    2
    Задан массив из 10 целых чисел. Замените все положительные элементы данного массива его максимальным элементом.
    3
    Задан массив из 8 действительных чисел. Замените все отрицательные элементы данного массива его минимальным элементом.
    4
    Найдите сумму максимального и минимального элементов заданного массива из 10 действительных чисел.
    5
    В заданном массиве из 8 действительных чисел вычислите сумму и среднее арифметическое значение положительных элементов.
    6
    Задан массив из 10 целых чисел. Найдите среднее арифметическое всех четных элементов массива.
    7
    Подсчитайте количество нулевых элементов в массиве из 10 целых чисел и распечатайте исходный массив в обратном порядке.
    8
    Дан целочисленный массив из 8 целых чисел. Преобразуйте его, прибавив к четным числам значение первого элемента. Первый элемент массива оставьте без изменений.
    9
    Дан целочисленный массив из 10 целых чисел. Преобразуйте его, прибавив к нечетным числам значение последнего элемента.
    Последний элемент массива оставьте без изменений.
    10
    Найдите наибольший по модулю элемент заданного массива из 9 действительных чисел.

    77 11
    В заданном массиве из 5 действительных чисел определите количество чисел, не попадающих в интервал от -2 до 2,5.
    12
    Дан одномерный массив из 10 элементов. Подсчитать количество его элементов, кратных 3.
    13
    Замените все положительные элементы заданного целочисленного массива из 8 элементов числом 1, а все отрицательные элементы – числом 0.
    14
    Задан массив из 8 целых чисел. Определите, каких элементов в массиве больше – четных или нечетных.
    15
    Вычислите среднее арифметическое всех отрицательных элементов заданного массива из 8 действительных чисел.
    16
    Дан одномерный массив из 10 элементов. Упорядочить его элементы по возрастанию методом «пузырька».
    17
    Дан одномерный массив из 10 элементов. Подсчитать произведение его нечетных элементов.
    18
    Дан одномерный массив из 10 элементов. Найти его минимальный элемент и напечатать его порядковый номер.
    19
    Дан одномерный массив из 10 элементов. Найти среднее арифметическое его элементов и вывести все элементы, меньшие среднего арифметического.
    20
    Дан одномерный массив из 10 элементов. Упорядочить его элементы по убыванию линейным методом.
    6.2. Варианты заданий с использованием двумерных массивов
    Решить задачу с использованием двумерных массивов по указанному преподавателем варианту:
    Таблица 2
    Варианты заданий на тему «Двумерные массивы»
    № варианта
    Задание
    1
    Дана целочисленная матрица размера 5x6. Поменять местами первый и последний из столбцов.
    2
    Дана действительная матрица размера 3x4. Найти сумму элементов последнего столбца данной матрицы.
    3
    Дана целочисленная матрица размера 5x7. Заменить в данной матрице все отрицательные элементы числом 0, положительные элементы – числом 1.
    4
    Дана целочисленная матрица размера 4x6. Переставить местами 1 и
    2 строку матрицы.
    5
    Дана целочисленная матрица размера 5x6. Поменять местами 1 и 2 столбцы.
    6
    Дана целочисленная матрица размера 4x3. Найти произведение

    78 элементов первого столбца данной матрицы.
    7
    Дана квадратная целочисленная матрица размера 4х4. Заменить нулями элементы матрицы, лежащие на главной диагонали.
    8
    Дана действительная матрица размера 3x4. Найти минимальное значение в первой строке данной матрицы.
    9
    Задана целочисленная квадратная матрица размера 3х3. Найти наименьший элемент главной диагонали данной матрицы.
    10
    Дана целочисленная матрица размера 4x4. Найти минимальное значение во втором столбце данной матрицы.
    11
    Дана действительная матрица размера 4x3. Найти максимальное значение в третьей строке данной матрицы.
    12
    Дана квадратная целочисленная матрица размера 6х6. Заменить нулями элементы матрицы, лежащие выше главной диагонали.
    13
    Известны результаты сдачи трех экзаменов десятью студентами.
    Найти средний балл каждого студента и общий средний балл.
    Точность среднего балла – два знака после запятой.
    14
    В матрице целых чисел размера 10х15 определить количество и сумму элементов, значения которых находятся вне интервала [-1, 1].
    15
    Дана квадратная целочисленная матрица 7х7. Найти сумму элементов ее побочной диагонали.
    16
    Дана действительная матрица размерности 3х5. Найти количество положительных элементов, расположенных в третьей строке данной матрицы.
    17
    Дана целочисленная матрица размерности 4х4. Найти количество отрицательных элементов, расположенных во втором столбце данной матрицы.
    18
    Дана действительная матрица размерности 3х5. Сформировать одномерный массив минимумов по строкам данной матрицы.
    19
    Дана действительная матрица размера 4x3. Сформировать одномерный массив максимумов по столбцам данной матрицы.
    20
    Дана действительная матрица размера 5x6. Подсчитать среднее арифметическое положительных элементов главной диагонали.
    7. Методика выполнения задания
    Для выполнения задания следует воспользоваться нижеприведенными примерами. Программа на языке Turbo Pascal должна содержать операторы ввода и вывода элементов массива, вывод результатов решения задачи с корректными комментариями.

    79
    7.1. Примеры типовых задач обработки одномерных массивов
    данных
    К стандартным типам задач на обработку массивов данных относятся следующие задачи:
    - нахождение суммы элементов массива;
    - нахождение количества элементов массива, удовлетворяющих определенным условиям;
    - задачи на поиск элементов массива, удовлетворяющих некоторым заданным условиям;
    - преобразование массивов путем замены и перестановки их элементов;
    - упорядочение элементов массива и др.
    7.1.1. Нахождение суммы элементов массива
    К данному классу относятся разнообразные задачи, связанные с вычислением итоговых сумм для заданного множества значений.
    Суммирование при этом может проводиться как по всем элементам массива, так и только по тем элементам, которые удовлетворяют заданным условиям.
    Для нахождения суммы элементов массива используется следующий алгоритм. Сначала предполагается, что значение искомой суммы равно нулю. Далее на каждом шаге цикла проводится накопление данной суммы путем добавления к уже имеющемуся значению суммы значения очередного элемента массива. Если суммирование проводится не по всем элементам массива, то в программу добавляется условный оператор проверки выполнения наложенного на элементы массива условия.
    Пример
    1.
    Нахождение суммы элементов массива, удовлетворяющих некоторому заданному условию.
    Найти сумму четных элементов заданного одномерного массива из 10 целых чисел.
    PROGRAM Sum_mas;
    Type Mas=array[1..10] of integer;
    Var a: Mas; i,s: integer;
    Begin s:=0; for i:=1 to 10 do

    80 begin writeln('Введите элемент массива'); readln(a[i]); if a[i] mod 2=0 then s:=s+a[i] {Проверка четности элемента и накопление суммы} end; writeln('Сумма s=', s)
    End.
    7.1.2. Нахождение количества элементов массива,
    удовлетворяющих определенным условиям
    Для нахождения количества элементов массива, удовлетворяющих определенным условиям, используется следующий алгоритм. Сначала предполагается, что значение переменной- счетчика, обозначающей количество таких элементов, равно нулю.
    Далее на каждом шаге цикла проводится проверка выполнения наложенного на элементы массива условия, и в случае соответствия рассматриваемого элемента заданным условиям происходит увеличение значения переменной-счетчика на единицу.
    Пример 2. Задан массив из 6 целых чисел. Найти количество неотрицательных элементов массива.
    PROGRAM Kol;
    Var А: array[1..10] of integer; i, k: integer;
    Begin k:=0; for i:=1 to 10 do begin writeln('Введите элемент массива'); readln(a[i]); if A[i] >=0 then k:=k+1 {Проверка соответствия условию элемента и увеличение счетчика} end; writeln('Количество неотрицательных элементов к=', к) for i:=1 to 6 do write(A[i], ‘ ‘); {печать одномерного массива в строку, после каждого элемента печатается три пробела}
    End.

    81
    7.1.3. Преобразование массивов путем замены и
    перестановки их элементов
    Данную задачу можно представить себе так: есть стакан сока и кружка молока, нужно перелить молоко в стакан, а сок – в кружку.
    Решение данной задачи невозможно без наличия третьей емкости.
    Аналогично для выполнения преобразования замены-перестановки в массиве необходима дополнительная переменная. Следует также учитывать, что необходимо вывести на печать исходный и преобразованный массивы с соответствующими комментариями для наглядности результатов выполнения программы.
    Пример 3. Преобразовать массив, поменяв местами первый и последний элемент исходного массива из 6 элементов.
    PROGRAM Zamena;
    Var А: array[1..10] of integer; i, c: integer;
    Begin k:=0; for i:=1 to 10 do begin writeln('Введите элемент массива'); readln(a[i]); end; writeln('Исходный массив:'); for i:=1 to 6 do write(A[i], ‘ ‘); {печать одномерного массива в строку, после каждого элемента печатается три пробела} c:=a[1]; {дополнительной переменной с присваивается значение первого элемента массива} a[1]:=a[6]; {значение первого элемента массива заменяется на значение 6-го элемента} a[6]:=c; {шестому элементу массива присваивается значение 1- го элемента, сохраненное как переменная с} for i:= 1 to 6 do write (a[i]:5); writeln('Преобразованный массив:'); for i:=1 to 6 do write(A[i], ‘ ‘); {печать одномерного массива в строку, после каждого элемента печатается три пробела}

    82
    End.
    7.1.4. Поиск данных в массивах
    Поиск информации, удовлетворяющей определенным условиям, является одной из наиболее распространенных задач обработки массивов. В частности, к данному классу задач можно отнести поиск наибольших и наименьших элементов массива, поиск элементов, удовлетворяющих разнообразным операциям отношений (больших заданного числа, равных ему и т.д.) и другие.
    Пример 4. Поиск наибольшего элемента в массиве. Задан одномерный массив из 7 действительных элементов. Найти наибольший элемент данного массива.
    PROGRAM Max_mas;
    Type Mas=array[1..7] of real;
    Var a: Mas; max : real; i: integer;
    Begin for i:=1 to 7 do begin writeln(‘Введите элемент а[‘,i,’]’); readln(a[i]) end; max:=a[1]; for i:=2 to 7 do if maxEnd.
    В данной программе реализован следующий алгоритм. В начальный момент предполагается, что наибольшим является первый из элементов массива. Далее этот элемент сравнивается с остальными элементами массива, и, если найдется элемент, больший, чем предполагаемый максимум, то переменной мах присваивается это значение.

    83
    7.1.5. Сортировка одномерных массивов данных
    Сортировкой массива называют упорядочение его элементов в соответствии с определенными правилами (как правило, по возрастанию или убыванию элементов).
    Рассмотрим следующие алгоритмы сортировки массивов данных: линейная сортировка (сортировка отбором) и сортировка методом «пузырька».
    Алгоритм линейной сортировки массивов по возрастанию заключается в следующем. Сначала первый элемент массива сравнивается по очереди со всеми оставшимися элементами. Если очередной элемент массива меньше по величине, чем первый, то эти элементы переставляются местами. Сравнение продолжается далее уже для обновленного первого элемента, в результате чего будет найден и установлен на первое место самый наименьший элемент массива. Далее продолжается аналогичный процесс уже для оставшихся элементов массива, т.е. второй элемент сравнивается со всеми остальными и, при необходимости, переставляется с ними местами.
    Алгоритм завершается, когда сравниваются и упорядочиваются предпоследний и последний из оставшихся элементов массива.
    1   2   3   4   5   6   7   8   9   ...   25


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