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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.07.2011, 23:58   #1
Anna_4444
Новичок
Джуниор
 
Регистрация: 12.07.2011
Сообщений: 17
По умолчанию delphi 7 Ну никак не могу решить задачу(((

Ну никак не могу решить задачу(((
Дана матрица размером m*n. Найти сумму всех четных элементов матрицы лежащих над главной диагональю. Найти произведение всех отрицательных элементов лежащих под главной диагональю.
Anna_4444 вне форума
Старый 13.07.2011, 01:09   #2
demeros
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Anna_4444 Посмотреть сообщение
Ну никак не могу решить задачу(((
Дана матрица размером m*n. Найти сумму всех четных элементов матрицы лежащих над главной диагональю. Найти произведение всех отрицательных элементов лежащих под главной диагональю.

Код:
  type
  IntArray = array of array of Integer;

  var
  mas:IntArray;
  sum,sum2,i,j,n:word;

begin
  Writeln('Set array size :');
  Readln(n);

  //Устанавливаем размерность массива
  SetLength(mas,n,n);
  //Заполняем значениями
  sum:=0;
  n:=n-1;
  Writeln('Fill array with values:');
  for i := 0 to n do
    for j := 0 to n do
      Readln(mas[i,j]);
  //сумма всех четных элементов матрицы лежащих над главной диагональю
  for i := 0 to n-1 do
    for j := 0 to n-i-1 do
    begin
      if (Odd(mas[i,j])=False) then
        begin
          sum:=sum+mas[i,j];
        end;
     end;
     sum2:=1;
     //произведение всех отрицательных элементов лежащих под главной диагональю
    for i := 1 to n do
      for j := n downto n-i+1 do
       begin
          if (mas[i,j]<0) then
          begin
             sum2:=sum2*mas[i,j];
          end;
       Writeln('');
     end;
        writeln('sum1 =',sum);
        Writeln('sum2 =',sum2);
        Readln(sum);
end.
demeros вне форума
Старый 13.07.2011, 01:18   #3
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Другое решение:
Код:
// Дана матрица размером m*n.
// Найти сумму всех четных элементов матрицы лежащих над главной диагональю.
// Найти произведение всех отрицательных элементов лежащих под главной диагональю.

const
  M = 10;
  N = 5;

var
  matr: array [0 .. M, 0 .. N] of Integer;
  i, j: Integer;
  sum, prod: Integer;
  show_main_diagonal: Boolean;

begin
  randomize;

  // Заполнение матрицы случайными числами
  // и вывод его на экран
  show_main_diagonal := true; // Присвой false, чтобы вместо диагонали отображались XX
  for i := 1 to M do
    for j := 1 to N do
    begin
      matr[i, j] := random(100) - 50;
      if (i = j) and not show_main_diagonal then
        write('XX')
      else
        write(matr[i, j]);

      // Отступ или перевод строки
      if (j = N) then
        write(#10)
      else
        write(#9);
    end;

  // Поиск суммы четных элементов над главной диагональю
  // и произведения отрицательных под главной диагональю
  sum := 0;
  prod := 0;
  for i := 1 to M do
    for j := 1 to N do
      if (i < j) then
      begin
        // Элемент matr[i,j] выше главной диагонали
        if (matr[i, j] mod 2 = 0) then // Элемент - четное число
          sum := sum + matr[i, j];
      end
      else if (i > j) then
      begin
        // Элемент matr[i,j] ниже главной диагонали
        if (matr[i, j] < 0) then // Элемент - отрицательное число
          if (prod = 0) then // Если умножать на ноль - толку мало, поэтому просто присваивание
            prod := matr[i, j]
          else
            prod := prod * matr[i, j];
      end;
  
  // Вывод результата
  writeln('sum = ', sum);
  writeln('prod = ', prod);
  readln;

end.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума
Старый 13.07.2011, 01:25   #4
Anna_4444
Новичок
Джуниор
 
Регистрация: 12.07.2011
Сообщений: 17
По умолчанию

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

Я совсем запуталась(((( А куда тогда все это девать(((((((
Anna_4444 вне форума
Старый 13.07.2011, 01:28   #5
demeros
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 35
По умолчанию

m=10
n=5
На сколько я знаю главная диагональ может быть только у квадратной матрицы.
demeros вне форума
Старый 13.07.2011, 01:31   #6
demeros
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 35
По умолчанию

Оба варианта написаны под консоль)
File->New->Console application
demeros вне форума
Старый 13.07.2011, 01:33   #7
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от demeros Посмотреть сообщение
m=10
n=5
На сколько я знаю главная диагональ может быть только у квадратной матрицы.
Верное замечание. Ну пусть тогда m = 5.
Цитата:
Я совсем запуталась(((( А куда тогда все это девать(((((((
Решение было приведено для консольного приложения. А вы используете GUI - VCL.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума
Старый 13.07.2011, 01:34   #8
Anna_4444
Новичок
Джуниор
 
Регистрация: 12.07.2011
Сообщений: 17
По умолчанию

что значит под консоль?????????
Anna_4444 вне форума
Старый 13.07.2011, 01:35   #9
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Anna_4444 Посмотреть сообщение
что значит под консоль?????????
Это значит никаких красивых кнопочек, просто текст.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума
Старый 13.07.2011, 01:36   #10
demeros
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 35
По умолчанию

Цитата:
Сообщение от Anna_4444 Посмотреть сообщение
что значит под консоль?????????
О_о,http://ru.wikipedia.org/wiki/%D0%A2%...B5%D0%BB%D1%8F
demeros вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Никак не могу решить задачу по масивам (Pascal ABC) Amid1990 Помощь студентам 1 04.07.2011 17:46
Помогите плз очень надо, никак не могу решить 3 задачки Pihan Помощь студентам 2 09.12.2008 15:47
Никак не могу решить две математические задачи на Паскале skl1f Помощь студентам 4 30.11.2008 22:23