Lab3
.docxФедеральное агентство по образованию
Московский государственный открытый университет
Рязанский институт (филиал)
Кафедра информационных технологий
Информатика
отчет
по
лабораторной работе №3
Выполнил студент группы 285
Ерёмин С.Н.
Проверил доцент
Засорин С.В.
Рязань, 2009
Задание №1: Составить программу, которая выводит таблицу значений функции y=-2,4x2+5x-3 в диапазоне значений аргумента от -2 до 2 с шагом 0,5
С
Начало
хема алгоритма:
х=-2
Начало цикла
y=-2,4x2+5x-3
Вывод «y»
х=х+0,5
нет
да
Конец цикла
Конец
Текст программы:
Program Lab3_1;
Var
x,y:real;
Begin
x:=-2;
repeat
begin
y:=-2.4*sqr(x)+5*x-3;
WriteLn('y=',y:6:2,' x=',x:6:2);
x:=x+0.5;
end
until x=2.5;
end.
Результаты выполнения:
y=-22.60 x= -2.00
y=-15.90 x= -1.50
y=-10.40 x= -1.00
y= -6.10 x= -0.50
y= -3.00 x= 0.00
y= -1.10 x= 0.50
y= -0.40 x= 1.00
y= -0.90 x= 1.50
y= -2.60 x= 2.00
Задание №2: Составить программу, которая выводит на экран последовательности вида:
С
Начало
хема алгоритма:
Ввод N
y=N/2; a=1; b=2
y<>trunc(y) и N>2
нет
Начало цикла Начало цикла
Вывод b
b=b+2
b=N
Вывод а
а=а+2
a=N
н ет нет
да да
Конец цикла Конец цикла
Вывод N
Конец
Текст программы:
Program Lab3_2;
Var
a,b,n:integer;
y:real;
Begin
WriteLn('Vvedite n');
Read(n);
y:=n/2;
a:=1;
b:=2;
if (y<>trunc(y))and(n>2) then
begin
repeat
begin
write(a,'*');
a:=a+2;
end
until a=n;
write(n);
end
else
begin
repeat
begin
write(b,'*');
b:=b+2;
end
until b=n;
write(n);
end
end.
Результаты выполнения:
Vvedite n
15
1*3*5*7*9*11*13*15
Vvedite n
14
2*4*6*8*10*12*14
Задание №3: Составить программу, в которой вычисляется сумма ряда y=1+x/2+x2/3+x4/4+… при |x|<1. Расчет продолжать до тех пор, пока приращение |y| будет больше заданной погрешности е, е<=|х|
Схема алгоритма:
Начало
f=1; n=1; y=1
Ввод x
Ввод e
|x|>1 или e>|x|
нет
Вывод «ошибка»
да Начало цикла
Конец
q>e
q=abs(y+(f*x)/(n+1)); f=f*x;
n+n+1
Вывод y
нет
да
Конец цикла
Текст программы:
Program lab3_3;
Var
f,q,e,x,y:real;
n:integer;
Label
one;
Begin
f:=1;
n:=1;
y:=1;
one:WriteLn('Vvedite x v intervale [-1;1]');
Read(x);
WriteLn('Vvedite e, shtobi e<ABS(x)');
Read(e);
if (ABS(x)>=1)or(e>ABS(x)) then
Begin
WriteLn('oshibka vvoda');
goto one;
End;
Repeat
Begin
q:=Abs(y+(f*x)/(n+1));
f:=f*x;
n:=n+1;
end;
until q>e;
WriteLn('y=',q:6:2)
end.
Результаты выполнения:
Vvedite x v intervale [-1;1]
0.8
Vvedite e, shtobi e<ABS(x)
0.1
y= 1.40
Vvedite x v intervale [-1;1]
-0.8
Vvedite e, shtobi e<ABS(x)
0.1
y= 0.60
Задание №4: Составить программу, в которой с клавиатуры вводится последовательность из n целых чисел (положительных и отрицательных) и находится наибольшее и наименьшее число
С
Начало
1
хема алгоритма:
Конец
Ввод количества цифр
Вывод наим. и наиб.
Ввод х
а=х
Ввод y
y>x
нет
x=y
да
y<a
нет
a=y
да
1
Текст программы:
Program lab3_4;
Var
a,i,n,x,y:integer;
Begin
WriteLn('vvedite kolichestvo cisel');
Read(n);
WriteLn('Vvedite ',n,' x');
Read(x);
a:=x;
for i:=2 to n do
begin
read(y);
if y>x then x:=y;
if y<a then a:=y;
End;
WriteLn('naub',x,' naum',a)
end.
Результаты выполнения:
vvedite kolichestvo cisel
6
Vvedite 6 x
3
4
5
3
56
54
naub56 naum3
Задание №5: Составить программу, которая выводит на экран таблицу умножения десятичных чисел
Схема алгоритма:
Текст программы:
Program lab3_5;
Var
c,a,b:integer;
Begin
for a:=1 to 9 do
for b:=1 to 9 do
begin
c:=a*b;write(a,'*',b,'=',c:2,' ');
if b=9 then writeln;
end;
end.
Результаты выполнения:
1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9
2*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1= 3 3*2= 6 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1= 4 4*2= 8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81