|
1 / 1 / 0
Регистрация: 30.06.2009
Сообщений: 16
|
|||||||||||
Параметр передаваемый в функцию17.08.2009, 12:41. Показов 2067. Ответов 19
Метки нет (Все метки)
Добрый день, уважаемые, посетители форума.
Вот я написал быструю сортировку:
0
|
|||||||||||
| 17.08.2009, 12:41 | |
|
Ответы с готовыми решениями:
19
Ограничен ли буфер, передаваемый в функцию send Выборка из БД: не принимается параметр, передаваемый в представление |
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||
| 17.08.2009, 12:57 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 30.06.2009
Сообщений: 16
|
|
| 17.08.2009, 13:36 [ТС] | |
|
Ну у меня еще как такого предмета ООП не было, будет только в грядущем семестре, дак я самостоятельно еще ток с ним разбираться пытаюсь. Извините, конечно мб не допонял чего, но буду работать. Я просто хотел сделать класс сортировок, и там 4 обменные сортировки как методы. и вот к примеру я создаю класс сорт, задем в самой программе.
создаю объект этого класса ну к примеру sort s(10), и дольше просто хотелось бы вызвать метод какой-нить сортировки, ну вот к примеру, s.quicksort(?,0,9). Вот как-то так
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 17.08.2009, 13:57 | |
|
просто не понятно зачем объект передавать. у тебя Класс будет хранить массив, которые сортировать и методы: методы сортировок - т.е. ты выбираешь каким методом отсортировать. т.е. ты это имел ввиду? я честно говоря не совсем тебя понял.
0
|
|
|
1 / 1 / 0
Регистрация: 30.06.2009
Сообщений: 16
|
|
| 17.08.2009, 14:00 [ТС] | |
|
Так точно, я имел ввиду именно это. Можно написать тупо функции этих сортировок. Но хотелось бы единым классом сделать) вот к примеру я написал bublesort. Он без параметров дак там проблем нету, sort q(10);q.bublesort() и все. А в quicksort надо параметры передавать.
0
|
|
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
|
|
| 17.08.2009, 14:01 | |
|
Классы-это объекты, например матрицы. А сортировка это метод класса, процедура или функция, хотя у вас это вроде одно и то же.
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||
| 17.08.2009, 14:16 | |||||||
|
Добавлено через 6 минут 2 секунды Делается все это приблизительно так:
можно добавить методы для заполнения массива
1
|
|||||||
| 17.08.2009, 14:53 | ||||||||||||||||
|
Monte-Cristo, хочу покритиковать и ваше решение. танцевать будем от потенциального клиента. что ему нужно?
0. у клиента есть массив чего-то (пускай для простоты - целых) известной длины. и он хочет этот массив упорядочить в той же памяти. 1. Forza35 хочет предложить несколько методов, причем сгруппировать их в специальный класс. спрашивается: зачем нам для этой цели нужен вообще объект такого класса? чтоб была возможность вызвать конструктор-деструктор? что и для кого мы собираемся здесь хранить?
считаю лучшим решением - класс с набором статических функций. будет та же эффективность (даже несколько выше), при более простом использовании. т.е.
1
|
||||||||||||||||
|
1 / 1 / 0
Регистрация: 30.06.2009
Сообщений: 16
|
||||||
| 17.08.2009, 14:57 [ТС] | ||||||
|
Спасибо, Monte-Cristo, что ты со мной возишься) Но вот я так и делал как ты предлагаешь, только вот проблема вот в чем(мб я и не допонимаю что-нибудь) в функции main я создам объект типа Csort. а в сортировку мне надо передать объект типа инт(int s[]) но у меня же не будет в главной программе объекта типа int, а будет объект Csort)
вот как будет выглядеть:
Добавлено через 3 минуты 4 секунды Спасибо вам обоим)
0
|
||||||
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||||||||
| 17.08.2009, 15:13 | |||||||||||||
|
novi4ok, критика это хорошо.
Но, позволь возразить: Как вариант, использовать static методы класса. Но это сводится уже к противостоянию структур и классов ( в c++ и те и те поддерживают методы.. да они отличаются спецификатором доступа по-умолчанию, но как правило, программист всегда их задает вручную (чтоб наверняка)). С пространством имен это выглядело бы так:
0
|
|||||||||||||
|
1 / 1 / 0
Регистрация: 30.06.2009
Сообщений: 16
|
|
| 17.08.2009, 15:26 [ТС] | |
|
Спасибо, что натолкнули на идею оба. Monte-Cristo, я просто не видел еще такого как создание пространство имен. Т.е. вот я его задам подключу к программе "using namespace Sorts" и тогда мне просто можно вызвать так:
bubblesort(/*массив пердаем и т.д.*/); quicksort(/*массив пердаем и т.д.*/); shellsort(/*массив пердаем и т.д.*/); Соглашусь, вначале я хотел сделать фигню какую-то) Теперь вроде чуть-чуть понял, сейчас сделал как novi4ok говорил. Сейчас попробую как Monte-Cristo. И не могли бы вы еще помочь, чтоб не создавать отдельную тему. Почему в проекте cоздаю класс а функция swap не работает? в консольном приложении дак работает. Хотя stdlib я подключал Добавлено через 40 секунд у меня Visual studio 2008
1
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|||||||||||||
| 17.08.2009, 15:37 | |||||||||||||
|
в принципе, если сделать как сказал novi4ok - то тогда, ты будешь к функциям тоже ссылаться через спецификатор доступа ::.. т.е. класс::метод но это возможно только для static методов. но нп мое имхо, пространство имен для этих целей и создавалось. ![]() Добавлено через 2 минуты 4 секунды в консольном приложении ты наверное прописывал всегда
0
|
|||||||||||||
|
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 442
|
||||||
| 17.08.2009, 16:41 | ||||||
|
Forza35, мне кажется, вы думаете в обратную сторону.
При объектно-ориентированном подходе, в вашей задаче, надо не в функцию передавать массив, а самому массиву приделать метод, который будет его самого сортировать.
0
|
||||||
| 17.08.2009, 17:04 | |||
|
как дополнение: суть объектно-ориентированного подхода не в том, чтобы на каждый пук написать class{..., а представить в виде иерархии классов (очень важно! иначе все это теряет основное преимущество) сущности предметной области решаемой задачи. а здесь у нас - массив целых, который мы хотим иметь возможность сортировать разными способами. и все!
1
|
|||
|
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 442
|
||
| 17.08.2009, 17:17 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 30.06.2009
Сообщений: 16
|
|
| 18.08.2009, 00:59 [ТС] | |
|
Ну, как я сказал, у меня ООП еще не было. Только будет. А это мне просто про обменную сортировку надо подготовить материал к сентябрю и сделать вообще в Delphi. Но я выбрал C++. Потому, что планирую развиваться в этой области. Еще раз спасибо всем. Сделаю через пространство имен.
Добавлено через 2 часа 39 минут 42 секунды #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <conio.h> #include <ctime> using namespace std; int partition(int s[],int l,int r) { int i=l,j=r,x=s[r]; while(true) { if(i<j) { while(s[i]<x) { i++; } while(s[j]>x) { j--; if(j==l) break; } if(s[i]==s[j]) break; else swap(s[i],s[j]); } else break; } return i; } void quicksort(int s[],int l,int r) { if(l<r) { int med=partition(s,l,r); quicksort(s,l,med-1); quicksort(s,med+1,r); } else return; } class sort { private: int *s; int n; public: sort(int N) { n=N; s=new int[n]; } void qs() { quicksort(s,0,n-1); } void randomize(int maxvalues) { srand(time(NULL)); for(int j=0;j<n;j++) s[j]=rand()%maxvalues; } void show() { for(int j=0;j<n;j++) cout<<s[j]<<" "; } }; int main() { sort q(10); q.randomize(100); q.qs(); q.show(); getch(); return 0; } решил проблему примерно так. Что скажете на такое решение? Но сделаю все равно через namespace. Ток я в проекте windows form не знаю где описывать namespace sort, а как создавать class знаю. Мб подскажете тогда где? у меня Visual studio 2008.
0
|
|
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
||
| 18.08.2009, 09:12 | ||
0
|
||
|
640KB мне хватило на всё.
119 / 50 / 3
Регистрация: 07.06.2009
Сообщений: 442
|
||
| 18.08.2009, 11:53 | ||
|
std::cout<<"Хело волд"; //Тоже объектно ориентированный подход ![]() Нельзя заставлять читать всего Бьярна нашего Страуструпа, понимаете-ли и до конца, прежде чем писать "Здравствуй, Мир!"
0
|
||
| 18.08.2009, 11:53 | |
|
Помогаю со студенческими работами здесь
20
Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр Решение системы уравнений: написать функцию, которая как параметр будет использовать другую функцию Как правильно вызвать функцию с указателем на другую функцию как параметр Передать параметр в функцию Не передается параметр в функцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|