- •Лабораторный практикум по информатике
- •Часть II программирование в системе турбо паскаль
- •Введение
- •Лабораторная работа №1 Создание простейшей программы
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске:
- •Задание 2
- •Задание 3
- •Задание 4
- •Лабораторная работа №2 Ввод данных и вывод результатов
- •Задания
- •Лабораторная работа №3 Программирование линейных алгоритмов
- •Задание
- •Лабораторная работа №4 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Лабораторная работа № 5 Программирование циклических алгоритмов с известным числом повторений
- •Задание
- •Лабораторная работа №6 Программирование циклических алгоритмов с неизвестным числом повторений
- •Задания
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Лабораторная работа №7 Программирование алгоритмов итерационной циклической структуры
- •Задание
- •Лабораторная работа №8 Массивы
- •Лабораторная работа №9 Процедуры и функции пользователя в языке Паскаль
- •Задание
- •Лабораторная работа №10 Записи
- •Задания
- •Лабораторная работа №11 Работа с файлами
- •Лабораторная работа №12 Графический режим в языке Паскаль
- •Лабораторная работа №13 Построение графика функции
- •Задания
- •Лабораторная работа №14 Создание движущихся изображений
- •Задание 1
- •Задание 2
- •Лабораторная работа №15 Вычисление определённого интеграла численными методами
- •Метод прямоугольников
- •Метод трапеций
- •Метод Симпсона
- •Задания
- •Лабораторная работа №16 Решение нелинейных уравнений численными методами
- •Метод половинного деления
- •Метод Ньютона
- •Метод хорд
- •Задания
- •Лабораторная работа №17 Решение обыкновенных дифференциальных уравнений численными методами
- •Метод Эйлера
- •Модифицированный метод Эйлера
- •Метод Рунге-Кутта
- •Задание
- •Приложение
- •Список литературы
- •Оглавление
- •Лабораторный практикум по информатике
- •Часть II программирование в системе турбо паскаль
- •Архангельск
Задание
Вычислить на ЭВМ значение суммы членов бесконечного ряда с заданной точностью . На печать вывести значение суммы и число членов ряда, вошедших в сумму.
Вариант |
Сумма членов ряда |
Значение x |
Точность вычисления |
1 |
|
0,20 |
10-5 |
2 |
|
0,10 |
0,5·10-4 |
3 |
|
0,15 |
10-3 |
4 |
|
0,12 |
10-4 |
5 |
|
0,70 |
10-4 |
6 |
|
– |
10-4 |
7 |
|
1,5 |
0,5·10-3 |
8 |
|
/6 |
0,5·10-4 |
9 |
|
1,7 |
10-3 |
10 |
|
– |
0,5·10-4 |
Лабораторная работа №8 Массивы
По определению, принятому в языке Pascal, массив – это сложный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип. С точки зрения программиста, массив – это группа однотипных переменных с одним именем, каждый элемент массива имеет свой номер (индекс). Массив описывается одним из следующих способов:
1) Var
identificator : array [ index-type ] of element-type;
2) Type
TypeName= array [ index-type ] of element-type;
Var
identificator : TypeName;
Тип элементов может быть любым, но индекс должен быть перечислимого типа. Примеры описаний типа массив:
IntList:array[1..100] of Integer;
CharData:array['A'..'Z'] of Byte;
Matrix:array[0..9, 0..9] of Real;
Если в описании массива задан один индекс, массив называется одномерным, если два индекса – двухмерным, если n индексов – n-мерным. Одномерные массивы обычно используются для представления векторов, а двумерные – для представления матриц.
После объявления массива к каждому его элементу можно обратиться, указав идентификатор (имя) массива и индекс (номер) элемента в квадратных скобках. Например, запись IntList[2] позволяет обратиться ко второму элементу массива IntList, а запись Matrix[4,5] делает доступным для использования значение элемента, находящегося в четвёртом столбце пятой строки массива Matrix.
Перед использованием массива рекомендуется его очистить путём присваивания каждому элементу массива значения нуль:
for i:=1 to n do a[i]:=0;
Заполнение массива, то есть присваивание элементам массива значений, может производиться путём ввода данных с клавиатуры, генерации случайных чисел или присваивания результатов вычисления выражений.
Пример 1. Ввод с клавиатуры 10 элементов массива.
for i:=1 to 10 do
begin
Write(i,'-й элемент массива = ');
Readln(a[i]);
end;
Пример 2. Генерация массива действительных случайных чисел в диапазоне от X до Y:
for i:=1 to n do a[i]:=x+(y-x)*random;
(перед использованием функции random следует выполнить ее инициализацию функцией randomize).
Пример 3. Вывод массива из 10 элементов действительного типа:
Writeln('Вывод элементов массива в строку:');
for i:=1 to 10 do
Write(a[i]:7:2);
Writeln('Вывод элементов массива в столбец:');
for i:=1 to 10 do
Writeln(i,'-й элемент массива = ',a[i]:7:2);
Пример 4. Вычисление суммы 10 элементов массива:
s:=0;
for i:=1 to 10 do
s:=s+a[i];
Writeln('Сумма равна ', s:8:2);
Пример 5. Нахождение минимального и максимального элементов массива:
mina:=a[1]; maxa:=a[1];
for i:=2 to 10 do
begin
if a[i]<mina then mina:=a[i];
if a[i]>maxa then maxa:=a[i];
end;
Writeln('Минимальное значение равно ', mina:8:2);
Writeln('Максимальное значение равно ', maxa:8:2);
Пример 6. Поиск в массиве элементов, удовлетворяющих определённым условиям. Например, чтобы подсчитать, сколько элементов массива имеют нулевые значения, надо записать:
k:=0;
for i:=1 to n do
if a[i]=0 then k:=k+1;
Writeln('В массиве А ', k, ' элементов равны 0');
Упражнение. Наберите текст следующей программы:
Uses Crt;
Var
a:array[1..10] of byte;
b,i,p:byte;
Begin
ClrScr;
Writeln('Заполнение массива из 10 элементов целыми числами');
for i:=1 to 10 do
a[i]:=random(255);
Writeln('Вывод массива в строку:');
for i:=1 to 10 do
Write(a[i]:7:2);
Writeln;
repeat {Сортировка массива}
p:=0;
for i:=1 to 9 do
if a[i]<a[i+1] then
begin
b:=a[i]; a[i]:=a[i+1];
a[i+1]:=b; p:=1;
end;
until p=0;
Writeln;
Writeln('Вывод массива после сортировки:');
for i:=1 to 10 do
Writeln(i,'-й элемент массива = ',a[i]);
Readln;
End.
В этой программе организован ввод элементов массива, вывод исходного массива, его сортировка и вывод результатов сортировки. Сортировка выполняется методом "пузырька", при котором сравниваются значения соседних элементов массива и, если необходимо, производится их перестановка. С помощью комбинаций клавиш Ctrl-F7 введите в окно просмотра переменных имя массива а. Затем таким же образом i, a[i], p (окно просмотра открывается и закрывается клавишей F5).
Выполните пошаговое прохождение программы. Для выполнения каждой строчки программы следует нажимать клавишу F7. При этом строка, которая будет выполняться следующим шагом, выделяется другим цветом. При прохождении внимательно следите за значениями переменных в окне Watch. При вводе переменных числа, имеющие размер более 255, будут восприняты неправильно, так как они выходят из диапазона чисел типа Byte (0..255).
Задание
При выполнении заданий следует использовать упражнение из этой лабораторной работы. Файл сохранить в свою папку под новым именем. Результаты расчетов вывести на экран.
Вариант 1
а) Организовать сортировку массива по возрастанию.
б) Определить сумму отрицательных элементов массива.
Вариант 2
а) Организовать сортировку таким образом, чтобы значение 4-го элемента никогда не изменялось.
б) Определить сумму элементов массива с четными номерами.
Вариант 3
а) Определить максимальный элемент массива и его номер.
б) Организовать обработку (ввод и вывод) строковых элементов, например фамилий студентов группы.
Вариант 4
а) Организовать ввод и сортировку дробных чисел и подсчет их суммы.
б) Организовать сортировку букв в строковом массиве.
Вариант 5
а) Определить среднее арифметическое из отрицательных чисел массива.
б) Увеличить все элементы массива на 25.
Вариант 6
а) Заполнить массив так, чтобы его элементы содержали арифметическую прогрессию (например, –8, –4, 0, 4, 8, 12, 16 ...).
б) Определить сумму отрицательных элементов массива.
Вариант 7
а) Модифицировать программу так, чтобы элементы массива со значением больше 100 стали равны 100.
б) Найти наименьший из положительных элементов массива.
Вариант 8
а) Модифицировать программу так, чтобы элементы массива меньше 10 стали равны 0.
б) Вычислить среднее арифметическое из положительных элементов массива.
Вариант 9
а) Заполнить массив так, чтобы его элементы содержали геометрическую прогрессию (1, 2, 4, 8...).
б) Определить сумму четных и сумму нечетных элементов массива.
Вариант 10
а) Найти произведение всех элементов массива не равных нулю.
б) Вычислить отклонения элементов от среднего арифметического и заполнить ими второй массив.