2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Каждый учащийся на программиста должен написать:
1. Текстовый редактор. 16%  16%  [ 10 ]
2. Архиватор. 11%  11%  [ 7 ]
3. Калькулятор. 17%  17%  [ 11 ]
4. Реализовать длинную арифметику. 21%  21%  [ 13 ]
5. Другое 35%  35%  [ 22 ]
Всего голосов : 63
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение29.01.2011, 23:21 


13/10/09
283
Ukraine
arseniiv писал(а):
При работе с БД ведь нужно ведь не только добавлять/удалять и (в несоизмеримо большем количестве) запрашивать данные! Нужно оптимизировать доступ, содержа базу в достаточно рабочем виде, может, индексировать как-нибудь, и многое другое. Такое уже не напишешь в хорошем $\frac{\text{качество}}{\text{время}}$. Или написать можно?

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

arseniiv писал(а):
Велосипед — это, конечно, свежо, но зато обычно ни с чем не стыкуется.

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение30.01.2011, 01:57 
Заслуженный участник


09/09/10
3729
Scholium в сообщении #406429 писал(а):
Поэтому речь и шла об универсальном, идеальном клиенте, «отвязанном» от конкретной базы данных.

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение31.01.2011, 07:36 
Заслуженный участник


08/04/08
8562
В общем из "Другое" у меня получилось
5. Интерпретатор.
6. Прога, выводящая свой собственный текст.
7. Удобный клиент к БД.
8. Символьно-вычислительный матпакет
Значит мои представления об учащемся на программиста были несколько наивны... (я бы на такой учебе точно умер...)

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение31.01.2011, 10:38 
Аватара пользователя


03/03/10
1341
У вас получается, что начинающий программист должен написать нечто, что не написали даже профессионалы.

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение31.01.2011, 11:36 
Заслуженный участник


08/04/08
8562
kitozavr писал(а):
У вас получается, что начинающий программист должен написать нечто, что не написали даже профессионалы.

Я как бы и ничего не утверждал даже... :roll: Я в провинциальном ВУЗе учился и считаю, что у нас все-таки нагрузка была ниже нормы. И просто устроил опрос. Ну народ требовательный, конечно, я и про себя написал, что я бы это не осилил.
+ Вы после сказанного Scholium рассуждаете несколько абстрактно: он же сказал, что в корпорациях работают со своими старыми идеями, а новые варианты просто неизвестны и не спонсируются. Т.е. тут не в профессионализме проблема...

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение31.01.2011, 20:10 


24/05/09

2054
Могу привести примеры задач, прочно ставящих в тупик учащихся на программиста. А вы - интерпретатор! компилятор! :D

Цитата:
Нужна помошь!!!! - 21.12.2010, 22:06
помогите решить задачу.
используя стек распечатать слова в текстовом файле в обратном порядке.
заранее спасибо !!


Цитата:
Помогите пожалуйста....бездарному програмисту... - 26.12.2010, 18:22
А помочь мне нужно вот чем.
1. создать массив
2. посчитать сумму элементов
3. если есть отрицательные значения, заменить их на 5
4. посчитать сумму снова, после замены
5. посчитать произведение этих 2 сумм
Помгите мне, ребята...огромное вам человеческое спасибо..
на с++


Цитата:
Дан текстовый файл .... - 21.01.2011, 17:12
прошу помощи!не допускают к экзамену,не могу решить эту задачу.
Дан текстовый файл с неизвестным количеством вещественных чисел.
Написать функцию для создания нового файла. В Файл записать числа, у которых равна сумма цифр целой и дробной части .


Цитата:
Дан текстовый файл...написать в Console Wizard - 21.01.2011, 17:14
Дан текстовый файл, состоящий из некоторого количества строк. Написать функцию для создания нового файла. В файл нужно записать все строки в которых больше трех слов. написать в Console Wizard

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение01.02.2011, 11:17 


18/11/10
381
Мюнхен
В первую очередь учащемуся программисту необходимо дать знания о методах управления сложностью программного кода, декомпозиция задачи, сокрытие информации, инкапсуляция и т.д. и т.п. Конечно путь "по наитию" или методом погружения тоже работает, когда пишешь все подряд, и потом через n-лет понимаешь (или не понимаешь и бросаешь это ремесло), что надо что-то менять.

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение15.02.2011, 11:03 
Аватара пользователя


27/10/10
80
Профессор Снэйп в сообщении #402962 писал(а):
creative в сообщении #401052 писал(а):
Основание теории алгоритмов.

Maslov в сообщении #401737 писал(а):
ещё программу, печатающую собственный исходный текст.

А не может ли настоящий программист, изучив основы теории алгоритмов, удовлетвориться доказательством того, что такая программа существует?

+

-- Вт фев 15, 2011 12:11:28 --

Joker_vD в сообщении #403378 писал(а):
Sonic86 в сообщении #403361 писал(а):
А вот что даст написание клиента к БД?

Опыт. А точнее, рано или поздно любому программисту приходится его писать.

Alexu007 в сообщении #403325 писал(а):
Вот написать программу, которая в качестве данных берёт ексешник, и в результате анализа кода восстанавливает его исходник -

К сожалению, это невозможно.


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

з.ы.
Есть такая программа IDA Pro.

-- Вт фев 15, 2011 12:15:27 --

Maslov в сообщении #406231 писал(а):
Scholium в сообщении #405801 писал(а):
А Вы пробовали с помощью Вашего клиента программировать серьезные учетные задачи уровня предприятия? И насколько Ваш клиент независим от серверов БД? И поддерживает ли он виртуальный режим, скажем на 100 миллионов записей как SysListView32 из comctl32.dll? Только не надо говорить, что если чего-то лично Вам не надо, то это и никому не надо. Речь то идет об идеальном клиенте, поддерживающим полноценный виртуальный режим, буфферизацию, разделенный доступ к БД и формально независимый от серверов БД. Который удобен в настройках, поддерживает скриптовый язык программирования, макросы и плагины, сохраняет свое текущее состояние и т.д. и т.п.
Судя по отсутствию подобных клиентов, настоящих программистов не существует.

Существуют, а вот сферический конь в вакууме никому не нужен.

-- Вт фев 15, 2011 12:19:06 --

Kitozavr в сообщении #406954 писал(а):
У вас получается, что начинающий программист должен написать нечто, что не написали даже профессионалы.

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение15.02.2011, 12:18 
Заслуженный участник


09/09/10
3729
b099ard в сообщении #413190 писал(а):
з.ы.Есть такая программа IDA Pro.

Есть. Сам ей пользуюсь. Но это полуавтоматический дизассемблер. К тому же она не может восстановить исходник, поскольку при компиляции очень много информации об исходнике теряется безвозвратно (например, имена всех объектов), к тому же существует много исходников, компилирующихся в одинаковую программу. Так что идеал — это получение одного из возможных исходников.

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение15.02.2011, 16:05 


24/05/09

2054
Joker_vD в сообщении #413216 писал(а):
По программе как-то набрасываем исходник, компилируем его, сравниваем, по различиям дорабатываем исходник, снова компилируем, сравниваем, дорабатываем и т.д.

О блин, как всё просто! Кто может как-то набросать исходник алгоритма архивации или сжатия в мр3 или игры в шахматы?

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение17.02.2011, 20:23 


13/10/09
283
Ukraine
Joker_vD писал(а):
b099ard писал(а):
з.ы.Есть такая программа IDA Pro.

Есть. Сам ей пользуюсь. Но это полуавтоматический дизассемблер. К тому же она не может восстановить исходник, поскольку при компиляции очень много информации об исходнике теряется безвозвратно (например, имена всех объектов), к тому же существует много исходников, компилирующихся в одинаковую программу. Так что идеал — это получение одного из возможных исходников.

На самом деле IDA Pro очень мощный инструмент, даже в своем демо-варианте. Исходник он восстановить может, только на уровне ассемблера. Есть попытки восстановления бинарного кода на уровне Си (плагин hexrays.plw IDA Pro), специалистам даже эти ограниченные возможности очень сильно помогают, тем более что по американским законам, авторское право на дизассемблерный код, восстановленный на уровне Си уже принадлежит тому, кто это проделал, а не автору бинарника. Хороший пример Проект ReactOS. Ребята дизассемблировали частично Windows NT (похоже, Win2000) до уровня создания Live-CD, что, откровенно говоря, очень впечатляет. Такие проекты нужно, по-моему, тайно спонсировать на государственном уровне :roll:. Для личных практических целей вполне достаточно восстановления бинарного кода на уровне ассемблера. Примеры можете посмотреть в проекте Erfaren. Если знаете ассемблер, то тогда мифы о «безвозвратной потере информации при компиляции бинарного кода» уйдут в прошлое. Достаточно узнать о технологии Flirt Ida Pro.

Joker_vD писал(а):
Кстати, если тут кто-то хорошо в таком разбирается, как насчет итерационного процесса? По программе как-то набрасываем исходник, компилируем его, сравниваем, по различиям дорабатываем исходник, снова компилируем, сравниваем, дорабатываем и т.д.

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение17.02.2011, 20:31 
Заслуженный участник


09/09/10
3729
Scholium в сообщении #414096 писал(а):
то тогда мифы о «безвозвратной потере информации при компиляции бинарного кода» уйдут в прошлое.

Ну-ну! Тогда вот вам два варианта исходника, которые скомпилируются в одинаковый бинарник:

Код:
int main(int a, char **b) { int c = 0; for (int d=0; d<16; c+=d++); printf("%d", c); return ++c; }

и
Код:
int main(int argc, char **argv) {
  int result = 0;
  for (int i = 0; i < 2*8; i++)
    result += i;
  printf("%d", result);
  return ++result;
}


Какой из них "настоящий"?

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение17.02.2011, 21:11 


13/10/09
283
Ukraine
Joker_vD писал(а):
Scholium писал(а):
то тогда мифы о «безвозвратной потере информации при компиляции бинарного кода» уйдут в прошлое.

Ну-ну! Тогда вот вам два варианта исходника, которые скомпилируются в одинаковый бинарник:

Код:
int main(int a, char **b) { int c = 0; for (int d=0; d<16; c+=d++); printf("%d", c); return ++c; }

и
Код:
int main(int argc, char **argv) {
  int result = 0;
  for (int i = 0; i < 2*8; i++)
    result += i;
  printf("%d", result);
  return ++result;
}


Какой из них "настоящий"?

Вы не очень далеко провинитесь в своих достижениях, если будете спотыкаться на таких вопросах. На самом деле это примеры эквивалентного кода, хотя «настоящий» это второй. Но, «что Вам нужно: шашечки или ехать?» Если Вы привыкли иметь дело в большими объемами кода, то на эквивалентность его частей или их оптимизацию обращаешь куда меньше внимания. Главное – функциональность! Если разный бинарный код выполняет практически, с точностью до несущественных нюансов, одно и то же, то какая разница был ли исходный код написан на высокоуровневом языке или на ассемблере. Существенно то, что он делает то, что нужно. Если имеешь дело с реальным работодателем, которому нет дела до твоих проблем реализации, и ограниченными сроками, тогда уже по другому смотришь на функционально эквивалентный, но по разному реализованный код.

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение17.02.2011, 21:39 
Заслуженный участник


09/09/10
3729
Scholium в сообщении #414112 писал(а):
Но, «что Вам нужно: шашечки или ехать?»

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

 Профиль  
                  
 
 Re: Каждый учащийся на программиста должен написать:
Сообщение17.02.2011, 22:19 


13/10/09
283
Ukraine
Joker писал(а):
Я лично дизассемблирую код для изучения алгоритмов, принципов работы и конкретной реализации этих принципов. Тут без "говорящих" имен переменных не обойтись, по крайней мере, мне. Но давайте оставим этот спор, который имеет слабое отношение к исходной теме. Если хотите, можем продолжить в ЛС.

(Оффтоп)

Очень сильно помогают «говорящие» имена системных функций, которые обеспечивает Flirt. Уже по одному перечню функций WinAPI, скажем, используемых в интересующем Вас модуле можно, судить о направленности исследуемого Вами алгоритма. Хотя, восстанавливать алгоритмы это тяжкий труд. Легче восстановить работоспособность собственно ассемблерного кода. Пример из практики. Меня заинтересовал алгоритм создания индексного cdx-файла Visual FoxPro. Имеющейся реальной информации – кот наплакал. Мелкософт фактически морозиться по этому вопросу. Наконец-то до меня дошло, что индексные файлы это B+ деревья, открытые совсем недавно в 1979 году, по-моему. Попутно изобрел собственный вариант алгоритма внешней сортировки, математические вопросы которого обсуждал здесь на сайте. Понял, что индексы, это не только деревья (при вставках / удалении записей), но еще и внешняя сортировка при первом создании полного индексного файла (обосновал необходимость периодической переиндексации баз данных, о которой нигде не слышал). Все эти идеи удалось получить без прямого анализа бинарного кода. Сейчас я готов реализовать алгоритм создания индексных компаундных файлов типа cdx. Он может быть VFP совместимым, тогда надо юзать бинарники на предмет бинарного формата cdx, либо несовместимым. Главное ведь в индексах «деревянный» поиск, а не строгость формата реализации. Вот dbf-формат реализую строго, эта информация почти открыта и дело стоит того. А индексы, по сути временные файлы.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 80 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: CDDDS


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group