Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Программирование

Автор: Alexey Besfomiln 4.1.2010, 13:52

Подскажите как исправить программу или сами исправьте ошибки.
Условие Составить процедуру, заменяющую все элементы одномерного массива, меньшие значения величины Т, на значение этой величины и считающую число таких замен k.

Используя эту процедуру, изменить каждый из двух заданных массивов P и С и вывести на печать тот массив , в котором окажется больше число замен. Если же эти числа замен будут равны, вывести число замен.
Программа

Program V;
type massiv=array[1..10] of real;
Procedure prim(Var X:massiv;Var k,N:integer;Var TT:real);
Var i:integer;
begin
k:=0;
for i:=1 to N do
begin
if X[i]<TT
then
begin
X[i]:=TT;
k:=k+1;
end;
end;
end;

Var
P:massiv;
C:massiv;
i,n,kp,kc:integer;
T:real;

begin
write('vv n,T');
readln(n,T');

for i:=1 to n do
begin
write('vv P[',i,']);
readln(P[i]);
end;

for i:=1 to n do
begin
write('vv C[',i,']);
readln(C[i]);
end;

prim(P,kp,n,T);
prim(C,kc,n,T);

if kp>kc
then
begin
for i:=1 to n do
writeln('P[i]',P[i]:7:3)
end
else
begin
if kp=kc
then writeln('kp=',kp)
else
begin
for i:=1 to n do
writeln('C[i]',C[i]:7:3);
end;
end;
end.

Автор: Julia 4.1.2010, 17:54

1) Почему описание процедуры разместилось в разделе описания переменных?
2)
if kp>kc
then writeln('P[i]',P[i]:7:3)
else
begin
if kp+kc
then writeln('kp=',kp)
else writeln('C[i]',C[i]:7:3);
end;

Вывод элементов массива, как и ввод, осуществляется в цикле.

Автор: Alexey Besfomiln 4.1.2010, 18:58

Исправил вверху программу, если неправильно, то скажи где описывать процедуру

Автор: Alexey Besfomiln 5.1.2010, 10:26


Если правильно то скажите, что правильно

Автор: Alexey Besfomiln 5.1.2010, 13:48

Спасибо исправил программу, проверил на компьюторе, она работает

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)