• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль. Задачи на массивы.

Denim1916

Ученик
Регистрация
17 Ноя 2009
Сообщения
3
Реакции
0
Баллы
0
Паскаль. Задачи на массивы.

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

Пожалуйста:

Код:
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) можете подставить свои.
 
и вот еще одна...
Заданный масив целых чисел делится на три части двумя элементами: максимальным и минимальным. определите сумму элементов в каждой части массива. используйте функции для нахождения индексов минимального и максимального элементов и подсчета суммы элементов в указанной части массива..
Благодарю за ранее( особенно тем кто придумал этот сайт огромное спасибо и большой респект и уважуха!!!)))))))

Как-то так. Ничего, что для индексов использована процедура, а не функции? Если это критично, процедуру можно разбить на две функции, просто программа еще раздуется. Ну а уж подсчет сумм в какие-то функции упихивать - по-моему, перебор. По здравому смыслу тут вообще подпрограммы ни нафиг не нужны!

Код:
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.

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