какую программу написать начинающему программисту

10 лучших идей C++ проекта для начинающих

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Самая популярная IDE для C++, Visual Studio используется практических во всех проектах. Вы также можете писать свои программы и в текстовом редакторе, например в блокноте, и компилировать проект с помощью компилятора GCC.

Некоторые характерные особенности C++:

Как вам помогут эти проекты?

Чтобы попрактиковаться в изучении C++, вы можете выполнять множество проектов от простого до продвинутого. Каждый из этих проектов научит вас чему-то новому, чтобы вы были знакомы с наиболее важными темами, которые всегда будут вам полезны при создании реальных проектов.

1. Система входа и регистрации

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

Если пользователя не существует, при входе в систему будет показана ошибка. Вы также узнаете, как использовать Visual Studio для создания простого проекта.

2. Система аренды автомобилей

Это популярный проект, который очень полезен для изучения событий клавиатуры, функций даты и времени и реализации системы входа на C++. В программе есть отдельные меню для администратора и других пользователей.

Существуют также методы расчета стоимости проезда на основе времени и расстояния, включая отображение сведений об автомобиле, доступности и т.д.

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

3. Система инвентаризации книжного магазина

Это простой проект, в котором система поддерживает хранение книг в книжном магазине. Если клиент покупает книгу, количество книг уменьшится; если добавляется книга, то же самое обновляется. Обратите внимание на использование указателей.

Вы можете изменить код, чтобы добавить идентификатор книги и выполнить поиск на основе идентификатора книги или выполнить поиск с использованием только одного параметра, дающего несколько результатов, и так далее.

4. Система управления отчетами студентов

Благодаря этому проекту мы можем многое узнать о потоках ввода / вывода и системе управления файлами C++. Программа собирает данные об учениках, такие как имя, номер списка, оценки по каждому предмету, и вычисляет их оценку. Это простое консольное приложение.

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

5. Игра в угадывание номеров. Казино

Это интересный проект, в котором мы узнаем о библиотеке, используемой для случайных чисел: cstdlib. Программа запрашивает сумму ставки, а затем предлагает пользователю угадать число при выпадении. Если сгенерированное случайное число совпадает с вводом пользователя, он выигрывает, в противном случае вычитаются деньги.

Пользователь может продолжать играть до тех пор, пока не проиграет всю сумму, которую вложил изначально.

6. Судоку

Все мы знаем о популярной игре судоку, в которой нам нужно расположить числа от 1 до 9 так, чтобы они появлялись только один раз в строке и столбце сетки 9×9.

Программа использует концепцию поиска с возвратом. В этой программе мы жестко запрограммировали начальные значения, но вы также можете получить тот же ввод от пользователя.

Взгляните на программу, выполните и увидите результаты:

7. Валидатор кредитных карт

Это простой проект, который использует алгоритм Луна (Luhn algorithm) для проверки кредитной карты пользователя. Программа работает со всеми популярными картами, такими как Visa, Amex, MasterCard и т.д.

Алгоритм Луна делает основные проверки; например, карта Visa должна начинаться с 4, а затем переходить к сложным вычислениям с помощью цифр. Это хорошая программа для изучения, потому что большинство транзакций электронной коммерции требуют проверки кредитной карты.

8. Игра в «вертолетик»

Для всех детей 90-х это была одна из самых любимых игр, и ее очень легко было реализовать! В этом проекте мы будем использовать графику SDL.

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

9. Использование графики для рисования и перемещения фигур

В этой графической программе вы научитесь делать машину, а затем заставлять ее двигаться с помощью графики. Это простая программа, написанная с использованием Turbo C ++; однако эта же программа будет работать и в других IDE, например в Dev C++, Code::Blocks и Visual Studios. Для работы программы вам необходимо подключить файл graphics.h.

10. Простая анимация для гонки «с пьяным человеком» от начала до конца.

Это интерактивное консольное приложение для анимации, в котором выбранный вами персонаж (любая буква от a до z) будет забавно перемещаться от начала до финиша. Если он завершает гонку в пределах указанного счетчика (в нашем случае 1000000), то мы печатаем конкретное сообщение.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Заключение

В этой статье мы обсудили некоторые важные проекты начального и среднего уровня. Если вы правильно следовали коду, вы должны получить точные результаты.

Хотя Visual Studio предлагает множество функций, для ее загрузки требуется время.

Проекты будут работать на любой IDE. Сообщите нам, какие из проектов вы пробовали, в разделе комментариев!

Источник

Идеи проектов для начинающих программистов. Часть 1

Перевод первой части статьи «Starter Project Ideas for Developers».

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

Каждая идея в нашем списке будет сопровождаться подробным описанием, примерами и советами. Отталкиваясь от всего этого, вы сможете создать свой собственный, уникальный проект.

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

Засучиваем рукава

Изучаем основы программирования с фокусом на создание, чтение, модификацию и удаление данных (CRUD).

Генератор имен

Придумывать имена сложно. Кажется, что в наше время все варианты username уже использованы. Почему бы не сделать так, чтобы вместо нас имена генерировал компьютер? Идея такого генератора очень проста. Вам потребуются лишь базовые знания языка программирования.

Для начала, следует определиться с тем, какого рода имена вы хотите генерировать (username, имена фантастических героев, персонажей книг или обычные имена). Также нужно придумать, из каких частей будут составляться эти имена.

После того как придумаете, что за имена будет генерировать ваша программа, нужно обдумать, как вы будете хранить данные (имена собственные, имена существительные и прилагательные, титулы и т. п.). Все это можно прописать жестко и хранить в файловой системе, используя CSV или текстовый файл. Можно извлекать из API. Можно хранить в базе данных. Если вы начинающий программист, изучите, какие структуры данных поддерживает ваш язык (объекты, списки, массивы, hashmap) и поэкспериментируйте с ними.

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

В чем смысл такого проекта

Это более продвинутый проект, чем hello world, но попроще или равный по сложности списку задач. То есть, это хороший проект для начинающих.

Занимаясь этим проектом, вы будете осваивать:

Как можно усложнить проект

Примеры:

(От редакции. Как часто вам случалось в соцсетях читать комментарии типа «лучше бы ямы залатали», «лучше бы дороги отремонтировали», «лучше бы на детей внимание обратили»? Можно создать специальный «лучшебыгенератор», случайным образом выдающий «лучше бы» предложение. Реализация — веб-страница. Применение — отвечать советчикам в комментариях, давая ссылку на страницу. Пример можно посмотреть здесь).

Список кодов символов

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

В чем смысл такого проекта

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

Занимаясь этим проектом, вы будете осваивать:

Как можно усложнить проект

Примеры:

Конвертер текста и чисел

Конвертирует числа в двоичную или любую другую систему счисления, а текст видоизменяет (шифрует, переворачивает и т. п.).

В чем смысл такого проекта

Вы не только создадите полезный инструмент, но и научитесь работать с числами и текстом.

Занимаясь этим проектом, вы будете осваивать:

Как можно усложнить проект

Примеры:

Список задач и альтернативные полнофункциональные приложения

Наконец, список задач — идея, за которой вы все сюда и пришли. Шутка:) Но список задач, пожалуй, действительно один из самых распространенных видов проектов, так что без него наша статья была бы неполной. Впрочем, мы все же постараемся добавить несколько интересных альтернатив.

В чем смысл такого проекта

Создание списка задач — отличный способ изучить работу с данными (CRUD), какой-то язык или фреймворк.

Например, вы изучаете JavaScript. Вы можете построить список задач для применения в браузере, используя DOM браузера и LocalStorage APIs. Затем вы создаете API списка задач в бэкенде, используя NodeJS, чтобы изучить, как работает REST API. Наконец, вы обращаетесь к десктопу и создаете еще один список задач, используя Electron — чтобы изучить работу десктопных приложений.

Еще один вариант прокачать свои навыки, связанные с CRUD, — использовать разные языки программирования. Вот вы создали все варианты списков задач на JavaScript. А теперь создайте какой-нибудь из них на C#, Java или Haskell и посмотрите, насколько будут отличаться процесс и результаты. Это поможет вам получить хорошее представление о языках.

Занимаясь этим проектом, вы:

Как можно усложнить проект

Альтернативные варианты приложений для отработки навыков CRUD

Примеры:

Секундомер и таймер

Таймер может быть как простым, так и довольно сложным и интересным.

В чем смысл такого проекта

Это полезное приложение, которое вы в конечном итоге сможете использовать (или заново реализовать) в каком-то другом проекте.

Занимаясь этим проектом, вы будете осваивать:

Как можно усложнить проект

Примеры:

В следующей части статьи мы рассмотрим идеи более сложных приложений. Больше никаких списков задач!

Источник

Что нужно сделать, чтобы стать хорошим программистом

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

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Чтобы стать хорошим разработчиком, нужно пройти определённый путь и написать несколько проектов. В этой статье мы поразмышляем о том, какой путь правильный, какие проекты точно нужно выполнить и как не стать жертвой чужого влияния.

Инструкция, которая подойдёт каждому

Часто можно наткнуться на публикации, в которых новичкам предлагают выполнить конкретные проекты: TODO-листы, блоги, методы сортировки и их визуализаторы и прочее. Выполнишь — станешь профессионалом.

Я считаю, что программист никому ничего не должен (разве что заказчику, который уже внёс предоплату). Каждый разработчик, даже новичок, должен сам определить, что он будет делать и какой путь пройдёт.

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

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

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

Это неинтересно

Многим разработчикам действительно комфортно делать такие приложения, потому что это уже протоптанная дорожка и можно найти кучу материалов по этой теме.

Но они сразу их бросят, когда поймут, что выросли достаточно, чтобы начать что-то более серьёзное. Зачем цепляться за проект, который вы начали только потому, что он простой?

Я считаю, что браться за что-то стоит только в том случае, если вы искренне заинтересованы в этом и горите идеей. Тогда у вас будет эмоциональная связь с проектом.

Конечно, ненавидеть своё детище будете в любом случае — с каждым днём будете всё яснее понимать, что делали фигню. Что вообще всё тут надо сжечь и переписать.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Если нет эмоциональной связи, то вы теряете интерес и бросаете проект, чтобы начать что-то другое и на этот раз сделать всё правильно. А потом делаете то же самое с новым проектом. И с ещё одним / двумя / пятью / десятью / пятьюдесятью. Разумеется, вы получите опыт, но вместе с ним — и груз в виде брошенных проектов.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Это несложно

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

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Если же изначально брать что-то очень сложное, то в любом случае вы останетесь победителем. Справились — отлично, теперь вы знаете, что можете работать над сложными проектами. Не получилось — тоже хорошо, такой опыт не на каждой задаче получишь.

Это неэффективно

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

Это поможет стать более ценным специалистом. Потому что вы будете понимать, что нужно бизнесу, и всегда сможете запрограммировать как надо или предложить альтернативу.

Например, заказчику нужно на сайте изменить какую-то надпись. Допустим, поменять сообщение, которое уведомляет об использовании cookies, или заменить на сервере файл политики конфиденциальности.

Обе задачи на 5 минут: 3 минуты, чтобы запустить редактор кода и FTP-клиент, по одной минуте на каждую задачу.

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

Тогда вы сможете тратить своё время на что-то более полезное, а не отвлекаться 10 раз, потому что в надписи, которую вы добавили, была опечатка.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Не создавайте программы — создавайте решения!

Это нереально

Часто подборки проектов для новичков никак не связаны с реальной жизнью. Да, вы получите навыки выполнения каких-то общих вещей. Но не будете знать, как это устроено в определённой сфере.

Можно выполнить 500 абстрактных проектов, но какой в этом толк, если вы так и не узнаете, что от таких проектов требуют заказчики?

Раз проекты неинтересны, а их создание не приносит пользу, то они должны хотя бы отражать реальность. Да, новичку может быть сложно взять такой проект у реального заказчика. Но именно это и нужно попытаться сделать.

Вам придётся работать в жёстких условиях, чтобы довести проект до конца, но зато этот опыт будет самым ценным и реальным. Ну и, разумеется, вы научитесь общаться с клиентами.

Напоследок

Главное, что я хочу донести, — не нужно думать, что вы должны пройти строго определённый кем-то путь, чтобы стать профессионалом. Вам действительно нужно изучить конкретные подходы и инструменты, но как это сделать, решаете вы сами.

Главное, чтобы путь был интересен вам, а не кому-то из интернета. Беритесь за то, что интересно, даже если это кажется очень сложным или невыполнимым. Главное — довести до конца хотя бы один-два проекта.

Например, если вы хотите создавать игры, записывайтесь на курс по Unreal Engine 4. Это крутой, но сложный движок, а чтобы раскрыть его полный потенциал, нужно изучить C++.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Зато результат ваших усилий будет стоить того. Особенно ясно вы это поймёте, когда к концу курса закончите несколько проектов, которые не стыдно будет показать друзьям.

Источник

Еще список проектов, на чем потренироваться

«Мастер совершает больше ошибок, чем новичок — попыток»

Прошлый список тренировочных проектов набрал 50к прочтений и 600 добавлений в избранное. Вот еще один список интересных проектов для практики, для тех кто хочет добавки.

1. Текстовый редактор

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Цель текстового редактора — уменьшить усилия пользователей, пытающихся преобразовать их форматирование как валидную разметку HTML. Хороший текстовый редактор позволяет пользователям форматировать текст по-разному.

В какой-то момент каждый использовал текстовый редактор. Так почему бы не создать его самостоятельно?

2. Клон Reddit

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Reddit — это агрегация социальных новостей, рейтинг веб-контента и сайт для обсуждений.

Reddit — занимает большую часть моего времени, но я продолжаю зависать на нем. Создание клона Reddit — это эффективный способ изучения программирования (при одновременном просмотре Reddit).

Reddit предоставляет вам очень богатый API. Не упускайте какие-либо функции и не делайте как попало. В реальном мире с клиентами и покупателями, вы не сможете работать как попало, или вы быстро потеряете работу.

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

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

3. Публикация пакета NPM с открытым исходным кодом

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Если вы пишите код на Javascript, скорее всего, вы используете менеджер пакетов. Менеджер пакетов позволяет повторно использовать существующий код, который написали и опубликовали другие люди.

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

Пакет может быть любым. Если у вас нет идеи, создайте свой собственный Lodash и опубликуйте его.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Наличие чего-то, что вы сделали в Интернете, ставит вас на 10% выше других. Вот некоторые полезные ресурсы об открытых источниках и пакетах.

4. Учебный план freeCodeCamp

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

freeCodeCamp — это некоммерческая организация. Она состоит из интерактивной обучающей веб-платформы, онлайн-форума сообщества, чатов, публикаций Medium и местных организаций, которые намереваются сделать доступным для всех изучение веб-разработки.

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Вы будете более чем квалифицированы для своей первой работы, если вам удастся завершить весь курс.

5. Создайте HTTP-сервер с нуля

Протокол HTTP является одним из основных протоколов, по которым контент попадает в Интернете. HTTP-серверы используются для обслуживания статического контента, такого как HTML, CSS и JS.

Возможность реализовать протокол HTTP с нуля расширит ваши знания о том, как все взаимодействует.

Например, если вы используете NodeJs, то вы знаете что Express предоставляет HTTP-сервер.

Для справки, посмотрите, сможете ли вы:

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

6. Десктопное приложение для заметок

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Мы все делаем заметки, не так ли?

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

Не стесняйтесь сочетать это с первым челленджом(текстовый редактор).

В качестве бонуса попробуйте синхронизировать десктопную версию с веб-версией.

7. Подкасты (клон Overcast)

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Кто не слушает подкасты?

Создайте веб-приложение со следующими функциями:

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

8. Захват экрана

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Привет! Я снимаю свой экран прямо сейчас!

Источник

Идеи для проектов для практики навыков программирования

какую программу написать начинающему программисту. картинка какую программу написать начинающему программисту. какую программу написать начинающему программисту фото. какую программу написать начинающему программисту видео. какую программу написать начинающему программисту смотреть картинку онлайн. смотреть картинку какую программу написать начинающему программисту.

Числа

Найти число пи до n-й цифры после запятой

Введите число, и программа начнет генерировать число пи. Поставьте определенный предел, до которого программа должна дойти. Реализации:Python №1, Python №2, Haskell, PHP, JavaScript, Go.

Последовательность Фибоначчи

Введите число, и программа сгенерирует последовательность Фибоначчи до этого числа или до N-го числа. Реализации: Python №1, Python №2, Python №3, Bash, Haskell, PHP, JavaScript, Java, Go, Python №4, Python №6.

Разложение на произведение простых чисел

Пользователь вводит число и находит, программа раскладывает на произведение простых чисел с их степенями. Реализации: Python №1, Python №2, Haskell, JavaScript, Java, C++, Python №3.

Следующее простое число

Программа находит простые числа до тех пор, пока пользователь перестанет спрашивать. Реализации: Python №1, Haskell, JavaScript, Java, Go, Python №2.

Калькулятор для ипотеки

Вычислить месячные выплаты фиксированного срока в течение заданных N сроков с заданной процентной ставкой. Реализации: Go.

Обмен-возврат

Пользователь вводит стоимость и количество денег. Программа рассчитывает сдачу и количество мелких монет, необходимых для сдачи. Python, Java, Go.

Перевод из двоичной системы в десятичную и обратно

Калькулятор

Сначала простой с базовыми операциями, потом можно добавить фичи. Реализации: Python, Haskell.

Конвертер температуры, валюты, масс и т.д.

Будильник

Простые часы, которые играют звук после некоторого числа минут или часов или в определенное время. Python, Java.

Расстояние между городами

Вычисляет расстояние между двумя городами и позволяет пользователю выбрать размерность расстояния. Эта программа может потребовать информацию о городах, такую как долготу и широту. Реализации: Haskell, Python.

Валидатор кредитной карты

Берет номер кредитной карты от производителя (Visa, MasterCard, American Express, Discover) и проверяет на правильность номер (разберитесь, как кредитные карты используют контрольную сумму). Реализации: Haskell, Python, Java, Go.

Факториал числа

Алгебра комплексных чисел

Показать сумму, умножение, сопряжение, отрицание в отдельных функциях (разность и деление могут быть сделаны путем использования нескольких уже написанных функций). Реализация: Haskell.

Счастливые числа

Счастливое число определено следующим процессом. Начиная с некоторого положительного целого числа, замените число суммой квадратов его цифр и повторяйте процесс до тех пор, пока число не будет равным одному(на чем все и остановится) или оно будет циклиться бесконечно. Если цикл конечен, то изначальное число называется счастливым. Найдите первые 8 счастливых чисел. Реализации: Python, Haskell, Java, C++.

Названия чисел

Показать как читается число на английском. Вы можете использовать уже существующую реализацию или написать свою, она должна поддерживать значения до одного миллиона или до максимально возможного целого значения в данном языке программирования, если оно меньше миллиона. По желанию: поддержка отрицательных чисел, нуля, чисел с плавающей запятой Реализации: Haskell, Python, Go, C++.

Симуляция подбрасывания монеты

Напишите программу, которая симулирует подбрасывание одной монеты столько раз, сколько захочет пользователь. Программа должна записывать результаты и подсчитывать сколько раз выпали орел и решка. Реализации: Python.

Классические алгоритмы

Гипотеза Коллатца

Найдите число шагов, за которые получится единица, используя следующий процесс: берём любое натуральное число n больше единицы. Если оно чётное, то делим его на 2, а если нечётное, то умножаем на 3 и прибавляем 1. Реализации: Python №1, Java, JavaScript, Java №2, Go, Java №3.

Сортировка

Реализовать два типа сортировочных алгоритмов: сортировка слиянием и сортировка простыми обменами. Реализации: C, Python, Go, C++.

Задача ближайшей пары

Решето Эратосфена

Графы

Граф из связей

Напишите программу, которая будет создавать граф или сеть из ряда связей между вершинами. Реализация: Python.

Эйлеров путь

Соединенный граф

Напишите программу, ввод которой представляет из себя граф и вывод представляет из себя отчет, в котором указано соединена ли каждая вершина или нет. Реализация: Python.

Алгоритм Дейкстры

Напишите программу, которая будет находить короткий путь в графе, используя его вершины. Реализации: Python.

Структуры данных

Инвертированный индекс

Текст

Перевернуть строку

Поросячья латынь

Это «тайный язык», представляющий собой зашифрованный английский. Чтобы сделать поросяче-латинское слово из английского, нужно первые согласные звуки в слове переместить в конец и прибавить ay (Например: «banana» превращается в anana-bay). Подробнее о правилах читайте в Википедии. Реализации: Python №1, Python №2, Java №1, Java №2, Go, Java №3, Python №3.

Счетчик гласных

Вводится строка, и программа считает количество гласных в тексте. Для усложнения задачи можно генерировать отчет о том, сколько раз какая гласная была найдена. Реализации: Python №1, Python №2, Haskell, Java №1,Go, Java №2, Python №3.

Проверка на палиндром

Программа проверяет на то, что введенная строка является палиндромом (то есть читается слева направо так же, как и справа налево). Реализации:Python №1,Python №2, Java,Haskell,Python №3,Go,Java

Счетчик слов в строке

Посчитать число слов в строке. Для усложнения задачи считать эти строчки и сгенерировать отчет. Реализации: Python №1, Python №2, Java, Haskell.

Текстовый редактор

Приложение в стиле блокнота, способное открыть, редактировать и сохранять текстовые документы. По желанию: добавить подсветку синтаксиса и другие фичи. Реализации: Python, С++/QT.

Генератор RSS ленты

Дается ссыка на ленту RSS/atom, извлечь все посты и распечатать на экран. Реализация: Python.

Стикеры

Программа, в которой вы можете добавить текстовые напоминания и вывесить их. По желанию: вы можете добавить в программу возможность создавать напоминания в виде всплывающих окон.

Проверка показателей индексов фондовой биржи

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

Гостевая книга / журнал

Простое приложение, позволяющее людям добавлять комментарии или добавлять записи в журнал. В нем есть возможность добавлять или закрывать комментарии, а также время добавления записи. По желанию: запустите приложение на такой облачной платформе как Google App Engine или Heroku или любой другой(если возможно).

Гороскоп

Программа проверяет ваш гороскоп на разных сайтах, посвященных этому и соединяет все прогнозы воедино для каждого дня. Реализации: Python.

Шифр Винежера / Вернама / Цезаря

Функции для шифрования и расшифровывания сообщения с данными. Затем отправьте их другу. Реализации: Python, Java.

Предложения для любого подарка

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

Конвертер из языка разметки Markdown в HTML

Инструмент для обработки запросов в виде регулярных выражений

Программа позволяет пользователю вводить текстовую строку и затем в отдельном поле регулярное выражение. После запуска программа должна выдать все подходящие под регулярное выражение строчки или флаг ошибки. Реализация:Python

Программа FTP

Программа, осуществляющая пересылку файлов туда и обратно из удаленного веб-сервера. Реализация: C.

Монитор трафика

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

Сканер портов

Введите IP адрес и диапазон портов, в которых программа попробует найти открытые порты на данном компьютеров путем соединения с каждым из ним. При успешном соединении программа должна пометить порт как открытый. Реализации: Python №1, Python №2, Python №3, Python №4.

Проверка электронной почты (POP3 / IMAP)

Пользователь вводит различную информацию своего аккаунта, включая веб-сервер и IP, тип протокола (POP3 или IMAP) и приложение будет автоматически проверять почту каждый заданный интервал времени. Реализация: Java.

Инструмент поиска для сетевого протокола Whois

Пользователь вводит IP и адрес хоста и программа просматривает информацию через сетевой протокол Whois и выводит регистрационные данные. Реализация: Python.

Проверка сайта в установленное время

Приложение пробует соединиться с сайтом или сервером периодически с заданным интервалом или просто через некоторое время и проверяет, есть ли неполадки с подключением. Если сайт или сервер не работают, программа оповестит по электронной почте или вышлет уведомление на экран. Реализация: Python.

Классы

Продуктовый инвентарь

Создайте приложение, которое позволяет вести учет инвентаря продуктов. Создайте класс Product, элементами класса будут цена, номер, количество. Затем создайте класс Inventory, ведущий учет различных продуктов и который считает общую стоимость инвентаря. Реализации: Python №1, Ruby, JavaScript, Go, Python №2.

Система бронирования отелей / авиабилетов

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

Bank Account Manager

Создайте класс Account, который будет абстрактным классом для трех классов CheckingAccount(контокоррентный счет), SavingsAccount (сберегательный вклад) и BusinessAccount (счет, возникающий при создании бизнеса). Управляйте кредитами и дебитами с этих счетов в стиле программы для банкомата. Реализация:Python

Расписание приема врача

Создайте класс Patient и класс Doctor. Пусть доктор может принять несколько пациентов, установите расписание того, как доктор будет принимать 16 пациентов в течение 8 часового рабочего дня.

Менеджер рецептов

Создайте класс Recipe с ингридиентами и вставьте объекты данного типа в менеджер рецептов, которая их распределит по категориям(основные блюда и десерты) или по ингридиентам(курица, говядина и так далее).

Галерея изображений

Создайте абстрактный класс Image и затем класс, производный от него для каждого типа изображений. Вставьте их в программу, которая будет отображать изображения в стиле галереи.

Площадь и периметр фигуры

Создайте абстрактный класс Shape и затем создайте производные классы, такие как бриллиант, прямоугольник, круг, треугольник и так далее. Затем происходит перекрытие имен функций, ищущих площадь и периметр для каждого типа фигуры. Реализации: Java, Python.

Цветочный магазин с возможностью заказа

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

Создание древа семьи

Напишите класс Person, в котором будет элемент имя, дата рождения и, если есть, смерти. Программа позволяет пользователям создавать классы Person и помещать их в семейное древо. Программа печатает древо на экран. Реализация: C++.

Поточность

Создание индикатора процесса загрузки

Создайте индикатор состояния для приложений, которые могут отслеживать процесс загрузки. Индикатор состояния должен находиться в отдельной ветке и сообщаться с главной веткой с помощью делегатов. Реализации: Go.

Программа для массового создания эскизов для предварительного просмотра изображений

Обработка изображений может занимать достаточно долгое время. Особенно если изображение большого размера. Создайте программу обработки изображений, которая может взять сотню изображений и сконвертировать их до нужного размера в фоновом режиме. В качестве более сложного задания выделите одну ветку для изменения размера изображения, другую — для массового переименования эскизов и т.д. Реализации: Java.

Индексатор веб-страницы

Создайте приложение, которое соединяется с веб-сайтом, забирает оттуда все ссылки или изображения и сохраняет их в качестве списка. *По желанию: Организуйте проиндексированную информацию, удалите дублирующиеся данные. Залейте результаты в индекс-файл. * Реализации: Python.

Веб-браузер с вкладками

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

Доска для рисования онлайн

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

Получить атомное время из интернет-часов

Эта программа будет получить сведения об атомном международном времени из интернета. Используйте любые атомные часы, которые найдёте в поиске Google. Реализации: Go, Java.

Получить текущие данные о погоде

Получите актуальные погодные данные по почтовому индексу. По желанию: Попробуйте определить местоположение пользователя автоматически. Реализация: Python.

Авто-логин и автоматические действия по таймеру

Создайте приложение, которое входит на определённый веб-сайт в запланированное время, производит определённое действие и выходит из аккаунта. Это может быть полезно для проверки почтового клиента, постинга контента или для получения информации и сохранения её на компьютере.

Генератор электронных открыток

Создайте сайт, позволяющий пользователям создавать собственные небольшие электронные открытки и посылать их другим. Не используйте Flash. Используйте галерею изображений и, возможно, вдохновляющие цитаты и девизы.

Система контент-менеджмента

Создайте собственную систему управления контентом (CMS) наподобие Joomla, Drupal, PHP Nuke и т.д. Начните с малого. По желанию: Разрешите добавление модулей/аддонов.

Доска объявлений (Форум)

Создайте форум, на котором вы и ваши друзья смогут писать сообщения, администрировать и делиться мыслями и идеями.

CAPTCHA-генератор

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

Файлы

Создание викторины

Сделайте приложение, которое рандомно берет различные вопросы из файла и соединяет их вместе, создавая викторину для студентов. Затем приложение должно сравнивать ответы с правильными вариантами.

Файловый проводник

Создайте собственный небольшой файловый проводник для Windows. Добавьте ту функциональность, которую вам не хватало в обычном проводнике Windows или в Finder на Mac OS.

Утилита для сортировки Excel/CSV файлов

Читает записи в файле, сортирует их и записывает их обратно в файл. Позволяет выбрать различные варианты сортировки и сортировку по конкретному полю. Реализация: Python.

Создайте Zip-архиватор

Пользователь добавляет файлы из различных директорий, а программа архивирует их в zip-файл. По желанию: применить Примените современные алгоритмы сжатия. Начните с кода Хаффмана. Реализация: Java.

Генератор PDF файлов

Приложение, которое может читать текстовый файл, файл HTML или какой-либо другой файл и генерировать из него PDF. Отлично подходит для онлайн конвертеров, где пользователь загружает файл и программа возвращает PDF файл По желанию: запустить приложение в облачных сервисах, таких как Google App Engine или Heroku, если возможно.

Программа для теггирования Mp3

Изменяет и добавляет ID3v1-теги в MP3-файлы. Можете попробовать добавить обложку альбома в хедер MP3-файла, или другие ID3v2-теги.

Менеджер кода

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

Базы данных

Анализатор SQL-запросов

Утилита, в которую пользователь может ввести запрос и исполнить его в локальной базе данных, чтобы найти способы повысить эффективность запроса.

Инструмент удалённого соединения с SQL-сервером

Утилита, которая может выполнять запросы на удалённые сервера с локального компьютера посредством сети интернет. Утилита должна воспринимать удалённый хост, имя и пароль пользователя, выполнить запрос и вернуть результаты. Реализация: Python.

Генератор отчётов

Создайте утилиту, которая генерирует отчёт на основе сводок в базе данных. Утилита создаёт отчёт о продажах, основываясь на сводных таблицах заказов, или подводит ежедневный итог по операциям в базе данных.

Планировщик событий и календарь

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

Домашняя бухгалтерия

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

Адресная книга

Содержит контакты, включая номера, адреса электронной почты и небольшие заметки о них. Реализация: Python.

Программа для отслеживания ТВ-серий

Не хотите пропустить любимый сериал? Нет записывающего устройства или хотите найти серию и записать её позднее? Создайте приложение, которое будет осуществлять поиск по сайтам телевизионных передач, определять названия/время/каналы и добавлять их в базу данных. База данных/веб-сайт затем могут посылать вам email-уведомления о начале сериала и о канале трансляции. Реализация: Python.

Система планирования путешествий

Создайте систему, которая позволяет пользователям собрать в одном месте и отслеживать информацию по путешествию: авиабилеты, номера в отелях, достопримечательности, бюджет и расписание.

Графика и мультимедиа

Слайд-шоу

Создайте приложение, которое показывает картинки в формате слайд-шоу. По желанию: добавьте эффекты, например, различные переходы (в виде звезды, круга, жалюзи и т.д.)

Проигрыватель онлайн-видео

Попробуйте создать собственный проигрыватель онлайн-видеороликов.

Mp3 Плеер

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

Проигрыватель онлайн-музыки

Попробуйте создать собственный проигрыватель онлайн-музыкальных треков. Реализация: PHP.

Приложение для создания ватермарков

Хотите защитить авторские права на некоторые изображения? Добавьте своё лого или текст на изображение, чтобы никто не мог украсть графику с вашего сайта. Создайте программу, накладывающую ватермарк на изображение. *По желанию: Используйте многопоточность для одновременной обработки нескольких изображений. * Реализация: Python.

Черепашья графика

Стандартный проект, в котором вы создаёте плоскость из квадратов 20х20. С помощью различных команд вы управляете черепахой, которая рисует линию на плоскости. Вы можете двигать её вперёд, назад, двигать влево и вправо, поднимать и опускать перо и т.д. Подробную информацию ищите в Google по запросу “черепашья графика”. По желанию: добавьте в программу возможность считывать список команд из файла

Безопасность

Шифр Цезаря

Реализуйте шифр Цезаря, как шифрование, так и дешифрование. Ключом является целое число от 1 до 25. Этот ключ сдвигает буквы алфавита (от A до Z). При шифровании каждая буква алфавита заменяется буквой, находящейся на выбранное количество позиций дальше (алфавит закольцовывается). Таким образом, при использовании ключа 2 “HI” становится “JK”, а при использовании ключа 20 “HI” превращается в “BC”. Это простое моноалфавитное шифрование легко взламывается, поскольку злоумышленник, у которого на руках есть зашифрованное послание, может использовать частотный анализ, или просто попробовать все 25 ключей. Реализации: Python №1, Python №2, Java.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *