С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
1

Определение номеров столбцов матрицы, не содержащих в качестве элемента заданное значение

10.11.2015, 00:13. Показов 1233. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ну в заголовке, в принципе, написано, какую программу надо написать. Вот, написал что-то похожее, но работает она только для матрицы с 2-мя строками. А вот как написать, чтобы она работала с любым кол-вом строк, помогите:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Program Matrix;
var a: array [1..1000,1..1000] of integer;
var i, j, n, m, k: integer;
Begin
Write('Введите число: '); Readln(k);
Write('Введите кол-во строк: '); Readln(n);
Write('Введите кол-во столбцов: '); Readln(m);
for i:=1 to n do 
for j:=1 to m do begin
Readln(a[i,j]);
end;
for i:=1 to n do begin
for j:=1 to m do 
Write(a[i,j]:4);
writeln;
end;
for i:=1 to n do begin
for j:=1 to m do begin
if i>1 then
if (a[i-1,j]<>k) and (a[i,j]<>k) then writeln('Номер столбца без числа ', k, ' = ',j)
end;
end;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.11.2015, 00:13
Ответы с готовыми решениями:

Определение первого из столбцов, не содержащих ни одного отрицательного элемента
Здравствуйте, помогите, пожалуйста, с заданиями... 1. Консольный ввод/вывод целочисленного массива...

Нахождение номеров строк и столбцов и максимального элемента матрицы
задание:Дана матрица целых чисел размером MxN. Найти номера строки и столбца наибольшего...

Найти количество столбцов матрицы, не содержащих нулевого элемента
Дано целочисленную прямоугольную матрицу 1). Количество столбцов, что не содержащих нулевого...

Определить количество столбцов матрицы не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного...

10
охотник
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
10.11.2015, 07:56 2
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

подправил...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Program Matrix;
var a: array [1..1000,1..1000] of integer;
var i, j, n, m, k: integer;f:boolean;
Begin
Write('Введите число: '); Readln(k);
Write('Введите кол-во строк: '); Readln(n);
Write('Введите кол-во столбцов: '); Readln(m);
for i:=1 to n do 
for j:=1 to m do begin
a[i,j]:=random(11);
end;
for i:=1 to n do begin
for j:=1 to m do 
Write(a[i,j]:4);
writeln;
end;
for j:=1 to m do begin
 f:=false;
 for i:=1 to n do if a[i,j]=k then begin f:=true;break end;
 if not f then writeln('Номер столбца без числа ', k, ' = ',j)
end;
end.
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7797 / 4620 / 2831
Регистрация: 22.11.2013
Сообщений: 13,119
Записей в блоге: 1
10.11.2015, 11:50 3
vint-81,
я б еще поправил:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const mn=1000;
var
  a: array [1..mn,1..mn] of Integer;
  i, j, m, n, k: Integer;
begin
  repeat
    Write('Введите кол-во строк, столбцов и число: '); Readln(m,n,k);
  until (m>0) and (n>0) and (m<=mn) and (n<=mn);
  for i:=1 to m do for j:=1 to n do a[i,j]:=random(11);
  for i:=1 to m do for j:=1 to n do Write(a[i,j]:4); WriteLn;
  Write('Столбцы без числа ',k,':');
  for j:=1 to n do begin
    i:=m; while (i>0) and (a[i,j]<>k) do Dec(i);
    if i>0 then Write(' ',j);
  end; WriteLn;
end.
0
охотник
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
10.11.2015, 12:02 4
bormant,
Pascal
10
for i:=1 to m do begin for j:=1 to n do Write(a[i,j]:4); WriteLn end;
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7797 / 4620 / 2831
Регистрация: 22.11.2013
Сообщений: 13,119
Записей в блоге: 1
10.11.2015, 12:08 5
vint-81,
угу.
Акцент на том, что for для поиска значений несколько неуклюж, требует дополнительной переменной, а напрашивающийся вариант вроде
Pascal
1
2
for i:=1 to n do if a[i]=k then Break;
if a[i]=k then ...
разбивается тем, что выход не по Break не гарантирует, что i окажется в диапазоне 1..n, часто вообще указано, что значение счетчика по завершении цикла не определено.
1
1 / 1 / 1
Регистрация: 25.03.2014
Сообщений: 19
10.11.2015, 12:45 6
Цикл ещё вот так можно организовать:
Pascal
1
2
3
4
5
  for j := 1 to n do begin
    i := 1;
    while (i <= n) and (a[i,j]<>k) do i := i + 1;
    if i > n then writeln('Столбцы без числа ', k, ' = ',j);
  end;
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7797 / 4620 / 2831
Регистрация: 22.11.2013
Сообщений: 13,119
Записей в блоге: 1
10.11.2015, 14:18 7
algol,
можно, но сравнение с 0 (или другой константой) немного дешевле, чем с сравнение с переменной.
Правда, для современных процессоров эта разница уже совсем малозначительна.
Assembler
1
2
cmp word ptr i,0
jle loop_out
против
Assembler
1
2
3
mov ax,[i]
cmp ax,[m]
jg  loop_out
0
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
10.11.2015, 20:53  [ТС] 8
Цитата Сообщение от vint-81 Посмотреть сообщение
подправил...
Программа хорошо работает, спасибо большое)
Но вот использование break, конечно, было не желательным, но мой косяк, что не предупредил заранее,а так спасибо))

Добавлено через 1 минуту
Цитата Сообщение от bormant Посмотреть сообщение
vint-81,
я б еще поправил
А вот эта работает наоборот: программа выводит номер столбца в том случае, если оно ЕСТЬ в данном столбце, а надо наоборот))
0
охотник
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
10.11.2015, 21:10 9
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от Alexkiller Посмотреть сообщение
...Но вот использование break, конечно, было не желательным...
можно так:
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Program Matrix;
var a: array [1..1000,1..1000] of integer;
var i, j, n, m, k: integer;f:boolean;
Begin
Write('Введите число: '); Readln(k);
Write('Введите кол-во строк: '); Readln(n);
Write('Введите кол-во столбцов: '); Readln(m);
for i:=1 to n do 
for j:=1 to m do begin
a[i,j]:=random(11);
end;
for i:=1 to n do begin
for j:=1 to m do 
Write(a[i,j]:4);
writeln;
end;
for j:=1 to m do begin
 f:=false;i:=1;
 while (not f)and(i<=n) do 
  begin
   if a[i,j]=k then f:=true;
   inc(i)
  end; 
 if not f then writeln('Номер столбца без числа ', k, ' = ',j)
end;
end.
1
0 / 0 / 1
Регистрация: 05.09.2013
Сообщений: 112
10.11.2015, 21:56  [ТС] 10
Всё, теперь вообще супер, спасибо большое за помощь))
Больше никаких вопросов нет))
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7797 / 4620 / 2831
Регистрация: 22.11.2013
Сообщений: 13,119
Записей в блоге: 1
11.11.2015, 00:27 11
Цитата Сообщение от Alexkiller Посмотреть сообщение
наоборот: программа выводит номер столбца в том случае, если оно ЕСТЬ в данном столбце, а надо наоборот))
Поменяйте условие на "наоборот":
Pascal
14
  if i=0 then Write(' ',j);
0
11.11.2015, 00:27
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.11.2015, 00:27
Помогаю со студенческими работами здесь

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. 1)Надо определить количество столбцов, не содержащих ни...

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного...

Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. 1)Определить количество столбцов, не содержащих ни...

Определить количество столбцов матрицы не содержащих ни одного нулевого элемента
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru