отчет 11. Лабораторная работа 11. Программирование циклов Подготовил студент 1го курса фиоп, Группы пмао21
Скачать 318.11 Kb.
|
Лабораторная работа № 11. Программирование циклов Подготовил студент 1-го курса ФИОП, Группы ПМа-о21 Пятибратов Артем Романович Цель работы: Научиться составлять программы на языке программирования, содержащие операторы цикла и безусловного перехода, а также научиться составлять блок-схемы алгоритмов циклической структуры. Постановка задачи: 1. Изучить следующие вопросы применительно к языку программирования Pascal в системе программирования PascalABC.NET: - алгоритмы циклической структуры; - синтаксис оператора цикла с предусловием; - синтаксис оператора цикла с постусловием; - синтаксис оператора цикла с параметром; - особенности применения операторов цикла в программах на языке Pascal; - особенности составления блок-схем алгоритмов циклической структуры. Выполнение работы: Составить программу на языке Pascal (с использованием оператора цикла с предусловием) и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения следующей задачи. Объём выпуска продукции на предприятии задается функцией y (1 1 1) et 21 1t 1 1t2 Вычислить объёмы выпуска продукции в разные моменты времени t, где время t изменяется от начального момента tн до конечного момента tк с шагом по времени t. Вывести результаты, включающие 1+5=6 знаков, из них 1+2=3 цифр после запятой, где числа p и q находятся из условия N pq , где N – номер студен- та по списку. Все величины в задаче считать действительными (дробными, вещественными) числами. Также вывести пояснительный текст при вводе и выводе (в этой и последующих задачах). Числа p и q подставляются в форму- лу, задающую изменение объема выпуска, до составления программы и блок- схемы. Переменные tн, tк и t рассматривать как исходные данные. Их значения вычислить вручную до запуска программы на выполнение по формулам: tн 1 1=2, tк 1 1 2=4 , Δt Код программы на языке Pascal для решения задачи 1 может быть таким. program lab11_1; var y, t, tn, tk, dt: real; begin writeln('Введи tn,tk,dt'); read(tn,tk,dt); t := tn; while t <= tk do begin y :=3*exp(t) + 4*t + 2*t*t; writeln ('в момент времени t = ', t:6:3, ' y = ', y:6:3); t += dt; end; end. Начало Блок-схема алгоритма да Конец Вывод t, y y 3et 4t +2t2 t= Ввод нет Задача 2. Составить программу на языке Pascal (с использованием оператора цикла с постусловием) и блок-схему алгоритма (блок-схема должна соответствовать программе) для вычисления объема выпуска, задаваемых условиями задачи 1. Код программы на языке Pascal для решения рассматриваемой задачи может быть таким: Program Lab11_2; Var t,y,tn,tk,dt:real; Begin Writeln('Введи tn,tk,dt'); read(tn,tk,dt); t:=tn; repeat y:=3*exp(t) + 4*t + 2*t*t; writeln(' при t = ', t:6:3, ' y = ', y:6:3); t:=t+dt until t>tk end. Начало Блок-схема алгоритма t= Ввод y 3et 4t +2t2 Вывод t, y нет да Конец Задача 3. Составить программу на языке Pascal (с использованием оператора цикла с параметром) и блок-схему алгоритма (блок-схема должна соответствовать программе) для вычисления объема выпуска, задаваемых условиями задачи 1. Код программы на языке Pascal для решения рассматриваемой задачи может быть таким. Program Lab11_3; Var t,y,tn,tk,dt:real; i,n:integer; Begin writeln('Введи tn,tk,dt'); read(tn,tk,dt); n:=trunc(1+(tk-tn)/dt); t:=tn; for i:=1 to n do begin y:=3*exp(t) + 4*t + 2*t*t; writeln(' при t = ', t:6:3, ' y = ', y:6:3); t:=t+dt end; End. Блок-схема алгоритма: Начало да Конец Вывод t, y y 3et 4t +2t2 Ввод t= нет Задача 4. Составить программу на языке Pascal (без использования операторов цикла, но с использованием оператора безусловного перехода) и блок-схему алгоритма (блок-схема должна соответствовать программе для вычисления объема выпуска, задаваемых условиями задачи 1. Код программы на языке Pascal для решения рассматриваемой задачи может быть таким (используется раздел описания меток Label): Program Lab11_4; Label 10; Var t,y,tn,tk,dt:real; Begin Writeln('Введи tn,tk,dt'); read(tn,tk,dt); t:=tn; 10: y:=3*exp(t) + 4*t + 2*t*t; writeln(' при t = ', t:6:3, ' y = ', y:6:3); t:=t+dt; if t<=tk then goto 10; end. Начало Блок-схема алгоритма t= Ввод y 3et 4t +2t2 Вывод t, y да нет Конец Задача 5 (индивидуальное задание). Составить программу на языке Pascal и блок-схему алгоритма (блок-схема должна соответствовать программе) для решения задачи по своему варианту из табл. 1. Вариант соответствует номеру студента по списку группы (если номер студента по списку превышает 30, то для 31-го студента вариант 1, для 32-го – вариант 2 и т.д.). Код программы на языке Pascal для решения рассматриваемой задачи может быть таким (используется раздел описания меток Label): Program Lab11_5; Var an,ak,da,a,y,nu,x,n,m:real; begin Writeln('Введи an,ak,da,nu,x,n,m'); read(an,ak,da,nu,x,n,m); a:=an; while a<=ak do begin if a>y then y:=a*Cos(Power(n,m))/nu else if a=y then y:=a*x+Cos(Exp(sqr(pi))) else y:=a*5*Exp(2)+2/Sin(x); Writeln(' при t = ', a:6:3,' y = ', y:6:3); a:=a+da; end; end. Блок-схема алгоритма: Начало Ввод нет Да Да нет Да Конец a=y a>y a= нет Вывод а, у конец Вывод: Научился составлять программы на языке программирования, содержащие операторы цикла и безусловного перехода, а также научились составлять блок-схемы алгоритмов циклической структуры. Работу выполнил: студент ФИОП, Группы ПМа-о21, Пятибратов Артем Романович Работу принял: Доцент, к.т.н. Косиченко Михаил Юрьевич |