Turbo Pascal и QBasic сейчас бесплатные?

stm7870384

Требуется ли их покупать? Или, дай Бог, уже не надо лицензии?

yroslavasako

хм, а чем тебя freepascal не устраивает?

yolki

да-да. freepascal же бесплатный и очень вкусный.

stm7870384

Меня устраивает. Но я преподаю в школе, начали изучать TP, не очень хорошо переучивать. Хотя, если окажется, что надо платить — переучим.
И вопрос тогда про бесплатный Basic остается...

yroslavasako

Хотя, если окажется, что надо платить — переучим.
freepascal умеет компилить в моде совместимости с турбо. Но это будет проявляться в таких мелочах, что только начавшие учить язык их не заметят

hwh2010

http://en.wikipedia.org/wiki/Turbo_Pascal
пишут, что бесплатный

stm7870384

Спасибо. Все теперь думаю: не перейти ли правда на FreePascal...

stm7870384

Спасибо. Правда, с ним что ли начать работать...

spitfire

бесплатный Basic
Gambas?

Andbar

не мучайте школьников васьком! :mad:

spitfire

Вопрос был --- существует ли. Само собой, я не могу приветствовать его использование.

stm7870384

Я б сразу с Паскаля начал. Но преподаватели до меня начали с Бейсика, потом Паскаль. Я б лучше — сначала Паскаль, потом С или Дельфи.

stm7870384

Думаю, что этот Гамбас — для нас излишне будет. Лучше что-нибудь попроще... Типа QBasic.

elenangel

про отличие FreePascal от Turbo - как-то в рамках подготовки к олимпиаде осваивали FP, обычно пишем же на Delphi, так вот, всякие операторы Write/Read(ln) ведут себя не так как в Delphi и Turbo Pascal, какой то глюк там был, что в конце обязательно Writeln писать надо или переход на новую строку обязательно в текстовом входном файле был. Так что мелочи эти не так уж и мелки и об них спотыкаешься практически сразу. (касательно отличия этих же операторов при сравнении Delphi и Turbo Pascal - насколько я знаю ведут себя одинаково).

stm7870384

С этим разберемся. Осталось найти свободный бейсик...

stm7870384

Спасибо. Много там смотреть.

yroslavasako

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

Andbar

разработка freepascal ведётся всё же активнее турбо
любая разработка активнее отсутствия оной :grin:

apl13

С какой это стати? Вялая разработка очевидно пассивнее активной неразработки. :umnik: :umnik2:

klyv

таки не всякий Basic - QBasic

sergeikozyr

1. FreePascal однозначно
2. мб посмотреть Python вместо васика?

stm7870384

С Паскалем меня убедили. Я бы с удовольствием Питон учил или что-то аналогичное (сам бы что-то новое узнал, ибо Питон не знаю). Но в 6-м классе ребята учили Бейсик. Поэтому я вынужден был продолжать для них его в 7-м, хотя с 8-го класса принято учить Паскаль. Школа физ-мат, поэтому учат 2 языка программирования.
Возможно, мне следовало бы сразу забить на это правило и начать Паскаль, но я не решился.
Будь моя воля — с 6-го класса Паскаль, потом С или Дельфи.

klyv

с Питона круче начинать, чем с Паскаля.
а после Васи всё равно, Паскаль или Питон, так что лучше Питон.

sergeikozyr

Ну да, по фичам питон лучше. Но у него нет статической типизации, так что понятно, что непонятно с чего лучше начинать.

stm7870384

Не могу ничего сказать, Питон не знаю.
Я вообще Фортран люблю, у меня столько кода на нем... Но его преподавать — меня не поймут...
Кстати в ЕГЭ задачи только на Паскале, С или Бейсике. Так что один Питон точно не катит.

stm7870384

По каким фичам он лучше для шестиклассника?

apl13

Давайте сразу Хаскель!

stm7870384

А что это, простите за невежество?

apl13

Ояебу...
Вот такие люди у нас в школах преподают, а потом самолеты падают! :mad:

stm7870384

Зато я на Фортране умею и на Матлабе.

palitik8

начали изучать TP, не очень хорошо переучивать
Зачем школьникам Паскаль то ?
Что в нём интересного ? Лучше уж С++ или МатЛаб.

nas1234

Зачем школьникам Паскаль то ?
потому что он как раз разработан для обучения самым основам программирования.

palitik8

40 с лишним лет назад....
Тупиковый путь ! Лично в моей не совсем программисткой жизни Паскаль было явно лишнее звено.

stm7870384

С++ с нуля учить — это тяжко. Особливо для 6-го класса. А Паскаль, я полагаю, самое оно.

klyv

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

stm7870384

Я не против Питона, но Паскаль, Бейсик либо С надо для ЕГЭ...

klyv

на Питоне обучить, что такое вообще программирование, потом показать на С++, что такое программирование с фигурными скобками.

nas1234

40 с лишним лет назад....
Тупиковый путь !
за 40 лет слова "процедура" и "функция", "если" и "пока" как-то не особо поменяли свой предназначение в языках программирования
или сейчас есть какието другие основы программирования чем условный оператор и оператор цикла?

stm7870384

Хорошо. Ты меня убедил. Но:
1) я не знаю Питон;
2) уже начали учить Бейсик (на следующий год, если останусь в этой должности проанализирую это явление).
Тут есть еще одна проблема, связанная с переходом из школы в школу. Ученик после Питона может поиметь массу проблем в новой школе, где учили Паскаль или Бейсик.

Vadim69

Школа физ-мат, поэтому учат 2 языка программирования.
одному мне эта фраза кажется странной что ли?
имхо, в школе надо алгоритмам учить, какому-нибудь одному языку(лучше - С, интереснее). выучить потом формальный синтаксис языка - не проблема вроде.
чему-то питонообразному можно, конечно, но уже лишнее - на первых курсах универа все равно не будет скорее всего.

juliuzz

лучше - С, интереснее
чем интереснее-то?
тем, что нужно гадать какой результат выдаст
c+=++a+++b++

?

nas1234

а не надо так писать, чтобы не гадать.

juliuzz

а вот поди объясни школьникам почему нельзя если синтаксис позволяет?

Vadim69

прозрачной работой с памятью и указателями хотя бы
извращаться так необязательно
хотя полезно
у меня вопрос антиспамбота как-то был -
 
i=0;
if(i++==++i)
i++;
//i=?

Vadim69

да не будут они так писать, только отдельные особо умные, в качестве "а чего тут еще можно?" - так это и хорошо, умные, если разберутся, станут еще умнее, заодно выпендрятся)

agaaaa

А не надо, чтобы можно было писать так, чтобы потом гадать. А то обязательно найдётся какой-нибудь умник.
Сам начинал с Basic'а, потом был ObjectPascal (который Delphi). Не думаю, что нужно учить С++ и не думаю, что нужно учить C после Pascal (т.к. возможности одинаковы за исключением вещей в C, которыми я бы рекомендовал не пользоваться).

nas1234

чтобы объяснить что так писать не надо, нужно превентивно предложить им разбрать твой пример .

stm7870384

одному мне эта фраза кажется странной что ли?
Одному тебе, наверное.

nas1234

Паскаль, Бейсик либо С надо для ЕГЭ...
мне вот паскаль кажется наиболее простым и понятным, чтобы на его основе потом можно было перейти на любой другой язык.

Vadim69

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

stm7870384

Мне тоже. Хотя надо бы этот Питон посмотреть...

stm7870384

Концепт очень простой.
1. Сначала Бейсик. На нем школьники рисуют, выполняют простейшие команды. Обучать рисованию на паскале не столь хорошо, ибо придется либо заклинания показывать типа:
uses graph;
egavga.bgi

и прочее. А на Бейсике таких заклинаний меньше.
2. И потом Паскаль, как нормальный язык.

juliuzz

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

Vadim69

а до какого класса васик? если как у нас, когда до 6 афаир класса были маки с Логомирами, где мы черепашку двигали - тогда да.. простейшие алгоритмы разобрать.

nas1234

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

Vadim69

ну как никто
мы в 10 и 11 классах работали
хотя да, это я наверное хватил - по программе не работают точно.

mkrec

> никто в школе не работает с указателями и памятью напрямую
мы работали. Скажем, связанный список, функция от функции — и вот на простейших и полезных примерах обнаруживается польза указателей. Не говоря уже о том, что некоторые совсем обычные вещи (скажем, работа с графикой — сохранение элемента экрана) в паскале подразумевает работу с памятью по указателю.
Мне кажется, си немного грубоват для школы. Школьнику приятно сразу без извратов использовать возможности модулей CRT и Graph, а в си так поступать не принято (хотя тоже можно, конечно, взять conio или что-нибудь подобное).

klyv

помню, Робот хорош был для понимания, что такое алгоритм :)

Vadim69

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

Vadim69

ага)
даже помню, как на примере рисования квадрата объясняли, что такое цикл

stm7870384

Бейсик — 6-й и 7-й классы.

oleg701

Кстати Бейсик преподается с функциями или только с подпрограммами?
Помню был сначала от Паскаля в некотором недоумении, когда нам рассказывали про функции, локальные переменные и рекурсию.
У нас в школе преподавался очень ранний Бейсик, кажется QuickBasic.

stm7870384

В Бейсике мы не поднимаемся выше циклов. Хорошо мультики делать.
А в Паскале — да. Там и процедуры с функциями, и рекурсия.

Vadim69

тогда понятно
просто смутила формулировка "школа математическая - значит два языка".

stm7870384

Возможно, формулировка не особо хорошая.

palitik8

за 40 лет слова "процедура" и "функция", "если" и "пока" как-то не особо поменяли свой предназначение в языках программированияили сейчас есть какието другие основы программирования чем условный оператор и оператор цикла?
В Си процедур нет (и правильно). Не зачем засорять мозги школьников мусором типа Beigin End вместо { }. Им это ни разу в жизни не пригодиться.
А
  i=0;
if(i++==++i)
i++;
//i=?

школьникам вполне по силам и только мозги развивает. Ну ООП может давать не надо, хотя в основах это тоже можно понять ещё в школе.
ИМХО: Для школьника полезнее не 2 языка выучить, и 10 библиотек, а в 20-ти алгоритмах как следует разобраться.

juliuzz

В Си процедур нет (и правильно).
функция, возвращающая void — по сути своей процедура
Не зачем засорять мозги школьников мусором типа Beigin End вместо { }.
с точки зрения непрофессионала, коими и являются школьники, разница непринципиальна
Им это ни разу в жизни не пригодиться.
кое-кому следовало в школе русский вместо си учить

nas1234

В Си процедур нет (и правильно). Не зачем засорять мозги школьников мусором типа Beigin End вместо { }. Им это ни разу в жизни не пригодиться.
ну любую функцию типа void можно считать процедурой. разница не принципиальна.
операторные скобки словами понятней для тех кто не знает что это такое.
а вот когда знает - тогда уже и перейдёт на { }.
школьниками и {} может никогда не пригодиться. но ему надо дать понятия "начало блока операторов" и "конец блока операторов".
как думаешь, зачем был придуман КуМир? почему сразу не учить си?
а на вопрос ты не не ответил.
Для школьника полезнее не 2 языка выучить, и 10 библиотек, а в 20-ти алгоритмах как следует разобраться.
ну так чем проще язык, тем проще разобраться в агоритмах.
а паскаль проще.

klyv

Не зачем засорять мозги школьников мусором типа Beigin End вместо { }.
с точки зрения непрофессионала, коими и являются школьники, разница непринципиальна
а профессионалу должно быть всё равно.

juliuzz

тем более :)

sergeikozyr

По каким фичам он лучше для шестиклассника?
list comprehension наверное, прежде всего - не нужно будет мучаться с циклами во многих случаях. Ну ещё всякие штучки вроде замыканий (они есть в FP, но нет в TP лямбда-выражения, хоть и ограниченные. Ну то есть функция - объект 1-го порядка. Стандартная библиотека намного мощнее.

Andbar

Как минимум, C не следует выбирать для школьников из-за менее удобной работы со строками, а также менее свободной нумерацией элементов массива. Далее: необходимость дописывать амперасанды перед переменными, читаемыми через scanf - это совершенно лишняя информация, которая для только начавшего изучать язык школьника, похуже чем заклинание "#include <stdio.h>". Лично мне очень долго не хотелось учить средства модуля graph в паскале из-за необходимости писать заклинание "initgraph" и чего-то там ещё, тем более что литература с описаниями перегружена подробными описаниями автоматического выбора драйвера, что для начинающего совершенно не нужно.
Короче, чем меньше будет непонятных с первого раза "заклинаний" в программах, которые будут писать ученики, только-только начавшие изучение языка, тем лучше. А принуждение к тупому заучиванию отрицательно сказывается на желании продолжать учиться тех, кому это под силу. Так что (имхо) C для обязательного изучения в школе - не очень педагогичный выбор. Можно, конечно, факультативно предложить его (мб. для кого-то даже вместо паскаля но заставлять его учить всех - неправильно.

palitik8

или сейчас есть какието другие основы программирования чем условный оператор и оператор цикла?
Основы уже лет 50 как основы.
разница не принципиальна. ...
профессионалу всё равно.

В том то и дело, что разница непринципиальна, только зачем школьнику учить умирающий Паскаль вместо Си ?
Чем Паскаль проще то ? :confused: Тем что ":" надо ставить в операторе присваивания ?

nas1234

Чем Паскаль проще то ?
чем Си.
а чем Си проще?
в паскале меньше возможностей и больше ограничений. поэтому сложней ошибиться.
этим он и проще. тут даже переменные надо объявлять в отдельном блоке, а не где хочу.
Чем Паскаль проще то ? Тем что ":" надо ставить в операторе присваивания ?
в одном из учебников по Си++ видел врезку:

Использование "=" вместо "=="
присваивание в Си вернёт true и ошибка не будет выдаваться. в паскале так не получится.

Andbar

Тем что ":" надо ставить в операторе присваивания ?
Кстати да, меньше шансов на ошибку, а ещё не надо лишние скобки у if, while и for ставить...
А умирающий он только в представлении фанатичных сишников :grin:
Ещё раз отрезюмирую свой предыдущий пост: в педагогическом плане ты конкретно не прав.

Vadim69

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

Vadim69

хз, хз
меня конструкция if..then всегда конкретно выбешивала(забывал всегда then написать)
ну и ; перед else нельзя ставить - тоже ошибался часто первое время)

yroslavasako

присваивание в Си вернёт true и ошибка не будет выдаваться. в паскале так не получится.
чтобы этого не происходило и ошибка действительно генерировалось достаточно на место присваемого поставить константу, например:
5 == x

Vadim69

да, и for..to..do - тоже
да еще внутри цикла нельзя итератор трогать(а иногда так хочется

Andbar

присваивание в Си вернёт true
FAIL. Присваивание вернёт то, что ты присваиваешь. А уж true это или false (формально, т.к. вроде в C нет типа bool это уже второй вопрос: всё, что равно нулю, приравнивается к false.

nas1234

чтобы этого не происходило и ошибка действительно генерировалось достаточно на место присваемого поставить константу, например:
5 == x
мне кажется чаще надо сравнить две переменные

nas1234

ну хоть не epic fail
главное что вернёт, а не ошибку даст

Andbar

чтобы этого не происходило и ошибка действительно генерировалось достаточно на место присваемого поставить константу, например:
5 == x
знания, необходимые хорошему программисту, но совершенно не нужные для школьника

Andbar

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

Vadim69

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

yroslavasako

мне кажется чаще надо сравнить две переменные
0+x == y

Andbar

меня конструкция if..then всегда конкретно выбешивала(забывал всегда then написать)
ну и ; перед else нельзя ставить - тоже ошибался часто первое время)
дай угадаю, после C/C++ или подобного языка изучал?
Конечно конструкцию if можно было сделать проще: вместо if-then(-else) сделать if-then(-else)-*endif* (вместо *endif* - какое-то более лаконичное слово, т.к. endif плохо вписывается в список зарезервированных слов это бы убрало требования писать begin/end каждый раз, тем более что именно для ветвлений без них проще всего ошибиться. Но в си-подобных языках ветвление обладает в принципе теми-же недостатками.

agaaaa

Руки поотрывать тем, кто так пишет. Представляешь себе поток мыслей: "если 5 равно x"? Это не читабельно и писать так нельзя.
В этом отношении паскаль лучше - ошибки не сделать, а писать нормально можно.

Andbar

то есть ты хочешь сказать, что допустимо изменять итератор внутри цикла?.. на меня tp ругался, на сколько я помню, щас для интереса фрипаскаль поставлю, проверю.
э... Я впервые с использованием этого дела я писал решение какой-то задачи (всё что помню - заполнение какого-то массива на TP естественно.

agaaaa

Имхо, циклы выдумали не для того, чтобы итератор трогать.

Vadim69

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

agaaaa

да, необходимость только на 2 курсе появилась..
это, конечно, мелочи, но осталось негативное отношение к ним
Это сделано для читаемости. Имхо, if ? then ... else ... лучше читаются чем if (?) ... else ...

Andbar

Представляешь себе поток мыслей: "если 5 равно x"?
представляешь, я читаю подобную запись так, как мне удобно, но когда пишу, часто на автомате пишу именно так. А если пишу присваивание там, где обычно бывает сравнение (иногда так надо то оставляю комментарий, гласящий что в этом месте одиночное = - не ошибка. Это вопрос хороших привычек, минимизирующих ошибки при написании кода языках с си-подобным синтаксисом.

Vadim69

ну как бы вот:
 

program test;
var
i:integer;
begin
for i:=1 to 11 do
i:=i+1;
end.

 
 
maestro-laptop:~$ fpc test.pas
Free Pascal Compiler version 2.2.0 [2008/09/20] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling test.pas
test.pas(6,11) Error: Illegal assignment to for-loop variable "i"
test.pas(7,4) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
maestro-laptop:~$

Vadim69

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

Vadim69

ну мб дело вкуса.

agaaaa

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

agaaaa

Имхо, тогда лучше использовать какие-нибудь другие циклы. while, например.
Просто использование for может ввести в заблуждение, что операции производятся над каждым элементом.

yroslavasako

program test; var i:integer; begin for i:=1 to 10 do i:=i+1; end.
на турбо оно в бесконечный цикл сорвётся, потому что в нём for реализован через test - сравнение с нулём. цикл от 1 до 11 был бы более корректным примером

Vadim69

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

Vadim69

да, протупил :o
но мне надо было просто показать, что компилятор не дает изменить переменную. исправил.

Andbar

ну, как-бы, я за слова отвечаю:

agaaaa

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

Andbar

на турбо оно в бесконечный цикл сорвётся, потому что в нём for реализован через test - сравнение с нулём. цикл от 1 до 11 был бы более корректным примером
FAIL, по факту, программа компилится и завершается довольно быстро, смотри скриншот.

Vadim69

весело. точно помню, что какой-то компилятор кроме фрипаскаля не давал..

klyv

Имхо, if ? then ... else ... лучше читаются чем if (?) ... else ...
ну не в этом суть языков, не это сравнивают...

Andbar

нередко изменение итератора применяется в таких конструкциях:
 
for i:=1 to length(s) do 
case s[i] of
'a':...
...
'\':begin
inc(i);
case s[i]of
......
end;
end;
end;{case}
Можно, конечно, сделать конечный автомат с несколькими состояниями, но в таком развёрнутом виде такой алгоритм иногда будет проще читаться.

klyv

а то, что внутри foreach нельзя трогать ни коллекцию, ни выданный элемент - не пугает?

agaaaa

ну не в этом суть языков, не это сравнивают...
Кто сравнивает - это раз?
Откуда утверждение - это два?

agaaaa

Вот тут я бы поставил while. Или вообще рекурсию бы написал.

agaaaa

а то, что внутри foreach нельзя трогать ни коллекцию, но выданный элемент - не пугает?
Расставь правильно 'ни' и 'но', а то что-то не понятно о чём ты спрашиваешь ;)
Если вместо но - ни и речь шла о C#, то возможность замены элемента в коллекции меня не напрягает, а сам элемент можно поменять - если он ссылочного типа.

Andbar

весело. точно помню, что какой-то компилятор кроме фрипаскаля не давал..
delphi тоже не даёт... Пожалуй, для школьного применения даже хорошо, что есть такое ограничение на уровне компилятора.

oleg701

Помимо присваивания, вспомнил еще цикл for в Си.
Этого точно не нужно школьникам.
Люди, предлагающие Си для школьников, похоже не учитывают, что в школе изучается программирование вообще, а не прикладное программирование. Там важно дать правильные базовые знания всем, а не дать профессиональное знание языка, с которым можно идти работать.
Я лично доволен, что нам на ВМК сначала преподавали Паскаль, а потом Си.
Паскаль хорошо структурирует мозги, и в нем есть практически все инструменты, которые могут понадобиться в дальнейшем.

Andbar

Вот тут я бы поставил while. Или вообще рекурсию бы написал.
while надо правильно писать, чтобы с break можно было нормально использовать.
Каким макаром ты тут рекурсию решил применить, я не понял. Либо ты хочешь ввести её там, где её быть не должно, либо ты так обозвал разбиение одного блока на несколько функций.

agaaaa

Я думаю изучение Си и С++ на ВМиК - довольно-таки бесполезные вещи. Ибо Си мало отличается по возможностям от Паскаля, который изучался курсом раньше, а для изучения ООП есть более красивые языки, чем C++.

agaaaa

void Parse(string str)
{
switch(str[0])
{
case '\':
switch(str[1])
{
...
}
Parse(str.Substring(2;
}
}

Впрочем, я, наверное, слишком много прогал на F#.

Andbar

Я думаю изучение Си и С++ на ВМиК - довольно-таки бесполезные вещи. Ибо Си мало отличается по возможностям от Паскаля, который изучался курсом раньше, а для изучения ООП есть более красивые языки, чем C++.
1. Научитесь писать до окончания учебы.
2. Выучите С до окончания учебы.

Andbar

Вот это я называю введением рекурсии там, где должен быть цикл.

oleg701

Из-за того, что C++ не самый красивый язык, его изучение не становится бесполезным.
А понятие об объектно-ориентированном программировании некоторое дает.
Хотя сейчас пожалуй Java была бы актуальней.
Но учебные курсы составлялись достаточно давно, и меняются они довольно медленно.

apl13

тут даже переменные надо объявлять в отдельном блоке, а не где хочу.
В сях, в общем-то, тоже...

palitik8

В ответ на: Чем Паскаль проще то ?
чем Си.
Учить приходиться все его ограничения ключевые слова и прочее не нужное барахло.
Те же оперторные скобки и " ;" придумывать как правильно раставлять. А потом забыть это всё как страшный сон. А синтаксис он на то и синтаксис, что бы его учить. Тут, как заметил :grin: , на русский язык не всегда хватает времени, а приходится заниматься синтаксисом Паскаля ни на что ни похожем.

oleg701

А у тебя много навыков из школы, которые пригодились напрямую?
Которые не пришлось забыть как страшный сон?
А то, понимаешь, на русский язык времени не хватает, а приходится учить даты сражений в войнах начала 19 века.
Это же школа, а не ПТУ.
Паскаль простой и понятный язык. Он разрабатывался специально для обучения.
А если учить Си, то его ограничений, граблей и синтаксиса придется учить в три раза больше.
Плюс низкоуровневая специфика, которая школьникам никуда не впилась.
А вот то, что Си потом в жизни пригодится, все равно большой вопрос.
Не все ж идут в программисты.

Andbar

Те же оперторные скобки и " ;" придумывать как правильно раставлять.
Жесть. У тебя, наверное, в школе Паскаля травма осталась? :grin: Школа - это не учреждение, занимающееся целевой подготовкой программистов!
Человек, способный стать в будущем программистом, освоит это как нефиг делать и проблем это не вызовет. Остальным языки сложнее Паскаля, скорее всего, не нужны. Ибо нефиг учить будущих недопрограммеров.

klyv

Чтобы упростить вашу жизнь и чтобы подчеркнуть насколько это заказная статья, ...
:grin:

klyv

Я думаю изучение Си и С++ на ВМиК - довольно-таки бесполезные вещи. Ибо Си мало отличается по возможностям от Паскаля, который изучался курсом раньше, а для изучения ООП есть более красивые языки, чем C++.
Си позволяет разобрать низкоуровневые вещи, не прибегая к ассемблеру (на котором разбираются ещё более низкоуровневые вещи без которых студент не поймёт, что на самом деле происходит, когда он пишет на языке очень высокого уровня абстракции что-то вроде "DWIM".

palitik8

А у тебя много навыков из школы, которые пригодились напрямую?Которые не пришлось забыть как страшный сон?
Да практически всё уже пригодилось, во первых потому что я в школе плохо учился, а во вторых я уже достаточно старый. :p
 
Паскаль простой и понятный язык. Он разрабатывался специально для обучения.
40 с лишним лет назад. Педагогика скакнула за это время вперёд !
   Паскаль убог, и если чем-то и проще чем Си, то это можно освоить за 2-3 дня, а вот на переучивание с Паскаля на Си или Жаву времени может уйти уже прилично ( в зависимости от квалификации и втянутости поэтому я считаю Паскаль не нужным.

apl13

на переучивание с Паскаля на Си или Жаву вренени уйти уже прилично
Не всегда следует следовать правилу "Всяк мерит на свой аршин". :umnik:

klyv

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

palitik8

это обычно значит, что придётся сразу далеко уходить от естественного или просто понятного языка
Мне просто кажется что begin end и прочие формы естественного языка не меняют сути Паскаля как языка алгоритмического, та же Рапида или даже язык 1С и R-slyle хотя и русскими словами написаны не становятся от этого языками пригодными для общения, а остаются языками алгоритмическими. Это мнимая доступность ИМХО.

nas1234

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

nas1234

да, сути не меняют.
но слова "начало" и "конец" по всем параметрам проще передают смысл, чем "{" и "}"

nas1234

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

agaaaa

2. Выучите С до окончания учебы.
Это явно не в тему, так как по ссылке Си сравнивается с Питоном и Java, а основной критерий - близость к машине. Я же сравнил его с Паскалем, который столь же близок к машине, как и Си.

agaaaa

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

nas1234

В сях, в общем-то, тоже...
разве в си нельзя в любом месте сказать
int i;
?
давно уже не пользовался си

Vadim69

В чистом С нет.

nas1234

я с чистым не сталкивался.
Си изучал в вижуал студии. где си++
значит я некомпетентен в нём

Andbar

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

nas1234

Просто те, кто бездумно пишут C/C++, нередко не понимают, чтяо это разные языки.
я один из них
значит я некомпетентен в нём

serega1604

вместо *endif* - какое-то более лаконичное слово
fi !

Andbar

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

klyv

theveryendofif?
или таки лучше endif? :)

nas1234

theultimateendofif
а вообще, EndIf

Andbar

а вообще, EndIf
это уже какой-то, блин, васик.
Либо end (как и после case-а либо какой-нить finish/after/etc

doublemother

в башевской нотации всё просто: if ... fi, case ... esac

juliuzz

угу for ... done :smirk:

doublemother

я тоже думаю, что с for ... done они погорячились :)
Оставить комментарий
Имя или ник:
Комментарий: