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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2008, 17:59   #1
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
По умолчанию помогите доделать задачу по массиву

Первую часть задания я сделал,сформировал матрицу по правилу A,
теперь мне надо определить значение функции G по заданной формуле(на картинке)
Помогите плиз чето я не знаю как эту фомулу записать
ps; как мне сделать чтобы у меня матрица при выводе выглядела красиво? а то у меня все значения вперемешку



const n=10;
m=10;
type mas2=array [1..n,1..m] of real;
var i,j :integer;
a:mas2;
g,x:real;
min:word;
begin

min:=maxint;

for i:=1 to n do
for j:=1 to m do
begin
a[i,j]:=sqr(i+3)/(j)-exp(i-j*ln(0.86));
write (a[i,j]);
end;


writeln;
end.
Изображения
Тип файла: jpg Отсканировано 04.05.2008 21-162.jpg (17.5 Кб, 155 просмотров)
braza вне форума Ответить с цитированием
Старый 05.05.2008, 18:18   #2
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

для того чтобы матрица выглядела красиво, можно организовать такой вывод:
Код:
for i:=1 to n do
 begin 
  for j:= 1 to m do
   begin
    write(a[i,j],' ');
   end;
  writeln('');
 end;
таким образом матрица будет выведена как таблица
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 05.05.2008, 18:35   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Для начала напиши начало своей программы так, как в коде.
Если у тебя матрица квадратная, зачем переменная N?
Что будут делать переменные
g,x:real;
min:word; пока не понятно.
Согласно приведенной формулы, нужно:
1. Найти сумму модулей отрицательных чисел какого-то массива.
2. Найти сумму неотрицательных чисел этого же массива.
3. Среди них найти меньшее число. Это видимо нужно оформить в виде функции
Код:
Function G(a,b:real;):real;//a и b - вычисленные суммы
begin
if a<b then G:=a
else G:=b;
end;
Что-бы что-то смотреть дальше, нужно условие задачи.
Начало программы:
Код:
uses crt;
const n=6;
      m=5;
type mas2=array [1..n,1..m] of real;
var i,j :integer;
a:mas2;
g,x:real;
min:real;
begin
clrscr;
for i:=1 to n do
    begin
      for j:=1 to m do
        begin
          a[i,j]:=sqr(i+3)/(j)-exp(i-j*ln(0.86));
          write (a[i,j]:8:2);//форматированный вывод вещественных чисел
        end;    //8 - количество позиций под число, 1 - знаки после запятой
      writeln;
	end;
readln	
end.
Как показано у Эвклида, для вещественных чисел будет выглядеть также безобразно, как и у тебя.
puporev вне форума Ответить с цитированием
Старый 05.05.2008, 19:00   #4
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
По умолчанию

вот всё условие задачи
задания а и б сделаны помогите оставшиеся
Изображения
Тип файла: jpg Отсканировано 04.05.2008 21-162.jpg (17.5 Кб, 162 просмотров)
Тип файла: jpg Отсканировано 05.05.2008 18-52.jpg (25.0 Кб, 150 просмотров)

Последний раз редактировалось braza; 05.05.2008 в 19:03.
braza вне форума Ответить с цитированием
Старый 05.05.2008, 19:55   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Согласно приведенного условия, если оно мной понято верно, получилось следущее:
Код:
uses crt;
const n=5;
var a:array [1..n,1..n] of real;
    x:array [1..n] of real;
    i,j:integer;
    max,min,sumo,sump:real;
//максимум, минимум, сумма отрицательных, сумма положительных
function G(f,q:real):real;//функция определения минимального из двух чисел
begin
if f<q then G:=f
else G:=q;
end;
begin
clrscr;
writeln('Ishodnaja matrica:');
for i:=1 to n do
    begin
      for j:=1 to n do
        begin
          a[i,j]:=sqr(i+3)/(j)-exp(i-j*ln(0.86));
          write (a[i,j]:8:2);
        end;
      writeln;
	end;
readln;
for i:=1 to n do
  begin    //ищем максимальный и мнимальный элемент в каждой строке
   max:=a[i,1];min:=a[i,1];
   for j:=1 to n do
     begin
      if a[i,j]>max then
         begin
           max:=a[i,j];
         end
      else if a[i,j]<min then
         begin
           min:=a[i,j];
         end;
     end;
   x[i]:=abs(max)-abs(min);//составляем вектор(линейный массив)по условию
  end;
writeln('Vetor X:');//выводим его на экран
for i:=1 to n do
write(x[i]:8:2);
writeln;
sumo:=0;sump:=0;
for i:=1 to n do  //ищем сумму отрицательных и неотрицательных в векторе
    begin
     if x[i]<0 then
     sumo:=sumo+x[i]
     else if x[i]>=0 then
     sump:=sump+x[i];
   end;
Writeln('Rezultat=',G(abs(sumo),sump):6:2);//используя функцию, находим мин.
readln
end.
puporev вне форума Ответить с цитированием
Старый 05.05.2008, 23:18   #6
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
По умолчанию

Спасибо за помощь!
Код:
function G(f,q:real):real;//функция определения минимального из двух чисел   
begin   
if f<q then G:=f   
else G:=q;   
end;   
begin
можешь обяснить зачем это надо?
и не знаешь почему у меня в ответе вектор X всё по нулям и резултат G тоже 0, делал по твоему коду
braza вне форума Ответить с цитированием
Старый 06.05.2008, 07:18   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Насчет функции у тебя в условии написано "определить значение функции G", не хочешь, убери, твоя ведь задача. Просто в конце программы, вручную определи, что больше: модуль суммы отрицательных, или сумма положительных. Ну а ноли у тебя от того, что ты не сумел правильно переписать код и что-то пропустил. Если не веришь посмотри мою программу.
Вложения
Тип файла: rar FORUM1.rar (529 байт, 10 просмотров)
puporev вне форума Ответить с цитированием
Старый 06.05.2008, 09:37   #8
braza
Пользователь
 
Регистрация: 26.04.2008
Сообщений: 12
По умолчанию

ладно буду разбераться
braza вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите доделать задачу motaro Фриланс 3 09.06.2008 19:59
Помогите доделать задачу!!!! Vincenzo Паскаль, Turbo Pascal, PascalABC.NET 4 11.05.2008 09:35
помогите доделать(исправить) задачу по массиву braza Паскаль, Turbo Pascal, PascalABC.NET 2 29.04.2008 19:54
паскаль l помогите доделать задачу по одномерн массиву braza Паскаль, Turbo Pascal, PascalABC.NET 15 27.04.2008 14:33
Помогите доделать задачу на класс molodzo Общие вопросы C/C++ 2 20.11.2007 09:31