4616_И_ЛР7
.doc
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
-
Федеральное государственное автономное образовательное учреждение высшего образования
«Санкт-Петербургский государственный университет аэрокосмического приборостроения»
КАФЕДРА № 2
Преподаватель
доцент, к.т.н. Бариков Л.Н.
Отчёт
по лабораторной работе №7
по дисциплине Информатика
на тему: «Управляющая структура «Циклы»»
Работу выполнил
студент гр. 4616 Павлов А.В.
Санкт-Петербург
2016
Цель лабораторной работы: изучение концепций и освоение технологии структурного программирования, приобретение навыков структурного программирования на языке Турбо Паскаль циклических вычислений.
Задание на программирование: используя технологию структурного программирования разработать программу решения индивидуальной задачи, содержащую 3 вида циклических управляющих структур: Цикл - Пока (с предусловием), Цикл - До (с постусловием), Цикл - Для (с параметром).
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание. Выполнить постановку задачи: сформулировать условие, определить входные и выходные данные.
2) Разработать математическую модель.
3) Построить схему алгоритма, последовательно используя для решения задачи все три циклические управляющие структуры (операторы while, repeat…until, for).
4) Составить программу на языке Турбо Паскаль.
5) Входные данные вводить с клавиатуры по запросу.
6) Выходные данные выводить на экран в развернутой форме с пояснениями.
7) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.
Вариант 24
Для заданного значения m вычислить Ym.
Значения m, Y0, Y1,Y2 вводятся с клавиатуры, а Yi вычисляется по формуле
Yi = ctg(Yi-1) + sin(Yi-3); i = 3, 4, 5,…, m.
С
i:=0
b:=b1
c:=c1
d:=d1
i:=0
a:=
ln(abs(b*b + c +1))/ln(10)
s:=b+c+d
S:=s+a
B1:=b
b:=a
c1:=c
c:=d
d1:=d d:=b i:=i+1
да
нет
нет
да
b:=a c:=d d:=b
i:=i S:=s+a
a:=
ln(abs(b*b + c +1))/ln(10)
S:=s+a
b:=a c:=d d:=b i:=i+1
нет
a:=
ln(abs(b*b + c +1))/ln(10)
b:=a c:=d d:=b S:=s+a
Текст программы.
Program Cikly;
{Для заданного значения m вычислить Ym}
var
a,b,c,d,s:real;
b1,c1,d1:real;
m,i:byte;
begin
i:=0;
Writeln ('Введите Y0,Y1,Y2,m через пробел');
ReadLn ( b,c,d,m);
s:=b+c+d;
b1:=b; {Сохранение b Y0}
c1:=c; {Сохранение c y1}
d1:=d; {Сохранение d y2}
If (m<=2)
Then Begin
WriteLn('m меньше 2');
Exit;
End;
{Решение с использованием управляющей структуры While-Do}
WriteLn('Y0 = ',b);
WriteLn('Y1 = ',c);
WriteLn('Y2 = ',d);
while (m-2)<>i
do begin
a:= ln(abs(b*b + c +1))/ln(10);
s:=(s+a);
d:=a;
b:=c;
c:=d;
i:=i+1;
writeln('Y',i+2,' = ',a);
end;
s:= sqrt(s);
Writeln ('Сумма = ', s);
Readln;
{Решение с использованием управляющей структуры Repeat-Until}
i:=0;
b:=b1;
c:=c1;
d:=d1;
s:=b+c+d;
WriteLn('Y0 = ',b);
WriteLn('Y1 = ',c);
WriteLn('Y2 = ',d);
Repeat
a:= ln(abs(b*b + c +1))/ln(10);
s:=(s+a);
d:=a;
b:=c;
c:=d;
i:=i+1;
writeln('Y',i+2,' = ',a);
Until i=(m-2);
s:= sqrt(s);
writeln('Сумма =',s);
ReadLn;
{Решение с использованием управляющей структуры For-To-Do}
b:=b1;
c:=c1;
d:=d1;
s:=b+c+d;
WriteLn('Y0 = ',b);
WriteLn('Y1 = ',c);
WriteLn('Y2 = ',d);
For i:=1 To (m-2)
Do Begin
a:= ln(abs(b*b + c +1))/ln(10);
s:=(s+a);
d:=a;
b:=c;
c:=d;
writeln('Y',i+2,' = ',a);
End;
s:= sqrt(s);
writeln('Сумма =',s);
ReadLn;
end.
Примеры.