Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку на qbasic, не могу решить задачу с процедурой 
:(
    Опции темы
Trail
Дата 8.6.2012, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.11.2009

Репутация: нет
Всего: нет



Всем привет. Ребят помогите найти ошибку в коде или подскажите как лучше решить.в qbasic первый раз программирую друг попросил решить несколько задачек.

Вот задача: Поиск в каждой строке массива максимального и минимального элемента.

Дело в том что при выходе из процедуры в переменных MIN и MAX записывались данные. 

Код

DECLARE SUB swp (b() AS INTEGER, n AS INTEGER, i AS INTEGER, min AS INTEGER, max AS INTEGER)
DIM a(1 TO 10, 1 TO 10) AS INTEGER
DIM i AS INTEGER, j AS INTEGER
'vvod matricu
CLS
PRINT "vvedite matricu:"
FOR i = 1 TO 3
FOR j = 1 TO 4
INPUT a(i, j)
NEXT j
NEXT i
CALL swp(a(), 4, 1, 0, 0)
CALL swp(a(), 4, 2, 0, 0)
CALL swp(a(), 4, 3, 0, 0)

CLS
PRINT "matrica posle"
FOR i = 1 TO 3
FOR j = 1 TO 4
PRINT a(i, j);
NEXT j
PRINT
NEXT i
PRINT i;
PRINT min;
PRINT max;
END

SUB swp (b() AS INTEGER, n AS INTEGER, i AS INTEGER, min AS INTEGER, max AS INTEGER)
DIM j AS INTEGER
min = b(1, 1)
max = b(1, 1)
FOR j = 1 TO n
IF b(i, j) > max THEN max = b(i, j)
NEXT j
FOR j = 1 TO n
IF b(i, j) < min THEN min = b(i, j)
NEXT j
END SUB




Это сообщение отредактировал(а) Trail - 8.6.2012, 21:01
PM MAIL   Вверх
Trail
Дата 8.6.2012, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 22.11.2009

Репутация: нет
Всего: нет



Решил. Пусть не так хорошо и для олимпиады не прокатит))) Тема закрыта.
Если кому интересно вот код.
Осталась еще одна задачка)
Код

DECLARE SUB swp (b() AS INTEGER, n AS INTEGER, i AS INTEGER, k AS INTEGER, m AS INTEGER)
DIM a(1 TO 10, 1 TO 10) AS INTEGER
DIM i AS INTEGER, j AS INTEGER
'vvod matricu
CLS
PRINT "vvedite matricu:"
FOR i = 1 TO 3
FOR j = 1 TO 4
INPUT a(i, j)
NEXT j
NEXT i
CALL swp(a(), 4, 1, 1, 6)
CALL swp(a(), 4, 2, 2, 6)
CALL swp(a(), 4, 3, 3, 6)
CLS
PRINT "matrica do"
FOR i = 1 TO 3
FOR j = 1 TO 4
PRINT a(i, j);
NEXT j
PRINT
NEXT i

PRINT "MAX MIN"
FOR i = 1 TO 3
FOR j = 6 TO 7
PRINT a(i, j);
NEXT j
PRINT
NEXT i
END

SUB swp (b() AS INTEGER, n AS INTEGER, i AS INTEGER, k AS INTEGER, m AS INTEGER)
DIM j AS INTEGER, k(1 TO 6) AS INTEGER
min = b(1, 1)
max = b(1, 1)
FOR j = 1 TO n
IF b(i, j) > max THEN max = b(i, j)
NEXT j
FOR j = 1 TO n
IF b(i, j) < min THEN min = b(i, j)
NEXT j

b(k, m) = max
m = m + 1
b(k, m) = min

END SUB



Это сообщение отредактировал(а) Trail - 8.6.2012, 22:15
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Добро пожаловать в раздел "Другие языки" форума Vingrad!

Void
Void

Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)

  • Обязательно следуйте правилам Форума.
  • Пожалуйста, прочитайте и следуйте рекомендациям по работе в разделе и навигации по Форуму.
  • Для вставки текстов исходных кодов используйте подсветку синтаксиса из выплывающего списка Код в форме ответа. Если Ваш язык в списке не представлен, то используйте тег: [code=ваш_язык]код[/code], например, [code=ada]код[/code]. Если в будущем подсветка синтаксиса для указанного языка будет реализована, исходный код преобразится.
  • Помните, один вопрос - одна тема.

Приятного времяпрепровождения! С уважением, Void, kemiisto .

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие языки | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.