Студопедия
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция
|
Лабораторная работа №4. Программирование с использованием массивов
Цель работы: научиться правильно описывать различные массивы, уметь инициализировать массивы, распечатывать содержимое массива; научится решать задачи на использование массивов.
Общие сведения:
Массив - это структурированный тип данных, который используется для описания упорядоченной совокупности фиксированного числа элементов одного типа, имеющих общее имя. Для обозначения элементов массива используются имя переменной-массива и индекс.
Перед выполнением работы необходимо изучить правила описания и использования переменных типа массив, типизированных констант типа массив.
Пример1: Дан двумерный массив. В каждой строке все его элементы, не равные нулю, переписать (сохраняя порядок) в начало строки, а нулевые элементы - в конец массива. Новый массив не заводить.
Этапы решения задачи:
1. Суть одного из алгоритмов решения данной задачи состоит в том чтобы "просматривать" массив построчно и находить в каждой строке пару (0:число), а затем менять их местами между собой и так до тех пор пока в строке таких пар не окажется.
2. Напишем программу на псевдо паскале:
program example1; var V:array[1..100,1..100] of integer; m,n, i,j, c: integer; flag: boolean; begin <ввод размерности массива m*n> <заполнение ячеек массива> for i:=1 to m do repeat flag:= true; for j:=1 to n-1 do if (v[i,j]=0) and (v[i,j+1]<>0) then begin <поменять их местами> flag:= false; end; until flag; <Печать массива> readln; end.
3.Составим блок схему алгоритма
Детализируем блок "Упорядочиваем 1-ю строку"
Блок схема алгоритма целиком:
4.Приведем программу на языке Паскаль:
program example1; var V:array[1..100,1..100] of integer; m,n, i,j, c: integer; flag: boolean; begin write('Введите размерность массива m-n> '); readln(m,n); for i:= 1 to m do for j:= 1 to n do begin write('V[',i,',',j,']= '); readln(V[i,j]); end; for i:=1 to m do repeat flag:= true; for j:=1 to n-1 do if (v[i,j]=0) and (v[i,j+1]<>0) then begin c:=v[i,j]; v[i,j]:=v[i,j+1]; v[i,j+1]:=c; flag:= false; end; until flag; for i:= 1 to m do begin for j:= 1 to n do write(V[i,j]:2); writeln end; readln; end. Контрольные вопросы 1. Каким образом определяются переменные типа массив (одномерный и двумерный)?
2. Как осуществляется доступ к отдельному элементу одномерного и двумерного массива?
3. Каким образом выводятся элементы массива на экран?
4. Приведите пример фрагмента программы, который выводит на экран двумерный массив в виде матрицы.
5. Сколько чисел можно записать в шестимерный массив X : Array[0..1, 0..1, 0..1, 0..1, 0..1, 0..1] of Integer?
Список индивидуальных заданий:
1. Для решения задачи 1 задать случайным образом одномерный массив указанной размерности из целочисленных элементов, принадлежащих заданному отрезку. Выполнить задание своего варианта. Выводить на экран исходный массив и преобразованный.
Вариант
| Задание 1
| 1.
| Задать случайным образом одномерный массив из 10 целочисленных элементов, принадлежащих отрезку [-10;10]. Найти сумму элементов массива, стоящих на четных местах. Закрасить указанные элементы.
| 2.
| Задать случайным образом одномерный массив из 15 целочисленных элементов, принадлежащих отрезку [-14;14]. Найти сумму элементов массива, кратных трем. Закрасить указанные элементы.
| 3.
| Задать случайным образом одномерный массив из 20 целочисленных элементов, принадлежащих отрезку [-12;12]. Найти произведение четных элементов массива. Закрасить указанные элементы.
| 4.
| Задать случайным образом одномерный массив из 18 целочисленных элементов, принадлежащих отрезку [-14;14]. Найти сумму элементов массива, кратных пяти. Закрасить указанные элементы.
| 5.
| Задать случайным образом одномерный массив из 17 целочисленных элементов, принадлежащих отрезку [-7;7]. Найти произведение элементов массива, стоящих на нечетных местах. Закрасить указанные элементы.
| 6.
| Задать случайным образом одномерный массив из 13 целочисленных элементов, принадлежащих отрезку [-11;11]. Найти произведение элементов массива, номера которых кратны трем. Закрасить указанные элементы.
| 7.
| Задать случайным образом одномерный массив из 16 целочисленных элементов, принадлежащих отрезку [-13;13]. Найти произведение положительных элементов массива. Закрасить указанные элементы.
| 8.
| Задать случайным образом одномерный массив из 18 целочисленных элементов, принадлежащих отрезку [-19;19]. Найти сумму элементов массива, которые кратны трем. Закрасить указанные элементы.
| 9.
| Задать случайным образом одномерный массив из 14 целочисленных элементов, принадлежащих отрезку [-18;18]. Найти сумму отрицательных элементов массива. Закрасить указанные элементы.
| 10.
| Задать случайным образом одномерный массив из 19 целочисленных элементов, принадлежащих отрезку [-8;8]. Найти сумму четных элементов массива. Закрасить указанные элементы.
| 11.
| Задать случайным образом одномерный массив из 14 целочисленных элементов, принадлежащих отрезку [-9;9]. Найти сумму элементов массива, кратных семи. Закрасить указанные элементы.
| 12.
| Задать случайным образом одномерный массив из 16 целочисленных элементов, принадлежащих отрезку [-6;6]. Найти произведение отрицательных элементов массива. Закрасить указанные элементы.
| 13.
| Задать случайным образом одномерный массив из 18 целочисленных элементов, принадлежащих отрезку [-14;14]. Найти сумму нечетных элементов массива. Закрасить указанные элементы.
| 14.
| Задать случайным образом одномерный массив из 10 целочисленных элементов, принадлежащих отрезку [-15;15]. Найти количество элементов массива, кратных пяти. Закрасить указанные элементы.
| 15.
| Задать случайным образом одномерный массив из 12 целочисленных элементов, принадлежащих отрезку [-19;19]. Найти количество четных элементов массива. Закрасить указанные элементы.
| 2. В задаче №2 задать двумерный массив размерности N*N. N вводится с клавиатуры. Выполните задание своего варианта.
Вариант
| Задание 2
| 1.
| Умножьте все элементы первой строки матрицы на минимальный элемент. Вывести исходную матрицу и полученную. Закрасить элементы, расположенные в первой строке.
| 2.
| Вычислить среднее арифметическое элементов матрицы.
| 3.
| Вычислить сумму положительных элементов матрицы, расположенных ниже главной диагонали. Закрасить указанные элементы.
| 4.
| Вычислить среднее арифметическое элементов матрицы, расположенных на главной диагонали. Закрасить указанные элементы.
| 5.
| Умножьте все элементы матрицы на максимум главной диагонали.
| 6.
| Вычислить среднее арифметическое отрицательных элементов матрицы. Закрасить отрицательные элементы.
| 7.
| Вычислить произведение четных элементов матрицы, расположенных на побочной диагонали. Закрасить указанные элементы.
| 8.
| Умножьте все элементы последнего столбца на максимальный элемент матрицы. Закрасить элементы, расположенные в последнем столбце.
| 9.
| Вычислить произведение отрицательных элементов матрицы, расположенных ниже побочной диагонали. Закрасить указанные элементы.
| 10.
| Вычислить сумму четных элементов матрицы, расположенных выше побочной диагонали. Закрасить указанные элементы.
| 11.
| Вычислить сумму нечетных элементов матрицы, расположенных на побочной диагонали. Закрасить указанные элементы.
| 12.
| Вычислить произведение отрицательных элементов матрицы, расположенных ниже побочной диагонали. Закрасить указанные элементы.
| 13.
| На главной диагонали матрицы найти максимальный элемент, закрасить найденный элемент, вывести преобразованную матрицу, на месте максимального элемента которой записана 1.
| 14.
| Вычислить произведение положительных элементов матрицы, расположенных на главной диагонали и выше ее. Закрасить указанные элементы.
| 15.
| Вычислить количество положительных элементов матрицы, расположенных ниже главной диагонали. Закрасить указанные элементы.
|
|