Важная информация
Показано с 1 по 4 из 4

Тема: Помогите исправить код программы

  1. #1 Помогите исправить код программы 
    Новичок
    Регистрация
    17.02.2011
    Сообщений
    17
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Код :
    CLS
    PRINT TAB(25); "Нахождение максимальной суммы абсолютных",
    PRINT TAB(25); "значений элементов двумерного массива по столбцам"
    PRINT
    PRINT
     
    DIM a(30, 30) 'массив
    PRINT "Определение размерности массива"
    DO
    f = 0
    INPUT "Введите высоту:", nx
    IF nx <> INT(nx) OR nx <= 0 THEN PRINT "Число должно быть положительным и целым": f = 1
     
    LOOP UNTIL f = 0
     
    DO
    f = 0
    INPUT "Введите длинну:", ny
    IF ny <> INT(ny) OR ny <= 0 THEN PRINT "Число должно быть положительным и целым": f = 1
     
    LOOP UNTIL f = 0
     
    ' выводим массив
    PRINT "Заполнение массива:"
    y = 0
    x = 0
    FOR i = 1 TO nx
    x = x + 1
      FOR j = 1 TO ny
    y = y + 1
    IF ny < y THEN y = 1
    PRINT "Введите ("; x; ","; y; ") элемент:";
    INPUT "", a(i, j)
    NEXT j
     PRINT
    NEXT i
    PRINT "Исходный массив:"
    FOR i = 1 TO nx
      FOR j = 1 TO ny
      PRINT a(i, j);
      NEXT j
      PRINT
    NEXT i
     
    PRINT
    PRINT "Суммы абсолютных значений элементов по столбцам:"
    FOR j = 1 TO ny
      s = 0
      FOR i = 1 TO nx
        s = s + ABS(a(i, j))
      NEXT i
      PRINT s;
     
      IF (j = 1) THEN
        smax = s
      ELSE
        IF (s > smax) THEN
          smax = s
        END IF
      END IF
    NEXT j
    PRINT
    PRINT "Максимальная сумма абсолютных значений элементов по столбцам:"
    PRINT smax

    Для правильной работоспособности программы нужно чтобы на экран выводилась абсолютная сумма по каждому столбцу(с номером столбца) и абсолютная сумма с номером столбца
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Вот, если я правильно понял . Также подправил циклы при объявлении массива.
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ](25); "Нахождение максимальной суммы абсолютных",
    [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ](25); "значений элементов двумерного массива по столбцам"
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Определение размерности массива"
    DO
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите высоту:", NX
        IF NX < 1 [Ссылки могут видеть только зарегистрированные пользователи. ] NX > 30 THEN [Ссылки могут видеть только зарегистрированные пользователи. ] "Число должно быть в диапазоне [1..30]"
    LOOP WHILE NX < 1 [Ссылки могут видеть только зарегистрированные пользователи. ] NX > 30
    DO
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите длину:", NY
        IF NY < 1 [Ссылки могут видеть только зарегистрированные пользователи. ] NY > 30 THEN [Ссылки могут видеть только зарегистрированные пользователи. ] "Число должно быть в диапазоне [1..30]"
    LOOP WHILE NY < 1 [Ссылки могут видеть только зарегистрированные пользователи. ] NY > 30
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] A(NX, NY) 'массив
     
    ' выводим массив
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Заполнение массива:"
    Y = 0
    X = 0
    FOR I = 1 TO NX
      X = X + 1
      FOR J = 1 TO NY
    Y = Y + 1
    IF NY < Y THEN Y = 1
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Введите ("; X; ","; Y; ") элемент:";
    [Ссылки могут видеть только зарегистрированные пользователи. ] "", A(I, J)
    NEXT J
     [Ссылки могут видеть только зарегистрированные пользователи. ]
    NEXT I
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Исходный массив:"
    FOR I = 1 TO NX
        FOR J = 1 TO NY
            [Ссылки могут видеть только зарегистрированные пользователи. ] A(I, J);
        NEXT J
        [Ссылки могут видеть только зарегистрированные пользователи. ]
    NEXT I
     
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    SMax = 0: SN = 0: Flag = 0
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Суммы абсолютных значений элементов по столбцам:"
    FOR J = 1 TO NY
        S = 0
        FOR I = 1 TO NX
            S = S + [Ссылки могут видеть только зарегистрированные пользователи. ](A(I, J))
        NEXT I
        IF S = SMax THEN Flag = 1
        IF S > SMax THEN
            SMax = S
            SN = J
            Flag = 0
        [Ссылки могут видеть только зарегистрированные пользователи. ] IF
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Столбец"; J; "; Сумма: "; S
    NEXT J
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    IF Flag = 0 THEN
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Максимальная сумма абсолютных значений элементов по столбцам:"
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Столбец"; SN; "; Сумма: "; SMax
    ELSE
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Нет абсолютно максимальных элементов по столбцам"
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    Последний раз редактировалось Абадябер; 10.05.2011 в 18:51. Причина: Исправил программу согласно пожеланиям ;)
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    17.02.2011
    Сообщений
    17
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    А вот если максимальная сумма столбцов будет одинакова 2-х из 3
    , то может лучше вывести собщение что "Нет абсолютно максимальных элементов по столбцам"
    Ответить с цитированием  
     

  4. #4  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Смотрите сами. Все что потребовалось сделать - это ввести еще одну переменную - флаг. И в нужном месте добавить проверку условия.
    Программу обновил в верхнем сообщении.
    Дружба-магия-радость!
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Повтор программы HELP
    от Reimon в разделе QBasic
    Ответов: 2
    Последнее сообщение: 22.05.2012, 15:34
  2. Ребят, помогите понять суть программы.
    от gernsback в разделе Turbo Pascal
    Ответов: 9
    Последнее сообщение: 14.03.2012, 03:21
  3. Циклические программы
    от sanchez6666 в разделе QBasic
    Ответов: 7
    Последнее сообщение: 05.12.2011, 21:01
  4. Программы на СТЕПЛЕРе
    от Kakos_nonos в разделе Степлер
    Ответов: 4
    Последнее сообщение: 01.12.2011, 04:20
  5. Ответов: 3
    Последнее сообщение: 05.03.2011, 23:46
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •