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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2012, 14:30   #1
TransistorMS
Новичок
Джуниор
 
Регистрация: 15.06.2012
Сообщений: 1
Печаль Задание с динамическими массивами.

Составить функцию для определения числа элементов одномерного массива длиной N, предшествующих его первому отрицательному элементу. Используя данную функцию, рассчитать среднее арифметическое значение элементов того из двух заданных одномерных массивов С и Т, в котором меньше элементов, предшествующих первому отрицательному. В случае равенства чисел таких элементов вывести на печать сообщение "Массивы эквивалентны".
Я новичок, поэтому прошу помощи. Дали методички, а от них только хуже. Если можно - попроще, чтобы смог объяснить на защите, что, да как
TransistorMS вне форума Ответить с цитированием
Старый 15.06.2012, 14:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Дали методички,
И что там написано?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2012, 18:07   #3
Scorpio76
 
Регистрация: 13.06.2012
Сообщений: 4
По умолчанию

Ох, лень-матушка...А в инете погуглить ?

Другой вопрос - в данной задаче не указано , что делать в случае если один из массивов (или оба) вообще не содержит отрицательных элементов. В моей программе в этом случае просто выводится сообщение 'AVARYA'.
Код:
program ProjectDM;
{$APPTYPE CONSOLE}
uses SysUtils;


type Ar = array of integer;
 var i,n,cc,ct,kc,kt: Integer;
 Sadc,Sadt: Real;
 C,T:Ar;
 Function Ab( A:ar; var sad:Real; var k:integer):integer;
 var j,SA: integer;

 begin
   k:=0;
   SA:=0;
 For j:=0 to High(A) do
  Begin
  SA:=SA+A[j];
   If (k<1) and (A[j]<0) Then
   begin
    result:=j;
    k:=k+1;
   end;

  end;

   Sad:=SA/(High(A)+1);


 end;



 begin
   //************************************
 WriteLn('N=');
 Read(n);
 SetLength(C,n);
 For i:=0 to (n-1) do
 begin
 WriteLn('C[',IntToStr(i),']=');
 ReadLn(C[i]);
 end;
 WriteLn('N=');
 Read(n);
 SetLength(T,n);
 For i:=0 to (n-1) do
 begin
 WriteLn('T[',IntToStr(i),']=');
 ReadLn(T[i]);
 end;
   //*******************************
    cc:=Ab(C,SAdc,kc);
    ct:=Ab(T,SAdt,kt);
    if (kc=0) or (kt=0) then WriteLn('AVARIA')
    else
    begin
    If  cc=ct then
     Writeln( 'C=T');
    If cc<ct then
    write ('SA(C)',floatToStr(Sadc));
    if ct<cc Then
    write  ('SA(T)',floatToStr(Sadt));
    end;
    Readln;


 end.

Последний раз редактировалось Scorpio76; 15.06.2012 в 18:13.
Scorpio76 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с работой с динамическими массивами pinkiller Общие вопросы C/C++ 4 09.11.2011 20:10
Проблема с динамическими массивами San4o Общие вопросы Delphi 5 13.09.2009 21:15
Задача с динамическими массивами _grusha_ Помощь студентам 2 22.04.2009 19:46
Проблема с динамическими массивами Arassir Помощь студентам 2 11.11.2008 00:15