Лабораторная работа № 12. Программирование задач с одномерными массивами. ЛР12 Щербина. Лабораторная работа 12 Щербина К. А. группа 090207испао19 Лабораторная работа 12
Скачать 281.4 Kb.
|
Лабораторная работа №12 Щербина К.А. группа: 090207-ИСПа-о19 Лабораторная работа № 12. Программирование задач с одномерными массивами 1. Цель работы Научиться составлять блок-схемы алгоритмов решения задач с одномерными массивами и реализующие их программы на языке программирования. 2. Постановка задачи 1. Изучить следующие вопросы применительно к языку программирования Pascal в системе программирования PascalABC.NET: основные понятия, виды массивов и терминологию, используемую для их описания; синтаксис описания одномерного массива; синтаксис доступа к элементу одномерного массива; типовые программные фрагменты вычисления отдельных числовых характеристик одномерных массивов; программные фрагменты, соответствующие типовым операциям с одномерными массивами; особенности программирования задач с одномерными массивами; особенности составления блок-схем для решения задач с одномерными массивами. 2. Выполнить следующие задания: Задача 1. Составить программу на языке Pascal и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения следующей задачи. На предприятии выпускается n товаров с разной стоимостью ai(1≤ i ≤ n). Вычислить суммарную и среднюю стоимость всех товаров, а также количество товаров, стоимость которых меняется в диапазоне от p + q + 10 до (p + 1)(q + 1) + 30. Количество всех элементов n и массив A рассматривать как исходные данные к задаче. Их значения вычислить вручную до запуска программы на выполнение, полагая: n =10; A = {1+p;22+р;3+р;4+р;25+р;36+р;1+р;8+р;2+р;100-q}. На основе значений p=3 и q=1, массив A примет следующий вид: A = {4;25;6;7;28;39;4;11;5;99}. Рисунок 1 – блок-схема первой программы Листинг 1 – код программы для задачи 1 program Lab12_1; var A: array[1..100] of real; s, sr: real; i, n, k: integer; begin s := 0; k := 0; n := 10; writeln('Введи массив A'); for i := 1 to n do begin read(A[i]); s := s + A[i]; if (A[i] >= 10) and (A[i] <= 31) then k := k + 1; end; sr := s / n; writeln('s= ', s:10:2); writeln('sr=', sr:10:2); writeln('k= ', k:10); end. Рисунок 2 – результат выполнения программы для задачи 1 Задача 2. Составить программу на языке Pascal и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения задачи согласно своему варианту. Все элементы массива в задаче считать действительными числами. Числа p и q подставить в расчетные формулы до составления программы и блок-схемы. Массив А определен в задаче 1. В одномерном массиве A из n элементов найти сумму всех элементов s1, сумму s2 элементов, меньших p + q, и количество элементов k, больших . На основе значений p=3 и q=1, сумма s2 будет состоять из элементов, меньших 4, а k из элементов, больших . Рисунок 3 – блок-схема второй программы Листинг 2 – код программы для задачи 2 program Lab12_2; var A: array[1..100] of real; s1, s2: real; i, n, k: integer; begin n := 10; s1 := 0; s2 := 0; k := 0; writeln('Введи массив A'); for i := 1 to n do begin read(A[i]); s1 := s1 + A[i]; end; for i := 1 to n do begin if A[i] < 4 then s2 := s2 + A[i]; if A[i] > (s1/2)+3-1 then k := k + 1; end; writeln('s1=', s1:10:3); writeln('s2=', s2:10:3); writeln('k=', k:10); end. Рисунок 4 – результат выполнения программы для задачи 2 Задача 3. Составить программу на языке Pascal и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения задачи. Все элементы массива в задаче считать действительными числами. Числа p и q подставить в расчетные формулы до составления программы и блок-схемы. Массив А определен в задаче 1. В одномерном массиве A из n элементов найти произведение всех элементов p и среднее значение sr среди элементов, меньших p + q + 1. На основе значений p=3 и q=1, среднее значение sr будет находиться из элементов, меньших 5. Рисунок 5 – блок-схема третьей программы Листинг 3 – код программы для задачи 3 program Lab12_3; var A: array[1..100] of real; s, sr, p: real; i, n, k: integer; begin n := 10; p := 1; s := 0; k := 0; writeln('Введи массив A'); for i := 1 to n do begin read(A[i]); p := p * A[i]; end; for i := 1 to n do begin if A[i] < 5 then begin s := s + A[i]; k := k + 1; end; end; sr := s / k; writeln('p=', p:10); writeln('sr=', sr:10:3); end. Рисунок 6 – результат выполнения программы для задачи 3 Задача 4. Составить программу на языке Pascal и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения задачи. Все элементы массива в задаче считать действительными числами. Числа p и q подставить в расчетные формулы до составления программы и блок-схемы. Массив А определен в задаче 1. В одномерном массиве A из n элементов найти максимальное значение среди всех элементов max и минимальное значение min среди элементов, меньших p + q + 2. На основе значений p=3 и q=1, минимальное значение minбудет находиться из элементов, меньших 6. Рисунок 7 – блок-схема четвертой программы Листинг 4 – код программы для задачи 4 program Lab12_4; var A: array[1..100] of real; max, min: real; i, n: integer; begin n := 10; writeln('Введи массив A'); for i := 1 to n do begin read(A[i]); end; max := A[1]; for i := 2 to n do begin if A[i] > max then max := A[i]; end; min := 1E10; for i := 1 to n do begin if (A[i] < min) and (A[i] < 6) then min := A[i]; end; writeln('max=', max:10); writeln('min=', min:10); end. Рисунок 8 – результат выполнения программы для задачи 4 Задача 5. Составить программу на языке Pascal и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения задачи. Все элементы массива в задаче считать действительными числами. Числа p и q подставить в расчетные формулы до составления программы и блок-схемы. Массив А определен в задаче 1. Все элементы массива в задаче считать действительными числами. Числа p и q подставить в формулы до составления программы и блок-схемы. Значения всех элементов полученных в результате решения массивов вывести на экран. В одномерном массиве A из n элементов найти сумму всех элементов и заменить положительные элементы на 10. Рисунок 9 – блок-схема пятой программы Листинг 5 – код программы для задачи 5 program Lab12_5; var A: array[1..100] of real; s: real; i, n, k: integer; begin n := 10; s := 0; writeln('Введи массив A'); for i := 1 to n do begin read(A[i]); s := s + A[i]; end; for i := 1 to n do begin if A[i] > 0 then A[i] := 10; end; writeln('s=', s:10); write('Вывод элементов массива: '); for i:=1 to N do write(a[i],' '); end. Рисунок 10 – результат выполнения программы для задачи 5
|