IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Номер строки с минимальным числом элементов
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Дана матрица NxN.
Помогите вывести номер строки с минимальным число элементов что равны заданному (заданое число вводит пользователь)
Итак, у меня выводит n строк и количество элементов и напротив каждой строки, как вывести лишь минимальную строку?
Вот что наработал:

program matryca;
uses crt;
const nmax=1000;
label 25;

var Matr:array[1..nmax,1..nmax] of integer;
Vec:array[1..nmax] of integer;
n,m,i,j,k,l,min : integer;

begin
25:
write ('Введите количество строк в матрице:');
readln (m);
write ('Введите количество столбцов в матрице:');
readln (n);
if m<>n then begin writeln('Матрица должна быть квадратная! ! !');goto 25; end;


// Ввод матрицы

writeln(' ');
writeln(' -------------------- ');
writeln(' Ввод матрицы ');
writeln(' -------------------- ');
writeln(' ');

for i:=1 to n do
for j:=1 to m do begin

write ('Введите элемент матрицы A(',i,';',j,'):');
readln (Matr[i,j]);
end;

// Вывод матрицы

for i:=1 to n do begin
write('(',i,'-я строка) ');
for j:=1 to m do
write(Matr[i,j],' ');
writeln;
end;

// Введення числа


write('Введите число: ');
read(k);

for i:=1 to n do begin vec[i]:=0;
for j:=1 to m do begin

if k=matr[i,j] then vec[i]:=vec[i]+1
end;


end;

for i:=1 to n do begin
write('Количество введенных пользователем символов в ', i,'-й строчке: ', vec [i]);
writeln;
end;

end.

P.S:Делал на PascalABC
dry.gif dry.gif dry.gif


Прикрепленные файлы
Прикрепленный файл  obch_prak_24.rar ( 664 байт ) Кол-во скачиваний: 158
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
как вывести лишь минимальную строку?
Во втором массиве найди индекс минимального значения. Этот индекс будет номером нужной строки в матрице

Добавлено через 4 мин.
а зачем тебе матрица 1000*1000 элементов? Если матрица квадратная, зачем вводить кол-во строк и столбцов? И лучше убрать goto...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Цитата(Client @ 3.03.2010 17:49) *

а зачем тебе матрица 1000*1000 элементов? Если матрица квадратная, зачем вводить кол-во строк и столбцов? И лучше убрать goto...

Я думаю не имеет значения какого размера матрица ... а на счет goto, каким образом проверить матрица квадратная, мне преподаватель введет другую матрицу (не квадратную) а у меня не будет проверки на квадратную матрицу и преподаватель мою прогу не примет: (
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


wrilte('Введите размер матрицы');
readln(n);
N-размер, т.е. у тебя будет матрица N*N. Что тут проверять?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Цитата(Client @ 3.03.2010 18:14) *

N-размер, т.е. у тебя будет матрица N*N. Что тут проверять?

Немогу с тобой несогласитса, но у меня такой преподаватель что он скажет что за хрень и т.д. ,сделай проверку на то что матрица действительно квадратная
Так било в 1-м семестре mega_chok.gif mega_chok.gif

Подскажи как найти индекс минимального элемента (выдели код где именно искать)

Сообщение отредактировано: REC0N -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


min:=1;
for i:=2 to n do if vec[i]<vec[min] then min:=i;

В min будет нужный индекс

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Цитата(Client @ 3.03.2010 18:38) *

min:=1;
for i:=2 to n do if vec[i]<vec[min] then min:=i;

В min будет нужный индекс

Спасибо помог smile.gif smile.gif smile.gif good.gif good.gif good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
а на счет goto, каким образом проверить матрица квадратная
Легко:

repeat
write ('Введите количество строк в матрице:');
readln (m);
write ('Введите количество столбцов в матрице:');
readln (n);
if m<>n then writeln('Матрица должна быть квадратная! ! !');
until m = n;
GoTo выбросилось.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Цитата(volvo @ 3.03.2010 18:54) *

Легко:

repeat
write ('Введите количество строк в матрице:');
readln (m);
write ('Введите количество столбцов в матрице:');
readln (n);
if m<>n then writeln('Матрица должна быть квадратная! ! !');
until m = n;
GoTo выбросилось.

Спасибо good.gif good.gif good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Можете объяснить почему ми начинаем цикл с i:=2?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


экономим 1 итерацию - зачем сравнивать первый элемент с самим собой smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской
Реальное имя: Миша

Репутация: -  0  +


Цитата(Client @ 3.03.2010 22:10) *

экономим 1 итерацию - зачем сравнивать первый элемент с самим собой smile.gif

СПС good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 1:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name