Список форумов CS.Siras.Ru
РегистрацияПоискFAQПользователиГруппыВход
Паскаль

 
Ответить на тему    Список форумов CS.Siras.Ru » Свободное Общение Предыдущая тема
Следующая тема
Паскаль
Автор Сообщение
[K.M.P.]-Sh1ft



Зарегистрирован: 18.04.2010
Сообщения: 734
Откуда: Россия, Кемерово

Сообщение Паскаль Ответить с цитатой
Есть проблема, нужно написать програмку, которая бы выщитывала сумму элементов двумерного массива, не попавших в интервал [a,b];

Код:

program massive;
uses CRT;
type mas2 = array [1..10, 1..10] of real;
var x:mas2;
    s:real;
    a,b,i,j,n,m:byte;
procedure input (var x:mas2; var n:byte; var m:byte);
     Begin
          writeln ('Введите размерность массива :');
          write ('Количество строк= ');
          readln (n);
          write ('Количество столбцов= ');
          readln(m);
          for i:=1 to n do
              begin
                   for j:=1 to m do
                      Begin
                       write ('x[',i,',',j,']=');
                       readln (x[i,j]);
                      End;
              end;
     End;
     procedure output (x:mas2; n:byte; m:byte);
    var i,j:byte;
   Begin
     writeln ('Размерность массива :',n,'x',m);
     for i:=1 to n do
     for j:=1 to m do
     writeln ('X [',i,',',j,']=',x[i,j]:6:0);
   End;
procedure sum (x:mas2; n:byte; m:byte; var s:real);
          Begin
          s:=0;
               for i:=1 to n do
               for j:=1 to m  do
               if (x[i,j]<a) and (x[i,j]>b) then
               s:=s+x[i,j];
          End;
BEGIN
     clrscr;
     input (x,n,m);
     output (x,n,m);
     writeln ('Ввелите границы интервала: ');
     writeln ('OT a= ');
     readln (a);
     writeln ('До b= ');
     readln (b);
     sum (x,n,m,s);
     writeln ('Сумма = ',s:6:0);
     readln;
END.


Проблема в том, что сумму уперто выщитывает нулевую
В чем косяк? Rolling Eyes
Пн Май 30, 2011 3:00 pm Посмотреть профиль Отправить личное сообщение
John Rambo



Зарегистрирован: 10.10.2009
Сообщения: 3303
Откуда: Красноярск

Сообщение Ответить с цитатой

Пн Май 30, 2011 3:38 pm Посмотреть профиль Отправить личное сообщение
silencer



Зарегистрирован: 27.01.2010
Сообщения: 1296

Сообщение Ответить с цитатой
а почему сумма имеет тип real? с обычными числами не пробовал?
Пн Май 30, 2011 3:43 pm Посмотреть профиль Отправить личное сообщение
silencer



Зарегистрирован: 27.01.2010
Сообщения: 1296

Сообщение Ответить с цитатой
и вобще каким хреном у тебя параметры а и б попадают в процедуру суммы? разве их передавать не надо?
(смутно вспоминая трубо паскаль на фоне алкогольного бреда первых курсов...)
Пн Май 30, 2011 3:53 pm Посмотреть профиль Отправить личное сообщение
[K.M.P.]-Sh1ft



Зарегистрирован: 18.04.2010
Сообщения: 734
Откуда: Россия, Кемерово

Сообщение Ответить с цитатой
Поскольку массив вещественного типа, то и сумма будет вещественного типа real)

а и б - это границы интервала, будь они в процедуре или в самом теле программы - сути не имеет =/
Пн Май 30, 2011 4:20 pm Посмотреть профиль Отправить личное сообщение
Lays



Зарегистрирован: 02.07.2009
Сообщения: 1060

Сообщение Ответить с цитатой
Создать чтоле тему с вопросами по моему курсачу, по механике =D

_________________
*** Siras killed Lays with a headshot from Zombie Infection **
Lays : mi ved' no kill?!
Siras : tochno, sorry
AHDEP : a ya Admiral
Пн Май 30, 2011 4:21 pm Посмотреть профиль Отправить личное сообщение ICQ Number
[K.M.P.]-Sh1ft



Зарегистрирован: 18.04.2010
Сообщения: 734
Откуда: Россия, Кемерово

Сообщение Ответить с цитатой
У меня такое чувство, что косяк в объявлении условия не принадлежности к интервалу, так как если его убрать, то выщитывает общую сумму и выводит результат, а вот с ним сумма нулевая =/ хотя объявление условия я так обычно и использовал, и всё до этих пор работало на ура Confused
Пн Май 30, 2011 4:24 pm Посмотреть профиль Отправить личное сообщение
[K.M.P.]-Sh1ft



Зарегистрирован: 18.04.2010
Сообщения: 734
Откуда: Россия, Кемерово

Сообщение Ответить с цитатой
Lays писал(а):
Создать чтоле тему с вопросами по моему курсачу, по механике =D


я б не создавал, если бы сроки не поджимали Confused Как обычно, дотянешь до последнего...)
Пн Май 30, 2011 4:27 pm Посмотреть профиль Отправить личное сообщение
Lays



Зарегистрирован: 02.07.2009
Сообщения: 1060

Сообщение Ответить с цитатой
[K.M.P.]-Sh1ft писал(а):
Lays писал(а):
Создать чтоле тему с вопросами по моему курсачу, по механике =D


я б не создавал, если бы сроки не поджимали Confused Как обычно, дотянешь до последнего...)


Да я ничего против не имею, считаю что это вполне нормально возвать к адекватной стороне форума с просьбой о помощи, сам так много раз делал, правд не по учебе

_________________
*** Siras killed Lays with a headshot from Zombie Infection **
Lays : mi ved' no kill?!
Siras : tochno, sorry
AHDEP : a ya Admiral
Пн Май 30, 2011 4:39 pm Посмотреть профиль Отправить личное сообщение ICQ Number
silencer



Зарегистрирован: 27.01.2010
Сообщения: 1296

Сообщение Ответить с цитатой
[K.M.P.]-Sh1ft писал(а):
Поскольку массив вещественного типа, то и сумма будет вещественного типа real)

а и б - это границы интервала, будь они в процедуре или в самом теле программы - сути не имеет =/


ну так я и говорю - поставь и размер, и сумму типа Int. это на всякий случай, потом переставишь если так нужно.

потом вот эта строчка мне не нравится:

Код:
sum (x,n,m,s);


Нахрен в вызове s?? убери его, добавь эти а и б и посмотрим шо будет.
Пн Май 30, 2011 9:09 pm Посмотреть профиль Отправить личное сообщение
[K.M.P.]-Sh1ft



Зарегистрирован: 18.04.2010
Сообщения: 734
Откуда: Россия, Кемерово

Сообщение Ответить с цитатой
если интервал будет в процедуре, суть будет та же самая)

а в строчке : sum (x,n,m,s); s учавствует не в роле вызова, а этой строчкой (x,n,m,s); как бы адаптирует переменные из процедуры, непосредственно к самой программе =/
Но я кажется понял в чем косяк....
Код:
if (x[i,j]<a) and (x[i,j]>b) then


Ток ща доперло, что таком условию ни одно число удовлетворять не может) Получается, если берем за границы интервала 3 и 4, то условие получается x<3 u x>4...

Спасибо всем, отдельное спасибо silencerWink
Вт Май 31, 2011 4:42 am Посмотреть профиль Отправить личное сообщение
Показать сообщения:    
Ответить на тему    Список форумов CS.Siras.Ru » Свободное Общение Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах