Задачи программирования для начинающих

Задачи по Python для начинающих от Tproger и GeekBrains

Обложка: Задачи по Python для начинающих от Tproger и GeekBrains

Вместе с факультетом Python-разработки GeekUniversity собрали для вас несколько простых задач по Python для обучения и тренировки. Их можно решать в любом порядке.

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

Задача 1

Есть список a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] .

Выведите все элементы, которые меньше 5 .

Самый простой вариант, который первым приходит на ум — использовать цикл for :

Также можно воспользоваться функцией filter , которая фильтрует элементы согласно заданному условию:

print(list(filter(lambda elem: elem < 5, a)))

И, вероятно, наиболее предпочтительный вариант решения этой задачи — списковое включение:

print([elem for elem in a if elem < 5])

Задача 2

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] ;

b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] .

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

Можем воспользоваться функцией filter :

result = list(filter(lambda elem: elem in b, a))

result = [elem for elem in a if elem in b]

А можно привести оба списка к множествам и найти их пересечение:

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

Источник

Задачи для начинающих Java программистов

В продолжение моего поста "Начинающим Java программистам" публикую очередную свою шпаргалку, а именно список задач, которые я обычно даю новичкам. Опытным разработчикам они покажутся тривиальными, а только начинающим изучать Java, причём самостоятельно, надеюсь будут в самый раз. Так же если Вы используете какие-то ещё задачи для обучения, то поделитесь ими, пожалуйста.:) Так как мне, иногда, как-то не по себе в . -цатый раз рассказывать стажёрам одну и ту же задачу — пусть даже они её слышат впервые:)

Задачи выстроены в порядке увеличения сложности. Каждая задача так же имеет несколько степеней «развития», каждая из которых нацелена на привлечение новых пакетов и т.д.

Задача: Аналог grep

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

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

Задача: Аналог Sort

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

  1. Программа должна игнорировать регистр при сортировке
  2. Программа должна сортировать не по алфавиту, а по количеству символов в строке
  3. Программа в качестве аргумента может получать порядковый номер слова в строке, по которому надо сортировать строки

Задача: чат

  1. Реализовать консольную программу, которая бы открывала серверный сокет на порту 1234. При подключении клиента программа должна выводить все то, что передал клиент. Удостовериться в работоспособности можно попробовав подключиться с помощью системной программы telnet. В дальнейшем будем эту программу называть серверной частью
  2. Усложнить программу и сделать так, чтобы можно было подключиться одновременно нескольким клиентам посредством telnet
  3. Реализовать другую консольную программу, которая по сути была бы аналогом telnet — т.е. подключалась к заданному IP на порт 1234 и отправляла бы на сервер строчку введённую пользователем по нажатию enter. В дальнейшем будем эту программу называть клиентской частью или просто клиентом
  4. Усложнить серверную часть программы таким образом, чтобы пришедшее сообщение от одного пользователя отправлялось сразу всем пользователям, которые подключены в данный момент к серверу
  5. Усложнить серверную часть программы так, чтобы при подключении нового пользователя ему показывались последние 10 сообщений
  6. При запуске клиентская часть должна спрашивать у пользователя его имя. В дальнейшем при отсылке сообщений на сервер должен использоваться следующий шаблон: «Имя пользователя: текст»
  7. До этого момента сообщения между сервером и клиентом — обычный текст. Это с трудом позволяет передавать так же сопроводительную информацию например: имя пользователя, дату приёма сообщения сервером и т.д. В этом задании необходимо перевести обмен информации на использование Serialization. Т.е. обмен информацией между клиентом и сервером должно производится посредством сериализованного класса Message, который в свою очередь содержит помимо текста дополнительную атрибутику: дата создания сообщения, имя пользователя, IP отправителя, режим в котором находится отправитель (как в аське: сплю, ем, работаю:) )
  8. Дописать серверную часть таким образом, чтобы она следила за количеством подключённых пользователей и не позволяла подключаться большему количеству пользователей нежели 10
  9. На данный момент многие параметры сервера прописаны в коде самой программы, например: порт на котором открывать сервер, количество сообщений выдаваемых при подключении, максимальное количество подключённых пользователей и т.д. Перенести все эти конфигурационные параметры в XML файл.
  10. Сервер должен позволять подключаться только тем пользователям, которые знают соответствующий пароль для их имени пользователя. Для этого при запуске клиент должен спрашивать так же и пароль. А сервер при подключении нового пользователя должен сверять имя пользователя/пароль с имеющимися данными в конфигурационном файле. Если пароль не подходит, или такой пользователь не существует, то сервер должен отключить клиента с соответствующим сообщением.

Задача: Java Command Line (JCL)

Данная задача обычно дается мной в качестве зачетной по всему курсу J2SDK.
Реализовать консольную программу на Java, которая бы представляла некую реализацию командной строки, то есть могла бы выполнять команды вводимые построчно пользователем. Под командой понимается следующая строка:
"имя команды" "аргумент №1" "аргумент №2" . "аргумент №N"
Код, который выполняет необходимую команду пользователя, должен оформляться как отдельный Java класс. Соответствие между классом и именем команды должно задаваться в конфигурационном (XML) файле программы. Команда во время выполнения может так же взаимодействовать с пользователем используя стандартный ввод/вывод.
Программа должна поддерживать следующие команды:

  • dir — выводит список файлов в текущей директории
  • cd «путь» — перейти в директорию, путь к которой задан первым аргументом
  • pwd — вывести полный путь до текущей директории
  1. Программа должна поддерживать команду "! имя_системной_программы аргумент№1… аргумент№N", которая запускает системную программу с соответствующими аргументами — так же ввод JCL должен подаваться на вход системной программы и тоже самое с ее выводом
  2. Программа должна поддерживать следующий синтаксис: «команда1 аргументы && команда2 аргументы» и «команда1 аргументы || команда2 аргументы». В первом случае «команда2» запускается только если «команда1» выполнилась успешно. Во втором случае «команда2» запускается только тогда, когда выполнение «команда1» завершилось не успешно
  3. Программа должна поддерживать возможность запускать команды в фоновом режиме. Для этого достаточно в конце командной строчки ввести знак "&". Так же программа должна поддерживать команду «jobs», которая выводит список задач, которые выполняются в фоне
  4. Реализовать возможность запускать программу в сетевом варианте: т.е. программа открывает порт и работать с ней можно используя обычный telnet с отдалённой машины. Программа должна поддерживать подключение сразу нескольких пользователей, а так же команды who и write, которые показывают кто подключён и посылают сообщение всем соответственно.

P.S. Если кто-то попробует себя в Java'e по этим задачам, то готов сам проверить решённые задачи и, по возможности, дать полезные замечания:)

P.P.S. Как думаете, стоит ли снабдить материал ссылками на пакеты и библиотеки, знание которых понадобиться для реализации того или иного пункта?

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Задачи по программированию для начинающих

sgromkov/code-tasks

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Задачи по программированию на C и C++

Сборник задач по программированию для начинающих.

[] #include ; [] #includ [] #include [] #include
[] use namespace std; [] using namespace std; [] using namespacing std; [] uses namespace std; 
  • в первой строке - сумму первых двух чисел,
  • во второй строке - сумму первых трёх чисел,
  • в третьей строке - сумму первых четырёх чисел,
  • в четвёртой строке - сумму всех пяти чисел.
[] char symbol = 'c'; [] int k = 2, b, c=-4; [] double x = 17.32, y, z = 1; [] int a, b = 0; [] int b = 1 [] char sym = '2'; [] char symbol = k; 
x=100; int main (void) < >return 0; x = 10; y = x; int x=0, y=0; #include
printf("Hello, World!"); #include return 0; > int main(void)  
Hello, World! The world is yours! 
Wake up, Neo. The Matrix has you. Follow the white rabbit. 
NICKNAME: Neo CITY: New-York AGE: 35 HEIGHT: 180 WEIGHT: 75 
_______________________________________________________________________________ * * * * * * _________________________________________________________ * * * * * _________________________________________________________ * * * * * * _________________________________________________________ * * * * * _________________________________________________________ * * * * * * _________________________________________________________ * * * * * _________________________________________________________ * * * * * * _________________________________________________________ * * * * * _________________________________________________________ * * * * * * _________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ _______________________________________________________________________________ 
  1. Типы данных и значения перепутались. Переставьте значения в соответствии с их типами, и выведите результат на экран:
double 1861 char 3.187236 int d 
[] количество букв в слове [] произведение двух целых чисел [] стоимость товара [] результат деления одного целого числа на другое [] количество посетителей страницы сайта за сутки [] сумма двух чисел [] значения корней квадратного уравнения [] вес человека (кг), полученный с электронных напольных весов [] текущий год [] значение числа Пи [] первая буква английского алфавита 
[] уровень IQ человека [] вес человека (кг), полученный с электронных напольных весов [] количество книг в библиотеке [] слово "программирование" [] вес человека (кг), полученный с механических напольных весов [] первая буква английского алфавита [] сумма двух целых чисел [] текущий год [] результат деления одного целого числа, на другое [] значение числа Пи [] произведение двух целых чисел 
[] IP-4 [] name [] proizvedenie2 [] m4 [] pi [] 0simvol [] summa_a_b [] determinant [] key_pressed [] PRICE [] 4you [] $team [] #name [] resultPrice [] bestDayOfMyLife 
[] 2number [] telephone [] line-2 [] apple [] mac-address [] l [] peremennay [] x [] region98 [] i [] USA [] R_F [] You_Tube_ [] _privateVariable 
int N; // объявление двух целочисленных переменных double x,y; // объявление целочисленной переменной int x, y; // объявление переменной символьного типа char symbol; // объявление двух вещественных переменных 
[] integer v; [] double: q, w; [] int a, b, c; [] x, y, z int; [] int x, y z; [] double mm. [] int a, float b; [] char a; 

Источник

Читайте также:  Программирование товары меркурий 115ф
Оцените статью