Помощь - Поиск - Пользователи - Календарь
Полная версия: Как переделать вычисления значения
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lamerok
Вообщем вот такая программа
Program Lab4;
const
	   N=0;
	   M=80;
Var
	   K,l:integer;
	   i:real;
	   x1:integer;
	   x2:integer;
	   Res:integer;
	   P1,P2,P3:real;
	   mem:text;
	   y:real;
	   x:array[1..2,1..M] of real;
Begin
x1:=0;
x2:=0;
writeln('Program started');
		i:=N-35;
		while i<=(N+5) do
			   begin
					   if(i>0) then
										  x[1,x1]:=(i-7)/(4*i-5)
					   else
							   x[1,x1]:=exp(ln((-1)*i)*2/3)/(i-1);
					   writeln('1 x= ', x[1,x1]:2 :2, ' i= ', i:2 :0);
					   write(' ');
					   i:=i+1.5;
					   x1:=x1+1;
			   end;
		i:=N-30;
		while i<=(N+10) do
			   begin
						if(i>=0) then
								x[2,x2]:=(i-7)/(4*i-5)
						else
								x[2,x2]:=exp(ln((-1)*i)*2/3)/(i-1);
						writeln('2 x= ', x[2,x2]:2 :2, ' i= ', i:2 :0);
						write(' ');
						x2:= x2+1;
						i:=i+0.5;
			   end;
			   P2:=1;
			   P3:=1;
			   for K:=0 to x1 do
						if(x[1,K]>0) then
								begin
									 P1:=x[1,K];
									 P3:=P3*x[1,K];
								end
						else
								begin
									 P2:=P2+1;
									 if(x[2,K]<>0) then
											 P3:=P3*x[2,K];
								end;
			   for K:=0 to x1 do
							 if(x[1,K]>0) then
									 if(x[1,k]>P1) then
											 P1:=x[1,K];
			   for K:=0 to x2 do
							 if(x[2,K]>0) then
									 if(x[2,K]>P1) then
											 P1:=x[2,K];
			   writeln(' ');
			   writeln('P1 = ', P1:2 :2);
			   writeln('P2 = ', P2:2 :2);
			   writeln('P3 = ', P3:5:5);
			   y:= (P1*P2)/(P1+P2)+P3;
			   writeln('y = ', y:5:5);
			   assign(mem,'mas.txt');
			   rewrite (mem);
			   writeln (mem,'First part');
			   for K:=0 to x1 do
			   begin
					  write(mem, x[1,K]:3 :5);
					  writeln(mem,'');
			   end;
			   writeln(mem,'second part');
			   for K:=0 to x2 do
			   begin
					  write(mem, x[2,k]:3 :5);
					  writeln(mem,'');
			   end;
			   write(mem,'P1 = ');
			   writeln(mem, P1:5 :5);
			   write(mem,'P2 = ');
			   writeln(mem, P2:5:5);
			   write(mem,'P3 = ');
			   writeln(mem, P3:5:5);
			   write(mem,'y = ');
			   writeln(mem, y:5:5);
			   close(mem);
			   readln;
end.

Вычисление значения Y выполнить в виде процедуры,а вычисление элементов таблицы с помощью функций.Незнаю как ето сделатьsad.gif
Rian
это только мне программа не умещающаяся не только в высоту экрана, но и в ширину кажется трудно читаемой?
при полном отсутствии коментариев
и все таки что же она должна делать? и какой частью кода?
TarasBer
Думаю, что это из-за табов, и что у автора на экране отступы нормальные.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.