Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 1
Регистрация: 20.09.2011
Сообщений: 51
1

затруднение с вычислением выражения с помощью процедур

24.01.2012, 18:44. Показов 2400. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте. помогите пожалуйста. вот задача: Вычислить z=(S1+S)/2 , где S1 - сумма положительных элементов массива X(8); S2 - сумма отрицательных элементов массива Y(10). Обе суммы вычислять в одной подпрограмме.
я знаю что здесь написана эта процедура, но в своей работе я не могу использовать функции inc, так как мы это не изучали и препод спалит с такой процедурой.
исправил как понял, но что то не робит
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program lab9;
var
i,j,n,o: byte;
s1,s2,z,x :integer;
procedure W(var z :real);
begin
for i:=1 to 10 do
if y[i]<0 then
(s2,y[i])+1;
for j:=1 to 8 do
if x[j]>0 then
(s1,x[i])+1;
z:=(s1+s2)/2;
end;
begin
writeln ('Введите первый массив');
for n:=1 to 8 do read (y[i]);
writeln ('Введите второй массив');
for o:=1 to 10 do read (x[j]);
W(n,o,x);
end.
Добавлено через 19 часов 52 минуты
так неужели нельзя заменить чем нибудь аналогичным этот inc, ведь он просто увеличивает значение на единицу как я понял
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2012, 18:44
Ответы с готовыми решениями:

Вычислить значение выражения с помощью процедур
Доброго времени суток) Что это такое и есть ли оно? Мне нужно создать прогу по формуле, но сколько...

Вычислить значение выражения с помощью процедур и функций
Пример. y=Sqrt(sqr(a)+3*b),где a=П(от t=2 до 4)(t+2*x) и b=П(от t=6 до 10)(t+2*x). Обычные...

Составить программу для вычисления выражения z=y³+y²/2*y½ с помощью подпрограмм и процедур
Составить программу для вычисления выражения z=y³+y²/2*y½ с помощью подпрограмм и процедур

Трудности с вычислением выражения
Добрый вечер. Тут внезапно нарисовали предмет &quot;Интерфейсы периферийных устройств&quot; с преподом,...

4
36 / 36 / 28
Регистрация: 17.01.2012
Сообщений: 64
24.01.2012, 18:59 2
inc(s2,y[i]) - в данном случае, насколько я помню, s2 должно увеличиваться на значение y[i], т.е:
s2:=s2+y[i].
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.01.2012, 19:02 3
Цитата Сообщение от Tonop_0 Посмотреть сообщение
ведь он просто увеличивает значение на единицу как я понял
Во первых не на единицу, а на значение второго параметра.
Ну так и напиши
Pascal
1
2
if y[i]<0 then
s2:=s2+y[i];
1
0 / 0 / 1
Регистрация: 20.09.2011
Сообщений: 51
24.01.2012, 22:23  [ТС] 4
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
program lab9;
var
i,j,n,o: byte;
s1,s2,z,x :integer;
y: array [1..i] of real;
p: array [1..j] of real;
procedure W(var z :real);
begin
for i:=1 to 10 do
if y[i]<0 then
s2:=s2+y[i];
for j:=1 to 8 do
if p[j]>0 then
s1:=s1+p[i];
z:=(s1+s2)/2;
end;
begin
writeln ('Введите первый массив');
for n:=1 to 8 do read (y[i]);
writeln ('Введите второй массив');
for o:=1 to 10 do read (p[j]);
W(n,o,x);
end.
вот лог ошибок. помогите с правкой пожалуйста
program12.pas(5,15) Error: Can't evaluate constant expression
program12.pas(6,15) Error: Can't evaluate constant expression
program12.pas(11,7) Error: Incompatible types: got "Real" expected "SmallInt"
program12.pas(14,7) Error: Incompatible types: got "Real" expected "SmallInt"
program12.pas(22,1) Error: Wrong number of parameters specified for call to "W"
program12.pas(24) Fatal: There were 5 errors compiling module, stopping
program12.pas(0) Fatal: Compilation aborted
0
206 / 183 / 104
Регистрация: 10.01.2011
Сообщений: 302
25.01.2012, 00:19 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var
  X: Array[1..8] of Integer;
  Y: Array[1..10] of Integer;
  i: Integer;
  z: Real;
 
  procedure Sum(var z: Real);
  var
    i, S1, S2: Integer;
  begin
    S1:=0;
    for i:=1 to 8 do
      if X[i]>0 then S1:=S1+X[i];
    S2:=0;
    for i:=1 to 10 do
      if Y[i]<0 then S1:=S1+Y[i];
    z:=(S1+S2)/2;
  end;
 
begin
  Writeln('Введите первый массив');
  for i:=1 to 8 do readln (X[i]);
  Writeln ('Введите второй массив');
  for i:=1 to 10 do readln (Y[i]);
  Sum(z);
  Writeln('z=', z);
  Readln;
end.
1
25.01.2012, 00:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2012, 00:19
Помогаю со студенческими работами здесь

Определить значение выражения с вычислением максимума
Определить значения z=max(a,2b)*max(2a-b,b) где max(x,y) есть максимальное из чисел x,y.При решении...

Составить программу для вычисления выражения y=sin²(a)/sin(b²)+sin(c+d) с помощью подпрограмм и процедур
Составить программу для вычисления выражения y=sin²(a)/sin(b²)+sin(c+d) с помощью подпрограмм...

Стек: реализация алгоритма с вычислением значения введенного выражения
Адаптировать код чтобы эти условия правильно выполнялись 6) R=(a+b)*(c-d)/e a=1 b=4 c=8 ...

Информация для решения задач связанных с вычислением значения выражения по формулам
Посоветуйте где найти информации и как решать такие задания, задали в универе. Хотя и не изучаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru