Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Seyu
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 6

В третьей строке и первом столбце матрицы все числа заменить нулем

08.06.2012, 23:55. Показов 1060. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поставлена задача, в 3 строке и 1 столбце все числа сделать 0.
Допустим я заранее вожу сколько столбцов и каки числа будут.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
CLS
DATA 15,16,17,18
DATA 16,17,29,34
READ A$(J,I)
FOR I=1 TO 4
FOR J=1 TO 2
NEXT I,J
FOR I=1 TO 4
FOR J=1 TO 2 
NEXT j
PRINT A$(J,I);
NEXT I
PRINT
Пробывал изменять через for, но глупо оказалось(у меня не как), что подскажите?)
Или можете код дать, я по примеру сделаю =)
Главное не решайте за меня, иначе не научиться мне.

Добавлено через 4 часа 12 минут
ап ап ап
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2012, 23:55
Ответы с готовыми решениями:

Заменить в третьем столбце все отрицательные элементы нулями, все положительные в 5-й строке их квадратами
Не могу решить. 1.Дан массив R (M, N). Заменить в третьем столбце все отрицательные элементы нулями, все положительные элементы в 5-й...

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

Если в строке или столбце матрицы только одна еденица, то заменить ее нулем
задача: Дана матрица,заполненная нулями и еденицами.Если в строке или столбце только одна еденица,то она заменяеться нулем.Если после этого...

7
369 / 78 / 6
Регистрация: 23.05.2012
Сообщений: 232
09.06.2012, 23:17
Цитата Сообщение от Seyu Посмотреть сообщение
в 3 строке и 1 столбце все числа сделать 0
строк то две всего у тебя в примере - это раз
и во вторых - ты тут ничего и не делаешь с массивом - только выводишь его
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.06.2012, 05:11
Главное не решайте за меня, иначе не научиться мне.
Seyu, дать немного теории?

Добавлено через 1 час 49 минут
Сначала запишем матрицу по человечьи:

Матрица размера m × n состоит в точности из
  • m строк (по n элементов в каждом)
  • и n столбцов (по m элементов в каждом)

Т.к. в памяти компа двухмерный массив c(a, b) размерностью 3 × 3 принимает вид:
Ячейка 1: a = 1, b = 1
Ячейка 2: a = 2, b = 1
Ячейка 3: a = 3, b = 1
Ячейка 4: a = 1, b = 2
Ячейка 5: a = 2, b = 2
Ячейка 6: a = 3, b = 2
Ячейка 7: a = 1, b = 3
Ячейка 8: a = 2, b = 3
Ячейка 9: a = 3, b = 3
Пруф. код
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
DIM a%(2, 2)
   a%(0, 0) = 10
   a%(1, 0) = 22
   a%(0, 1) = 55
DEF SEG = VARSEG(a%(0, 0))
CLS
   PRINT PEEK(VARPTR(a%(0, 0)))
   PRINT PEEK(VARPTR(a%(0, 0)) + 2)
   PRINT PEEK(VARPTR(a%(0, 0)) + 6)
DEF SEG


То разумно будет точно в таком же порядке определять матрицу в памяти.
Т.е. заводим массив: DIM A(кол-во столбцов, кол-во строк)
Проще говоря матрицу вида:

https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}<br />
 1  2  3\\ <br />
 4  5  6\\ <br />
 7  8  9 <br />
\end{pmatrix}

Мы можем записать на Qbasic\QuickBasic так:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 '  Данные для матрицы
DATA 1, 2, 3
DATA 4, 5, 6
DATA 7, 8, 9
 '  Размерность
  CONST m = 3   ' Строк
  CONST n = 3   ' Столбцов
 '  Заводим массив под матрицу
  DIM A(1 TO n, 1 TO m) AS INTEGER
 '  Заполняем матрицу в цикле
  FOR i = 1 TO m
     FOR j = 1 TO n
        READ A(j, i)
     NEXT
  NEXT
Т.о. мы определили матрицу, заполнили её данными и можем с ней работать:
  • Выводить её на экран:
    QBasic/QuickBASIC
    1
    2
    3
    4
    5
    6
    7
    8
    
      '  Очистим экран
    CLS
      '  Вывод матрицы
      FOR i = 1 TO m
         FOR j = 1 TO n
            PRINT A(j, i);
         NEXT: PRINT
      NEXT
  • Менять значение элементов:
    QBasic/QuickBASIC
    1
    2
    
     A(1, 1) = 33  ' Элемент на позиции 1-ой строки 1-го столбца равен 33
     A(2, 3) = 15  ' Элемент на позиции 3-ей строки 2-го столбца равен 15
  • Читать значение элементов(с целью использования для вычислений):
    К примеру посчитаем сумму всех элементов матрицы:
    QBasic/QuickBASIC
    1
    2
    3
    4
    5
    
      FOR i = 1 TO m
         FOR j = 1 TO n
            s = s + A(j, i)
         NEXT
      NEXT
    Или поменять 2 строки местами:
    QBasic/QuickBASIC
    1
    2
    3
    4
    5
    
      s1 = 1  ' Какую строку меняем
      s2 = 3  ' С какой строкой меняем
      FOR i = 1 TO n
         SWAP A(i, s1), A(i, s2)
      NEXT
Работать с матрицами не так сложно как кажется.

Для наглядности и отладки программы мы можем подсвечивать элементы
при выводе матрицы по определённому условию, так мы можем проверить
работоспособность условия.
Допустим нам нужны элементы выше главной диагонали и ниже гл. диаг.:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
  '  Вывод матрицы
  FOR i = 1 TO m
     FOR j = 1 TO n
        COLOR 7
        IF j > i THEN COLOR 10
        IF j < i THEN COLOR 12
        PRINT A(j, i);
     NEXT: PRINT
  NEXT
10 - это ярко зелёный цвет(им подсвечено всё, что выше гл. диагонали)
12 - ярко красный (им подсвечено всё, что ниже гл. диагонали)
Таблица цветов
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15


Т.е. если я вместо IF j > i THEN COLOR 10 напишу IF j > i THEN A(j, i) = 0
то элементы выше главной диагонали будут обнулены, т.е. будут содержать значение 0.

Т.о. мы можем определять необходимые условия и производить обработку данных в матрице.
Добавлено через 2 минуты
P.S: Почему режут мои посты?
Уважаемые админы и модеры, будьте добры, объясните причину...
2
 Аватар для Seyu
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 6
11.06.2012, 21:35  [ТС]
QBasic/QuickBASIC
1
2
 A(1, 1) = 33  ' Элемент на позиции 1-ой строки 1-го столбца равен 33
 A(2, 3) = 15  ' Элемент на позиции 3-ей строки 2-го столбца равен 15
Решение моей задачи как я понял состоит в этом?)
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
12.06.2012, 10:07
Решение моей задачи как я понял состоит в этом?)
Да, в цикле только...
0
 Аватар для Seyu
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 6
16.06.2012, 04:20  [ТС]
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 DATA 5,        6,      7
 DATA 7,        8,      9
 DIM A$(2,3)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             FOR I=1 TO 2         ' Заполнение массива
FOR I=1 TO 2         
   FOR J=1 TO 3
     READ A$(I,J)
 NEXT J,I
 FOR I=1 TO 2
   FOR J=1 TO 3       
    IF A$(I,J)<0 THEN A$(1,3)=0 ' ОШИБКА говорит мне компилятор '
  NEXT J
  PRINT
 NEXT I
 PRINT
NEXT
FOR I=1 TO 2
     FOR J=1 TO 3
        PRINT A$(I,J)
     NEXT J
     PRINT
NEXT I
PRINT
INPUT z
Хелп
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
16.06.2012, 10:25
Это строковый тип данных, т.е. строка символов.
A$
Присваивать строке значение так:
QBasic/QuickBASIC
1
A$ = "Значение"
Но вам как я понимаю нужен числовой тип данных, т.к. вы ставите это условие:
<0
А числовые типы записываются так:
тип Integer:
QBasic/QuickBASIC
1
A%
тип Long:
QBasic/QuickBASIC
1
A&
тип Single:
QBasic/QuickBASIC
1
A!
тип Double:
QBasic/QuickBASIC
1
A#
1
 Аватар для Seyu
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 6
16.06.2012, 18:57  [ТС]
Да все уже сам разобрался, сдал, зачет =))
Большое спасибо за теорию =)

>Quiet Snow<,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.06.2012, 18:57
Помогаю со студенческими работами здесь

Если в строке или столбце матрицы только одна единица, то заменить ее нулем
задача: Дана матрица,заполненная нулями и еденицами.Если в строке или столбце только одна еденица,то она заменяеться нулем.Если после этого...

Заменить все элементы n-го столбца или строки на количество элементов в первом столбце или строке
помогите решить программу.: Дана целочисленая квадратная матрица размером n,заменить все элементы n-го столбца или n-ой строки на...

Заменить все элементы в строке и столбце матрицы на 0, где находится наибольший элемент
1.дан двухмерный массив вещественных чисел размерностью N*M. Заменить все элементы в строке и стобце на 0,где находится наибольший элемент.

Заменить нулем максимальное и минимальное значения в каждом столбце матрицы.
Прошу помогите написать программу в паскале, эта задача вызвала у меня трудности. Дана матрица размером n*m. Найти и заменить нулем...

В каждом столбце матрицы найти минимум и заменить его нулем
по логике как-то так, ругается на метод Chtoto- &quot;не все аргументы возвращают значения...&quot; кто скажет, где ошибка? using System; ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru