0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 50
1

Сумма элементов матрицы, расположенных между первым и последним нулевым элементом

03.05.2015, 15:34. Показов 1508. Ответов 8
Метки нет (Все метки)

Сумма элементов массива, расположенных между первым и последним нулевым элементом
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
sum = 0
    For i = 1 To n
           For j = 1 To m
                     If a(i, j) = 0 Then zfi = i And zfj = j
                     If a(n - i + 1, m - j + 1) = 0 Then zli = n - i + 1 And zlj = m - j + 1
           Next j
    Next i '
    For i = zfi To zli
           For j = zfj To zlj
                     sum = sum + a(i, j)
           Next j
    Next i
    Picture2.Print sum
Помогите пожалуйста. Все время жалуется что нижний индекс вне диапазона
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2015, 15:34
Ответы с готовыми решениями:

Сумма элементов массива, расположенных между первым и последним элементом
#include "stdafx.h" #include <iostream> #include "conio.h" #include <stdio.h> #include...

Сумма элементов, расположенных между первым четным элементом массива и последним
В массиве целых чисел найти сумму элементов, расположенных между первым четным элементом и...

Сумма элементов массива, расположенных между первым и последним положительным элементом
Вычислить сумму элементов массива, расположенных между первым и последним положительными...

Произведение элементов между первым и последним нулевым элементом.
Помогите с программой на C++: В одномерном массиве вычислить произведение элементов, расположенных...

8
15131 / 6405 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
03.05.2015, 20:44 2
В условии задачи написано, что массив двумерный?
0
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 50
03.05.2015, 22:14  [ТС] 3
Да, массив двумерный.
Моя написанная программа работает, но всегда показывает НОЛЬ.
Он походу не знает что должно идти после zfi и zfj

Добавлено через 5 минут
Я сделал так: прокручивая массив с начала и с конца найти ближайшие нули и запомнить их индексы.
Наверное надо создать новый такой же массив и через него работать?
0
15131 / 6405 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
03.05.2015, 22:26 4
Цитата Сообщение от Ilshat8 Посмотреть сообщение
Да, массив двумерный.
Тогда повторю вопрос, на который не получил ответа год назад: Организовать одномерный и двумерный массив в VBA
0
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 50
03.05.2015, 23:28  [ТС] 5
Мне кажется что отсчет в массиве идет как в чтении слева на право, с верху в низ, т.е. 3 картинка

Добавлено через 55 минут
Кроме нуля ничего моя прога показать не может
0
15131 / 6405 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
04.05.2015, 00:10 6
Цитата Сообщение от Ilshat8 Посмотреть сообщение
If a(i, j) = 0 Then zfi = i And zfj = j
Здесь нет синтаксической ошибки, но работает это выражение совсем не так, как Вы предполагаете. Замените на
Visual Basic
1
If a(i, j) = 0 Then zfi = i: zfj = j
Кроме того, при нахождении следующего нулевого элемента zfi и zfj будут изменены, а этого не должно быть.
Проще всего использовать два отдельных цикла для нахождения первого и последнего элемента, и Exit For при первом совпадении.
1
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 50
04.05.2015, 12:25  [ТС] 7
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sum = 0
    For i = 1 To n
           For j = 1 To m
                     If a(i, j) = 0 Then zfi = i: zfj = j:  Exit For
                Next j
    Next i
    
    For i = 1 To n
           For j = 1 To m
    If a(n - i + 1, m - j + 1) = 0 Then zli = n - i + 1: zlj = m - j + 1: Exit For
                Next j
    Next i
    
    For i = zfi To zli
     For j = zfj To zlj
                     sum = sum + a(i, j)
           Next j
    Next i
Добавлено через 1 минуту
А как мне выйти из внешнего цикла?

Добавлено через 2 минуты
Попробую через GoTo

Добавлено через 5 минут
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 sum = 0
    For i = 1 To n
           For j = 1 To m
                     If a(i, j) = 0 Then zfi = i: zfj = j:  GoTo LASTZERO
                Next j
    Next i
    
LASTZERO:
    For i = 1 To n
           For j = 1 To m
    If a(n - i + 1, m - j + 1) = 0 Then zli = n - i + 1: zlj = m - j + 1: GoTo summa
                Next j
    Next i
     
summa:
     For i = zfi To zli
     For j = zfj To zlj
                     sum = sum + a(i, j)
           Next j
    Next i
через GoTo тот же результат((

Добавлено через 1 час 2 минуты
Если дело касается одной строки то работает нормально. А если нули на разных строках то показывает сумму = 0

Добавлено через 24 минуты
Я строки не правильно складываю

Добавлено через 12 минут
Помогите сложить правильно строки
Допусти мне надо сложить: 2 последних элемента 4 строки
всю 5 строчку
и 3 элемента 6 строки
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
04.05.2015, 13:19 8
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Синтаксис своими словами:

1) находим первый ноль, запоминаем его индекс (столбец и строку)
2) находим последний ноль (обратные циклы, step -1), запоминаем его индекс (столбец и строку)
3) Внешний цикл пусть будет по I (столбцы). Начинаем с столбца из 1 пункта по столбец из 2 пункта
во внутреннем цикле по J условие: если не ((I=столбец из пункта 1) и (J <= строка из пункта 1)) тогда
тут еще одно вложенное условие: если не ((I=столбец из пункта 2) и (J => строка из пункта 2)) тогда сум=сум+элемент массива

провожу платные уроки по программированию. научу решать такие задачи, готовлю к контрольным, решаем вместе домашки и т.д, fireday2 собака yandex.ru

При обращении давайте ссылку на вашу тему
1
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 50
04.05.2015, 18:13  [ТС] 9
fireday, Спасибо, сработало все как надо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2015, 18:13
Помогаю со студенческими работами здесь

Сумма элементов матрицы, расположенных между первым максимальным и последним минимальными элементами
как исправить ошибку в Main()? :umnik: Подсчитать сумму элементов, расположенных между первым...

В массиве вычислить сумму элементов, расположенных между первым и последним нулевым
Задача №5. В одномерном массиве А(10) вычислить сумму элементов, расположенных между первым и...

Вычислить сумму элементов массива, расположенных между первым и последним нулевым элементами
Не понимаю как сделать HELP

Найти сумму элементов массива, расположенных между первым и последним нулевым элементами
Кто может улучшить или как-то оптимизировать...:::??? Найти сумму элементов массива, расположенных...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru