Задачки про код

Даний топік був створений для згадування банальних речей з метою освіжити пам’ять і допомогти новачкам отримати пару грам знань.

На підході літо, розпочинаються літні курси і практика в ІТ компаніях, але, щоб потрапити туди потрібно здати вступні тести / співбесіди / пройти конкурс. Не все так легко і щоб успішно здати тест / пройти конкурс потрібно прикласти зусиль.

Так вот бажаючі поділіться мінімальними задачами по програмуванню з котрими ви зіштовхнулися на практиці. Задачі в плані : що виведе наступний код, оцініть складність коду (цикли), допишіть програмний код, робота з логічними операціями, ймовірність виводу того чи іншого і т.д.

Наприклад :

int i = 6; int j = ++i; 
System.Console.WriteLine(i++ * ++j); 

int s = 0; for (int i = 0; i < 7; i++)
{
    for (int j = i; j >= 0; j--) 
        s++; 
} 
System.Console.WriteLine(s); 

int n = 33; 
int s = 0; 
while (n > 0) 
{ 
    s += n % 2;
    n /= 2;
} 
System.out.println(s); 

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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

Детский сад :) Одному своему студенту четвертого курса я давал задачу реализовать алгоритм Монтгомери умножения по модулю. ru.wikipedia.org/...ритм_Монтгомери

Закодить уже готовый алгоритм — это детский сад. А вот придумать решение задачи, создать алгоритм и уже потом закодить, это уже по взрослому.

Закодить уже готовый алгоритм — это детский сад.
Это дисциплина.
А вот придумать решение задачи, создать алгоритм и уже потом закодить, это уже по взрослому.
Велосипедизм :)

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

Велосипедизм? Тогда мы с вами ежедневно придумываем велосипеды. Как только мне ставят задачу, у меня появляется поле для творчества, я могу изобрести велосипед, а могу найти велосипед. Все зависит от задачи. Давая задание «закодить» алгоритм, вы не получаете ничего. А если посмотрите на решение задачи, вы будете иметь возможность понять как человек мыслит, и оценить кругозор(стал ли он искать готовое или начал велосипедить).

Давая задание «закодить» алгоритм, вы не получаете ничего.

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

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

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

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

Підписатись на коментарі