Программирование на Pascal / Delphi / Лабораторная работа1 / Лаб.раб. 3
.docМинистерство Образования Российской Федерации
Московский Государственный Индустриальный Университет
Филиал в г. Вязьма
Отчет
по лабораторной работе №3
Тема: Разработка циклических вычислительных процессов Дисциплина: «Информатика и программирование»
Группа: 03Ид01
Студент: Афанасьев Виктор Валерьевич
Преподаватель: Соколова Н. В.
2003г.
Цель: применяя операторы цикла на языке Pascal While- do и Repeat- Until составить программу решения задачи согласно условию варианта.
Задание1: Составить программу нахождения первого положительного члена последовательности большего 1: А[n]:=3*n*n/20*n, n=1,2,3,… Вывести его значения и номер. Найти синус суммы всех членов последовательности предшествующих найденному. Вывести результат на экран.
Задание2: действительное число Х вводится с клавиатуры. Вычислить приближённое значение бесконечной суммы последовательности х-(х^2)/2+(x^3)/3… . Нужное приближение считается полученным, если вычислена сумма нескольких первых слагаемых, и очередное слагаемое оказалось по модулю меньше 0,0001.
Краткие теоретические сведения
Пункты меню Edit
Undo |
Alt+BkSp |
Отменить последнее действие. |
Redo |
|
Повторить действие отмененное командой Undo. |
Cut |
Shift+Del |
Переместить в буфер. |
Copy |
Ctrl+Ins |
Скопировать в буфер. |
Paste |
Shift+Ins |
Переместить из буфера в текст. |
Clear |
Ctrl+Del |
Удалить. |
Show clipboard |
|
Показать Clipboard. |
Пункты меню Edit используются при редактировании текстов программ настолько часто, что их гораздо удобнее не выбирать через меню, а использовать соответствующие команды.
Для того, чтобы поместить текст в буфер, его сначала необходимо выделить. Выделенная часть текста отличается текстом. Для выделения можно использовать мышь или клавиатуру. При выделении текста мышью курсор устанавливается в начало текста, нажимается левая кнопка и, при нажатой кнопке, курсор тянется до конца выделяемого текста. Для выделения текста с помощью клавиатуры курсор клавиатуры устанавливается в начало текста, нажимается клавиша Shift и, при нажатой клавиши, курсор клавишами управления перемещается на последнюю позицию, где клавиша Shift отпускается. Выделение текста отменяется, если вы начинаете новое выделение.
Пункты меню Window
При разработке программных проектов, содержащих несколько модулей, удобно использовать многооконный интерфейс среды, позволяющий одновременно работать со всеми файлами данного проекта. Управление окнами производит меню Window.
Tile |
|
«Кафель». |
Cascade |
|
«Каскад». |
Close all |
|
Закрыть все. |
Refresh display |
|
Обновить экран. |
Size/Move |
Ctrl+F5 |
Размер/Перемещение. |
Zoom |
F5 |
Максимизация окна. |
Next |
F6 |
Следующее окно |
Previous |
Shift+F6 |
Предыдущее окно. |
Close |
Alt+F3 |
Закрыть окно. |
List… |
Alt+0 |
Список окон. |
Оператор While…do
Оператор цикла while (пока, в то время как) имеет вид:
While <логическое выражение> do <тело цикла>;
Цикл While обеспечивает выполнение тела цикла, следующего за словом do до тех пор, пока условие имеет значение true (истина). В качестве тела цикла может использоваться простой или сложный оператор. Условие проверяется перед началом каждого выполнения тела цикла, поэтому, если до первого выполнения цикла условие имеет значение false (ложь), оператор не выполняется ни одного раза (рисунок слева).
Оператор Repeat…until…
Оператор цикла Repeat…until… (повторять до тех пор, пока) имеет вид:
Repeat <тело цикла> until <логическое выражение>;
Принципиальное отличие оператора Repeat…Until от оператора While…do в том, что проверка условия производиться не перед началом выполнения оператора, а в его конце, когда решается вопрос, повторить ли еще раз действие. Поэтому тело этого цикла всегда выполняется по крайней мере один раз. (Рисунок слева).
Второе отличие от оператора While…do
– в логике завершения цикла. Цикл оператора Repeat…Until выполняется до тех пор, пока не станет истинным логическое выражение, следующее за словом Until. Таким образом, исполнение логического выражения здесь имеет противоположный оператору While…do смысл. Здесь при истинности логического выражения (условия) цикл прекращается, а у оператора While…do при истинности логического выражения цикл продолжается.
Третье отличие в том, что оператор Repeat…Until имеет две части: начальную и завершающую, которые охватывают группу операторов, составляющих тело цикла. Оператор While…do не имеет завершающей части и требует для организации тела цикла из нескольких операторов программных скобок begin-end. Для оператора Repeat…Until таких скобок не требуется – их роль выполняют составные части оператора.
Представление алгоритма в виде блок схемы (№1):
- +
Текст программы:
program lab3;
var
n:integer;
sum,b,a:real;
begin
writeln('Находим первый член больший 1');
n:=1;
while a<1 do
begin
a:=(3*n*n)/(20*n);
n:=n+1;
sum:=sum+a;
end;
b:=sin(sum);
writeln('индекс члена равен ',n);
writeln('член равен ',a);
writeln('синус суммы членов равен ',b);
readln;
readln;
end.
Тестовый пример:
Выходные данные:
n-1:=7
a:=1,0500000000E+00
b:=-8,7157577242E-01
Представление алгоритма в виде блок схемы
(№2):
-
+
- +
- +
Текст программы (№2):
program lab_3;
var
l,i:integer;
x,sum,a,k:real;
begin
write('вводим х');
readln(x);
l:=1;
a:=x;
while a>abs(0.0001) do
begin
if l mod 2=0 then sum:=sum-a else sum:=sum+a;
l:=l+1;
k:=x;
for i:=1 to l do x:=x*k;
a:=x/l;
end;
writeln('сумма равна ',sum);
readln;
readln;
end.
Тестовые примеры:
Входные данные:
x:=0.3
Выходные данные:
sum:=2.6233950000E-01
Входные данные:
x:=0.5
Выходные данные:
sum:=4.0553230407E-01
Выполнил:____________________
Защитил:______________________