- •Реализация алгоритмов в системе программирования turbo pascal 7.0 Учебное пособие
- •Тема 1 Алгоритмы и способы их описания
- •Тема 2 Этапы подготовки и решения задач на эвм
- •Тема 3 Начало работы в системе Turbo Pascal 7.0
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске
- •Задание 2
- •Задание 3
- •Задание 4
- •Тема 4 Ввод исходных данных и вывод результатов вычислений
- •Упражнение 1.
- •Тема 5 Реализация линейных алгоритмов
- •Сложные выражения
- •Задание
- •Тема 6 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Тема 7 Циклические алгоритмы с известным числом повторений
- •Задание
- •Тема 8 Циклические алгоритмы с неизвестным числом повторений
- •Задания
- •Задание
- •Тема 10 Работа с массивами
- •Задание
- •Задание
- •Тема 12 Записи
- •Задания
- •Тема 13 Работа с файлами
- •Задания
- •Задания
- •Тема 15 Алгоритмы построения графика аналитически заданной функции
- •Задание
- •Тема 16 Анимация изображений
- •Задание 1
- •Задание 2
- •Тема 17 Численные методы вычисления определённого интеграла
- •1. Метод прямоугольников
- •2. Метод трапеций
- •3. Метод Симпсона
- •Задания
- •Тема 18 Численные методы решения нелинейных уравнений
- •Задания
- •Тема 19 Численные методы решения обыкновенных дифференциальных уравнений
- •Задание
- •Оглавление
- •Литература
Задание
Вычислить на ЭВМ значение суммы членов бесконечного ряда с заданной точностью . На печать вывести значение суммы и число членов ряда, вошедших в сумму.
Вариант |
Сумма членов ряда |
Значение 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 |
Тема 10 Работа с массивами
По определению, принятому в языке 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).