МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) Дифференциальные уравнения второго порядка (модель рынка с прогнозируемыми ценами) - В простых моделях рынка спрос и предложение обычно полагают зависящими только от текущей цены на товар.

Обработка двумерных массивов данных





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

Пример 1.Найти количество положительных элементов в заданной целочисленной матрице размерности 5х6.

PROGRAM Mas_count;

Type Matr=array[1..5,1..6] of integer;

Var A: Matr;

i, j, k: integer;

begin

k:=0;

for i:=1 to 5 do

for j:=1 to 6 do

begin

writeln('Введите элемент массива');

readln(a[i,j]);

if a[i,j]>0 then k:=k+1 {Подсчет количества положительных элементов}

end;

writeln('k=', k)

end.

Пример 2.Найти наибольший элемент в первом столбце заданной действительной матрицы размерности 4х5.

PROGRAM Mas_max;

Type Matr=array[1..4,1..5] of real;

Var A: Matr;

i, j: integer; max: real;

begin

for i:=1 to 4 do

for j:=1 to 5 do

begin

writeln('Введите элемент массива');

readln(a[i,j])

end;

max:=a[1,1];

for i:=2 to 4 do

if a[i,1]>max then max:=a[i,1]; {Проверка элементов первого столбца}

writeln('max=', max)

end.

Пример 3. Известны экзаменационные оценки 10 студентов по 5 предметам. Вычислить средний балл каждого студента по итогам экзаменационной сессии.

Матрицу оценок зададим с использованием функции генератора случайных чисел Random.

PROGRAM Obr_mas;

Type Mas=array[1..10,1..5] of byte;

Var A: Mas;

i,j: integer; s, sr:real;

begin

for i:= 1 to 10 do

for j:= 1 to 5 do A[i, j]:=2+random(4); {генерирование матрицы оценок}

writeln('Матрица оценок ');

for i:= 1 to 10 do {начало вывода матрицы оценок на экран}

begin

for j:= 1 to 5 do write(A[i,j]:3); {вывод в строку оценок i–го студента}

writeln {переход к следующей строке}

end;

writeln('Средний балл ');

for i:= 1 to 10 do

begin

s:= 0;

for j:= 1 to 5 do S:= S + A[i,j]; {подсчет суммы оценок i–го студента}

sr:=s/5; {подсчет его среднего балла}

writeln(i,' студент - ',sr:4:2) {вывод на экран результата}

end

end.

Содержание работы

4.1 Составьте и отладьте программу решения следующей задачи: Задан массив из 6 целых чисел. Найдите сумму его элементов.

Указание: Соответствующий фрагмент программы имеет вид:

s:=0;

for i:=1 to 6 do

begin

writeln('Введите элемент массива');

readln(a[i]);

s:=s+a[i]

end;

writeln('сумма s=', s);

...

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

Возможный вид решения:

k:=0;

for i:=1 to 6 do

if a[i]>=0 then k:=k+1;

writeln('количество k=', k);

...

4.3 Дополните программу. Найдите наименьший элемент в заданном массиве.

Пример возможного решения:

min:=a[1];

for i:=2 to 6 do if a[i]<min then min:=a[i];

writeln('min=', min);

4.4 Дополните созданную программу. Поменяйте местами первый и последний элемент исходного массива.

Указание: Используйте алгоритм следующего вида:

c:=a[1];

a[1]:=a[6];

a[6]:=c;

for i:= 1 to 6 do write (a[i]:5);

...

4.5 Выполните задание в соответствии с указанным преподавателем вариантом из приложения А.

4.6 Составьте и отладьте программу решения следующей задачи: Задана целочисленная матрица из 3 строк и 4 столбцов. Найти сумму всех элементов данной матрицы. Указание: Используйте фрагмент программы следующего вида:

s:=0;

for i:=1 to 3 do

for j:=1 to 4 do

begin

writeln('Введите элемент массива');

readln(a[i,j]);

s:=s+a[i,j]

end;

writeln('сумма s=', s);

4.7 Дополните полученную программу. Найдите сумму элементов первой строки данной матрицы.

Вид возможного решения:

s1:=0;

for j:=1 to 4 do s1:=s1+a[1,j];

writeln('сумма первой строки s1=', s1);



4.8 Организуйте вывод на экран исходной матрицы. Учтите, что печать элементов матрицы должна осуществляться в три строки и четыре столбца.

Указание: Дополните программу фрагментом следующего вида:

for i:=1 to 3 do

begin

for j:=1 to 4 do write (a[i,j]:5);

writeln

end;

4.9 Выполните задание из указанного преподавателем варианта приложения Б.

4.10 Составьте и отладьте программу решения следующей задачи:

Задана целочисленная матрица А размерности 5х7. Переставьте местами первую и последнюю строку данной матрицы.

Указание: Для задания матрицы А используйте случайные числа из диапазона [-10,10]:

for i:=1 to 5 do

for j:=1 to 7 do

a[i,j]:=-10+random(21);

Замечание: Функция random(n) служит для задания случайных целых чисел из диапазона 0 ≤ x ≤ n-1.

После заполнения матрицы выведите ее на экран.

Для перестановки местами первой и последней (в данном случае пятой) строки используйте цикл следующего вида:

for j:=1 to 7 do

begin

c:=a[1,j];

a[1,j]:=a[5,j];

a[5,j]:=c

end;

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

4.11 Выполните задание на перестановку или замену элементов матрицы в соответствии с указанным преподавателем вариантом приложения В.

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

5.1 Что понимают под массивом данных?

5.2 Что называют размерностью массива?

5.3 Что понимают под индексом элемента массива?

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

5.5 Приведите примеры одномерных массивов.

5.6 Как описываются одномерные массивы на языке PASCAL?

5.7 Как задается диапазон изменения индексов массива?

5.8 Как обозначаются индексы массивов на языке PASCAL?

5.9 Какие стандартные алгоритмы по работе с одномерными массивами Вы знаете?

5.10 Поясните понятия двумерного массива, матрицы.

5.11 Что обозначают индексы матрицы?

5.12 Сколько элементов в матрице из 7 строк и 9 столбцов?

5.13 Дайте понятие квадратной матрицы, диагоналей квадратной матрицы.

5.14 Приведите пример описания двумерных массивов на языке PASCAL.

5.15 Поясните порядок использования вложенных циклов при вводе элементов двумерного массива.

Приложение А

Варианты заданий по теме «Одномерные массивы»

Исходные данные необходимо оформить в виде массива. При выполнении задания ввод исходных данных и вывод результатов сопровождать комментариями (какие данные нужно ввести и что получается в результате).

1. Подсчитать среднемесячную зарплату сотрудника предприятия.

2. Дан объем продукции, выпущенной заводом за год (помесячно). Найти наименьший объем. В качестве результата вывести номер месяца и объем выпущенной продукции.

3. Курс доллара в течение года менялся в диапазоне от 28руб. до 30руб. Найти наибольшее значение курса доллара. В качестве результата вывести номер месяца и значение курса доллара.

4. Известен месячный план выпуска некоторой продукции и объемы выпущенной этой продукции заводом за год (помесячно). Определить, когда завод не выполнил план. Результат получить в виде: номер месяца и объем выпущенной продукции.

5. Даны результаты сдачи экзамена по информатике группы студентов (в группе 20 студентов). Подсчитать количество студентов, не сдавших экзамен.

6. Известна среднемесячная зарплата 10 сотрудников отдела. Расположить данные в порядке убывания.

7. Известен годовой процент на вклад с капитализацией (начисление процентов ежемесячно). Определить, сколько денег получит вкладчик в конце года, если на 1 января сумма вклада составляла 1500руб. в качестве результата вывести сумму вклада на конец каждого месяца.

8. Известны данные по продаже компьютеров в течение недели. Найти общее количество проданных компьютеров.

9. Известны данные по продаже компьютеров в течение недели. Расположить эти данные в порядке возрастания.

10. Известен месячный план выпуска некоторой продукции и объемы выпущенной продукции заводом за год (помесячно). Определить месяц, в котором было максимальное отклонение от плана. В качестве результата вывести номер месяца и отклонение.

11. Известен месячный план выпуска некоторой продукции и объемы выпущенной продукции заводом за год (помесячно). Определить, был ли выполнен годовой план.

12. Даны результаты сдачи экзамена по информатике группы студентов (в группе 20 студентов). Подсчитать количество студентов, сдавших экзамен без троек.

13. Известен месячный план выпуска некоторой продукции и объемы выпущенной этой продукции заводом за год (помесячно). Определить, когда завод перевыполнил план. Результат получить в виде: номер месяца и объем продукции, выпущенной сверх плана.

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

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

16. Найдите среднее арифметическое элементов заданного массива из 8 целых чисел и определите, сколько элементов данного массива больше среднего.

17. Задан массив из 7 целых чисел. Замените все положительные элементы данного массива его максимальным элементом.

18. Задан массив из 8 действительных чисел. Замените все отрицательные элементы данного массива его минимальным элементом.

19. Найдите сумму максимального и минимального элементов заданного массива из 7 действительных чисел.

20. В заданном массиве из 8 действительных чисел вычислите сумму и среднее арифметическое значение положительных элементов.

21. Задан массив из 10 целых чисел. Найдите среднее арифметическое всех четных элементов массива.

22. Подсчитайте количество нулевых элементов в массиве из 7 целых чисел и распечатайте исходный массив в обратном порядке.

23. Дан целочисленный массив из 8 целых чисел. Преобразуйте его, прибавив к четным числам значение первого элемента. Первый элемент массива оставьте без изменений.

24. Дан целочисленный массив из 7 целых чисел. Преобразуйте его, прибавив к нечетным числам значение последнего элемента. Последний элемент массива оставьте без изменений.

25. Найдите наибольший по модулю элемент заданного массива из 9 действительных чисел.

26. В заданном массиве из 5 действительных чисел определите количество чисел, не попадающих в интервал от -1 до 1.

27. Замените все четные элементы заданного целочисленного массива из 7 элементов числом 0, а все нечетные элементы – числом 1.

28. Замените все положительные элементы заданного целочисленного массива из 8 элементов числом 1, а все отрицательные элементы – числом 0.

29. Задан массив из 6 действительных чисел. Определите, каких элементов в массиве больше - положительных или отрицательных.

30. Задан массив из 8 целых чисел. Определите, каких элементов в массиве больше – четных или нечетных.

Приложение Б

Варианты заданий на тему «Двумерные массивы»

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

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

2. Известно количество сделанных столов тремя фабриками за два квартала. Определить максимальное количество выпущенных столов. В качестве результата вывести месяц, в котором это было, и название фабрики.

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

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

5. Известна заработная плата, полученная 5 сотрудниками отдела в течение года. Определить максимальную заработную плату. В качестве результата вывести фамилию и размер заработной платы.

6. Известно количество выпущенной продукции тремя заводами за первый квартал (помесячно). Найти среднемесячное количество выпущенной продукции для каждого завода.

7.2.7. Известно количество выпущенной продукции тремя заводами за первый квартал (помесячно). Найти среднемесячное количество выпущенной продукции по всем заводам.

8. Известны результаты сдачи трех экзаменов пятью студентами. Найти фамилии студентов, не сдавших оба экзамена.

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

10. Известна заработная плата, полученная 10 сотрудниками отдела в течение года. Определить среднемесячную зарплату по отделу.

11. Известны результаты сдачи двух экзаменов семью студентами. Найти фамилии студентов, не сдавших хотя бы один экзамен.

12. Известно количество сделанных столов тремя фабриками за два квартала. Определить, какая фабрика выпустила минимальное количество столов по итогам первых трех месяцев.

13. Известны результаты сдачи трех экзаменов десятью студентами. Найти средний балл каждого студента и общий средний балл. Точность среднего балла – два знака после запятой.

14. Известно количество сделанных столов тремя фабриками за два квартала. Определить, какая фабрика выпустила максимальное количество столов по итогам второго квартала.

15. Известны результаты сдачи двух экзаменов десятью студентами. Определить фамилии студентов, сдавших экзамены без троек.

16. Дана действительная матрица размера 3x4. Найти сумму элементов последнего столбца данной матрицы.

17. Дана целочисленная матрица размера 4x3. Найти произведение элементов первого столбца данной матрицы.

18. Дана действительная матрица размера 3x4. Найти минимальное значение в первой строке данной матрицы.

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

20. Дана целочисленная матрица размера 4x4. Найти минимальное значение во втором столбце данной матрицы.

21. Дана действительная матрица размера 4x3. Найти максимальное значение в третьей строке данной матрицы.

22. Дана и действительная матрица размера 3x5. Найти сумму элементов второй строки данной матрицы.

23. Дана целочисленная матрица размера 3x5. Найти максимальное значение в четвертом столбце данной матрицы.

24. Дана действительная матрица размера 3х4. Определить, сколько раз встречается число 5 во второй строке данной матрицы.

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

26. Дана целочисленная матрица размера 4х4. Определить, сколько раз встречается число 7 в первом столбце данной матрицы.

27. Задана действительная квадратная матрица размера 4х4. Найти сумму элементов главной диагонали данной матрицы.

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

29. Задана действительная квадратная матрица размера 4х4. Определить, сколько раз встречается число 0 среди элементов главной диагонали данной матрицы.

30. Задана действительная квадратная матрица размера 4х4. Найти наибольший элемент главной диагонали данной матрицы.

Приложение В

Варианты заданий по теме «Замена и перестановка элементов матриц»

1. Дана квадратная целочисленная матрица размера 4х4. Заменить нулями элементы матрицы, лежащие на главной диагонали.

2. Дана целочисленная матрица размера 5x6. Поменять местами 1 и 2 столбцы.

3. Дана целочисленная матрица размера 4x6. Переставить местами 1 и 2 строку матрицы.

4. Дана целочисленная матрица размера 5x7. Заменить в данной матрице все отрицательные элементы числом 0, положительные элементы – числом 1.

5. Дана целочисленная матрица размера 5x6. Поменять местами первый и последний из столбцов.

6. Дана целочисленная матрица размера 5x5. Заменить в данной матрице все отрицательные элементы первой строки числом 0.

7. Дана целочисленная матрица размера 5x7. Переставить местами 1 и 5 строку.

8. Дана целочисленная матрица размера 5x6. Заменить в данной матрице все элементы второй строки числом 10.

9. Дана целочисленная матрица размера 5x7. Переставить местами 1 и 4 столбец.

10. Дана целочисленная матрица размера 6x6. Заменить в данной матрице все положительные элементы первого столбца числом 1.

11. Дана целочисленная матрица размера 4x5. Переставить местами 1 и 3 строку.

12. Дана целочисленная матрица размера 5x6. Заменить в данной матрице все положительные элементы числом 5.

13. В целочисленной матрице чисел размером 4х6 поменять местами 2 и 4 столбцы.

14. Дана целочисленная матрица размера 5x5. Переставить местами 4 и 5 строку.

15. Дана целочисленная матрица размера 5x7. Заменить в данной матрице все элементы второго столбца числом 100.

16. Дана целочисленная матрица размера 4x6. Переставить местами 5 и 6 столбец.

17. Дана квадратная целочисленная матрица размера 5х5. Заменить нулями элементы матрицы, лежащие ниже главной диагонали.

18. Дана квадратная целочисленная матрица размера 6х6. Заменить нулями элементы матрицы, лежащие выше главной диагонали.

19. Дана целочисленная матрица размера 5x6. Заменить в данной матрице все элементы первой строки числом 7.

20. Дана целочисленная матрица размера 5x7. Переставить местами 2 и 3 строку.

21. Дана целочисленная матрица размера 7x3. Заменить в данной матрице все элементы второго столбца числом 5.

22. Дана целочисленная матрица размера 5x4. Переставить местами 2 и 3 столбец.

23. Дана целочисленная матрица размера 4x6. Заменить в данной матрице все положительные элементы первой строки числом -3.

24. Дана целочисленная матрица размера 5x5. Переставить местами 2 и 4 строку.

25. Дана целочисленная матрица размера 5x4. Заменить в данной матрице все положительные элементы числом 9.

26. В целочисленной матрице чисел размером 4х5 поменять местами 3 и 4 столбцы.

27. Дана целочисленная матрица размера 5x5. Переставить местами 2 и 5 строку.

28. Дана целочисленная матрица размера 5x7. Заменить в данной матрице все элементы второй строки числом 10.

29. Дана целочисленная матрица размера 4x5. Переставить местами 3 и 4 столбец.

30. Дана квадратная целочисленная матрица размера 5х5. Заменить нулями элементы матрицы, лежащие ниже главной диагонали.

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.