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


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

В делфи:
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик (оформить в виде проце¬дуры).
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрица¬тельный элемент (оформить в виде функции).
21pmi вне форума   Ответить с цитированием

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

Ваш топик очень похож по содержанию на эти

Помогите написать программу на PASCAL
Помогите написать программу
Помогите написать программу в Delphi
Помогите написать программу в Excel

Старый 27.10.2010, 21:27   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 21pmi Посмотреть сообщение
В делфи:
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик (оформить в виде проце¬дуры).
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрица¬тельный элемент (оформить в виде функции).
На Паскале - могу помочь, а Делфи - извините, знаю плохо.
Vladimir_S вне форума   Ответить с цитированием
Старый 27.10.2010, 21:29   #3 (permalink)
21pmi
Новичок
 
Аватар для 21pmi
 
Регистрация: 27.10.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

блин надо в делфи....
21pmi вне форума   Ответить с цитированием
Старый 28.10.2010, 09:55   #4 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Я знаю делфи, но задание понимаю с трудом. Владимир, может, совместными силами?
MrSTEP вне форума   Ответить с цитированием
Старый 28.10.2010, 11:43   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
Я знаю делфи, но задание понимаю с трудом. Владимир, может, совместными силами?
Ох, не ту кнопку нажал - вечно путаюсь.
Ну вот, это решение в чистом Паскале:

Код:
CONST
 N=5; {Number of lines}
 M=7; {Number of columns}
TYPE
 Matrix=ARRAY[1..N,1..M] of Integer;
 Col=RECORD
      Sm:ARRAY[1..M] of Integer;
      Bo:ARRAY[1..M] of Boolean;
     END;
VAR
 i,j:Integer;
 M_in,M_out:Matrix;
 C:Col;

PROCEDURE Ordering(M1:Matrix; var M2:Matrix);
 var
  Numb:Array[1..M] of BYTE;
  Sums:Array[1..M] of WORD;
  Sum:WORD;
  Num:BYTE;
  i0,j0,j1:Integer;
 begin
  For j0:=1 to M do
   begin
    Numb[j0]:=j0;
    Sums[j0]:=0;
    For i0:=1 to N do
     If M1[i0,j0]<0 then Sums[j0]:=Sums[j0]-M1[i0,j0];
   end;

  For j1:=1 to M do
   For j0:=1 to M-j1 do
    If Sums[j0]>Sums[j0+1] then
     begin
      Sum:=Sums[j0];
      Sums[j0]:=Sums[j0+1];
      Sums[j0+1]:=Sum;
      Num:=Numb[j0];
      Numb[j0]:=Numb[j0+1];
      Numb[j0+1]:=Num;
     end;

  For i0:=1 to N do
   For j0:=1 to M do
    M2[i0,j0]:=M1[i0,Numb[j0]];

 end;

FUNCTION Search_Sums(Mss:Matrix):Col;
 var
  i0,j0:BYTE;
  SS:Col;
  b:Boolean;
 begin
  For j0:=1 to M do
   begin
    b:=false;
    i0:=0;
    Repeat
     INC(i0);
     If Mss[i0,j0]<0 then b:=true;
    Until b or (i0=N);
    If b then SS.Bo[j0]:=true else SS.Bo[j0]:=false;
    If b then
     begin
      SS.Sm[j0]:=0;
      For i0:=1 to N do
       SS.Sm[j0]:=SS.Sm[j0]+Mss[i0,j0];
     end else SS.Sm[j0]:=0;
   end;
  Search_Sums:=SS;
 end;

BEGIN
 Randomize;
 For i:=1 to N do
  begin
   For j:=1 to M do
    begin
     M_in[i,j]:=Random(100)-20;
     Write(M_in[i,j]:5);
    end;
   Writeln;
  end;
 WriteLn;
 Ordering(M_in,M_out);
 For i:=1 to N do
  begin
   For j:=1 to M do
    Write(M_out[i,j]:5);
   Writeln;
  end;
 WriteLn;
 C:=Search_Sums(M_in);
 For j:=1 to M do
  If C.Bo[j] then
   Writeln('Column N ',j,'  ',C.Bo[j],' Sum= ',C.Sm[j])
  else
   Writeln('Column N ',j,'  ',C.Bo[j]);
 Writeln;
 ReadLn;
END.
К сожалению, в силу идиотского требования оформить вторую часть непременно в виде функции, пришлось применять записи, потому как надо получить два вида информации: о наличии отрицательных чисел в столбце и (при наличии) о сумме столбца. С процедурой было бы проще, но нет - подай им функцию! Ну получите...
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 28.10.2010, 12:00   #6 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Ох, не ту кнопку нажал - вечно путаюсь.
ты о какой кнопке?
сейчас попробую портировать на делфи
MrSTEP вне форума   Ответить с цитированием
Старый 28.10.2010, 12:04   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
ты о какой кнопке?
Да просто прежде чем выложить программу написал короткий ответ, что сейчас, мол, на Паскале сделаю, да вместо "цитата" нажал "правка" и влез в твой пост. И не заметил. Сейчас всё исправил.
Vladimir_S вне форума   Ответить с цитированием
Старый 28.10.2010, 12:21   #8 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

А, ну это мелочи
MrSTEP вне форума   Ответить с цитированием
Старый 28.10.2010, 12:44   #9 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Владимир, у меня тубро и борланд паскаль заругались на неправильный тип результата тут:
Код:
FUNCTION Search_Sums(Mss:Matrix):Col;
не пропускает тип Запись. А создал консольное приложение в делфи - запустилось, посчитало. Ты в какой среде писал прогу?
MrSTEP вне форума   Ответить с цитированием
Старый 28.10.2010, 12:52   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
Владимир, у меня тубро и борланд паскаль заругались на неправильный тип результата тут:
Код:
FUNCTION Search_Sums(Mss:Matrix):Col;
не пропускает тип Запись. А создал консольное приложение в делфи - запустилось, посчитало. Ты в какой среде писал прогу?
Free Pascal. Причем какой-то изрядно старый.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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


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

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




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

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