Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 20.11.2009, 14:00   #1 (permalink)
Denim1916
Новичок
 
Регистрация: 17.11.2009
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Thumbs up Паскаль. Задачи на массивы.

характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. помогите плиззз решить в паскале
Denim1916 вне форума   Ответить с цитированием

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

Пока участники форума думают над вашей проблемой, обратите внимание на это

Массивы. Паскаль
Три задачи на массивы
Паскаль, три задачи на массивы
Паскаль. Задача на массивы
Задачки на массивы. Паскаль
Две задачи. Паскаль

Старый 20.11.2009, 14:04   #2 (permalink)
Denim1916
Новичок
 
Регистрация: 17.11.2009
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

и вот еще одна...
Заданный масив целых чисел делится на три части двумя элементами: максимальным и минимальным. определите сумму элементов в каждой части массива. используйте функции для нахождения индексов минимального и максимального элементов и подсчета суммы элементов в указанной части массива..
Благодарю за ранее( особенно тем кто придумал этот сайт огромное спасибо и большой респект и уважуха!!!)))))))
Denim1916 вне форума   Ответить с цитированием
Старый 20.11.2009, 15:24   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Denim1916 Посмотреть сообщение
характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. помогите плиззз решить в паскале
Пожалуйста:

Код:
CONST
 M=5;
 N=7;
 R=50;
VAR
 A:ARRAY[1..M,1..N] of INTEGER;
 i,j,k,Min:INTEGER;
 Number,Charac:ARRAY[1..N] of INTEGER;

BEGIN
 Randomize;
 FOR i:=1 TO M DO
  BEGIN
   FOR j:=1 TO N DO
    BEGIN
     A[i,j]:=Random(2*R)-R;
     Write(A[i,j]:4);
    END;
   WriteLn;
  END;
 WriteLn;

 FOR j:=1 TO N DO
  BEGIN
   Charac[j]:=0;
   i:=1;
   REPEAT
    IF A[i,j]<0 THEN
     Charac[j]:=Charac[j]-A[i,j];
    INC(i,2);
   UNTIL i>M;
  END;

  FOR j:=1 TO N DO Write(Charac[j]:4);
  Writeln;
  Writeln;

  FOR k:=1 TO N DO
   BEGIN
    Min:=R*((M div 2)+1);
    FOR j:=1 TO N DO
     IF Charac[j]<Min THEN
      BEGIN
       Min:=Charac[j];
       Number[k]:=j;
      END;
    Charac[Number[k]]:=R*((M div 2)+2);
   END;

 FOR i:=1 TO M DO
  BEGIN
   FOR j:=1 TO N DO
     Write(A[i,Number[j]]:4);
   WriteLn;
  END;

ReadLn;

END.
Значения констант M (количество строк), N (количество столбцов) и R (граница диапазона; все элементы таблицы располагаются в интервале от -R до R) можете подставить свои.
Vladimir_S вне форума   Ответить с цитированием
Старый 20.11.2009, 22:09   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Denim1916 Посмотреть сообщение
и вот еще одна...
Заданный масив целых чисел делится на три части двумя элементами: максимальным и минимальным. определите сумму элементов в каждой части массива. используйте функции для нахождения индексов минимального и максимального элементов и подсчета суммы элементов в указанной части массива..
Благодарю за ранее( особенно тем кто придумал этот сайт огромное спасибо и большой респект и уважуха!!!)))))))
Как-то так. Ничего, что для индексов использована процедура, а не функции? Если это критично, процедуру можно разбить на две функции, просто программа еще раздуется. Ну а уж подсчет сумм в какие-то функции упихивать - по-моему, перебор. По здравому смыслу тут вообще подпрограммы ни нафиг не нужны!

Код:
CONST
 N=7;
 R=50;
TYPE
 AR=ARRAY[1..N] of INTEGER;
VAR
 A:AR;
 i,Imax,Imin,S1,S2,S3,b1,b2:INTEGER;

PROCEDURE Search_Min_Max(As:AR; VAR IminS, ImaxS:INTEGER);
 VAR
  Max,Min,Is,IminScur,ImaxScur:INTEGER;
 BEGIN
  Max:=-(R+1);
  Min:=R+1;
  FOR Is:=1 TO N DO
   BEGIN
    IF As[Is]>Max THEN
     BEGIN
      Max:=A[Is];
      ImaxScur:=Is;
     END;
    IF As[Is]<Min THEN
     BEGIN
      Min:=A[Is];
      IminScur:=Is;
     END;
   END;
  ImaxS:=ImaxScur;
  IminS:=IminScur;
 END;

BEGIN
 Randomize;
 FOR i:=1 TO N DO
   BEGIN
    A[i]:=RANDOM(2*R)-R;
    Write(A[i]:4);
   END;
 WriteLn;
 WriteLn;

 Search_Min_Max(A,Imin,Imax);
 IF Imin<Imax THEN
  BEGIN
   b1:=Imin;
   b2:=Imax;
  END ELSE
  BEGIN
   b1:=Imax;
   b2:=Imin;
  END;

 S1:=0;
 S2:=0;
 S3:=0;

 FOR i:=1 TO b1 DO
  S1:=S1+A[i];
 FOR i:=b1 TO b2 DO
  S2:=S2+A[i];
 FOR i:=b2 TO N DO
  S3:=S3+A[i];

 WriteLn('S1= ',S1);
 WriteLn('S2= ',S2);
 WriteLn('S3= ',S3);

 ReadLn;

 END.
И еще. В условии не сказано, включать или не включать максимальный и минимальный элементы в подсчет сумм. В программе они включены, причем каждый - дважды (подсчитывается сумма от первого элемента до, например, минимального (включая последний), потом от минимального до максимального (включая оба) и, наконец, от максимального до последнего, тоже включая максимальный.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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