Змінюй хід війни! Допомагай ЗСУ!

Помогите решится

  • Автор теми Автор теми pyzo90
  • Дата створення Дата створення
Составьте пожалуйста программу вот условие: "Дан массив {5 8 12 0 4 15} нужно составить программу с добавлением ещё одного элемента в массив. ПОМОГИТЕ ПОЖАЛУЙСТА=)
Код:
var
  mas: Array of Integer;
begin
  SetLength(mas,6);
  mas[0]:=5;
  mas[1]:=8;
  mas[2]:=12;
  mas[3]:=0;
  mas[4]:=4;
  mas[5]:=15;

  SetLength(mas,High(mas)+2);
  mas[High(mas)]:=NewValue;
end;

А если на С++ то:
Код:
#include <malloc.h>
..............
int *mas;
    
    mas=(int *)malloc(6*sizeof(int));
    mas[0]=5;
    mas[1]=8;
    mas[2]=12;
    mas[3]=0;
    mas[4]=4;
    mas[5]=15;

    realloc(mas,7*sizeof(int));
    mas[6]=10;
 
Останнє редагування:
А если на С++ то:
Код:
#include <malloc.h>
..............
int *mas;
    
    mas=(int *)malloc(6*sizeof(int));
    mas[0]=5;
    mas[1]=8;
    mas[2]=12;
    mas[3]=0;
    mas[4]=4;
    mas[5]=15;

    realloc(mas,7*sizeof(int));
    mas[6]=10;
ниче не перупатал? ++ не лишние нарисовал?
Программа на С++ выглядит так:
Код:
#include <vector>
..............
    std::vector<int> mas(6);
    
    mas[0]=5;
    mas[1]=8;
    mas[2]=12;
    mas[3]=0;
    mas[4]=4;
    mas[5]=15;

    
    mas.push_back(10);
 
ниче не перупатал? ++ не лишние нарисовал?
Ну и что? А в С++ классы обязательно использовать?
Может даже вызовы WinAPI ты переделал под классы и используешь.
Если код у меня на DevC++ запустился значит для С++ тоже подходит.
 
Ну и что? А в С++ классы обязательно использовать?
Может даже вызовы WinAPI ты переделал под классы и используешь.
Если код у меня на DevC++ запустился значит для С++ тоже подходит.
Мало ли что подходит? Практически любую си программу можна собрать под С++. Программы на С++ от програм на С как раз и отличает, кроме самописного прменения ООП, использование высокоуровневых решений стандартных библиотек С++, если таковые имеються для кокретного случая.
 
Мало ли что подходит? Практически любую си программу можна собрать под С++. Программы на С++ от програм на С как раз и отличает, кроме самописного прменения ООП, использование высокоуровневых решений стандартных библиотек С++, если таковые имеються для кокретного случая.

Полный маразм. В тулет исключительно с GPS-навигатором ходишь?

Вот какого х..я я должен использовать STL? Может мне boost больше нравится? Да и вообще, зачем создавать без надобности лишние зависимости?
 
Полный маразм. В тулет исключительно с GPS-навигатором ходишь?
Вот какого х..я я должен использовать STL? Может мне boost больше нравится? Да и вообще, зачем создавать без надобности лишние зависимости?

И что же их по вашему отличает? :D
Еще можно у первоисточника, тобишь Страуструпа, прочесть в чем различие С++ и С программ. ;)
Буст не являеться стандартным средством языка. Ну хотя бы за тем, что вставка элемента в массив решаеться одной строкой.
И наконец - что общего с С++ у программы которая использует маллок и реалок, и вообще не использует ни одно свойства языка С++
 
Я не про отличия. Я про то, что не обьязательно использовать чужие велосипеды без лишней необходимости.
 
Я не про отличия. Я про то, что не обьязательно использовать чужие велосипеды без лишней необходимости.

Ну во первых даже в такой простой задаче эфективность СТЛ налицо: отсутствует необходимость заниматься мемори мэнеджментом, процедура вставки короче на 50%.
Во вторых, там выше как раз и было написано, что приведенная програма написана на чистом С, а не на С++
 
А ты знаешь с какой целью вопрос ставился? Может штрих хочет разобраться как работать с памятью? Или ты думаешь, что в бурситетах STL преподают? То что она короче не значит, что эффективнее.

Или, может, ты думаешь, что ему STL нужен. Что-то мне подсказывает, что ему нужно сдать лабу и забыть про этот кошмар.
 
А ты знаешь с какой целью вопрос ставился? Может штрих хочет разобраться как работать с памятью? Или ты думаешь, что в бурситетах STL преподают? То что она короче не значит, что эффективнее.

Или, может, ты думаешь, что ему STL нужен. Что-то мне подсказывает, что ему нужно сдать лабу и забыть про этот кошмар.

Мало ли какой вопрос ставился, приведенный выше код был написан на С, а не на С++, об этом я и написал.
По поводу СТЛ - ее неприменение оправдано только в кретических точках кода, в остальных случаях преимущества, кторое дает ее применение, а именно простота и надежность кода, а так же его портируемость, с лихвой окупает незначительный проигрыш в производительности, если таковой и имееться.
 
Код из примеров OpenCL NVidiaSDK oclVectorAdd.cpp
Код:
srcA = (void *)malloc(sizeof(cl_float) * szGlobalWorkSize);
Фірма віників не в'яже ;)
 
С чего ты взял, что написано на языке С, а не С++? C++ поддерживает парадигмы процедурного и объектно-ориентированного программирования.
 
Код из примеров OpenCL NVidiaSDK oclVectorAdd.cpp
Код:
srcA = (void *)malloc(sizeof(cl_float) * szGlobalWorkSize);
Фірма віників не в'яже ;)

И что? new тоже реализован через малок, а малок через системное апи.
Вот только в сях используют маллок, в с++ нью, и только в кретических местах применяеться системное апи. Я уж молчу апо то, что применение маллока в с++ плохой тон, ибо маллок с ооп не дружит и их совместное применение добром не завершаеться.

С чего ты взял, что написано на языке С, а не С++? C++ поддерживает парадигмы процедурного и объектно-ориентированного программирования.

Почитай страуструпа, у него целое приложение посвящено этому вопросу, кажись.
 
Ну-ну. new вызывает конструктор вообще-то. Не пори чушь по поводу malloc. Или как ты со строками предлагаешь работать?

Так что? На С++ нельзя писать в процедурном стиле без использования классов?
 
Ну-ну. new вызывает конструктор вообще-то. Не пори чушь по поводу malloc. Или как ты со строками предлагаешь работать?

Ну спасибо КО, вот, в частности, потому что маллок не вызывает конструктор его применение в С++ плохой тон. В С++ для строк нада применять std::string, на худой конец массив чаров, аллоцированых нью.
 
О да. Ты сам говорил, что если у программиста руки из жопы растут, то это надолго...

Так что? На С++ нельзя писать в процедурном стиле без использования классов?
 
О да. Ты сам говорил, что если у программиста руки из жопы растут, то это надолго...
ВОт поэтому СТЛ и предпочтительней, ее применение позволяет решить достаточно много проблем, связанных с руками из жопы ;)
 
Не станет, не переживай.
 
ВОт поэтому СТЛ и предпочтительней, ее применение позволяет решить достаточно много проблем, связанных с руками из жопы ;)

заменив их другими

можно, но это будет уже си и смысл в c++ компиляторе отпадет :)

не любую программу на це можно скомпилировать в цепепе. простейший пример:

Код:
andrey@evilhorse ~ $ cat test.c
void main() {
    return;
}
andrey@evilhorse ~ $ gcc test.c
test.c: В функции ‘main’:
test.c:1: предупреждение: возвращаемое значение функции ‘main’ - не ‘int’
andrey@evilhorse ~ $ cp test.c test.cpp
andrey@evilhorse ~ $ g++ test.cpp
test.cpp:1: ошибка: ‘::main’ должна возвращать ‘int’
test.cpp: In function ‘int main()’:
test.cpp:2: ошибка: return без значения в функции, возвращающей ‘int’
andrey@evilhorse ~ $

в стандарте цепепе отдельный раздел посвящен совместимости с це.
 
Назад
Зверху Знизу