Программирование алгоритмов циклической структуры УФИМСКИЙ ГОСУДАРСТВЕННЫЙ НЕФТЯНОЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра вычислительной техники и инженерной кибернетики
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ
К выполнению контрольной работы по информатике
для студентов заочной формы обучения
УФА 2004
Учебно-методическое пособие содержит требования к выполнению контрольной работы по информатике для студентов-заочников и примеры решения задач по каждому из предложенных заданий.
Составитель Хоробров В.Р., доцент, к.т.н.
Рецензент Давыдов А.Ф., доцент
© Уфимский государственный нефтяной технический университет,2004
ВВЕДЕНИЕ
При изучении дисциплины Информатика студенты-заочники выполняют контрольную работу, целью которой является приобретение навыков алгоритмизации и программирования на алгоритмическом языке ПАСКАЛЬ.
СОСТАВ КОНТРОЛЬНОЙ РАБОТЫ
В состав контрольной работы входят задания по следующим разделам
· программирование линейного вычислительного процесса;
· программирование арифметического цикла;
· программирование разветвляющегося вычислительного процесса;
· программирование итерационного цикла (вычисление рядов);
· программирование матричных операций.
Студент выполняет один и тот же вариант для всех заданий. Номер варианта определяется числом, образованным двумя правыми цифрами шифра студента. Так для шифра 120036 номер варианта равен 36, а для шифра 125500 - номер варианта равен 100.
Варианты заданий выбираются из методической разработки [1], в которой приведены по 100 вариантов для каждого задания.
В помощь студенту приведены примеры решения задач по каждому из пяти заданий. Рассмотрены различные варианты выполнения задания 2 (арифметический цикл), задания 3 (разветвляющийся алгоритм) и задания 4
(вычисление рядов).
ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА
Отчет должен иметь следующую структуру:
Титульный лист
Содержание(оглавление)
1. Наименование задания 1
1.1. Постановка задачи
1.2. Блок-схема алгоритма
1.3. Программа на языке Паскаль
1.4. Результаты решения
2. Наименование задания 2
2.1. Постановка задачи
--------------------------------------------
--------------------------------------------
5.4 Результаты решения
Список использованной литературы
Отчет выполняется на листах формата А4 (210×297). Допускается использование листов в клетку. Листы отчета должны быть пронумерованы, начиная со следующего после титульного листа. Номер листа проставляется в середине верхней его части. Желательно (но не обязательно) оформлять отчет в печатном виде с использованием редактора WORD.
Титульный лист оформляется в соответствии с приложением 1.
Содержание (оглавление) отчета включает все выделенные в тексте заголовки частей и разделов с указанием начальных страниц, включая список литературы.
Блок-схемы алгоритмов выполняются в соответствии с ГОСТ 19.001-80 и 19.003-80. В приложении 2 приведены требования к оформлению блок-схем алгоритмов.
Программа на Паскале составляется в соответствии с блок-схемой алгоритма и представляется в распечатанном на принтере виде.
Результаты расчета представляются на той же распечатке, что и программа (не на отдельных листах). Если распечатка программы и результатов имеет длину, превышающую размер листа (297 мм), то ее следует аккуратно сложить по формату листа, не разрезая на отдельные листы.
Примеры алгоритмов и программ
Программирование алгоритмов линейной структуры
Пример. Вычислить значение функции y=sin x+ex+2, где x=ln a+ ,
b=cos 3a, a=7,25.
Блок-схема алгоритма
Расчет контрольного примера (к.п.)
;
Паскаль-программа
x=lna+
| | Program prim1;
var a,b,x,y:real;
y=sinx+ex+2
| | begin
write (‘Введите а=’); readln (a);
b:=cos(a)*cos(a)*cos(a);
x:=ln(a)+sqrt(abs(b));
y:=sin(x)+exp(x+2);
writeln (‘b=’,b:1:3, ‘ x=’,x:1:3,’ y=’,y:1:3);
end.
Контрольный пример:
Введите а=1
b=0.158 x=0.397 y=11.379
Вывод: программа работоспособна, т. к. значения результатов контрольного примера ручного и машинного счета приблизи-тельно совпадают.
Результат:
Введите а=7.25
b=0.183 x=2.409 y=82.855
Программирование алгоритмов циклической структуры
Пример. Вычислить значение функции
, где
при а, изменяющемся от ан до ак,
с шагом Δа
aн=2, ак=3, Δа=0,2
а) с использованием оператора цикла с предусловием while
Блок-схема алгоритма
Паскаль-программа
Program prim31;
var an,ak,da,a,x,y:real;
begin
write(‘Введите an,ak,da=’);
readln(an,ak,da);
a:=an;
while a<=ak+0.0001 do
begin
нет x:=ln(a);
y:=exp(1/3*ln(abs(sin(x))));
да writeln(‘a=’,a:3:1,’ x=’,
x:5:3,’ y=’,y:5:3);
a:=a+da;
end;
end.
Результаты
Введите an,ak,da=2 3 0.2
a=2.0 x=0.693 y=0.861
a=2.2 x=0.788 y=0.892
a=2.4 x=0.875 y=0.916
a=2.6 x=0.956 y=0.935
a=2.8 x=1.030 y=0.950
a=3.0 x=1.099 y=0.962
б) с использованием оператора цикла с постусловием repeat-until
Блок-схема алгоритма Паскаль-программа
Program prim32;
var an,ak,da,a,x,y:real;
begin
write(‘Введите an,ak,da=’);
readln(an,ak,da);
a:=an;
repeat
x:=ln(a);
y:=exp(1/3*ln(abs(sin(x))));
writeln(‘a=’,a:3:1,’ x=’,x:5:3,
‘ y=’,y:5:3);
a:=a+da;
until a>ak;
end.
Результаты
Введите an,ak,da=2 3 0.2
a=2.0 x=0.693 y=0.861
a=2.2 x=0.788 y=0.892
нет a=2.4 x=0.875 y=0.916
a=2.6 x=0.956 y=0.935
да a=2.8 x=1.030 y=0.950
a=3.0 x=1.099 y=0.962
в) с использованием оператора цикла с параметром for
Блок-схема алгоритма
Паскаль-программа
Program prim33;
var an,ak,da,a,x,y:real;
i,n:integer;
begin
write(‘Введите an,ak,da=’);
redln(an,ak,da);
n:=trunc((ak-an)/da)+1;
a:=an;
for i:=1 to n do
begin
x:=ln(a);
y:=exp(1/3*ln(abs(sin(x))));
writeln(‘a=’,a:3:1,
‘ x=’,x:5:3,’ y=’,y:5:3);
a:=a+da;
end;
end.
Результаты
Введите an,ak,da=2 3 0.2
a=2.0 x=0.693 y=0.861
a=2.2 x=0.788 y=0.892
a=2.4 x=0.875 y=0.916
a=2.6 x=0.956 y=0.935
a=2.8 x=1.030 y=0.950
a=3.0 x=1.099 y=0.962
|