- •Введение Алгоритмизация
- •Автоматизация математических вычислений на компьютере
- •Численные методы
- •Лабораторная работа № 1. Программирование последовательных вычислений Элементы языка Pascal
- •Операции и функции в языке Pascal
- •Порядок выполнения
- •Примеры программ на языке Pascal
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа № 2. Программирование разветвлений Алгоритм линейной структуры
- •Алгоритм разветвляющейся структуры
- •Порядок выполнения
- •Примеры задач
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа № 3. Программирование циклов Алгоритм циклической структуры
- •Порядок выполнения
- •Примеры задач
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа № 4. Программирование задач с одномерными массивами Одномерные массивы
- •Порядок выполнения
- •Пример задачи
- •Дополнительное задание
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Контрольные вопросы
- •Лабораторная работа № 5. Программирование задач с двумерными массивами Двумерные массивы
- •Порядок выполнения
- •Пример задачи
- •Дополнительное задание
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Квадратные матрицы
- •Контрольные вопросы
- •Лабораторная работа № 6. Программирование процедур и функций Подпрограммы
- •Порядок выполнения
- •Дополнительное задание
- •Примеры задач
- •Контрольные вопросы
- •Лабораторная работа № 7. Программирование структурных типов данных Файлы
- •Порядок выполнения
- •Примеры задач
- •Дополнительное задание
- •Контрольные вопросы
Порядок выполнения
Зайти в Borland Pascal.
Набрать текст программы для решения задачи № 1 и получить ответ для контрольного примера.
Исправить программу так, чтобы она находила сумму и количество положительных элементов.
Исправить программу так, чтобы она находила произведение и среднее значение всех элементов.
Исправить программу так, чтобы она находила максимальное и минимальное значение в массиве.
Пример задачи
Задача 1. Дан одномерный массив Aизnэлементов. Найти сумму элементов массива: . |
Program Lab4; Var A:array[1..100] of real; i,n:integer; s:real; Begin writeln('Введи n'); read(n); s:=0; writeln('Введи массив A'); for i:=1 to n do begin read(A[i]); s:=s+A[i]; end; writeln('s=',s:10:3); End. |
Контрольный пример. Исходные данные: ; . Ручной счёт: . Результат: . | |
Экран пользователя. Введи n 5 Введи массив A 1 2 3 5 -1 s= 10.000 |
Дополнительное задание
Дан массив L(n). Найти количество элементов, больших корня из суммы положительных элементов.
Дан массив G(q). Найти произведение неотрицательных элементов и сумму элементов в диапазоне от 10 до 20.
Дан массив A(n). Найти сумму и количество элементов, равных среднему значению.
Дан массив C(m). Найти отношение максимального к минимальному элементу.
Дан массив D(n). Найти минимальный среди элементов, больших суммы, и найти количество элементов, не равных максимальному.
Дан массив A(n). Сформировать новый массивBумножением элементов массиваAна 100. В новом массиве переставить местами третий и предпоследний элементы.
Дан массив A(n). Положительные элементы массива заменить на их сумму, а отрицательные элементы уменьшить на минимальный.
Дан массив A(n). Найти сумму элементов на чётных местах и произведение элементов, кратных 3.
Дан массив A(n). У нечётных элементов отбросить дробную часть числа, а у элементов с индексами, дающими остаток 1 при делении на 3, отбросить целую часть числа.
Сформировать массив случайных чисел в диапазоне от 10 до 20 и округлить значения элементов, по модулю меньших 1.
Фрагменты вычисления характеристик одномерного массива
Характеристика |
Для всех элементов ai |
Для части элементов |
s |
s:=0; for i:=1 to n do s:=s+A[i]; |
s:=0; for i:=1 to n do if A[i]>z then s:=s+A[i]; |
k |
k:=n; |
k:=0; for i:=1 to n do if A[i]>z then k:=k+1; |
p |
p:=1; for i:=1 to n do p:=p*A[i]; |
p:=1; for i:=1 to n do if A[i]>z then p:=p*A[i]; |
max |
max:=A[1]; for i:=2 to n do if A[i]>max then max:=A[i]; |
max:=-1E10; for i:=1 to n do if (A[i]>max) and (A[i]>z) then max:=A[i]; |
min |
min:=A[1]; for i:=2 to n do if A[i]<min then min:=A[i]; |
min:=1E10; for i:=1 to n do if (A[i]<min) and (A[i]>z) then min:=A[i]; |
sr |
s:=0; for i:=1 to n do s:=s+A[i]; sr:=s/n; |
s:=0; k:=0; for i:=1 to n do if A[i]>z then begin s:=s+A[i]; k:=k+1; end; sr:=s/k; |