Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 13.05.2008, 09:09   #1 (permalink)
котопек
Новичок
 
Регистрация: 13.05.2008
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Помогите пожалуйста решить задачи или дайте ссылу на их решения.заранее благодарен
1)Даны три массива А( 10 ),В( 8 ),С( 12 ).Подсчитать для каждого массива среднее арифметическое его положительных элементов,для чего использовать подпрограмму-функию
2)Имеются массивы вещественного типа {х1,х2,х3,..,х10} и {у1,у2,у3...у10},вычислить
z1 = (х1*у1+х3*у3+..+х9*у9) / ( х2*у2+х4*у4+..+х10*у10 )
котопек вне форума   Ответить с цитированием

Старый 13.05.2008, 09:09
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Аналогичные топики были созданы ранее, советую обратить внимание

Функции на Паскале
Процедуры, функции
Интерполяция функции
График функции

Старый 13.05.2008, 11:06   #2 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

1.
type
mas = record
masiv:array [1..100] of integer;
dlinna:integer;
end;


function sred(d:mas);
var
i,k:integer;
otv:real;
begin
otv:=0;
k:=0;
for i:=1 to d.dlinna do
if d.masiv[i]>0 then begin otv:=otv+d.masiv[i]; k:=k+1;
otv:=otv/k;
sred:=otv;
end;


var
a,b,c:mas;
i:integer;

begin
a.dlinna=10;
for i:=1 to a.dlinna do
readln(a.masiv[i]);
writeln(sred(a));

b.dlinna:=8;
for i:=1 to b.dlinna do
readln(b.masiv[i]);
writeln(sred(b));

c.dlinna:=12
for i:=1 to c.dlinna do
readln(c.masiv[i]);
writeln(sred(c));

end.
bubuka вне форума   Ответить с цитированием
Старый 13.05.2008, 11:07   #3 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

ща через часик вторую напишу если актуально еще
кстате во втотрой тоже использовать функцию или процендуру?
bubuka вне форума   Ответить с цитированием
Старый 13.05.2008, 16:27   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

bubuka
В функции end; не хватает ;).
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 13.05.2008, 16:41   #5 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Код:
program gyyyyyyyy;

var X,Y: array [1..10] of real;
      a,b,z1: real;
      i: integer;
begin

{здесь должно быть заполнение массива значениями}

a:=0; b:=0; z1:=0;

for i:=1 to 10 do
if i/2=trunc(i/2) then b:=b+X[i]*Y[i] else a:=a+X[i]*Y[i];

z1:=a/b;

writeln('z1=', z1);

end.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.05.2008, 16:47   #6 (permalink)
bubuka
Member
 
Аватар для bubuka
 
Регистрация: 23.01.2008
Сообщений: 1,110
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 141
По умолчанию

Цитата:
Сообщение от AlexZir
i/2=round(i/2)
орининальное деление на чет-нечет ))) такого еще не видел
bubuka вне форума   Ответить с цитированием
Старый 13.05.2008, 16:56   #7 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

bubuka
Да ладно, ошибся, там должно быть trunc :), сейчас исправлю
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 13.05.2008, 19:27   #8 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от bubuka
орининальное деление на чет-нечет
На первое-второе рассчитайсь!!! :)
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 18.05.2008, 10:36   #9 (permalink)
котопек
Новичок
 
Регистрация: 13.05.2008
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от bubuka
function sred(d:mas);
var
i,k:integer;
otv:real;
begin
otv:=0;
k:=0;
for i:=1 to d.dlinna do
if d.masiv[i]>0 then begin otv:=otv+d.masiv[i]; k:=k+1;
otv:=otv/k;
sred:=otv;
end;


(вот перед этим варом курсор)var
a,b,c:mas;
i:integer;

begin
a.dlinna=10;
for i:=1 to a.dlinna do
readln(a.masiv[i]);
writeln(sred(a));
спасибо за помощь но прога не совсем работает.
она ставит курсор перд вторым VAR и пишет ERROR 113:ERROR IN STATEMENT
я чет попробовал исправить но не совсем получается
котопек вне форума   Ответить с цитированием
Старый 18.05.2008, 18:06   #10 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от AlexZir
В функции end; не хватает
Вставьте перед строчкой var еще один end; :) :D :) :D :)
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:16.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.