2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5
 
 Re: Программирование для начинающих
Сообщение30.12.2011, 03:21 
Аватара пользователя


28/12/11
10
Maslov прав. Все меняется. VB прогрессирует и из за этого немного теряет в удобствах в угоду времени.

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

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение31.12.2011, 01:45 
Аватара пользователя


01/03/11
119
Хорошо, мой вариант этих программ на: Perl

Код:
#factorial
print "input factorial number\n";
$_ = <>;
$_ = join" ", (1..$_);
while ( s/(\d+)\s(\d+)/$1*$2/e){}
print;

#fibonacci
undef($_);
print "input number of fibonacci\n";
$n = <>;
$_ = print print . print;
@_ = split;
$__ = sub{
for (1..$n){
   $_  =  shift;      
   print "-->"; print; print "\n";
   $_[0]+=$_;
   push @_, $_;
   }
};
$__->(@_);

#divisions
print "input number\n";
print "> ";
$n = <>;
map{$n % $_ || print . print "\n" ;}(2.. $n / 2);


 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение02.01.2012, 17:11 
Заслуженный участник


27/04/09
28128
Непонятно. :P

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение02.01.2012, 18:25 
Заслуженный участник


15/05/05
3445
USA
arseniiv в сообщении #522276 писал(а):
Непонятно. :P
Perl - это язык для тех, кто пишет программы, а не для тех, кто их читает...

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение02.01.2012, 20:33 
Заслуженный участник


09/08/09
3438
С.Петербург
arseniiv в сообщении #522276 писал(а):
Непонятно. :P
arseniiv, я в Перле не особо, поэтому мне тоже трудно понять, зачем при вычислении факториала надо строить массив, затем преобразовывать его в строку, а затем парсить эту строку с помощью регулярных выражений. Перед программой вычисления чисел Фибоначчи вообще замер в немом восхищении.

Честно говоря, предпочитаю более традиционные решения.

(Например, что-то такое)

Код:
# Factorial
print "Enter a number: ";
chomp($_ = <>); # chomp removes the trailing linebreak
my $f = 1;
for my $n (2..$_) { $f *= $n };
print "$_! = $f";

# Fibonacci
print "How many Fibonacci numbers do you want? ";
$_ = <>;
print "f[0] = 0\nf[1] = 1\n";
($f1, $f2) = (0, 1);
for my $n (2..$_-1) {
    ($f1, $f2) = ($f2, $f1+$f2);
    print "f[$n] = $f2\n";
}

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение03.01.2012, 21:25 
Аватара пользователя


01/03/11
119
Насчет читаемости:
Код:
print "please, input number\n> ";
$n = <>;
my $frac=1;
if ($n =~m/(\d+)/){#searching first number in your input
   $n = $+;#find it
}else {die "your string is not a number\n";}# or die with this message
for(my $i = 0; $i<$n; ++$i){
     $frac*=$i+1;
}
print "your factorial is $frac\n";
$n = <>; #last input for your c/c++ programs, yep

ничего не напоминает?
а писать непонятный код можно и на C, и на C++, и на любом другом языке. (говорить с набитым ртом вам никто не запрещал)
Maslov
а про ваш вариант:
что-то вы не очень-то жалуете символ перевода строки ( строки нормально приводятся к числам )

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение03.01.2012, 22:00 
Заслуженный участник


09/08/09
3438
С.Петербург
loldop в сообщении #522677 писал(а):
что-то вы не очень-то жалуете символ перевода строки ( строки нормально приводятся к числам )
Я в курсе про приведение строк к числам, но если не удалять конечный перевод строки, "print "$_! = $f" выведет что-то типа
Код:
5
! = 120

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение06.01.2012, 02:09 


06/01/12
2
Цитата:
Я вот что-то не очень понял про free pascal и turbo pascal.Это два разных языка?

turbo pascal также как и free pascal - среды разработки ПО
turbo pascal - среда разработки для платфрм dos и windows v3.1
free pascal - кросс платформенная среда разработки, компилятор распространяется бесплатно по лицензии GNU GPL. Язык программирования используемый этими компиляторами один и тот-же - pascal, не следует путать среду разработки и язык программирования.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение06.01.2012, 02:19 
Заслуженный участник


27/04/09
28128
workouter в сообщении #523665 писал(а):
Язык программирования используемый этими компиляторами один и тот-же - pascal, не следует путать среду разработки и язык программирования.

Однако же нет. Языки тоже разные. В основном, они совпадают — FP расширяет TP.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение06.01.2012, 02:21 


06/01/12
2
Pascal - это безнадёжно устаревший не перспективный язык программирования. Pascal нашёл применение в школах и университетах, не советую тратить своё время на изучение этого языка.
Совсем Другое дело - язык программирования С++. Советую начинающим программистам именно этот язык. Более 70% всего ПО написано именно на С++. С++ применяется для создания прикладных программ, разработка ОС, видео игр, драйверов устройств и даже в сайтостроении.
Для начинающих программистов рекомендую книгу Дейтелов Как программировать на С++

-- 06.01.2012, 03:30 --

Конечно FP расширяет старый добрый TP, но язык программирования используемый в этих компиляторах один и тот-же - PASCAl. Во free pascal есть набор библиотек для работы с WIN API, CRT, GRAPH, Objects и много других. Это дополняет язык программирования pascal в среде разработки FP.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение06.01.2012, 02:39 
Заслуженный участник


27/04/09
28128
workouter в сообщении #523667 писал(а):
Конечно FP расширяет старый добрый TP, но язык программирования используемый в этих компиляторах один и тот-же - PASCAl.
Грамматики языков, поступающих на вход этим компиляторам, различны. Вы же не будете отрицать?

-- Пт янв 06, 2012 05:45:43 --

Давайте я тогда скажу, что C = C++ = C# = Java (до кучи).

 Профиль  
                  
 
 Но ведь так не бывает!
Сообщение28.01.2012, 10:17 


28/01/12
2
Ivan_Ivanov в сообщении #519457 писал(а):
Так с какого языка лучше начинать?С одной стороны не хочется терять время для изучения "ненужного" языка в будущем.Но насколько изучение более "легкого" языка может ускорить процесс усваивания материала?И если уже и начинать с "продвинутого" языка(т.е. с того с которым в дальнейшем и буду работать),то какой язык выбирать,чтобы потом не пришлось переучиваться на другой?

Вы хотите научиться чему-то не желая делать хоть-что-то. Таких понятий как "легкий" или "ненужный" язык не существует. И вообще, программирование - это образ мышления. Это - умение анализировать задачу, умение разделить задачу на ряд более простых задач (декомпозиция), умение составить алгоритм решения задачи. Причем, от того, на каком именно языке, вы будете записывать свой алгоритм, практически ничего не зависит. Пишите хоть на самом доступном и понятном вам языке - русском. А перейти с одного языка на другой - дело техники. Или нет?

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение28.01.2012, 12:07 
Аватара пользователя


01/03/11
119
arseniiv
эм..
включение C в С++ существует, но не полное. Правда после появления C++ изменилась парадигма программирования.
А пример, который привели с FP и TP - вполне законный. Если не брать во внимание реализацию нескольких функций, включение одних в одну из версий, а более точно, диалектов языка Pascal не играет существенной роли.
C#=C++ - да вы, случаем, не ошиблись?
C# взял от C++ львиную долю синтаксиса, ок. Но внутренняя структура языка, методы использования переменных ( найдите в C# указатели ), управление памятью, данными, методы функционального программирования, делегаты, предикаты, остальные новомодные приемы - это вам не диалект
C#=Java?
Два разных языка, в них даже синтаксис не всегда совпадает. И один является детищем мелкомягкого, а второй - Sun Microsystems.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение28.01.2012, 15:17 


24/05/09

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

В частности с++ имеет больше стандартных возможностей и более удобный сиснтаксис, но это скорее побочный фактор, так как 2 оба языка Тьюринг полные, а следовательно общее количество решаемых задач у них одинаковое, просто удобство исполнения на с++ выше.

К сожалению паскаль и объектный паскаль часто преподают в ВУЗах, поэтому студентам приходится тратить время на изучение очевидно бесполезного языка, так как никаких новых знаний получить от него нельзя, если это не первый язык для изучения.

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

Сменится платформа и часть ваших знаний (не все), можно будет спустить в унитаз. В данном случае, если вы выучите паскаль, то можно будет спустить все знания о синтаксисе паскаля в унитаз. Если вы еще и дельфи выучили, то можно будет выкинуть знания о различных визуальных обънетах, так как они реализованны в различных языках по разному.

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

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение16.02.2012, 22:22 


04/06/10
117
*закрылся щитом от помидоров*

1. Кук, Бейз "Компьютерная математика" (опечаток много :-(), дальше Грэхем et al. "Конкретная математика", потом можно и за "Искусство программирования" взяться Кнута. Это всё алгоритмы и сопряжённая математика.

2. SICP — структура и интерпретация компьютерных программ. Очень полезная книжка. Учит думать головой. Выложена свободно в интернете на русском.

3. "Введение в функциональное программирование" Харрисон. http://code.google.com/p/funprog-ru/ Это взгляд с типизированной стороны, в отличие от п.2. Были ещё похожие лекции на анлийском, с использованием не CamlLight, а простого SML. Ну да хрен с ним.

Гм. Думаю, этого пока хватит.

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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