Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/70: Рейтинг темы: голосов - 70, средняя оценка - 4.73
4 / 4 / 1
Регистрация: 18.08.2008
Сообщений: 73

мощный язык программирования

01.07.2009, 22:18. Показов 14687. Ответов 60
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Часто слышу фразу "мощный язык" относительно C++, Java и некоторых других языков программирования. Интуитивно я примерно понимаю что это значит, но был бы вам благодарен за определение (чтоб убедиться, верно ли я понимаю эту фразу).

ЗЫ: Гуглил, искал в википедии. Ничего не нашёл.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.07.2009, 22:18
Ответы с готовыми решениями:

Язык программирования Яр
Разрабатываю полностью русскоязычный язык программирования для профессионального применения (не учебный). Основные достоинства: -...

Универсальный язык программирования
Видел много подобных тем у вас на форуме, но соседняя тема. "С чего начать?" мне не подходит. Год назад я программировал на Visual Basic...

Свой язык программирования
Если бы вы пришли к власти создали свой (безусловно, самый лучший) язык программирования, что бы вы в него включили? Понятно, что нужно...

60
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
25.11.2009, 20:48
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от AlexandrSl Посмотреть сообщение
По моему востребованность C/C++ утихает и переходит к C# и всему с чем связано .Net
И да и нет. В области прикладного программирования - естевственно более востребованы C#-прогеры. В области системного - C/C++ прогеры. Разные назначения, разные специальности.
0
 Аватар для cristaloleg
149 / 50 / 3
Регистрация: 21.12.2008
Сообщений: 960
25.11.2009, 20:49
честно говоря Си шарп(для меня) это Аддон() для Си/Си++
0
 Аватар для AlexandrSl
1 / 1 / 0
Регистрация: 23.11.2009
Сообщений: 17
25.11.2009, 22:40
Цитата Сообщение от RazorQ Посмотреть сообщение
это по вашему
Это всего лишь мое субъективное мнение
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3618 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
25.11.2009, 22:46
cristaloleg, а также Java/J# - тоже аддоны к С/С++?
0
 Аватар для Mecid
684 / 233 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
26.11.2009, 00:18
можно сказать что подобный синтаксис,но не аддоны)
0
Заблокирован
23.05.2011, 16:45
В настоящее время "мощность" языка обеспечивается не собственно языком, а по большей части IDE, для его поддержки.

Чем интеллектуальней/умней IDE для разработки,чем больше удобных средств она предоставляет для разработчика, тем мощнее становиться язык.

Для доказательства сего тезиса я предлагаю вам представить, что Вам придётся писать код венды на C++ в обычном Notepad-е без IDE и всяких вспомогательных утилит. Или вообще карандашиком в обычной бумажной тетрадке.
От этого можно просто застрелиться, даже если сам по себе собственно С++ язык достаточно "мощный" и обладает большими возможностями.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2011, 07:59
Цитата Сообщение от ISergey Посмотреть сообщение
PS. Вся проблема в программисте который не успев написать "Hello World" уже думает какой язык лучше.
Я хэлвод до сих пор не осилил.

Добавлено через 8 минут
Цитата Сообщение от novi4ok Посмотреть сообщение
в принципе то же самое, но средства второго языка позволяют это записать изящнее.
Не описав ни одной переменной? И откуда я, например, знаю, как именно рабортает foreach? Дословно - для всех, эйси. А с инкрементом, или декрементом? А ведь это может иметь значение. На плюсх же я всегда точно знаю направление перебора. Причём, тебе ещё надо создать сам коллекшен. Как в таком стили будет выгялдеть
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (i=n-1; i>0; --i)
{
 for (j=i-1; j>=0; --j)
 {
  if (a[i]<a[j])
  {
   t=a[i];
   a[i]=a[j];
   a[j]=t;
  }
 }
}
, или
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (i=a+n-1; i>a; --i)
{
 for (j=i-1; j>=a; --j)
 {
  if (*i<*j)
  {
   t=*i;
   *i=*j;
   *j=t;
  }
 }
}
? И зачем ты приплёл проверку на NULL? В правильно написанном цикле она заведомо не сработает.

Добавлено через 5 минут
Цитата Сообщение от oxotnik Посмотреть сообщение
мощный ЯП это такой ЯП, в котором средствами самого языка можно реализовать недостающие конструкции, т.е. получается язык с неограниченными возможностями.
То есть язык прогроаммирования, содержащий в себе метаязык? Полноценного искуственного метаязыка пока вроде нет.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
24.05.2011, 09:51
taras atavin, направление перебора характерно не только для плюсов, а вот если вам значение n не известно - то есть сколько элементов в массиве, вы как сделаете перебор элементов с циклом for?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2011, 10:24
Цитата Сообщение от Eugene22 Посмотреть сообщение
n не известно - то есть сколько элементов в массиве,
Этого быть не может, так как в любом массиве всегда известное число элементов, даже, если массив динамический, то на момент перебора текущее число элементов всё равно где то записано и его можно использовать в цикле. А если уж контейнер устроен так, что определить количество его элементов, не перебрав их все не возможно, то всё равно есть достаточно надёжный признак того, что перебраны все элементы: следующий элмент в используемом в данном цикле порядке их перебора не существует, или совпадает с первым. Но и список можно перебирать от последнего элемента к первому, а можно от первоо к последнему и это может иметь значение, например, при здвиге этих элементов. Цикл for вполне с таким условием справляется
C++
1
for (p=List.First; p!=NULL; p=p->Next)
- тот же самый forech для линейного списка, только я точно знаю, что перебирать буду в прямом направлении. А можно в обратном:
C++
1
for (p=List.Last; p!=NULL; p=p->Prev)
. А как задать направление дя forech? И как на forech сделать пузырьковую сортировку? Я знаю, что сортировка эта косая. Но если надо именно её? Или аналогичный перебор нужен не для сортировки?

Добавлено через 6 минут
И for на сях и на плюсах - не цикл со счётчиком, а вообще цикл с двуми операторами и одним условием в заголовке.
C++
1
for (;true;)
- тоже допустимая форма, эквивалентная
C++
1
while (true)
, оба варианта описывают бесконечный цикл. Ну ка сделай его на forech!

Добавлено через 3 минуты
И сделай ка список и дерево на c#! Как они у тебя без указателей вообще получатся? Не можешь? А чего тогда плетёшь про неизвестное n? Ведь только эти контейнеры и характеризуются отсутствием явной информации о числе элементов. И на плюсах циклом for они как раз элементарно обрабатываются.
0
Заблокирован
24.05.2011, 10:37
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну ка сделай его на forech!
forech это дополнительная возможность в Шарпе к существующим, такими же как и в плюсах. Не хочешь - не используй. Так, что твой аргумент не принимается
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2011, 10:51
Дело не в том, что не хочешь - не исспользуй, а втом, что он здесь рекламировался как способ сокращения записи, но при это лукаво опущено создание коллекции. Сделай пузырёк на foreach, там придётся создавать много раз внутри внешненго цикла инаглядно увидишь, что foreach - не плюс, а синтасическая мелочь. Я и без него могу выполнить заранее не известное количество шагов цикла, определяемое явно не заданным количестовм элементов. А вот как на решётке вообще сделать неизвестное на стадии разработки число элементов? Даже динамический массив? И приходим к тому же известному, причём, на стадии разработки числу шагов, откуда ушли, так как, в отличие от while и repeat, foreach может только перебирать элементы. for даже на паскале предназначен для числа шагов, известного на стадлии исполнения, а не разработки.
0
Заблокирован
24.05.2011, 11:01
Цитата Сообщение от taras atavin Посмотреть сообщение
Дело не в том, что не хочешь - не исспользуй, а втом, что он здесь рекламировался как способ сокращения записи
Когда мне надо вывести массив, допустим строк, я всегда использую foreach. А зачем мне париться с
C#
1
for
?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2011, 11:14
Цитата Сообщение от 3G Посмотреть сообщение
А зачем мне париться с
C#
1
for
?
Я и не парюсь, а для любителей особых синтаксисов есть макросы. Например, бывшие пасквилянты могут писать так:
C++
1
2
3
4
5
6
7
8
#define BEGIN {
#define END }
...
int i;
for (i=9; i>=0; --i)
BEGIN
...
END;
вместо
C++
1
2
3
4
5
int i;
for (i=9; i>=0; --i)
{
...
}
. И иногда это используется, но я ни разу не видел и не слышал о маросе foreach, хотя с помощью макросов на плюсах можно даже писать, как на эзотерическом языке.

Добавлено через 3 минуты
А для вывода ограниченного, или динамического масссива плюсовики обходятся вообще всего одним оператором <<, или одним методом output (по задаче и вкусу). И сортировка тоже один метод и никаких гвоздей.
0
Заблокирован
24.05.2011, 11:39
Цитата Сообщение от taras atavin Посмотреть сообщение
А для вывода ограниченного, или динамического масссива плюсовики обходятся вообще всего одним оператором <<, или одним методом output (по задаче и вкусу). И сортировка тоже один метод и никаких гвоздей.
C#
1
2
3
            Random r = new Random();
            int[] N = Enumerable.Repeat(0, 15).Select(x => r.Next(-10, 21)).ToArray();
            Console.WriteLine(string.Join(" ", N.Select(x => x.ToString()).ToArray()));
Динамически создал и вывел. Может быть сделаешь так на плюсах?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2011, 11:58
Был бы класс, а обращение к нему будет выглядиеть так:
C++
1
2
3
4
5
6
int n;
IntArray a;
std::cin>>n;
a.ReSize(n);
a.Radomize();
std::cout<<endl<<a<<endl;
, а вот у тебя я что то не вижу числа элементов, задаваемого в рантайме. Я, кстати, могу и много раз менять число элементов одного и того же массива. А на решётке ты как это сделаешь? У меня четыре строки, из них одна - ввод числа элементов (две не считаем, так как ты опустил декларацию данных), а ты задачу вообще не решаешь. И показываешь совсем не то. Покажи реализацию класса. На плюсах так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class IntArray
{
 protected:
  int *data;
  unsigned int count;
 public:
  IntArray ()
  {
   data=NULL;
   count=0;
  }
  ~IntArray ()
  {
   if (data) // Даже здесь нет !=NULL
   {
    delete [] data;
   }
  }
 void ReSize (unsigned int n)
 {
  if (data) // Даже здесь нет !=NULL
  {
   delete [] data;
  }
  data=new int [n];
  if (data)
  {
   count=n;
  }
  else
  {
   count=0;
  } 
 }
 void Randomze ()
 {
  int *p;
  for (p=data+count-1; p>=data; --p) // count пока не известно, но циклу for это не мешает, как дойдёт до исполения, будет известно
  {
   *p=rand();
  }
 }
 int & operator [] (unsigned int i)
 {
  return data[i];
 }
 operator unsigned int ()
 {
  return count;
 }
 friend ostream &operator (ostream &s, IntArray &x)
 {
  int *p, *e;
  for (e=data+count-1, p=data; p<=e; ++p) // count пока не известно, но циклу for это не мешает, как дойдёт до исполения, будет известно
  {
   s<<*p<<endl;
  } 
 }
 return s;
};
. Каких то жалких 60 строк. А ты сможешь вообще?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
24.05.2011, 12:02
Цитата Сообщение от 3G Посмотреть сообщение
Динамически создал и вывел. Может быть сделаешь так на плюсах?
C++
1
2
3
4
5
int random_n (){ return (rand()%100); }
. . .
    vector<int> myvector(15);
    generate (myvector.begin(), myvector.end(), random_n);
    copy(myvector.begin(), myvector.end(), ostream_iterator<int>( cout, " " ));
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
24.05.2011, 12:05
Цитата Сообщение от taras atavin Посмотреть сообщение
сделай ка список и дерево на c#! Как они у тебя без указателей вообще получатся
Вообще то я уже делал и список и дерево и на шарпе и на vb net - так как платформа net даже в рамках управляемого кода предоставляет возможности для создания таких структур данных.
Кроме того, в шарпе я могу использовать те же самые указатели в рамках unsafe кода и построить те же самые структуры.

foreach - намного удобнее, конечно, коллекции имеют свойство Count, массивы свойство Length - они не всегда могут помочь
Например, попробуем перебрать все элементы словаря (Dictionary)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 //Объявим сам словарь и добавим в него два элемента
            Dictionary<double, string> dic = new Dictionary<double, string>();
            dic.Add(4.5, "4");
            dic.Add(5.5, "5");
            
            //перебор элементов словаря
            foreach (double i in dic.Keys)
            {
                Console.WriteLine(dic[i]);
            }
 
            //а теперь то же с циклом for
            //....
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.05.2011, 12:14
Цитата Сообщение от Eugene22 Посмотреть сообщение
Вообще то я уже делал и список и дерево и на шарпе и на vb net - так как платформа net даже в рамках управляемого кода предоставляет возможности для создания таких структур данных.
Ссылку в студию.

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
//Объявим сам словарь и добавим в него два элемента
            Dictionary<double, string> dic = new Dictionary<double, string>();
            doube i; // Я просто не люблю декларировать переменные непосредственно в заголоках цилов, но так и на плюсах можно
            dic.Add(4.5, "4");
            dic.Add(5.5, "5");       
            //перебор элементов словаря
            for (i=dic.First(); i<=dic.Last(); i=dic.Next(i))
            {
             std::cout<<dic[i];
            }
Добавлено через 3 минуты
Причём, если бы не то, что использвоание foreach на решётке объясняется тупым упиранием в то что на хорошем языке есть же такой оператар, значит он удобен, а то, что решётка - хороший язык, аргументируется существованием якобы удобного оператора foreach, то и на плюсах здесь был бы макрос, подобный foreach.
0
Заблокирован
24.05.2011, 12:16
Цитата Сообщение от taras atavin Посмотреть сообщение
Я, кстати, могу и много раз менять число элементов одного и того же массива. А на решётке ты как это сделаешь?
C#
1
2
int[] arr = new int[4]; // размер 4
Array.Resize(ref arr, 10); // сделали размер 10
Доволен
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
24.05.2011, 12:18
Цитата Сообщение от Eugene22 Посмотреть сообщение
foreach - намного удобнее, конечно, коллекции имеют свойство Count, массивы свойство Length
Итераторы есть и в плюсах, поэтому в плане foreach никакого преимущества у шарпа нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2011, 12:18

Какой язык программирования лучше? (3)
Продолжение темы

Самый худший язык программирования?
Какой, по-вашему мнению самый худший язык программирования и главное почему? Начну с себя. Самый ужасный javascript, из-за его...

Язык программирования для Backend
Здравствуйте. Халивар неизбежен, однако, мне следует задать этот вопрос. Что сейчас лучше использовать для Backend? Конкретнее: 1)...

Какой язык программирования лучше? (2)
Продолжение темы. Начало

Какой язык программирования лучше?
Какой на ваш взгляд самый универсальный(т.е. одинаково хорош во всех сферах программирования: веб, приложения и т.д.), лучший?


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru