Автор: Пользователь скрыл имя, 05 Мая 2012 в 23:45, контрольная работа
Цель: Овладеть навыками организации алгоритмов и программ линейной структуры и их дальнейшей отладки на ПЭВМ в среде Borland Паскаль.
Вариант №17.
Ввести с клавиатуры исходную информацию для вычисления следующих арифметических выражений:
Числовые значения, входящие в выражения, описать как константы.
begin
if cos(A+B)<>t then
begin
ks:=ks+1;
S[ks]:=sin(A+B)/cos(A+B);
{ writeln(i,'-y element массивa S:',S[ks]:6:4,' ','при А=',A,' ','В=',B,' ');}
end
else writeln('Не существует, т.к. cos(A+B)=0')
end;
end;
writeln('Количество значений в каждом массиве:');
writeln('
begin
if ky>0 then
begin
writeln;
writeln('
for i:=1 to ky do
begin
write(' ',y[i]:12:6);
if i mod 5 = 0 then
writeln
else write;
end;
end
else begin
writeln;
writeln('Массив Y не заполнен, т.к. значений для условия А>В небыло');
end;
end;
begin
if kz>0 then
begin
writeln;
writeln('
for i:=1 to kz do
begin
write(' ',z[i]:12:6);
if i mod 5 = 0 then
writeln
else write;
end;
end
else begin
writeln;
writeln('Массив Z не заполнен, т.к. значений для условия А<В небыло');
end;
end;
begin
if ks>0 then
begin
writeln;
writeln('
for i:=1 to ks do
begin
write(' ',s[i]:12:6);
if i mod 5 = 0 then
writeln
else write;
end;
end
else begin
writeln;
writeln('Массив S не заполнен, т.к. значений для условия А=В небыло');
end;
end;
readkey;
end.
Результаты работы программы:
Задайте интервал псевдослучайных значений, от и до - -10 10 1
Количество значений в каждом массиве:
Y=13 Z=10 S=2
массив Y:
0.141120 -0.756802 0.989358 0.412118 0.656987
0.656987 -0.958924 0.656987 -0.841471 -0.279415
-0.841471 -0.756802 0.656987
массив Z:
-0.145500 0.540302 -0.911130 1.000000 0.283662
-0.911130 -0.653644 -0.653644 -0.989992 -0.653644
массив S:
-7.244607 0.300632
Задание 5
Тема: Программирование вычислительных процессов разветвляющейся структуры.
Цели: - научиться записывать арифметические выражения;
- составлять программы линейной и разветвляющейся структуры;
- освоить реализацию программы на ЭВМ.
Вариант №2.
Часть 1: Программирование вычислительных процессов разветвляющейся структуры на примере вычисления значения функции одной переменной
Блок-схема алгоритма.
Текст программы.
program Zad_5_1;
{$N+}
uses crt;
var
x:real;
Y,y1,y2,y3:extended;
const
t=1e-9;
BEGIN
clrscr;
write('Введите значение x = ');
read(x);
{ODZ}
if x>t then
begin
y1:=sqr(x)-0.8;
if y1<>t then
begin
y2:=ln(6*x);
y3:=((y2/ln(10)-exp(x))/(y1))+
Y:=abs(y3)/y3*exp(ln(abs(y3))/
writeln('Y = ',Y:10:4);
end
else writeln('Знаменатель = 0');
end
else writeln('ОДЗ x>=0 - не выдержано! Т.о. нет возможности вычеслить lg(x)');
readkey;
END.
Результаты работы программы:
Введите значение x = 10
Y = 999.9999
Часть 2: Программирование вычислительных процессов разветвляющейся структуры на примере вычисления значения функции одной переменной, заданной на интервале
Блок-схема алгоритма.
Текст программы.
program Zad_5_2;
{$N+}
uses crt;
var
x:real;
Y:extended;
const
t=1e-9;
BEGIN
clrscr;
write('Введите значение x = ');
read(x);
{Условие существования функции}
if x<(1+t) then
begin
Y:=sqrt(5-x); {Подкорен.выраж.не провер. т.к. по усл.сущ.функ. 0 под корнем исключен}
writeln('Y=',Y);
end;
if ((x>(2+t)) and (x<(3-t))) then
begin
Y:=sin(x)*(cos(x)*cos(x))*exp(
writeln('Y=',Y);
end;
if ((x>(3+t)) and (x<(7+t))) then
begin
Y:=sqrt(2*x-3); {Подкорен.выраж.не провер. т.к. по усл.сущ.функ. 0 под корнем исключен}
writeln('Y=',Y);
end;
if x>(7+t) then
begin
Y:=(sqrt(exp(x)+1))/((x*x*x)+
writeln('Y=',Y);
end;
if ((x>(1+t)) and (x<(2+t)) or (abs(x-3)<t)) then
writeln('Функция не существует');
readkey;
END.
Результаты работы программы:
Введите значение x = 10
Y= 1.47972610207218E-0001
Задание № 6
Тема: Программирование вычислительных процессов циклической структуры
Цель: Научиться составлять программы циклической структуры.
Вариант №10.
Часть 1: Программирование вычислительных процессов циклической структуры на примере вычисления значения функции одной переменной
Блок-схема алгоритма.
Текст программы.
program Zad6_1;
{$N+}
uses crt;
var
x,xn,xk,h:real;
y1,y2,y3,y:extended;
{ y:array[xn..xk] of extended; }
{ ky,i:integer; }
const
t=1e-9;
BEGIN
clrscr;
write('Введите xn, xk, h через пробел - ');
read(xn,xk,h);
{ ky:=0; }
x:=xn;
while x<=xk do
begin {сначала проверим ОДЗ}
if abs(sin(x))>t then {а с записью sin(x)<>t выдает ошибку - деление на 0}
begin
y1:=exp(-x)-(cos(x)/sin(x));
if y1<>t then {? почему нельзя 0}
begin
if abs(x-0.8)<>t then
begin
y2:=(ln(abs(x-0.8))+exp(x));
if abs(x)>t then
begin
y3:=exp(5)-1/x;
if abs(y3)>t then
begin
if y2>=t then
y:=(sqrt(y2)/y1)+(abs(y3)/y3*
else writeln('Подкоренное выражение =0');
end
else write;
end
else writeln('x=0 т.о. значение 1/x существовать ен может');
end
else writeln('Выражение по lg=0, невозможно вычислить lg');
end
else writeln('Выражение в числителе = 0');
end
else writeln('Невозможно вычислить ctg(x)');
x:=x+h;
end;
readkey;
END.
Результаты работы программы:
Введите xn, xk, h через пробел - -10 10 1
при значении х=-10.00 y= 5.295749
при значении х= -9.00 y= 5.295997
при значении х= -8.00 y= 5.296471
при значении х= -7.00 y= 5.297494
Информация о работе Контрольная работа по дисциплине «Компьютерные технологии и программирование»