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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 21:21   #1
миха18
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 11
По умолчанию Задачка в Delphi

Не знаю, как делать 3,4 и 5 пункты. Кто может помочь?

Разобрать программу и выполнить:
1) Ввести размерность квадратной матрицы N;
2) Двумя способами ввести элементы:
а) с клавиатуры;
б) с помощью random(k) (генератор случайных числе) в диапазоне 0..(К-1)
диапазон чисел [-50;50]
y:= random (101) -50
3) построить треугольную матрицу, получающуюся в результате выделения элементов ниже побочной диагонали, включая её.

4)Распечатать полученную матрицу
5)Вычислить положительное среднее арифметическое значение полученной матрицы.
Изображения
Тип файла: jpg 2.jpg (7.1 Кб, 149 просмотров)
миха18 вне форума Ответить с цитированием
Старый 12.05.2009, 23:56   #2
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Номер 2,3 и 4:

Код:
program massiv;
const
  N=10;
var
  mas  :array[1..N,1..N] of integer;
  i, j :byte;
begin
Writeln('Before:');
{генерируем массив}
Randomize;
for i:=1 to N do
  for j:=1 to N do
    begin
       mas[i,j] := Random(101)-50;
       write(mas[i,j]:3,' ');
             if j=N then writeln
    end;
{обнуляем элементы выше диагонали}
for j:=1 to N do
    for i:=N downto 1 do
         if i<>j then mas[i-j,j] := 0;
{Выводим результат}
Writeln;
Writeln('After:');
for i:=1 to N do
    for j:=1 to N do
        begin
          Write(mas[i,j]:3,' ');
          if j=N then writeln
        end;
Readln
end.
Цитата:
Сообщение от миха18 Посмотреть сообщение
4)Распечатать полученную матрицу
Это в смысле на принтер, на экран или в файл?

Последний раз редактировалось VadEr; 13.05.2009 в 15:15.
VadEr вне форума Ответить с цитированием
Старый 13.05.2009, 09:16   #3
миха18
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 11
По умолчанию

это на экран
миха18 вне форума Ответить с цитированием
Старый 13.05.2009, 09:34   #4
Juffin
Форумчянин
Форумчанин
 
Аватар для Juffin
 
Регистрация: 05.04.2009
Сообщений: 446
По умолчанию

это надо именно в Дельфи, или в Турбо Паскале?
Nobody expects Spanish Inquisition!
Juffin вне форума Ответить с цитированием
Старый 13.05.2009, 09:55   #5
миха18
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 11
По умолчанию

В принципе разница не существенна. Но лучше в Турбо Паскале.

Последний раз редактировалось миха18; 13.05.2009 в 11:50.
миха18 вне форума Ответить с цитированием
Старый 13.05.2009, 13:05   #6
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Цитата:
Сообщение от миха18 Посмотреть сообщение
5)Вычислить положительное среднее арифметическое значение полученной матрицы.
Это ср. арифм. только положительных элементов труегольной матрицы или всех, но результат взят по модулю?

Последний раз редактировалось VadEr; 13.05.2009 в 13:13.
VadEr вне форума Ответить с цитированием
Старый 13.05.2009, 16:39   #7
миха18
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 11
По умолчанию

Это среднее арифметическое только положительных элементов.

VadEr можете помочь с 5 пунктом, очень нужно!!!

Последний раз редактировалось Stilet; 14.05.2009 в 16:56.
миха18 вне форума Ответить с цитированием
Старый 14.05.2009, 16:43   #8
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

№ 2-5;

Код:
program massiv;
const
  N=10;
var
  mas  :array[1..N,1..N] of integer;
  i, j, k1, k2 :byte;
  sr_Arif :real;
  S :integer;
function sum(i:integer):integer;
begin {функция для расчета кол-ва элементов треугольной матрицы}
	if i>1 then sum := i + sum(i-1)
	else sum := 1;
end;  
  
begin
Writeln('Before:');
{генерируем массив}
Randomize;
for i:=1 to N do
  for j:=1 to N do
    begin
       mas[i,j] := Random(101)-50;
       write(mas[i,j]:3,' ');
             if j=N then writeln
    end;
{обнуляем элементы выше диагонали}
for j:=1 to N do
    for i:=N downto 1 do
         if i<>j then
           mas[i-j,j] := 0;
{Выводим результат}
k1 := Sqr(N) - sum(N); {кол-во элементов кот-е не вошли в треугольник}
k2 := 0; S := 0;
Writeln('After:');
for i:=1 to N do
    for j:=1 to N do
        begin
          Write(mas[i,j]:3,' ');
          if mas[i,j] >=0 then
          	begin
          	  Inc(k2); {кол-во положительных элементов в квадратной матрице}
          	  S := S + mas[i,j]; {сумма положительных эл-ов в квадратной матрице}
          	 end;
          if j=N then writeln
        end; {т.к. в противоположном треугольнике нули они не влияют на сумму, поэтому от кол-ва положит. эл-ов просто вычитаем элементы не вошедшие в треугольник}
Writeln; Writeln('Sred. (+)Arifmet: ',S/(k2-k1):3:2);
Readln
end.
VadEr вне форума Ответить с цитированием
Старый 14.05.2009, 21:34   #9
миха18
Пользователь
 
Регистрация: 12.05.2009
Сообщений: 11
По умолчанию

Спасибо большое!!!!
Тему можно закрывать
миха18 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi: задачка на массив - нужно дописать. Sorinka Помощь студентам 3 30.04.2009 21:32
Delphi. Задачка. Игра в слова bape Фриланс 8 23.01.2009 15:16
Задачка с массивом (Delphi) 777UFO777 Помощь студентам 3 04.12.2008 23:51
Задачка на массивы в delphi 7 fredd Помощь студентам 4 27.11.2008 13:22
Задачка в delphi, вылазят ошибки... Absent Помощь студентам 3 17.02.2008 15:54