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

Правильная постановка задачи при работе с linux решает 50% задачи.
Вот например, недавно к сообществу по linux обратился новичек с заданием "для первого курса":

Дали задание, с первого взгляда подумал простое, а оказалось что непонятно как подступиться:

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


И вот что ответил один из "сторожилов" форума:
непонятно, как подступиться, имхо, прежде всего из-за не совсем ясной формулировки условий. если начать разбирать по деталям, то станет понятнее, что именно делать - и какими инструментами

сохраняются ли пробелы при разбиении текста на столбцы, или слова пишутся в столбцах слитно? разрываются ли слова, не влезающие в столбец, или переносятся в следующий? как обрабатываются слова, которые длиннее заданной длины столбца? и так далее...

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

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

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

Rus. Open Source company, г. Саратов
ул. Орджоникидзе, 156, офис 203
тел: 8 (8452) 57-84-41
e-mail: info@rus_opensource.com

Главная | Обзоры | О разном
Карта сайта

Учебная литература:

Введение в Linux
Основы JAVA
Архивы

© 2013 opensourcerules.net