CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img

Дописал вроде бы прогу по заданию, но есть сомнения насчёт правильности выполнения второго. Проверьте пж и подправьте, если чет не так

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


Спойлер: "GIST"

RoflanDaniil

Пользователь

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

RoflanDaniil

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

а ты не можешь посчитать вручную и проверить правильно ли считает это твоя программа ?

CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img
RoflanDaniil сказал(а):

а ты не можешь посчитать вручную и проверить правильно ли считает это твоя программа ?

Нажмите, чтобы раскрыть...

могу, но чет не вдупляю как сделать, чтоб он выводил максимум, а не 3 суммы в конце.

тип наибольшую сумму

Chiptun3

Пользователь

Регистрация: 30.05.2013

Сообщения: 858

Рейтинг: 714

Chiptun3

Регистрация: 30.05.2013

Сообщения: 858

Рейтинг: 714

По первому пункту все ок.

Второй нужно переписывать - работает даже близко не так, как написано в задании.

Написано: "Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.",

На практике:

1ая итерация цикла - считает и выводит сумму элементов главной диагоналиroflanPominki.png

2ая итерация цикла - считает сумму элементов 1ой снизу диагонали от главной + последний элемент в 1ой строке roflanPominki.png

3я итерация цикла - считает сумму элементов 2ой снизу диагонали относительно главной + 2 последних элемента в 1ой строке roflanPominki.png

и т.д.


Коржик

Пользователь

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

Коржик

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

Как можно не блевать от синтаксиса этого языка?) извините заранее

Укроп обычный

Пользователь

Регистрация: 24.01.2016

Сообщения: 1328

Рейтинг: 853

Укроп обычный

Регистрация: 24.01.2016

Сообщения: 1328

Рейтинг: 853

Коржик сказал(а):

Как можно не блевать от синтаксиса этого языка?) извините заранее

Нажмите, чтобы раскрыть...

Ну если много указателей нет, то вполне хорошо читается


CloneBoiii~ сказал(а):

могу, но чет не вдупляю как сделать, чтоб он выводил максимум, а не 3 суммы в конце.

тип наибольшую сумму

Нажмите, чтобы раскрыть...

Ну можно 2 переменные создать например

max_sum

max_ index

Каждую итерацию сравнивать с ними, менять если надо


RoflanDaniil

Пользователь

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

RoflanDaniil

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

Коржик сказал(а):

Как можно не блевать от синтаксиса этого языка?) извините заранее

Нажмите, чтобы раскрыть...

C# developer
ах точно у них одинаковый синтаксис только на шарпе нельзя памятью управлять как тебе захочется. Ну и убирать ее не нужно. Ну и приколюх таких как тип данных - указатель на указатель на функцию принимающую аргументом указатель на фию и возвращающий указатель на указатель на фию.
STOP 4TO ладно у всех было или нет ?????????

CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img
Chiptun3 сказал(а):

По первому пункту все ок.

Второй нужно переписывать - работает даже близко не так, как написано в задании.

Написано: "Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.",

На практике:

1ая итерация цикла - считает и выводит сумму элементов главной диагоналиroflanPominki.png

2ая итерация цикла - считает сумму элементов 1ой снизу диагонали от главной + последний элемент в 1ой строке roflanPominki.png

3я итерация цикла - считает сумму элементов 2ой снизу диагонали относительно главной + 2 последних элемента в 1ой строке roflanPominki.png

и т.д.


Нажмите, чтобы раскрыть...

можешь написать правильно?BlessRNG.png

SingularityIsMine

Пользователь

Регистрация: 09.09.2018

Сообщения: 385

Рейтинг: 165

SingularityIsMine

Регистрация: 09.09.2018

Сообщения: 385

Рейтинг: 165

RoflanDaniil сказал(а):

C# developer
ах стоп у них одинаковый синтаксис только памятью нельзя пользоваться на шарпе.
STOP 4TO ?????????

Нажмите, чтобы раскрыть...

Это мамкин девелопер который способен за два месяца сделать полноценный калькулятор!

JDooP

Пользователь

Регистрация: 22.01.2018

Сообщения: 510

Рейтинг: 189

JDooP

Регистрация: 22.01.2018

Сообщения: 510

Рейтинг: 189

img

Мм, вводить 20 в квадрате символов с клавы, фе. Лучше уже случайные числа сделай


Упд. Тупанул, увидел, что ты задаешь n, соре

Коржик

Пользователь

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

Коржик

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

RoflanDaniil сказал(а):

C# developer
ах точно у них одинаковый синтаксис только на шарпе нельзя памятью управлять как тебе захочется. Ну и убирать ее не нужно. Ну и приколюх таких как тип данных - указатель на указатель на функцию принимающую аргументом указатель на фию и возвращающий указатель на указатель на фию.
STOP 4TO ладно у всех было или нет ?????????

Нажмите, чтобы раскрыть...

Для тебя и джава с с# имеют одинаковый синтаксис

nickname123

Пользователь

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

nickname123

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

CloneBoiii~ сказал(а):

Дописал вроде бы прогу по заданию, но есть сомнения насчёт правильности выполнения второго. Проверьте пж и подправьте, если чет не так

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


Спойлер: "GIST"
Нажмите, чтобы раскрыть...

Во втором тебе надо пройтись по всем диагоналям матрицы, параллельным главной и найти их суммы. Насколько я понимаю, последний элемент не считается диагональю (или считается?)

Всего диагоналей в квадратной матрице NxN -> 2N-3 (при условию, что диагональю называется линия, состоящая хотя бы из 2-х элементов), включая главную. Самый простой способ - пройтись по строкам вниз и по столбцам вправо и посчитать эти суммы. Далее найти максимальную.

CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img
nickname123 сказал(а):

Во втором тебе надо пройтись по всем диагоналям матрицы, параллельным главной и найти их суммы. Насколько я понимаю, последний элемент не считается диагональю (или считается?)

Всего диагоналей в квадратной матрице NxN -> 2N-3 (при условию, что диагональю называется линия, состоящая хотя бы из 2-х элементов), включая главную. Самый простой способ - пройтись по строкам вниз и по столбцам вправо и посчитать эти суммы. Далее найти максимальную.

Нажмите, чтобы раскрыть...

я понимаю это всё на словах и визуально, но в код это не понимаю как преобразовать правильно

nickname123

Пользователь

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

nickname123

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

CloneBoiii~ сказал(а):

я понимаю это всё на словах и визуально, но в код это не понимаю как преобразовать правильно

Нажмите, чтобы раскрыть...

Видимо как-то так.(Если я нигде не запутался)

int index = 0, sumr = 0, suml =0;

int b[2*n - 4];

for (int i = 1; i < n-1; i++)
{
for (int j = 0; j < n-i; j++)
{
sumr+=a[i+j][j];
suml+=a[j][j+i];
}
b[index] = sumr;
b[index + 1] = suml;
index+=2;
}

UPD. Если что, то b - это массив с суммами диагоналей (без главной и без краевых элементов)

UPD2. Сейчас подумал, что налажал. Со мной это бывает часто, особенно когда на коленках пишу=) Суммы, конечно же, надо обнулять после каждой итерации)

RoflanDaniil

Пользователь

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

RoflanDaniil

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

Коржик сказал(а):

Для тебя и джава с с# имеют одинаковый синтаксис

Нажмите, чтобы раскрыть...

ну да, ты же в курсе что все они имеют сиподобный синтаксис )

CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img
nickname123 сказал(а):

Видимо как-то так.(Если я нигде не запутался)

int index = 0, sumr = 0, suml =0;

int b[2*n - 4];

for (int i = 1; i < n-1; i++)
{
for (int j = 0; j < n-i; j++)
{
sumr+=a[i+j][j];
suml+=a[j][j+i];
}
b[index] = sumr;
b[index + 1] = suml;
index+=2;
}

UPD. Если что, то b - это массив с суммами диагоналей (без главной и без краевых элементов)

UPD2. Сейчас подумал, что налажал. Со мной это бывает часто, особенно когда на коленках пишу=) Суммы, конечно же, надо обнулять после каждой итерации)

Нажмите, чтобы раскрыть...

чет как-то не так, хз

тип b и sum нужно не так задать, наверное

nickname123

Пользователь

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

nickname123

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

CloneBoiii~ сказал(а):

чет как-то не так, хз

тип b и sum нужно не так задать, наверное

Нажмите, чтобы раскрыть...

что конкретно не так ?

CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img
nickname123 сказал(а):

что конкретно не так ?

Нажмите, чтобы раскрыть...

sum не определён

и в строкеint b[2 * n - 4];

n невозможно использовать как константу

nickname123

Пользователь

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

nickname123

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

CloneBoiii~ сказал(а):

sum не определён

и в строкеint b[2 * n - 4];

n невозможно использовать как константу

Нажмите, чтобы раскрыть...

Ну может компилятор шалит. Вообще, раз ты не пользуешься динамическими массивами, то b можно задать также, как a

int b[400]

Sum в моем коде вообще не фигурирует. Поэтому он и не определен.

Тебе нужна только первая строка

int index = 0, sumr = 0, suml =0;

sum тебе вообще не нужен

CloneBoiii~

Пользователь

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

CloneBoiii~

Регистрация: 03.11.2016

Сообщения: 630

Рейтинг: 374

img
nickname123 сказал(а):

Ну может компилятор шалит. Вообще, раз ты не пользуешься динамическими массивами, то b можно задать также, как a

int b[400]

Sum в моем коде вообще не фигурирует. Поэтому он и не определен.

Тебе нужна только первая строка

int index = 0, sumr = 0, suml =0;

sum тебе вообще не нужен

Нажмите, чтобы раскрыть...

не, чет по-разному попробовал, всё не то. нужно пересмотреть еще как-то

nickname123

Пользователь

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

nickname123

Регистрация: 23.09.2012

Сообщения: 320

Рейтинг: 42

CloneBoiii~ сказал(а):

не, чет по-разному попробовал, всё не то. нужно пересмотреть еще как-то

Нажмите, чтобы раскрыть...

напиши в личку код. Твой код компилируется? Если нет, то напиши список ошибок.

urusai88

Пользователь

Регистрация: 01.11.2018

Сообщения: 3386

Рейтинг: 1113

urusai88

Регистрация: 01.11.2018

Сообщения: 3386

Рейтинг: 1113

Вася ты на гисте хотя бы расширение файла cpp допиши, что бы мы сразу видели разметку а не блевали на моник

Коржик

Пользователь

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

Коржик

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

RoflanDaniil сказал(а):

ну да, ты же в курсе что все они имеют сиподобный синтаксис )

Нажмите, чтобы раскрыть...

Ключевое слово подобный.

Но если бы мне открыли пару месяцев назад джава код, я б его разбирал как черепаха, ток недавно начал разбирать

RoflanDaniil

Пользователь

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

RoflanDaniil

Регистрация: 01.07.2017

Сообщения: 1088

Рейтинг: 352

Нарушения: 1000

Коржик сказал(а):

Ключевое слово подобный.

Но если бы мне открыли пару месяцев назад джава код, я б его разбирал как черепаха, ток недавно начал разбирать

Нажмите, чтобы раскрыть...

и что тут такого ? Языки работают в разных vm и имеют кучу различий в возможностях и стилях написания когда. Джаваскрипт тоже сиподобный но зная java шарп плюсы ты его никогда читать не сможешь в просто огромных различиях и способах выполнения.
Но ты же написал про синтаксис. В скинутом коде только циклы и больше ничего. Разницы в этих вещах вообще нет между сиподобными языками xd. Ладно бы там хаскель был. Можно было бы сказать. КАК вы это читаете ? ????????????????????????????????????????????

Коржик

Пользователь

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

Коржик

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 1000

RoflanDaniil сказал(а):

и что тут такого ? Языки работают в разных vm и имеют кучу различий в возможностях и стилях написания когда. Джаваскрипт тоже сиподобный но зная java шарп плюсы ты его никогда читать не сможешь в просто огромных различиях и способах выполнения.
Но ты же написал про синтаксис. В скинутом коде только циклы и больше ничего. Разницы в этих вещах вообще нет между сиподобными языками xd. Ладно бы там хаскель был. Можно было бы сказать. КАК вы это читаете ? ????????????????????????????????????????????

Нажмите, чтобы раскрыть...

Да плевать, для меня это все синтаксис.

Textwriter a = new Streamwriter

Filewriter a = new Filewriter

Бтв по разному выглядит))))