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: Каждый учащийся на программиста должен написать:
Сообщение23.01.2011, 07:20 
Заслуженный участник


08/04/08
8556
arseniiv писал(а):
Я думаю, что интерпретатор. :-)

А интерпретатор всегда на ассемблере пишется? Или на чем?

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


18/12/07
8774
Новосибирск
Joker_vD в сообщении #403008 писал(а):
Так а что же является доказательством, как не исходный код этой программы?

Рассуждение, показывающее, что такой код существует.

В данном случае --- рассуждение, ссылающееся на теорему о неподвижной точке.

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


06/03/09
240
Владивосток
Alexu007 в сообщении #403069 писал(а):
Maslov в сообщении #401737 писал(а):
А ещё программу, печатающую собственный исходный текст.

А чё эта? Программа должна открыть на экране заранее подготовленный текстовый файл со своим исходником?

http://ru.wikipedia.org/wiki/Куайн_(программирование)

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


24/05/09

2054
Код:
program autobiografija (output);
  var c : array[1..14] of string[60];
      i : integer;
begin
c[ 1]:='program autobiografija (output);                            ';
c[ 2]:='  var c : array[1..14] of string[60];                       ';
c[ 3]:='      i : integer;                                          ';
c[ 4]:='begin                                                       ';
c[ 5]:='for i := 1  to  4 do writeln(c[i]);                         ';
c[ 6]:='for i := 1  to 13 do writeln(c[14,1],c[14,2],i:2,c[14,5],   ';
c[ 7]:='           c[14,6],c[14,7],c[14,8],c[i],c[14,8],c[14,9]);   ';
c[ 8]:='for i := 1  to  8 do write(c[14,i]);                        ';
c[ 9]:='for i := 1  to  8 do write(c[14,i]);                        ';
c[10]:='for i := 8  to 60 do write(c[14,i]);                        ';
c[11]:='writeln(c[14,8],c[14,9]);                                   ';
c[12]:='for i := 5  to 13 do writeln(c[i]);                         ';
c[13]:='end.                                                        ';
c[14]:='c[14]:='';                                                   ';
for i := 1  to  4 do writeln(c[i]);
for i := 1  to 13 do writeln(c[14,1],c[14,2],i:2,c[14,5],
           c[14,6],c[14,7],c[14,8],c[i],c[14,8],c[14,9]);
for i := 1  to  8 do write(c[14,i]);
for i := 1  to  8 do write(c[14,i]);
for i := 8  to 60 do write(c[14,i]);
writeln(c[14,8],c[14,9]);
for i := 5  to 13 do writeln(c[i]);
end.


И что, это высшая сложность в программировании? Это обязательно нужно написать начинающему программисту? Чё то я не уловлю, в чём тут задание - в цикле вывода массива строк на экран?

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

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


18/12/07
8774
Новосибирск
Alexu007 в сообщении #403325 писал(а):
И что, это высшая сложность в программировании?

Копипаста? Нет, это далеко не высшая сложность :?

А вот самостоятельно сгенерировать quine, пользуясь лишь собственным мозгом --- вполне достойная задача! Вы вообще-то хоть поняли, что эта программа делает и как?

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


24/05/09

2054
А, ну да, выводит... sorry, я просто первые несколько строк посмотрел, где просто вывод, а дальше не стал. Ну наверное интересно, для тех кто ребусы разгадывать любит...

Мне вот раньше, когда ещё DOS была, нравилось разбирать .com или даже .exe и вытаскивать оттуда интересующие меня процедуры на ассемблере - и ведь получалось!

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


18/12/07
8774
Новосибирск
Alexu007 в сообщении #403332 писал(а):
Ну наверное интересно, для тех кто ребусы разгадывать любит...

Ребусы?!

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

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

-- Вс янв 23, 2011 14:25:39 --

Кстати, quine возможен не только в языках программирования, но и в естественном языке.

Х. Роджерс писал(а):
Примеры этого явления могут быть приведены в естественном языке. Выражение

"результат подстановки "5" в "$x$ есть простое число""

означает, конечно,

"5 есть простое число"

Выражение

"результат подстановки "результат подстановки $x$ в $x$" в "результат подстановки $x$ в $x$""

означает, как можно убедится, самое себя.

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


07/01/10
2015
Sonic86 в сообщении #401006 писал(а):
3. Калькулятор.

По-моему, тоже не совсем тривиальная задача. Я имею в виду не "2+5=", а небольшой символьно-численный матпакет (а-ля maxima лайт). В процессе можно научится и синтаксическому разбору (особенно, если этот калькулятор будет включать простенький ЯП) и изучить на практике вычметоды, алгоритмы.

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


24/05/09

2054
ИМХО далеко не каждый изучающий программирование планирует стать программистом. Отсюда и паника на программистских форумах: "Памагите я написал праграмму но ничего в ней не панимаю".

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


08/04/08
8556
Читаю ответы и думаю - из каких соображений это предлагается. Я предлагал то, что учащийся мог бы написать нечто особо не мучаясь, но увидеть в результате реальную работающую программу и подумать "Ого! Да я могу!", что потом помогало осваивать более сложные вещи.
А вот что даст написание клиента к БД?

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


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

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

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

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

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


27/04/09
28128
Sonic86 в сообщении #403300 писал(а):
arseniiv писал(а):
Я думаю, что интерпретатор. :-)

А интерпретатор всегда на ассемблере пишется? Или на чем?
Зачееем. На любом языке, который душе угоден. :-) (Желательно, конечно, чтобы он быстро обрабатывал строки.) Вот, например, интерпретатор, предложенный сахаром.

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


03/03/10
1341
Надо написать игру и оригинальный вирус (не разрушительный, а именно оригинальный, чтобы жертва оценила шутку и на понесла ущерба).

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


13/08/08
14452
Kitozavr, главное, чтобы жертва не нанесла ущерба программисту :-) .

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

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


24/05/09

2054
Базовые вещи должны быть. Подробный разбор общеизвестных алгоритмов:

- перевод bin-dec-hex и обратно
- арифметические операции
- сортировка
- реализация математических формул на языке программирования (арифметике)
- сжатие (Хаффман?)
- шифрование

Список можно продолжить, если я что упустил. Чел должен уметь писать программу с использованием этих алгоритмов.

Реальная задача преподавателя - не научить всю группу (курс) чему-либо, а выявить студентов имеющих способности - для дальнейшего обучения. Это в идеале, без учётов современных реалий, коррупции и т.п.

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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