0

Ну вот, сделал как лучше...

Мне 17, увлекаюсь созданием консольных приложений на c++.
Планирую связать будущую деятельность с программированием.
Недавно сменил школу, получил первую задачу по информатике - написать программу которая делит трехзначное число на цифры и выводит их пользователю в обратном порядке. Вооот...
Честно говоря думал что в 11 классе дадут что-то посерьёзнее.
Написал, протестил - работает. Причём работает не только с трехзначными, но и с другими числами.Пришёл в школу, сдал.Попутно глянул программы одногруппников,и убедился что их программы не трехзначные числа не обрабатывают и падают.
Итоги: у всех 10/10 баллов , а на меня все смотрят как на му*ака, типо я ничего не умею(хотя готов спорить что код не поняла информатичка, несмотря на лаконичность оного, присутствие комментариев и корректные названия переменных. К слову у неё переменные называются a,b,c,d ...x,y,z и т.д. :D ).

Старшее поколение программеров часто ругает молодых — не умеют, не знают. В наши дни единственный шанс чему нибудь научиться — самообразование. А в школе отхождение от шаблона и креативность карается.
Прошу простить за нытьё, но реально сильно зацепило...
7
Автор поста оценил этот комментарий

Код в студию =) Программы в школе оцениваются по тому, работают они или нет (сам код даже не смотрят). Значит, твоя, вероятно, не прошла какой-то тест, ну или действительно слмшком сложную логику показал, а нужно было сделать проще.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

строку в обратном порядке в stringstream, оттуда в int (чтоб число не по частям, а целое было)

Ну а int на вывод пользователю

показать ответы
0
Автор поста оценил этот комментарий

Забей. Иди на codeforces и там участвуй в контестах. Может чего и получится.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Опа, благодарю, кстати там ведь в тренировочном материале есть задачи от KTU. Это ведь Каунасский Технический Университет. В Литве он и VGTU считаются самыми престижными.

Еще раз благодарю.

0
Автор поста оценил этот комментарий

Как я выше сказал, это не было бы решением. Но учитель зарубил бы тебя по другим причинам. Впрочем, и такое «решение» можно провести через учителя, который не считает себя умнее всех и готов слушать. Объяснил бы досконально, как это работает, и почему ты в этом сомневаешься из-за непутёво написанных требований (что делать с не-трёхзначными числами и не-числами?) и я бы поставил тебе пять с плюсом даже за эти три строчки кода.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ладно, прошу прощения, но у нас уже почти 12 ночи, а завтра нулевой урок,рано вставать. Всем огромное спасибо, и поддержали, и нового для себя узнал. Спасибо, ребят!

0
Автор поста оценил этот комментарий

Как я выше сказал, это не было бы решением. Но учитель зарубил бы тебя по другим причинам. Впрочем, и такое «решение» можно провести через учителя, который не считает себя умнее всех и готов слушать. Объяснил бы досконально, как это работает, и почему ты в этом сомневаешься из-за непутёво написанных требований (что делать с не-трёхзначными числами и не-числами?) и я бы поставил тебе пять с плюсом даже за эти три строчки кода.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вы возможно пропустили мой коммент : Это не полная версия кода...Ввод я проверяю на правильность(соответствие критериям).

0
Автор поста оценил этот комментарий

Это вообще не решение. Оно переворачивает любые строки, а надо только трёхзначные числа. Плюс за расширяемость, но в требованиях расширяемости не было, не так ли?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Нет, требовали трёхзначные числа.

0
Автор поста оценил этот комментарий

Функция работающая со строкой будет более универсальна. Поэтому логичней оставить ее "как есть". При необходимости работать с интами можно будет навернуть поверх нее еще одну функцию, а базовую функцию разворота оставить без изменений.


Почитайте про повторное использование кода.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Имеете ввиду вынос в отдельный файл, и использование потом в других проектах через #include ? Или я не о том? 

показать ответы
1
Автор поста оценил этот комментарий

Или такого, ага =)


string instream;

cin >> instream;

cout << string(instream.rbegin(), instream.rend());

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Хотел сначала, за это наверное вообще прибили :)

показать ответы
0
Автор поста оценил этот комментарий

думаю от тебя что-то типа такого хотели


#include <iostream>

int main( )

{

    int i = 0 ;

    std::cin >> i;

    int j = 0;

    while( i ) {

        j = j * 10 + i % 10;

        i /= 10;

    }

    std::cout << j << "\n";

    return 0;

}

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

хотели примерно вот это:

#include <iostream>

int main( )

{

int i,a,b,c = 0 ;

std::cin >> i;

a = i/100%10;

b =i/10%10;

c =i%10;

std::cout << a <<b<<c<< endl;

return 0;

}

у неё примерно так было

показать ответы
0
Автор поста оценил этот комментарий

А если введут не int? Тогда решение сломается, надо отдельно проверять это. А так все выведется, даже с буквами.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это не полная версия кода, я её чуть порезал, чтобы комменты не захламлять. Ввод я проверяю на правильность.

*Оффтоп: а на pikabu что [spoiler][/spoiler] не работает?*

показать ответы
0
Автор поста оценил этот комментарий

c++ уже подзабыл, но тут явно можно все упростить: сразу получать данные в виде строки, а не int. И саму строку пробегать назад. Не понимаю, зачем тут нужны streamы. Здесь видно, что ты тренируешь технологию, но, все-таки, надо сокращать объем кода перед показом на оценку. Чем короче, тем лучше, особенно, если универсальность решения не пострадает.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Выше уже отписал: int - по условию. Да и чтобы потом если что вынести код в функцию, принимающую int, и возвращающую int наооборот

показать ответы
0
Автор поста оценил этот комментарий

Это надо приучить себя писать логи, как можно больше и как можно подробнее, естественно с переключением, чтобы в обычном режиме работы не хламила.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Понятненько. Из комментов почерпнул больше чем на уроке :D

0
Автор поста оценил этот комментарий

Олимпиадные задачи конечно хорошо, для общего развития мозгов, но честно, если в это сильно далеко углубиться, то получится программист - велосипедист, надо объяснять кто это и почему это плохо?)

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Понятно в принципе. Имеете в виду - не закапываться по самые уши и рассматривать что-то более жизненное. Так?

показать ответы
1
Автор поста оценил этот комментарий

Не должна, но падает. И дома, бывает, падают. Но речь об образовании программистов, естественно они постепенно проходят от "Привет мир", до отлаженных программ. Не думаю что в школах сильно интересуются тем падает программа или нет, там главное научить писать хоть что то простенькое. Не думаю что все одноклассники тса так же интересуются данной темой. Если в педагогическом процессе уделять каждому ученику много времени, то не хватит либо 11 лет обучения, либо школ и педагогов.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну я так то из Литвы и у нас 12 классов образование. Но согласитесь, что программа не станет хуже, если я встрою защиту небольшую защиту от дурацких запросов и уменьшу код. Кому хуже будет?

показать ответы
0
Автор поста оценил этот комментарий
программа падать не должна. Никогда.

Да что вы говорите. Простейший случай - отказ оперативной памяти, а ну ка обработайте в программе, которая не просто упадет, а умрет и возможно даже с осью.

А по поводу ТЗ, с "Белым" абсолютно согласен, сказано 3 знака на вход - ожидаем только 3 знака на вход, дали больше - проблемы заказчика, составляйте грамотное ТЗ.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Простите, что влезаю, но все же(представьте что программеры заказчика чуть чуть напортачили и в 1 из миллиарда запросов мы получим злополучные 4 цифры. Такую штуку потом найти и отладить будет жесть)

показать ответы
0
Автор поста оценил этот комментарий

Смысл какой использовать int? 

На вход прилетает строка, на выходе ожидается строка, к чему промежуточные преобразования?


Берем строку со входа;

Проверяем является ли она числом, если нет бросаем исключение;

Для особых педантов - проверяем длину, если не три символа бросаем другое исключение;

В цикле от последнего символа к первому выкидываем на выход по одному символу;

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

int - по условию. Да и чтобы потом если что вынести код в функцию, принимающую int, и возвращающую int наооборот

0
Автор поста оценил этот комментарий

Если реально вштыривает, то могу посоветовать сайт acmp.ru.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо большое, гляну, давно выискиваю и пробую решать вещи такого типа(чтоб практическая база была).

0
Автор поста оценил этот комментарий

А просто строку в цикле пройти от конца к началу не вариант?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это и имелось в виду, цифры отдаются в stringstream, чтобы позже получить int(1 переменную с конечным ответом), а не cout'ить <<string[i]; Поправьте, если где не прав

показать ответы
0
Автор поста оценил этот комментарий
Код в студию всё-таки.
раскрыть ветку (1)
Автор поста оценил этот комментарий

#include <iostream>

#include <sstream>

using namespace std;

int main()

{

int inNumber,rez=0;

string inString;

cout << "Enter your number: ";

cin>>inNumber; //Получаем int

stringstream instream;

instream<<inNumber;

instream >> inString;//Конвертируем в строку

stringstream outstream;

for(unsigned int i =0;(inString.size()-i)>0;i++) //заполняем outstream символами из строки

{

outstream <<inString[inString.size()-i-1]; //Со stringstream у меня пока еще не очень, поэтому тут кривовато.(Добавлено для pikabu)

}

outstream >>rez;

cout << rez<<endl;//Выводим int

return 0;

}

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества