Art87, объясни мне, неужели нельзя было присоединить скриншот с экрана, а не сам DOC-файл? Я понимаю, что ТЕБЕ так удобнее, но ты и о других подумай !!!
Спасибо за ссылки, почитаю, если что в следующий раз буду присоеденять :D
Art87
19.10.2005 10: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 7: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:=1 to n do read(X1[i]); k:=0; j:=0; For i:=1 to n do begin if X1[i] < 0 then begin 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 9:27
Ты уж если передаешь в процедуру A: mass как параметр, то им же и пользуйся... Кстати, использовать здесь функцию более оправдано, чем возвращать результат через глобальную переменную (глобальные переменные лучше вообще использовать как можно реже :yes: ). И еще: используй открытые массивы (A: array of <type>, без указания длины) как параметр. Работать с ними дальше - как с обычными массивами; единственное отличие - индексы не [1 .. n], а [0 .. n - 1]
type mass=array[1..7] of integer;
function Col(var A: array of integer; n: byte; var k:byte): real; Var i, sum: integer; begin writeln('Введите ', n , 'элементов массива'); for i:=0 to pred(n) do read(A[i]);
k:=0; sum:=0; For i:=0 to pred(n) do begin if A[i] < 0 then begin 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 11:36
volvo, спасибо за программу, а почему не предлогается ввести элементы массивов Х2 и Х3?
volvo
22.10.2005 12:01
Что значит "не предлагается"? Что, моя программа тебе не пишет
Цитата
'Введите 6 элементов массива' ... 'Введите 4 элементов массива' ?
Она вообще-то делает ТО ЖЕ САМОЕ, что и твоя из поста №5, только еще и возвращает правильный результат...
Art87
22.10.2005 14:53
Нет, в моей, ввожу 7 элементов, Enter, потом предлогается ввести массив X2 потом X3. А в вашем варианте, X1 вводится и ничего дальше не происходит
volvo
22.10.2005 15: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 16:24
Мои извинения. Все работает, спасибо Видимо опять я где-то перемудрил
Art87
25.10.2005 7: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 8:14
вот так ?
procedure Additional(var A: array of integer; n: byte; var k:byte; var Col :real); Var i, sum: integer; begin writeln('Введите ', n , 'элементов массива'); for i:=0 to pred(n) do read(A[i]);
k:=0; sum:=0; For i:=0 to pred(n) do begin if A[i] < 0 then begin inc(sum, A[i]); inc(k); end; end;
Col := abs(sum)/k; end;
объяви глобальную переменную и передавай ее процедуре в параметр Col. После отработки процедуры эта переменная будет хранить значение abs(sum)/k;
Art87
25.10.2005 8:44
Спасибо, попробуем ;)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.