Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
int main()
{
int i,ass,cmpr,sort=2;
int mass[20];
while((sort==1)&&(sort==2)&&(sort==3))
{
cout<<"введите вид сортировки: 1 — шейрная, 2- выбор, 3 — быстрая"<<;
cin>>sort;
for(i=0;in;i++)
{
cout<<"Введите число в массив"<<;
cin>>mass[i];
}
if (sort==1)
{
//пограмма шейкерной сортировки
}
else if (sort==2)
{
//программа сортировки прямым выбором
}
else if (sort==3)
{
// быстрая
}
for (i=0;i<n;i++)
cout<<mass[i]<<;
cout<<"\n";
cout<<ass<<"\n";
cout<<cmpr<<"\n";
}
return 0;
}
Преподаватель по Си это привел как пример лабораторной работы. Замечу, что он утверждал что это Си.
Из особо жестоких особенностей - есть даже логическая ошибка.
А я не понял вот этого вывода непонятно чего после текста. Оно ж вроде компилироваться не должно, потому как переопределенный оператор << не имеет второго аргумента. Или должно? Может, там был << eol; ?
Оно и не компилируется. Во первых по стандарту нужно хотя бы using namespace std; сказать, во вторых conio - не стандартный хедер, да и не используется. В третьих - даже после фикса этих "<<;", всё равно будет криво всё, ибо условие в while веселое.
Код примечателен тем, что был просто переписан с доски на паре под названием "Системное программирование". Притом препод говорил, что это Си.
КтоТо:
я никого не защищаю. но заголовок <iostream.h> это не тоже самое, что <iostream>. Второй требуется стандартом и определяет всё в std. Но первый держат для совместимости с очень старым кодом. И конкретно он не требует использования пространства имён std.
Ну очевидно же, что преподаватель (а может и тот, кто списывал это с доски) в некоторых местах "опечатался" (например, перепутал || с &&, забыл написать '\n' в конце некоторых cout'ов, определить переменную n = 20 и т. п.). Про хэдеры и пространства имён всё уже сказали выше (можно было догадаться, что это борланд 3-ей или 5-ой версии, которые до сих пор очень активно используются в наших говновузах). Так что формально программа корректна (если не быть ЧСВ'шным быдлом и попытаться понять, что же хотел донести автор говнокода). "Из особо жестоких особенностей" я бы отметил только включение не используемых хэдеров и размер встроенного массива, который напрашивался в #define или const size_t. Ну и, быть может, ещё спорную в некоторых аспектах структуру кода демонстрационной программы (я бы, конечно, совершенно по-другому организовал такой пример, но это уже дело вкуса).
P. S. Кстати, по 8-ми пробельным отступам, я могу предположить, что ОП сам ещё тот говнокодер.
Копи-паст из опенофиса. Как опенофис сделал, так и скопипастилось.
Опять же ключевая особенность в том, что преподаватель ведет не Си++, а Си. И о cout не говорил ни слова.
И такие опечатки в его коде - это норма. Ни один из приведенных преподавателем кодов (пока он рассказывал алгоритмы, он приводил примеры на паскале) не работал без фиксов. Ни один из 6-и.
И такие опечатки в его коде - это норма. Ни один из приведенных преподавателем кодов (пока он рассказывал алгоритмы, он приводил примеры на паскале) не работал без фиксов. Ни один из 6-и.
Печально. Куда аттестационная комиссия смотрит? В конце концов, должно же быть у ВУЗа хоть самоуважение, чтобы студенты не смеялись...
Да и по поводу преподавания С. Никаких велосипедов изобретать не надо, потому что уже есть книга Кернигана и Ричи, в которой изложено все, что надо, и ничего лишнего.
[quote=Outdate]
Оно и не компилируется. Во первых по стандарту нужно хотя бы using namespace std; сказать, во вторых conio - не стандартный хедер, да и не используется. В третьих - даже после фикса этих "<<;", всё равно будет криво всё, ибо условие в while веселое.
[/quote]
Ну это просто в старых компиляторах так было. Новые да, не откомпилят.
С преподами, как правило, так дела и обстоят, потому что старые пердуны, а на вопрос про gcc спрашивают "а чё это?". Тем не менее они преподают рассказывают про Си с точки зрения алгоритмитизации. И вообще я считаю, что говновысеры преподов здесь не уместны, так как это вообще отдельная тема (у нас очень хорошо высмеивалась на партах универа). Совет - читать книжки самому, и на экзаменах писать правильно ( синтаксически и логически), в случае можно поспорить с преподом.
P.S. преподы по Си разные бывают, а не только идиоты.
обиженные студенты рассмешили куда больше чем обычный сразу-после школьный код для изучения основ:) вы бы ещё над шрифтами в азбуке глумились, остроумные вы наши
переменная ass - ржака :))
А я не понял вот этого вывода непонятно чего после текста. Оно ж вроде компилироваться не должно, потому как переопределенный оператор << не имеет второго аргумента. Или должно? Может, там был << eol; ?
Пока переменная истина и одновременно ложна…
Код примечателен тем, что был просто переписан с доски на паре под названием "Системное программирование". Притом препод говорил, что это Си.
я никого не защищаю. но заголовок <iostream.h> это не тоже самое, что <iostream>. Второй требуется стандартом и определяет всё в std. Но первый держат для совместимости с очень старым кодом. И конкретно он не требует использования пространства имён std.
gcc 4.3 выдает что такого хедера нет. С ним согласилась VS 2008.
Как можно закинуть файлы с расширением .jpg? Хочу закинуть лабораторные работы по C#
Слей куда-нибудь, сюда ссылки =)
P. S. Кстати, по 8-ми пробельным отступам, я могу предположить, что ОП сам ещё тот говнокодер.
Опять же ключевая особенность в том, что преподаватель ведет не Си++, а Си. И о cout не говорил ни слова.
И такие опечатки в его коде - это норма. Ни один из приведенных преподавателем кодов (пока он рассказывал алгоритмы, он приводил примеры на паскале) не работал без фиксов. Ни один из 6-и.
Печально. Куда аттестационная комиссия смотрит? В конце концов, должно же быть у ВУЗа хоть самоуважение, чтобы студенты не смеялись...
Да и по поводу преподавания С. Никаких велосипедов изобретать не надо, потому что уже есть книга Кернигана и Ричи, в которой изложено все, что надо, и ничего лишнего.
Оно и не компилируется. Во первых по стандарту нужно хотя бы using namespace std; сказать, во вторых conio - не стандартный хедер, да и не используется. В третьих - даже после фикса этих "<<;", всё равно будет криво всё, ибо условие в while веселое.
[/quote]
Ну это просто в старых компиляторах так было. Новые да, не откомпилят.
P.S. преподы по Си разные бывают, а не только идиоты.