download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Задачка на C++ ...

Автор
Съобщение
anonymous
Пон, 30.05.11, 13:02
Та сестра ми има задачка на C++ и търси помощ.
Компилатор: Code::Blocks 10.05

Трион. Дадено е едно число n и едномерен масив a с n елемента.
Да се намери най-дългата "трионообразна" последователност от елементи в този масив, за който са изпълнени неравенствата
a[i]<a[i+1]>a[i+2]<....>a[i+j]

редактиран от anonymous на 30.05.11 13:03
редактиран от anonymous на 30.05.11 13:03
phrozencrew
Пон, 30.05.11, 18:50

RE: Задачка на C++ ...

” Та сестра ми има задачка на C++ и търси помощ.
Компилатор: Code::Blocks 10.05

Трион. Дадено е едно число n и едномерен масив a с n елемента.
Да се намери най-дългата "трионообразна" последователност от елементи в този масив, за който са изпълнени неравенствата
a[i]<a[i+1]>a[i+2]<....>a[i+j]

По някога бат Гочо е много услужлив :
http://store4.data.bg/realiam/Lekcii/3%20kurs/PrAnKA%20-%20Preslav%20Nakov%20on%20Matador/lekcia_dinamichno_optimirane.doc
Чети от Трионообразна редица надолу.

ПС: Да архивираме файла, че да не хване крака: lekcia_dinamichno_optimirane.doc

редактиран от phrozencrew на 30.05.11 18:51
anonymous
Вто, 31.05.11, 09:03
Работата не стана ясна...
Все пак благодаря, че опита да помогнеш. Сестрата прегледа това, но не можа да го разбере...
phrozencrew
Вто, 31.05.11, 19:17
Предполагам, че се затруднява с четенето на C++ код. И на мен ми е мъгла и обикновено си правя транслация на друг по-разбираем език, като Perl, php или JavaScript, където не се налага да декларираш всичко само за един обикновен тест.
Мисля, че задачката ще стане по-ясна, ако се опита да намери суб-масива (на български е отрязък) с най-дългата последователност от намалящи и нарастващи числа. Някак си е по-разбираемо от тия триони . Ако целта е да се разбере, то това е начина - от лесното към трудното. Даже намерих псевдо код на подобна функция, която обяснява в голяма степен проблема с отрязъците масиви: Longest Increasing Subsequence
kookki
Вто, 31.05.11, 22:32

RE: Задачка на C++ ...

” Мисля, че задачката ще стане по-ясна, ако се опита да намери суб-масива (на български е отрязък) с най-дългата последователност от намалящи и нарастващи числа. „

И аз по този принцип гледам да си правя кода, Пич. Първо съставям ядрото на задачката и после добавям по малко логическите следствия. Така се откриват по-лесно грешките в кода ,а и по не си напрягам мозъка.
Принципно предпочитам да пиша по-дълъг код, който да проследявам лесно, отколкото компактен и завъртян.

Ристич, сестра ти на какво ниво е С-то, че не разбира кода - аз си стоя все още на ниво начинаещ, пък го схванах? Кода може да се напише и само с употреба на цикли и условни проверки, без да се използват функции, макроси и указатели, както е в примера на Недялко.
Според мен е тъпо да учиш код, преди да си схванал принципите на езика. Целта на тия задачки в училище е да се приложи теорията на практика.

anonymous
Сря, 01.06.11, 11:22

RE: RE: Задачка на C++ ...

” И аз по този принцип гледам да си правя кода, Пич. Първо съставям ядрото на задачката и после добавям по малко логическите следствия. Така се откриват по-лесно грешките в кода ,а и по не си напрягам мозъка.
Принципно предпочитам да пиша по-дълъг код, който да проследявам лесно, отколкото компактен и завъртян.

Ристич, сестра ти на какво ниво е С-то, че не разбира кода - аз си стоя все още на ниво начинаещ, пък го схванах? Кода може да се напише и само с употреба на цикли и условни проверки, без да се използват функции, макроси и указатели, както е в примера на Недялко.
Според мен е тъпо да учиш код, преди да си схванал принципите на езика. Целта на тия задачки в училище е да се приложи теорията на практика. „

Сестра ми е в 9-ти клас в паралелка Информатика, ИТ и математика в математическа гимназия и са силно начинаещи. Имат си достатъчно лесни задачи в учебника обаче към него има и приложение с решенията им и учителката решила да им даде задачки от друг сборник. В крайна сметка вчера (крайният срок за предаване на задачите) се оказало, че задачата е нерешима дори от учителката... До колкото разбрах сега сестра ми има ново задание.

boy4o
Сря, 01.06.11, 12:34
Задачката, впрочем е класическа за началните курсове по програмиране, но е и един от най-костеливите орехи в програмирането изобщо. Във фундаменталната "Изкуството на програмирането" Д. Кнут привежда и подробно коментира шест (!) различни варианта с различна степен на ефективност.
 
А в конкретния случай имаме класически пример колко неподходящ е език като С/С++ за начално обучение по програмилане.
phrozencrew
Сря, 01.06.11, 20:07

RE: Задачка на C++ ...

” А в конкретния случай имаме класически пример колко неподходящ е език като С/С++ за начално обучение по програмилане.
Напълно споделям мнението на boy4o. Дори да разгледаме само работата с динамични масиви, което е основополагащо за съвременен код, и количеството писане в C/C++, спрямо по-съвременните езици.
Пример (perl, php):
$arr[]=$element_na_masiva

Означава:
1. Декларирай масива $arr без да го ограничаваш в дължината, т.е. динамичен масив.
2. Добави в динамичния масив елемента $element_na_masiva, което ще промени дължината му с единица. А тая променлива може да се декларира в момента на добавянето.

А пък рязане, свързване, обработка и преобразуване на масивите в python и ruby са направо свръх опростени.
За подобно елементарно нещо в C/C++ ще се счупиш от писане. Но пък писането на C/C++ е свързано с бързодействието на изпълнимото приложение и си има скрита красота. Както и по-горе споменах, според мен в програмирането трябва да се върви от простото към сложното. И колкото повече научаваш, толкова повече ти се иска да се върнеш към корена ... Assembler!

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.