
информатика_книги / Информатика. Теория и практика_Острейковский В.А, Полякова И.В_2008 -608с
.pdf
Работа ¹ 5. Использование итерационных операторов цикла
Цель работы: изучить правила использования итерационных операторов цикла в среде Турбо Паскаль.
Задание: составить программу для вычисления корней уравнения x4 – 3x2 – 8x = 29 на отрезке [1,9 : 2.0] с точностью eps = = 10–4 методом простой итерации. Примем за начальное значе- ние x0 = 1.92. Вывести на экран корень уравнения до пятого знака и число итераций.
Методика выполнения работы:
заменим данное уравнение уравнением вида x = f(x), равно-
сильным данному: x = 429 3x2 8x .
Программа с использованием оператора цикла с постусловием:
Program pr_5à; Uses Crt;
Var x0, x1, eps: Real; n: Integer;
Begin Clrscr;
Readln(x0); eps:= 1e-4;
x1:= Exp(ln(29 +3*Sqr(x0) +8*x0)*(1/4)); n:= 1;
Repeat x0:= x1;
x1:= Exp(Ln(29 +3*Sqr(x0) +8*x0)*(1/4)); n:= n+1;
Until Abs(x0-x1) < eps; Writeln(' x=', x1:7:5, ' n=', n-1); Readln;
End.
Результаты вычислений: x = 2.98770; n = 6.
511
Программа с использованием оператора цикла с предусловием:
Program pr_5b; Uses Crt;
Var x0,x1,eps: Real; n: Integer;
Begin Clrscr;
eps:= 1e-4; X0:= 2.8;
X1:= Exp(Ln(29 +3*Sqr(x0) +8*x0)*(1/4)); n:= 1;
While Abs(x0-x1)>eps do Begin
x0:= x1;
x1:= Exp(Ln(29 +3*Sqr(x0) +8*x0)*(1/4)); n:=n+1;
End;
Writeln('x=',x1:10:8,' n=',n ); Readln;
End.
Работа ¹ 6. Работа с массивами
Цель работы: изучить правила работы с массивами в среде Турбо Паскаль.
Задание: составить программу, сортирующую двухмерный, случайным образом сформированный массив, состоящий из заданного количества чисел в диапазоне от –10 до 10, по возрастанию столбца, номер которого задается с клавиатуры.
Методика выполнения работы:
Program pr_6; Uses Crt;
Type a= Array [1..10] Of Integer; Var b: Array[1..10] Of a;
sr, sb, s, i, k, et, l, y,j: Integer; Begin
Writeln('Введите sr и sb');
512
Readln(sr,sb);
Writeln('Введите значение номера столбца, по которому сортировать');
Readln(s);
Clrscr;
Randomize;
For i:= 1 To sr Do For j:= 1 To sb Do
b[i,j]:=10-Random (20); Writeln('Исходный массив');
For i:= 1 To sr Do Begin
For j:=1 To sb Do Write (b[i,j]:4);
Writeln;
End;
For i:= 1 To sr-1 Do Begin
et:=b[i,s]; k:=i; For j:=i+1 To sr Do
if b[j,s]<et Then Begin
et:=b[j,s];
k:=j;
End;
For l:=1 To sb Do Begin
y:=b[k,l];
b[k,l]:=b[i,l];
b[i,l]:=y;
End;
End;
Writeln('Отсортированный массив'); For i:=1 To sr Do
Begin
For j:=1 To sb Do Write (b[i,j]:4); Writeln;
End;
Readln;
End.
513
Работа ¹ 7. Использование оператора выбора case
Цель работы: изучить правила использования оператора выбора case в среде Турбо Паскаль.
Задание: составить программу, имитирующую работу микрокалькулятора. Блок-схема алгоритма приведена на рис. 4.4.
Методика выполнения работы:
Program pr_7;
Var oper: Char; {Описание символа арифметического действия}
x,y,z:Real; {Описание переменных, над которыми будут произведены действия (операндов), и результата вычислений}
stop: Boolean; {Признак ошибочной операции и остановка}
Begin
stop:=false;
Repeat {Оператор цикла}
Writeln; {Пустая строка-разделитель}
Write('Введите x и y='); Readln(x,y); Write('операция: '); Readln(oper);
Case oper Of {Выбор арифметического действия}
'+': z:= x+y; '—': z:= x-y; '*': z:= x*y; '/': z:= x/y;
Else stop:=true; End;
If Not stop Then
Writeln(' результат = ',z:6:3); Until stop
End.
514

