![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Art87 |
![]()
Сообщение
#1
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Уважаемые форумчане. Помогите пожалуйста задачку решить.
Прикрепленные файлы ![]() -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Art87, объясни мне, неужели нельзя было присоединить скриншот с экрана, а не сам DOC-файл? Я понимаю, что ТЕБЕ так удобнее, но ты и о других подумай !!!
![]() (кстати, заметь, мой файл по размеру меньше чем тот, что присоединил ты...) P.S. На форуме тема про вычисление траекторий снарядов поднималась неоднократно... Вот 2 примера решений: Задача с циклом Имитация полета снаряда |
Art87 |
![]()
Сообщение
#3
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Спасибо за ссылки, почитаю,
если что в следующий раз буду присоеденять :D -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
Art87 |
![]()
Сообщение
#4
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Посмотрите, нормально, нет?
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 - 19.10.2005 10:48 -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
Art87 |
![]()
Сообщение
#5
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Такая задача,
Заданы массивы 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 |
![]()
Сообщение
#6
|
Гость ![]() |
Ты уж если передаешь в процедуру 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 |
![]()
Сообщение
#7
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
volvo, спасибо за программу, а почему не предлогается ввести элементы массивов Х2 и Х3?
Сообщение отредактировано: Art87 - 22.10.2005 11:37 -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Что значит "не предлагается"? Что, моя программа тебе не пишет
Цитата 'Введите 6 элементов массива' ... 'Введите 4 элементов массива' ? Она вообще-то делает ТО ЖЕ САМОЕ, что и твоя из поста №5, только еще и возвращает правильный результат... |
Art87 |
![]()
Сообщение
#9
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Нет, в моей, ввожу 7 элементов, Enter,
потом предлогается ввести массив X2 потом X3. А в вашем варианте, X1 вводится и ничего дальше не происходит ![]() -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Вот лог выполнения моей программы:
Цитата Введите 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 |
![]()
Сообщение
#11
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Мои извинения. Все работает, спасибо
![]() ![]() -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
Art87 |
![]()
Сообщение
#12
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Да, долго ругался на меня сегодня препод. И это лишнее и это бред
![]() ![]() Заставила переделать СКАЗАЛА, много лишнего, ... корова. с for i:=0 to pred(n) do на for i:=1 to n do и i:=byte И еще убрались все kx1 Заданы массивы X1(7), X2(6), X3(4). Найти среднее арифмитическое сумм отрицательных элементов массивов. Определение суммы отрицательных элементов массива оформить в виде подпрограммы. А как эту же самую задачу с процедурой сделать ![]() Я на паре всю голову сломил, задачу урезал, но засейвить на дискету не успел. Был косяк с передачей формальных параметров из процедуры в программу. -------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
klem4 |
![]()
Сообщение
#13
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
вот так ?
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; ![]() Сообщение отредактировано: klem4 - 25.10.2005 8:15 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Art87 |
![]()
Сообщение
#14
|
![]() snoWolf ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
Спасибо, попробуем ;)
-------------------- Нас десять братьев на тропе, идем мы быстро, на легке ...
|
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 7:24 |