Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практические работы Информатикка учебное пособи...doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Лабораторная работа № 4 Программирование алгоритмов циклической структуры

Цель работы: Разработка программ, реализующих циклические алгоритмы арифметического и итерационного типов.

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

Задание № 1. Построить алгоритм определения максимального элемента и его номера, случайным образом сформированного одномерного массива, состоящего из 25-ти целых двухзначных чисел. Разработать, набрать и отладить программу, реализующую этот алгоритм.

Методика выполнения работы

  1. Алгоритм в виде блок-схемы:

Рис. 5.7. Блок-схема алгоритма поиска максимального элемента одномерного массива и его номера в массиве

  1. Программа на основе алгоритма рис.5.7:

Program Maximum;

Uses crt;

Const n=25;

Var i,k,max:Integer;

x:Array[1..n] Of Integer; {Объявление одномерного массива}

Begin

Clrscr;

Randomize; {Формирование новых данных при очередном запуске программы}

Writeln(‘Исходный массив’);

For i:=1 To n Do {Начало циклического алгоритма арифметического типа}

Begin x[i]:=Random(100); {Обращение к датчику случайных чисел}

Write(x[i]:4)

End; {Конец циклического алгоритма арифметического типа}

Writeln;

k:=1;

max:=x[1];

For i:=2 To n Do

If max<x[i] Then

Begin max:=x[i];k:=i End;

Writeln(‘Максимальный элемент’,max:4,’ Его номер в массиве’,k:4)

End.

  1. Наберите, откомпилируйте и исправьте возможные ошибки. Затем запустите программу на счет.

  2. Убедитесь в правильности работы программы. В противном случае внесите коррективы в алгоритм.

  3. Внесите изменения в программу так, чтобы она искала минимальный элемент.

Задание № 2. Построить алгоритм для вычисления корня уравнения с точностью ε=10-4 методом простой итерации. Принять за начальное значение корня x0=2. Вывести на экран корень уравнения до 5-го знака и число итераций. Разработать, набрать и отладить программу, реализующую этот алгоритм.

Методика выполнения работы

  1. Алгоритм в виде блок-схемы:

Рис. 5.8. Блок-схема алгоритма нахождения корней методом простой итерации

  1. Программа на основе алгоритма рис.5.8:

Program Root;

Uses crt;

Var x0,x,eps:Real;

n:Integer;

Begin

Clrscr;

eps:=1E-4;

x0:=2;

x:=exp(ln(29+3*x0*x0+8*x0)*(1/4));

n:=1;

While abs(x0-x)>eps Do {Начало итерационного цикла с предусловием}

Begin

x0:=x;

x:=exp(ln(29+3*x0*x0+8*x0)*(1/4));

n:=n+1

End; {Конец итерационного цикла с предусловием}

Writeln(‘Корень=’,x:10:5,’ Количество итераций=’,n)

End.

  1. Наберите, откомпилируйте и исправьте возможные ошибки. Затем запустите программу на счет. Должен быть получен следующий результат: Корень равен 2.98770. Количество итераций равно 8.

  2. Изменяя начальное приближение x0, выясните, как влияет начальное приближение на количество итераций.

  3. Измените программу так, чтобы итерационный цикл осуществлялся с постусловием – вместо оператора While использовать оператор Repeat. Результат работы программы не должен измениться.