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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2013, 10:31   #1
марфаз
Новичок
Джуниор
 
Регистрация: 27.11.2013
Сообщений: 94
По умолчанию Вычислить суммы и количества элементов ,находящихся в интервале от a до b для матриц А и В (Pascal ABC.NET)

вот текст программы : вычислить суммы и количества элементов ,находящихся в интервале от a до b для матриц А и В .A[N,M] И B[K,L] .

Код Pascal
Код:
Program b7;
type vector=array[1..10,1..10] of real;
var A:vector;
    B:vector;
x,p,z: integer;
q,o,w:real;
n,m,k,l:integer;
Procedure Mas (C: vector;e,f:integer; r,d: real; var S:real;var h:integer);
var 
i,j: integer; 
begin
for i:=1to e do
for j:=1to f do
if(C[i,j]>r) and (C[i,j]<d) then 
begin S:=S+C[i,j]; h:= h+1;write('Введите a[',i,j,']'); 
end;
end;
begin
writeln('введите интервал o,q');
readln(o,q);
for p:= 1 to n do begin 
for x:= 1 to m do
read (A[p,x]);
writeln;
end;
 
Mas (A,n,m,o,q,w,z);
writeln('S=',w,'h=',z);
for p:=1 to k do begin 
for x:= 1 to l do
read ( B [p,x]);
writeln;
end;
Mas (B,n,m,o,q,w,z);
writeln ('S=',w, 'h=',z);
end.
ребят помогите пожалуйста ! проверьте программу! почему сумма и количество всегда ноль и как сделать чтобы каждый элемент матрицы вводился с клавиатуры к примеру a[11] a[12] ...и так далее .

Последний раз редактировалось Serge_Bliznykov; 17.12.2013 в 10:58.
марфаз вне форума Ответить с цитированием
Старый 17.12.2013, 11:00   #2
Kemperh4
Пользователь
 
Регистрация: 25.05.2010
Сообщений: 16
По умолчанию

Можно полное описание задачи?
Не вижу чтобы n,m присваивалось значение, по умолчанию там мусор из памяти...
Код:
 for p:= 1 to n do begin 
 for x:= 1 to m do
Тоже самое для k,l...
Код:
 for p:=1 to k do begin 
 for x:= 1 to l do
Kemperh4 вне форума Ответить с цитированием
Старый 17.12.2013, 11:23   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Kemperh4
Не вижу чтобы n,m присваивалось значение, по умолчанию там мусор из памяти...
в точку! Вы не видите, а автор темы об этом даже и не догадывается!

в процедуре Mas отсутствует иницилизация переменных. Которая там должна быть обязательно!!!
ну и write там явно лишний!

Код:
Procedure Mas (C: vector; e,f : integer; r,d: real; var S:real;var h:integer);
var 
  i,j: integer; 
begin
  S := 0.0;
  h := 0;
  for i:=1 to e do
      for j:=1 to f do
        if (C[i,j]>r) and (C[i,j]<d) then 
          begin 
             S:=S+C[i,j]; 
             h:= h+1;
          end;
end;

Последний раз редактировалось Serge_Bliznykov; 17.12.2013 в 11:27.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.12.2013, 07:50   #4
марфаз
Новичок
Джуниор
 
Регистрация: 27.11.2013
Сообщений: 94
По умолчанию

и что нужно поменять что бы работало
марфаз вне форума Ответить с цитированием
Старый 19.12.2013, 08:48   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от марфаз Посмотреть сообщение
и что нужно поменять что бы работало
1) нужно организовать корректное заполнение переменных n m
и переменных k l, кстати, тоже!!
например, так:
Код:
...
begin
  repeat
    writeln('введите размеры массива A: n m :');
    Readln(n,m);
  until (n>=1) and (n<=10) and (m>=1) and (m<=10);

  repeat
    writeln('введите размеры массива B:  k l :');
    Readln(k,l);
  until (k>=1) and (k<=10) and (l>=1) and (l<=10);

  writeln('введите интервал o,q');
  readln(o,q);
...
2) нужно заменить код procedure Mas на корректный. (можно попытаться взять тот код, что я предложил выше)

запустить. Проверить (возможны ещё ошибки, ведь я вашу программу не запускал, поэтому не поручусь, что там нет ещё "бажков").
В случае обнаружения некорректной работы, отладить (найти и исправить баги).

профит.

Последний раз редактировалось Serge_Bliznykov; 19.12.2013 в 08:50.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычислить суммы и количества элементов ,находящихся в интервале от a до b для матриц А и В марфаз Паскаль, Turbo Pascal, PascalABC.NET 7 25.12.2013 17:52
Программа определения суммы и количества элементов массива metalist Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 10.11.2012 09:38
подсчитать число нулевых элементов для матриц (Pascal). BreeKs Помощь студентам 1 01.11.2012 09:50
дана вещественная матрица размером N*N. вычислить произведение отрицательных элементов, находящихся над и IRINOK Помощь студентам 6 14.12.2010 22:44
Вычислить и запомнить суммы положительных элементов каждой строки матриц Babur4iK Помощь студентам 8 18.11.2009 13:56