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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2010, 15:32   #11
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

А по конкретней?
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 16.11.2010, 15:36   #12
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
Код:
    if a[i,j]=b[i,j] then c[i]:=a[i,j];
1.Размер массива С больше i.
2.(Вытекает из первого) Некорректный способ заполнения массива С
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.11.2010, 15:41   #13
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Цитата:
Размер массива С больше i.
чет не вкурил
Размерность массива С? так он одномерный по условию, а заполняем его по счетчику i, а не j что б элементы не затирались
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 16.11.2010, 15:45   #14
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
чет не вкурил
Размерность массива С? так он одномерный по условию
Так размер его - в общем случае ВСЕ элементы матрицы, т.е. M на N
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.11.2010, 15:52   #15
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Дошло наконец то до меня
Так кажись пойдет
Код:
for i:=1 to n do
  for j:=1 to m do
    begin
    k:=k+1;
    if a[i,j]=b[i,j] then c[k]:=a[i,j];
   end;
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Старый 16.11.2010, 15:55   #16
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от Niro Посмотреть сообщение
Дошло наконец то до меня
Так кажись пойдет
Код:
for i:=1 to n do
  for j:=1 to m do
    begin
    k:=k+1;
    if a[i,j]=b[i,j] then c[k]:=a[i,j];
   end;
Еще k проинициализтруйте за циклом) Это конечно хорошо что вы разобрались, а что скажет топикстартер?
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 16.11.2010, 16:08   #17
superDmitry
Пользователь
 
Аватар для superDmitry
 
Регистрация: 15.11.2010
Сообщений: 16
По умолчанию

в этом коде есть хоть что то правильное?

Код:
program Mas;
Const
 m=40; n=40;
 Var
    n, m:integer; //Kol-vo n , m
 i,j:integer; //rabo4aya peremennaya
 b:array [1..m,1..n]of real; // Massiv  1
 a:array [1..m,1..n] of real; // Massiv  2

  begin
writeln('V-te kol-vo n <=40');
readln(n);
 writeln ('v-te massiv 1 ');
   for i:=1 to n do
    for j:=1 to m do
 writeln ('v-te massiv 2 ');
   for i:=1 to n do
  for j:=1 to m do
    begin
    k:=k+1;
    if a[i,j]=b[i,j] then c[k]:=a[i,j];
   end;
   writeln;
     end;
    writeln(c[i]);
    readln;
end.

Последний раз редактировалось Stilet; 16.11.2010 в 18:48.
superDmitry вне форума Ответить с цитированием
Старый 16.11.2010, 16:58   #18
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

M и N - константы
Код:
n, m:integer; //Kol-vo n , m
- эту строку удаляем и заводим одну переменную K. В начале программы не забудьте в не положить 0, а то потом удивляться будите)

Код:
for i:=1 to n do
 for j:=1 to m do
Вы же считываете массив, то должно быть
Код:
readln
Например так
Код:
for i:=1 to n do
 for j:=1 to m do
  readln(a[i,j]);
Аналогично заполняете и массив В

Массив С я так и не увидел)
Код:
c:array[1..m*n] of real;

Вывод массива С
Нет цикла
Код:
for i:=1 to k do
 write(c[i],' ');
Этот блок переделаем
Код:
begin
k:=k+1;
if a[i,j]=b[i,j] then c[k]:=a[i,j];
end;
Должно быть
Код:
if a[i,j]=b[i,j] then  begin
                            k:=k+1; 
                            c[k]:=a[i,j];
                          end;
Повнимательнее и исправляйте.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 16.11.2010 в 17:02.
alex_fcsm вне форума Ответить с цитированием
Старый 16.11.2010, 17:42   #19
superDmitry
Пользователь
 
Аватар для superDmitry
 
Регистрация: 15.11.2010
Сообщений: 16
По умолчанию

Вы мне оказали просто неоценимую помощь! Огромное вам спасибо!

единственное непонятно, почему он пишет что фактический параметр (n) должен быть переменной?

Код:
program Mas;
Const
m=40; n=40;
Var
k:integer;
i,j:integer; //rabo4aya peremennaya
b:array [1..m,1..n]of real; // Massiv 1
a:array [1..m,1..n] of real; // Massiv 2

begin
k:=0;
writeln('V-te kol-vo n <=40');
readln(n);
writeln('V-te kol-vo m <=40');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
 for j:=1 to m do
  readln(a[i,j]);
writeln ('v-te massiv 2 ');
for i:=1 to n do
 for j:=1 to m do
  readln(b[i,j]);
  
  c:array[1..m*n] of real;
  for i:=1 to k do
 write(c[i],' ');

if a[i,j]=b[i,j] then  begin
 k:=k+1;
  c[k]:=a[i,j];
  end;
writeln(c[i]);
readln;
end.

Последний раз редактировалось Stilet; 16.11.2010 в 18:51.
superDmitry вне форума Ответить с цитированием
Старый 16.11.2010, 18:30   #20
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Ну вы же написали
Код:
Readln(n);
То есть ожидаете ввода. Хотя в константах N уже определена

Как вариант решения предлагаю удалить раздел констант
Код:
Const
m=40; n=40;

Код:
program Mas;
Var
k:integer;
i,j,n,m:integer; //rabo4aya peremennaya
b:array [1..10,1..10] of real; // Massiv 1
a:array [1..10,1..10] of real; // Massiv 2
c:array[1..100] of real;

begin
k:=0;
writeln('V-te kol-vo n <=10');
readln(n);
writeln('V-te kol-vo m <=10');
readln(m);
writeln ('v-te massiv 1 ');
for i:=1 to n do
for j:=1 to m do
readln(a[i,j]);
writeln ('v-te massiv 2 ');
for i:=1 to n do
for j:=1 to m do
readln(b[i,j]);


for i:=1 to n do
 for j:=1 to m do
  if a[i,j]=b[i,j] then begin
                             k:=k+1;
                             c[k]:=a[i,j];
                           end;
writeln;
for i:=1 to k do
writeln(c[i]);
readln;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 16.11.2010 в 19:32.
alex_fcsm вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# Двухмерный массив Dron17 Общие вопросы C/C++ 2 12.10.2010 10:58
Двухмерный массив briko Паскаль, Turbo Pascal, PascalABC.NET 6 01.06.2010 09:45
Двухмерный массив Lev.F Помощь студентам 1 30.05.2010 21:31
Двухмерный массив... L_Killer Помощь студентам 4 28.05.2010 01:46
Двухмерный массив xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 2 22.04.2008 18:17