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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2012, 19:43   #1
Вероника_94
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 22
Печаль двумерный массив(Pascal)

Организовать ввод данных матриц двумя способами: автоматический с помощью генератора случайных чисел и ручной с помощью клавиатуры. Тип ввода данных организовать с помощью меню.

Определить номера тех строк целочисленной матрицы A[N,K],которые совпадают с массивом D[K] .Если таких строк нет, выдать соответствующее сообщение.



uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
d:array[1..nmax] of integer;
n,k,i,j,f,p:byte;
begin
clrscr;
repeat
write('Количество строк до ',nmax,' n=');
readln(n);
until n in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' k=');
readln(k);
until k in [1..nmax];
writeln('Введите построчно элементы матрицы:');
for i:=1 to n do
for j:=1 to k do
begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;
writeln('Введите элементы массива D:');
for i:=1 to k do
begin
write('d[',i,']=');
readln(d[i]);
end;
clrscr;
writeln('Исходная матрица A:');
for i:=1 to n do
begin
for j:=1 to k do
write(a[i,j]:4);
writeln;
end;
writeln;
writeln('Массив D:');
for i:=1 to k do
write(d[i]:4);
writeln;
writeln('Номера строк, совпадающих с массивом D:');
f:=0;
for i:=1 to n do
begin
p:=0;
for j:=1 to k do
if a[i,j]<>d[j] then
begin
p:=1;
break;
end;
if p=0 then
begin
f:=1;
write(i,' ');
end;
end;
if f=0 then write('Таких строк нет!');
readln
end.
Вероника_94 вне форума Ответить с цитированием
Старый 20.01.2012, 20:32   #2
James_047
Пользователь
 
Аватар для James_047
 
Регистрация: 19.01.2012
Сообщений: 11
По умолчанию

А в чём проблема?В том чтобы два ввода сделать?
James_047 вне форума Ответить с цитированием
Старый 20.01.2012, 20:50   #3
Вероника_94
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 22
По умолчанию

uses crt;
var
a:array[1..5,1..5] of integer;
d:array[1..5] of integer;
n,k,i,j,f,p,m:integer;
begin
randomize;
clrscr;
write('размерность матрицы n=');
readln(n);
repeat
writeln('1:автоматический, 2:ручной');
readln(m);
until m<=2;
case m of
1:for i:=1 to N do begin
writeln;
for j:=1 to N do begin
a[i,j]:=random(10)-5;
write(a[i,j]:4);
end;end;
2:for i:=1 to n do begin
for j:=1 to n do begin
write('a[',i,',',j,']=');
readln(a[i,j]);
end;end;end;
writeln;
writeln('введите элементы массива D:');
for i:=1 to N do
begin
write('d[',i,']=');
readln(d[i]);
end;
clrscr;
writeln('исходная матрица A:');
for j:=1 to n do
write(a[i,j]:4);
writeln;
writeln('массив D:');
for i:=1 to N do
write(d[i]:4);
writeln;
writeln('номера строк,совпадающих с массивом D:');
f:=0;
for i:=1 to n do
if a[i,j]<>d[j] then
begin
p:=1;
break;
end;
if p=0 then
begin
f:=1;
write(i,'');
end;
if f=0 then write('таких строк нет');
readln
end.



неверно определяет строку (т.е. всегда пишет "нет таких строк"), исходную матрицу не выводит на экран и в рандоме не выводит отрицательные числа (не получается их формировать так как пишет переполнение арифметического выражения)
Вероника_94 вне форума Ответить с цитированием
Старый 21.01.2012, 01:35   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

при выводе матрицы двумерной!!!
Код:
writeln('исходная матрица A:');
 //пропущен цикл по i
 for j:=1 to n do
  write(a[i,j]:4);
при сравнении
Код:
for i:=1 to n do
 if a[i,j]<>d[j] then //необходим вложенный цикл по j
...
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерный массив(Pascal) Shegi Помощь студентам 1 18.01.2012 06:23
Двумерный массив на Pascal Daniboy Помощь студентам 5 16.02.2011 21:07
двумерный массив Pascal Cam_Wexler Помощь студентам 9 14.05.2010 22:12
Pascal. Двумерный массив. Fonthreat Помощь студентам 1 29.03.2010 17:57
Pascal Двумерный массив vovalski Помощь студентам 1 16.11.2009 20:42