LINUX.ORG.RU

Дайте задач по ANSI C

 , , ,


1

5

Дайте, пожалуйста, годных задач по ANSI C(или по С11,на что сейчас нужно ровняться?). Желательно, чтобы они плавно переходили от «теоретической» (академической) части к более-менее практической. Среда для «практических» задач - GNU/Linux.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 4)

Может скажу полнейшую глупость(я же ребенок) а почему бы не править баги в открытом софте? Помощь же многим требуется.

abs ★★★
()

Ну или например писать определенный софт. К примеру мне на XFCE не нравится внешний вид (да и функционал) переключалки(альт+таб) напиши мне(и всем остальным тоже) альтернативу. Вроде уже даже есть наработки. Правда пользоваться тем чутко неудобно. Вот тебе и практическая задача.

abs ★★★
()
Ответ на: комментарий от abs

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

yacuken ★★★★
()
Ответ на: комментарий от yacuken

Наткнуться на собственные баги, исправить их

Как это противоречит моему примеру? Разумеется написание «переключалки» будет с багами, которые он будет замечать и править.

abs ★★★
()
Ответ на: комментарий от abs

у или например писать определенный софт.

Имхо, в этом и кроются проблемы OpenSource. Что писал старик Данте про дорогу в ад? =)

int13h ★★★★★
() автор топика

Да что там уметь-то в этом вашем си? Единственное, что может показаться сложным неподготовленному человеку — это, на мой взгляд, указатели. Их можно понять, пописав простые задачки на многомерные массивы. Или двусвязный список (да и вообще разные структуры данных).

devsdc ★★
()

нужно ровняться

А что, ручонки-то совсем кривые?
«Ровняться» это делать себя ровным!
А ты хотел написать «равняться». От слова «равенство».
Иди на ассемблере пиши. Более сложные языки ты, кажется, осилить не можешь.

Stahl ★★☆
()
Ответ на: комментарий от int13h

читай сырцы годных проектов

годность можешь определять сам и/или верить мнению людей которых респектиш

qulinxao ★★☆
()
Ответ на: комментарий от devsdc

ради прикола - покажи сырцы простеньких задачек вот здесь https://www.hackerrank.com - на сишке естественно

доброжелатели тут тебе объяснят с радостью , что тебе стоит науметь в этом твоём си.

qulinxao ★★☆
()

Изучение по таким задачам (в том числе и «практическим», всё одно суть высосанным из пальца) имхо не особо толковый путь. Если хочешь освоиться - то бери код и ныряй в него, разбирайся, дополняй и улучшай. А уж потом любая книжка станет более полезной и осмысленной, ведь чей-то опыт будет восприниматься в контексте сделанных самостоятельно выводов.

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

Reinar
()

Напиши клон какой-нибудь простой компьютерной игры или симуляцию настольной игры.

ddos3
()

решайте для начала вот это:

act.timus.ru, алгоритмы решений ищите тут: седжвик - алоритмы на си, ворожцов и винокуров - алгоритмы.

в этих 2-х книжках достаточно задачь, затем ищите соответствующую работу, где сможите приложить знания.

IvanR ★★★
()
Ответ на: комментарий от qulinxao

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

devsdc ★★
()

Напиши рекурсивную функцию сложения.

anonymous
()

Богатырева прорешивай.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Будь мужиком, программируй машину Тьюринга!

CrossFire ★★★★★
()
Ответ на: комментарий от Eddy_Em

Тогда самый простой язык — машинные коды. Пили софт в машкодах

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

anonymous
()
Ответ на: комментарий от splinter

А, ну да, макросы ещё. Про них я что-то забыл.

devsdc ★★
()
Ответ на: комментарий от ddos3

Игры? На ANSI C? В 2014 году? Гхм

ТС, если хочешь пописать на С что-то полезное, смотри в сторону ядра или еще какой системщины.

Например, анализ сетевого трафика. Можно начинать с простого libpcap и пилить до 80 лвл (маркировка трафика, выяснение аномалий и закономерностей, тюнинг производительности захвата и анализа и т.п.)

anonymous
()
Ответ на: комментарий от devsdc

оО, да это же известная обезьянка-эксперт.

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

Которые ни ты, ни кто либо-другой не осилил.

Их можно понять, пописав простые задачки на многомерные массивы.

«Многомерные массивы», гениально. Задачки. Детечктор школотронастудента с пхп головного мозга: уровень 30%.

Или двусвязный список (да и вообще разные структуры данных).

Список, разные структуры данных в сишке, да и вообще кукаретинг о структурах данных. Детечктор школотронастудента с пхп головного мозга: уровень 95%.

Это так мило, когда нулёвая ссанина рассказывает мне про сишку.

anonymous
()
Ответ на: комментарий от anonymous

Это ты объяснял мне некоторые моменты, связанные с C, пару дней назад? Я все ждал, когда ты прочитаешь это)

momo
()

Нет смысла браться за запил чего-то, если ты полностью нулёвый. В отличии от заедушной обезьянки твоя задача не запилить коекак кусок фекалии за подачку ввиде еды. Твоя задача научится, а научишься ты только тогда, когда будешь решать задачу не ради её решения, а ради её «идеального» решения.

Весь процесс обучения у ничтожеств сводится к решению задач ради решения. Т.е. вбивание в башку связей «задача-решение», готовится очередная заедушная отрыжка системы.

Это обучение обезьянок на уровне «загорелась лампочка - нажми кнопочку», обезьянка не знает ни что это за лампочка, ни что это за кнопочка.

Конечно у обезьянок есть мифы и легенды об этих «кнопочках», которые описаны в талмуде, но с реальным миром они никак не связанны.

В основном задача этой системы свести всё разнообразие мира к обобщенному представлению из лампочек/кнопочек минимально нужному потребителю этой самой отрыжке системы.

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

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

Т.е. это приподносится обезьянке как простое исключение.

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

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

Поэтому перед тем как делать эти задачки - тебе надо вкусить этого разнообразия мира. А разнообразие это матчасть. Это будет в будущем твоя защита от оболванивания.

Ничего не читать, кроме описание фичи и матчасти. И пилить.

anonymous
()
Ответ на: комментарий от anonymous

Мне указатели показались не сложными, как и массивы указателей. Да и сложности в них нет.

int13h ★★★★★
() автор топика
Ответ на: комментарий от anonymous

о, спасибо. эта академичность мне интересна

int13h ★★★★★
() автор топика
Ответ на: комментарий от int13h

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

Пусть оп пишет.

hope13 ★★★
()
Ответ на: комментарий от int13h

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

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

А чего ему быть не адекватным?

Адекватность самих решений в стандарте никакущая, ибо стандарт ваяют сборище «теоретиков». Т.е. так всегда было есть и будет, вот допустим какой-то адепт руста, который сишку знает на уровне яслей детсада, рассказывает мне о проблемах сишки. Запилите кто-нибудь нормальный обзор Rust (комментарий) - почитай ветку, там расскрывается вся суть «сишника»-теоретика.

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

Задача стандарта - это собирать(стандартизировать) какие-то обще нужные вещи с направленностью фордаун.

anonymous
()
Ответ на: комментарий от int13h

Мне указатели показались не сложными, как и массивы указателей.

Тебе показались не сложными недозадачки и бесполезность, как и синтаксис.

Всем класть на указатели и массивы. Просто у пацана была на 1-м курсе такая тема.

Указатель - это абстракция над адресацией. Когда за указатель ты понимаешь синтаксическую конструкцию сишки - это не то.

Да и сложности в них нет.

В адресации? Это один из столпов вообще всего это мира и вменяемо мыслить в этой логике удел избранных.

anonymous
()
Ответ на: комментарий от qulinxao

указатель == индекс.

Нет, это низкопробное балабольство.

В рамках терминологии.

Понятие индексируемого не определено, а без этого определения индекс не может быть(предположим границы определены значением). Ты можешь там начать кукарекать про «память» как объект индексирования, но это бредня, как-то завязано с памятью лишь разименование.

Указатель же самодостаточен. В этом мире его значение имеет формат адеса. В терминологии - это адрес, т.е. какое-то интерпритируемое значение. Интерпритатор - разименование.

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

anonymous
()
Ответ на: комментарий от anonymous

Согласен с Вами, что указатель это один из столпов. Под указателем понимаем сегментно-смещенную систему по использованию памяти в ЭВМ. Так, а что из задач почитать по С посоветуете?

int13h ★★★★★
() автор топика

Прорешай Проект Эйлер. Задачи примерно от 100 до 200 это как раз средний уровень. Заодно подтянешь математику.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.