Art87, объясни мне, неужели нельзя было присоединить скриншот с экрана, а не сам DOC-файл? Я понимаю, что ТЕБЕ так удобнее, но ты и о других подумай !!!
Спасибо за ссылки, почитаю, если что в следующий раз буду присоеденять :D
Art87
19.10.2005 14:15
Посмотрите, нормально, нет?
var f,g:real;
x,v,dx:integer;
function y(x:integer;f:real;v:integer):real;
var g:real;
begin
g:=0.0098/((1/60)*(1/60));
y:=x*sin(f)/1-(g*x*x)/(2*v*v*cos(f)*cos(f));
end;
begin
v:= 35;
f:=2*Pi/6;
x:=-2;
dx:=2;
repeat
x:=x+dx;
until y(x,f,v)<0;
writeln('With V=35km/h and Angle=2P/6 way(path) = ',x);
v:= 30;
f:=Pi/4;
x:=-2;
dx:=2;
repeat
x:=x+dx;
until y(x,f,v)<0;
writeln('With V=30km/h and Angle=P/4 way(path) = ',x);
readln;
end.
Art87
22.10.2005 11:38
Такая задача, Заданы массивы X1(7), X2(6), X3(4). Найти среднее арифмитическое сумм отрицательных элементов массивов. Определение суммы отрицательных элементов массива оформить в виде подпрограммы.
type mass=array[1..7] of integer;
Var
X1,X2,X3:mass;
kX1,kX2,kX3:byte;
t:real;
Procedure Col(var A:mass; n:byte; var k:byte);
Var i,j:byte;
begin
writeln('Введите ', n , 'элементов массива');
for i:=1to n do
read(X1[i]);
k:=0; j:=0;
For i:=1to n dobeginif X1[i] < 0thenbegin
j:=j+X1[i];
k:=k+1;
end; end;t:=abs(j)/k; end;
begin
Col(X1,7,kx1);
writeln ('Среднее арифметическое', kx1 ,'элементов в массиве X1=',t:5:3);
Col(X2,6,kx2);
writeln ('Среднее арифметическое', kx2 ,'элементов в массиве X2=',t:5:3);
Col(X3,4,kx3);
writeln ('Среднее арифметическое', kx3 ,'элементов в массиве X3=',t:5:3);
end.
Программа запускается, но считает непонятно что
volvo
22.10.2005 13:27
Ты уж если передаешь в процедуру A: mass как параметр, то им же и пользуйся... Кстати, использовать здесь функцию более оправдано, чем возвращать результат через глобальную переменную (глобальные переменные лучше вообще использовать как можно реже :yes: ). И еще: используй открытые массивы (A: array of <type>, без указания длины) как параметр. Работать с ними дальше - как с обычными массивами; единственное отличие - индексы не [1 .. n], а [0 .. n - 1]
type mass=array[1..7] of integer;
function Col(var A: arrayof integer; n: byte;
var k:byte): real;
Var i, sum: integer;
begin
writeln('Введите ', n , 'элементов массива');
for i:=0to pred(n) do
read(A[i]);
k:=0; sum:=0;
For i:=0to pred(n) dobeginif A[i] < 0thenbegin
inc(sum, A[i]); inc(k);
end;
end;
Col := abs(sum)/k;
end;
var
t: real;
kX1,kX2,kX3: byte;
X1, X2, X3: array[1 .. 7] of integer;
begin
t := Col(X1,7,kx1);
writeln ('Среднее арифметическое ', kx1 ,' элементов в массиве X1=',t:5:3);
t := Col(X2,6,kx2);
writeln ('Среднее арифметическое ', kx2 ,' элементов в массиве X2=',t:5:3);
t := Col(X3,4,kx3);
writeln ('Среднее арифметическое ', kx3 ,' элементов в массиве X3=',t:5:3);
end.
Art87
22.10.2005 15:36
volvo, спасибо за программу, а почему не предлогается ввести элементы массивов Х2 и Х3?
volvo
22.10.2005 16:01
Что значит "не предлагается"? Что, моя программа тебе не пишет
Цитата
'Введите 6 элементов массива' ... 'Введите 4 элементов массива' ?
Она вообще-то делает ТО ЖЕ САМОЕ, что и твоя из поста №5, только еще и возвращает правильный результат...
Art87
22.10.2005 18:53
Нет, в моей, ввожу 7 элементов, Enter, потом предлогается ввести массив X2 потом X3. А в вашем варианте, X1 вводится и ничего дальше не происходит
volvo
22.10.2005 19:00
Вот лог выполнения моей программы:
Цитата
Введите 7элементов массива 2 -1 -7 8 -3 5 9 Среднее арифметическое 3 элементов в массиве X1=3.667 Введите 6элементов массива 1 2 -3 -4 5 6 Среднее арифметическое 2 элементов в массиве X2=3.500 Введите 4элементов массива -1 -2 -3 5 Среднее арифметическое 3 элементов в массиве X1=2.000
Что не устраивает?
Art87
22.10.2005 20:24
Мои извинения. Все работает, спасибо Видимо опять я где-то перемудрил
Art87
25.10.2005 11:01
Да, долго ругался на меня сегодня препод. И это лишнее и это бред Чтоб его. Все же работает, а её не нравится Заставила переделать СКАЗАЛА, много лишнего, ... корова.
с for i:=0 to pred(n) do на for i:=1 to n do и i:=byte И еще убрались все kx1
Заданы массивы X1(7), X2(6), X3(4). Найти среднее арифмитическое сумм отрицательных элементов массивов. Определение суммы отрицательных элементов массива оформить в виде подпрограммы.
А как эту же самую задачу с процедурой сделать Я на паре всю голову сломил, задачу урезал, но засейвить на дискету не успел. Был косяк с передачей формальных параметров из процедуры в программу.
klem4
25.10.2005 12:14
вот так ?
procedure Additional(var A: arrayof integer; n: byte; var k:byte;
var Col :real
);
Var i, sum: integer;
begin
writeln('Введите ', n , 'элементов массива');
for i:=0to pred(n) do
read(A[i]);
k:=0; sum:=0;
For i:=0to pred(n) dobeginif A[i] < 0thenbegin
inc(sum, A[i]); inc(k);
end;
end;
Col := abs(sum)/k;
end;
объяви глобальную переменную и передавай ее процедуре в параметр Col. После отработки процедуры эта переменная будет хранить значение abs(sum)/k;
Art87
25.10.2005 12:44
Спасибо, попробуем ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.