Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2015, 15:23   #1
RaccoonRocket
Пользователь
 
Регистрация: 03.06.2015
Сообщений: 10
Вопрос Подпрограммы и массивы

Написать функцию, которая вычисляет сумму и произведение ненулевых элементов массива X(N). С помощью подпрограммы подсчитать вычисляет сумму и произведение ненулевых элементов массивов A(8), B(6), C(10). Элементы массивов A, B, C вычисляются по формулам:
Ai=0.15isin(0.5i^2)+1,
Bk=0.6kcos(0.1k^2+12k),
CL=0.2(L-5)^2+0.5(L-4)+2.

Нужна ваша помощь, а то у меня с подпрограммами беда, а массивы - совсем провал. Если нет времени или желания, просто подскажите основное, в каком направлении двигаться. Заранее огромное спасибо за ответ
RaccoonRocket вне форума Ответить с цитированием
Старый 03.06.2015, 16:17   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Основное: узнать какой язык программирования вы изучаете.
p51x вне форума Ответить с цитированием
Старый 03.06.2015, 16:22   #3
RaccoonRocket
Пользователь
 
Регистрация: 03.06.2015
Сообщений: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Основное: узнать какой язык программирования вы изучаете.
Pascal, компилятор - Turbo Delphi
RaccoonRocket вне форума Ответить с цитированием
Старый 03.06.2015, 17:02   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что-нибудь из твоих попыток мона увидеть?
Чтоб знать от чего отталкиваться в помощи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.06.2015, 17:18   #5
RaccoonRocket
Пользователь
 
Регистрация: 03.06.2015
Сообщений: 10
По умолчанию

Дальше чем
Код:
{$APPTYPE CONSOLE}
uses
  SysUtils;


var a:array[1..8] of double;
    b:array[1..6] of double;
    c:array[1..10] of double;
    m,n,i,j,kn,ks,k,L:byte;
begin
writeln('A:');
for i:=1 to 8 do
 begin
     a[i]:=0.15*sin(0.5*i*i)+1;
     write(a[i]:4);
    end;
   writeln;
writeln('B:');
for k:=1 to 6 do
 begin
     b[k]:=0.6*k*cos(0.1*k*k+12*k);
     write(b[k]:4);
    end;
   writeln;
writeln('C:');
 for i:=1 to 8 do
 begin
     c[L]:=0.2*(L-5)*(L-5)+0.5*(L-4)+2;
     write(c[L]:4);
    end;
   writeln;

end.
уйти не могу:D

Последний раз редактировалось Stilet; 03.06.2015 в 19:39.
RaccoonRocket вне форума Ответить с цитированием
Старый 03.06.2015, 17:39   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А динамические массивы вы проходили ?
Или с ними тоже прям беда.
Код:
program RaccoonRocket;

{$APPTYPE CONSOLE}
type tMass=array of Double; // динамический массив

procedure procSumPro(mas:tMass;var sum,pr:Double); // это ваша процедура
var n,i:Byte;
begin
 sum:=0;
 pr:=0;
 n:=Length(mas);
 if n=0 then Exit;  // если массив пустой, то и нечего считать
 pr:=1;
 for i:=0 to n-1 do
  if mas[i]<>0 then
   begin
    sum:=sum+mas[i];
    pr:=pr*mas[i];
   end;
end;

begin
 // а собственно саму программу сами пишите
 // вызывайте в ней процедуру procSumPro , и т.д. 
end.
Вообщем, двигайтесь в сторону - почитать про динамические массивы и вызов процедур.
PS В принципе, в качестве подпрограммы можете использовать не процедуру, а функцию :
Код:
function sum(mas:tMass;var pr:Double):Double; // это ваша функция

Последний раз редактировалось type_Oleg; 03.06.2015 в 17:43.
type_Oleg вне форума Ответить с цитированием
Старый 04.06.2015, 20:26   #7
RaccoonRocket
Пользователь
 
Регистрация: 03.06.2015
Сообщений: 10
Хорошо

Огромное - огромное спасибо

вот что у меня получилось (без динамических массивов все же)
Код:
{$APPTYPE CONSOLE}
uses
SysUtils;


var a:array[1..8] of double;
b:array[1..6] of double;
c:array[1..10] of double;
m,n,i,j,kn,ks,k,L:byte;

procedure procSumPro(mas:array of double);
var n,i:Byte; var sum,pr:Double;
begin
 sum:=0;
 pr:=0;
 n:=Length(mas);
 if n=0 then Exit;
 pr:=1;
 for i:=0 to n-1 do
  if mas[i]<>0 then
   begin
    sum:=sum+mas[i];
    pr:=pr*mas[i];
   end;
   writeln;
   writeln('сумма = ', sum:2:2, ' произведение = ', pr:2:2);
end;

begin
writeln('A:');
for i:=1 to 8 do
begin
a[i]:=0.15*sin(0.5*i*i)+1;
write(a[i]:8:2);
end;
procSumPro(a);
writeln;
writeln('B:');
for k:=1 to 6 do
begin
b[k]:=0.6*k*cos(0.1*k*k+12*k);
write(b[k]:8:2);
end;
procSumPro(b);
writeln;
writeln('C:');
for L:=1 to 8 do
begin
c[L]:=0.2*(L-5)*(L-5)+0.5*(L-4)+2;
write(c[L]:8:2);
end;
procSumPro(c);
writeln;
readln;
end.

Последний раз редактировалось Stilet; 04.06.2015 в 20:47.
RaccoonRocket вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массивы и подпрограммы Lelik-852 Паскаль, Turbo Pascal, PascalABC.NET 0 06.07.2014 11:25
Двумерные массивы и подпрограммы litokha Помощь студентам 2 06.12.2011 13:48
подпрограммы и массивы tymac9n Общие вопросы C/C++ 7 17.05.2011 19:26
Массивы и подпрограммы. sanyok_amd Помощь студентам 0 19.04.2011 14:27
Подпрограммы. Массивы. на С# Stasnislav Помощь студентам 4 13.05.2010 15:21