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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 18:17   #1
griignat
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 2
По умолчанию Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива

Здравствуйте.

Сначала полный текст задачи, с которой у меня возникли трудности:

Дан двухмерный массив A[N,M] и одномерный массив B[K]. Обнулить элементы строки массива A, содержащей наибольшее количество элементов массива В.

Работаем в Паскале.
Собственно, затруднение с самим обнулением (добавлю, что орудую относительно простыми командами, тк в Паскаль глубоко не заходим, будучи лингвистами)

Представлял это так: при помощи счетчика кол-ва элементов считаем элементы B в первой строке А. Далее: считаем в следующих. Сравниваем счетчики, выбираем максимальный. Обнуляем строку. Но написать не смог. Например, откуда мы знаем сколько строк, чтобы сделать столько счетчиков.. итд

вот, что я написал уже, сама база, ее менять не надо, а вот уже в самом конце последняя команда - как раз начатый счетчик (для первой строки), там как раз есть, над чем подумать. возможно, и не через счетчик ( а какую-нибудь логическую переменную - флаг того, что в строке массива А встречается итд.. - там f : boolean, к примеру). не знаю.

Код:
Program Lab3var8;
type
array1 = array[1..20] of integer;
array2 = array[1..20, 1..20] of integer;
var
a : array2;
b : array1;
n : integer;
m : integer;
k : integer;
i,j,q : integer;
cnt1: integer;

begin

writeln;
writeln('Лабораторная работа № 3. Вариант 8');

writeln;
writeln('Двумерный массив (матрица) A:');

repeat
write('Введите количество строк матрицы А, n = ');
read(n)
until (n<20) and (n>0);

repeat
write('Введите количество столбцов А, m = ');
read(m)
until (m<20) and (m>0);

writeln('Веедите элементы массива А:');
for i:=1 to n do
for j:=1 to m do
begin
Write('a[',i,',',j,']=');
read(a[i,j])
end;

repeat
write('Введите количество элементов матрицы B, k = ');
read(k)
until (k<20) and (k>0);

writeln('Веедите элементы массива B:');
for i:=1 to k do
begin
Write('b[',i,']=');
read(b[i])
end;

cnt1 := 0;
for j := 1 to m do
begin
if a[1,j] = b[q] then
inc(cnt1);
Надеюсь, для Вас это несложное задание.
Спасибо.
пс - а сдавать завтра

Последний раз редактировалось griignat; 22.11.2011 в 19:25. Причина: заключение программы в теги
griignat вне форума Ответить с цитированием
Старый 22.11.2011, 20:04   #2
griignat
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 2
По умолчанию

к сожалению, уже не могу в название темы вписать, что язык - Паскаль, чтобы всё соответствовало правилам. функция редактирования заголовка отсутствует.
griignat вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск строки, содержащей наибольшее количество пробелов Студент1000 Microsoft Office Word 3 28.05.2011 00:27
суммирование вещ-х элементов одномерного массива... uses_non Паскаль, Turbo Pascal, PascalABC.NET 1 29.04.2011 08:39
Ввести элементы динамического двумерного массива Alexeytur Помощь студентам 1 28.01.2011 10:01
заданиT на обработку элементов одномерного массива Васильева Зинаида Помощь студентам 4 19.11.2010 18:55
Максимальные элементы двумерного массива Jasper92 Общие вопросы C/C++ 0 17.12.2009 15:23