Методическое пособие рассчитано на школьников 9-11 классов, а также может быть полезно учащимся других учебных заведений среднего образования, изучающих основы программирования. В пособии изложены основные понятия и состав языка Pascal ABC, а также методика решения типовых задач программирования.
Приведены примеры решения основных типов задач программирования с комментариями. Автор: учитель информатики МОУ СОШ. Троицкое Моздокского района РСО-Алания Ерёмин О.Ф.
На этой странице вы можете посмотреть и скачать Электронный учебник ABC Pascal для обучающихся. Программирование на языке Паскаль. Использование веб-среды PascalABC.NET. Учебник информатики К. Title: Учебник по Pascal ABC, Author: Виктор Ярославцев. ABC Pascal - 7 - 25. 2012 Оператор ввода – read, readln. Книги по Pascal, скачать бесплатные книги, самоучители и учебники по Pascal в хорошем качестве. Turbo Pascal. Описание книги Turbo Pascal. Самоучитель: Назначение этой книги — научить неподготовленного читателя создавать программы на Turbo Pascal.. Описание книги Паскаль для школьников: Эта книга — не учебник, а скорее помощник в освоении языка программирования Паскаль, с которым на уроках информатики знакомятся все школьники. Она состоит из уроков, посвященных практическим вопросам программирования и решения задач. Многочисленные примеры позволяют лучше понять, как разработать алгоритм, написать собственную программу, правильно оформить ее текст.
Полный текст материала “Методическое пособие по программированию на языке Pascal ABC”. Смотрите в скачиваемом файле. На странице приведен фрагмент. 2007-2018 'Педагогическое сообщество Екатерины Пашковой — PEDSOVET.SU'. 12+ Свидетельство о регистрации СМИ: Эл №ФС77-41726 от г. Выдано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций.
Адрес редакции: 603111, г. Нижний Новгород, ул. Раевского 15-45 Адрес учредителя: 603111, г. Нижний Новгород, ул.
Раевского 15-45 Учредитель, главный редактор: Пашкова Екатерина Ивановна Контакты: +7-920-0-777-397, info@pedsovet.su Домен: Копирование материалов сайта строго запрещено, регулярно отслеживается и преследуется по закону. Отправляя материал на сайт, автор безвозмездно, без требования авторского вознаграждения, передает редакции права на использование материалов в коммерческих или некоммерческих целях, в частности, право на воспроизведение, публичный показ, перевод и переработку произведения, доведение до всеобщего сведения — в соотв. Также Правила публикации конкретного типа материала. Мнение редакции может не совпадать с точкой зрения авторов.
Для подтверждения подлинности выданных сайтом документов сделайте запрос в редакцию.
Баллада о Turbo Pascal или 20 лет без перемен Тихо и незаметно прошла первая неделя нового учебного года. Хоть я уже и давно закончил школу, а своих детей школьного возраста пока нет, я все равно волей-неволей задумываюсь о начале учебного года. И вызвано это отнюдь не засильем детей в школьной форме на улицах: я очень редко выхожу из дома. Причина, из-за которой я вспоминаю, что началась осень довольно необычна — я замечаю на форуме моей локальной сети свежую тему, кочующую из года в год, всплывающую порой в самых неожиданных разделах этого форума. Если сформулировать эту тему, то получится всего 4 слова, отражающих всю безысходность ситуации с компьютерным образованием на просторах бывшего СССР, звучит она так: «Где взять Turbo Pascal?» То, что я решил наконец написать об этом явлении далеко не случайно — не знаю точного числа и месяца, но именно в 2012 году среде Turbo Pascal 7, которая широко используется во всех учебных заведениях на постсоветском пространстве, стукнуло 20 лет.
Именно в 1992 году вышла версия 7.0, которая на два десятилетия вперед определила начало пути для тысяч будущих программистов, а скриншот ниже запечатлелся в памяти, наверное, миллионов людей. Спустя еще 2 года вышла версия 7.1, содержавшая некоторые исправления, но на этом развитие среды разработки остановилось.
Вот уже 18 лет по одной шестой части суши кочует архив с файлами, который помещается на пару дискет — этот тот самый злополучный TP7.zip (с небольшими вариациями в имени файла). Мне неизвестен другой программный продукт, обладающий такой же переносимостью — наверняка даже сами разработчики не представляли, что их детище будет работать на чем-то старше Windows 95.
Даже Java, появившаяся несколькими годами позже и исповедующая принцип «скомпилировано однажды работает везде» выглядит уже не так оригинально на фоне этой скромной IDE. В начале Turbo Pascal шустро работал под Dos, Win 3.11 и Win95, спокойно перешел на Windows 98 и Me. Затем появились первые проблемы с запуском под Windows XP, но TP было уже не остановить — он стал образовательным мейнстримом, он работал под всем, под Windows Vista, Windows 7. Я не удивлюсь, если в следующем году тысячи людей буду запускать bp.exe уже под Windows 8. А может быть под Linux, используя DosBox(радостно обнаруживая, что сочетание Ctrl-F9 закрывает эмулятор). Еще 15 лет назад Turbo Pascal был хорошей средой для обучения, но теперь это скорее показатель того, насколько сильно может быть нежелание изучать что-то новое. И дело тут даже не в паскале: существуют современные среды для обучения программированию на этом языке, вроде FreePascal и PascalABC.
Дело не в политике: в России и Украине ситуация практически одна и та же. Дело даже не в строгости школьной программы — мне попадались классы, где обучение велось на С или Python. И, в конечном счете, дело даже не в классе учебного заведения — до их пор существуют ВУЗы, напрямую связанные с ИТ, где Turbo Pascal используется как основной рабочий инструмент. Завершая этот краткий обзор, хочу представить альтернативы для Turbo Pascal, которые можно использовать в учебном процессе. 1) FreePascal — бесплатный компилятор паскаля, отвечающий современным требованиям и обладающий средой разработки 1 в 1 похожей на Turbo Pascal, что делает возможным использования большей части методической литературы, написанной для последнего. Работает под Windows и Linux.
Рекомендуется как самый простой способ замены Turbo Pascal. Отсутствуют проблемы с лицензией.
Сайт русскоязычного сообщества 2) PascalABC — удобная среда разработки, работающая под Windows. С 2007 года разрабатывается версия PascalABC.net — та же среда, но написанная с использованием технологии.NET.
Для старых компьютеров рекомендуется использовать версию без.NET. На мой взгляд, это самая удачная система для обучения программированию, которую можно найти.
Система создавалась на факультете математики, механики и компьютерных наук ЮФУ как учебная среда программирования. С лицензией проблем нет. Сайт разработчика: 3) Lazarus — среда разработки, использующая компилятор FreePascal, но при этом поддерживающая разработку современных оконных приложений. Позиционируется как совместимая с Delphi, но учебный материал, написанный для последней, применим не всегда. Интерфейс более сложен по сравнению с IDE FreePascal. Рекомендуется использовать при достаточной квалификации преподавателя и понимании им того, чему именно он хочет научить своих учеников. Проблем с лицензией нет.
Вот пожалуй и все. Остается только пожелать недавним абитуриентам, чтобы описанная здесь проблема их не затронула. Метки:. Добавить метки Пометьте публикацию своими метками Метки необходимо разделять запятой. Например: php, javascript, андронный коллайдер, задача трех тел.
Как человек прошедший огонь ASM'а, С и медные трубы С и пописывающего на старости лет на Руби могу рекомендовать его (Ruby) только в качестве третьего или четвёртого языка. Или в виде спецкурса Первый язык для профессионального программиста, я считаю, должен быть строго типизированным и тем самым с самого начала приучать к дисциплине Учить программированию на динамических языках — это примерно как обучать вождению на бульдозере Ездить конечно научится, но что это за стиль будет Питона это кстати тоже касается В качестве хобби можно конечно учить всё что угодно, но для профессиональных кадров однозначно не подходит. Учить поначалу начинают общим принципам, структурам данных и алгоритмов. Мне довелось писать (больше, чем HelloWorld конечно) на asm (tasm, masm), pascal/delphi/modula2, C/C, perl, php, python, javascript, и всякие lisp (+clips), bash(awk). И со своей колокольни считаю, что C/C — не лучший выбор для первого языка. Со строгой статической типизацией — да, C — нет. И тут остается не так много распространенных вариантов.
А то что я привел в пример Руби — очень уж часто его приводят именно как учебный язык. Но оставлю это решение на откуп тем авторам. С был моим 4м в порядке изучения языком. Так что это не мнение, основанное на детском шоке от первого языка:). Соглашусь, что руби не может быть первым языком: слишком много ада и угара скрывается за каждым углом.
Даже больше, чем в си. Кроме того, научившись писать на руби, писать на чем-то другом ты уже не сможешь, потому что не будешь знать про цикл for, и про то, как обойтись без блоков. А вот питон, как мне кажется, для обучения — в самый раз. Особенно, если цель — не обучить программированию, а дать почувствовать его вкус (а в школе оно именно для этого). Насчет строгой типизации я бы не был столь категоричен. Рубисты, например, ругаются, когда видят написанный на любимом языке, код в стиле джавы.
Потому что это плохой, раздутый и не идиоматичный код для ruby. Один стиль хорош для языков со статической типизацией, и совсем другой — для языков динамических. Поэтому у нас каждый подпроект обычно (чаще всего мной) вычищается до некоего максимума (когда исправления дальнейших варнингов уже чревато ошибками: обычно это связано с alignment и прочими проблемами двоичной совместимости), а в Makefile устанавливается текущий «уровень чистоты» и -Werror, чтобы предотвратить появления новых варнингов. Вот кусочек файла Mk/obj.mk в одном из наших проектов (GNU make, проект линуксовый): # To encourage people to fix build warnings, expose them at the highest level # by default, so GCC will complain. To make them non-fatal, define NOWERROR # in particular Makefile for the broken code (or better fix it).
Если речь о выборе между паскалем и си — я однозначно на стороне си. Языки различаются по сути только синтаксисом. Синтаксис о обоих — туши свет, но си при этом настолько более распространен, что выбор однозначно в его пользу. Мне в целом не ясно зачем начинать учить программировать с чего-то такого древнего и низкоуровнего.
Вот есть тот же SICP — прекрасное введение в программирование, одно из лучших по глубине раскрытия темы. Там используется scheme. Отличный пример как можно начать учить программированию не с си или паскаля и что при этом получается. Если SICP — слишком круто, то можно зайти с другой стороны: студентам все равно ведь нужно лабы будет делать, курсачи, да и работать потом. Можно дать для начала какую-нибудь java, C# или питон — они и практически полезные, и проще си. Если речь идет о курсе, близком к математике — может быть студентам хаскель будет более понятен и полезен. А он до кучи очень здорово перекликается с курсом математики.
Си — нужный, полезный инструмент, и его конечно надо учить, но потом, и только программистам. Я учил, конечно, Паскаль. Я кодил на нем в паре с ассемблером, и думал, что я просто бог, и могу абсолютно все. Нет, правда, вплоть до написания аналога виндов 3.11, вполне реально оценивал возможности в одиночку. Так, как я не программист, я так и продолжал писать какие-то там тулзы на Паскале (Free, Virtual, Delphi) до недавнего времени. А тут, не так давно, стало интересно ковырять один девайс под названием Vogue Player.
Это такой вкладыш был в журнале Vogue, который проигрывал видео, по сути — обычный дешевый китайский медиа-плеер. Так вот, там все на Си. Что хочу сказать — читать его вообще не составляет проблем (понимать что есть что). А потом я попробовал на нем писать. И я открыл для себя чистый Си! Блин, как же это удобно, это сродни, даже не знаю Что-то между ассемблером и низкоуровневым языком, можно кодить без лишних фраз, кратко и ясно. Без тонны лишних фраз и тд.
Но в итоге, я остался привержен Паскалю. Потому как, просто тупо не привык стандартным функциям и процедурам. В Паскале я пишу не задумываясь вообще над синтаксисом, пишу только алгоритм. На Си все-таки приходится многое гуглить. Но Си — это язык который однозначно крут прост и в то же время очень мощен. И, мое мнение, сажать первоклассника сразу за Java или Virtual C не есть совсем уж хорошо. Вполне логичным мне кажется начинать вообще с LOGO и двигать в нем черепашку, приучать мозг, что компьютеру даешь команду, а он ее выполняет.
Потом и в паскаль заглянуть можно, что бы увидеть, что большая часть программирования все же происходит больше в математике и алгоритмах, чем в наборе команд. А в старших классах уже и Delphi/Java/C можно, ведь ученик уже понимает базовые принципы программирования и сможет их применить в куда более сложном (чем паскаль) для освоения интерфейсе того же Eclipse. Вы не по адресу. Я с 9 класса побеждал в олимпиадах по программированию, причем было это довольно давно уже. Сообщением своим я пытался намекнуть, что не во всех школах используют это убожество, я вот учился программированию сам и учился на Basic, после чего прекрасно перешел на платформу.Net. С тех пор я успел отработать в крупнейших в мире фармацевтических и логистических компаниях, а затем открыть два своих бизнеса и выйти на прибыль, с которой сейчас и живу.
Так что извините, но чего добились вы?:). Все дело в том, что с паскаля вы не перейдете на программирование того, что нужно всем и будете не востребованы.
Вот смотрите: 0. Начинаете с С, ну тут все понятно, если выучите, будете крутым и сможете писать все, что угодно (С, С, С#) 1. Начинаете с Java, можете писать на Java, C# 2. Начинаете с Basic. Переходите на VB.NET 6, вкуриваете ООП парадигму, с него на современный.NET. Весь мир у ваших ног, хотите ASP.NET пишите под веб, хотите мобильные приложения WP7.5,WP8, ну и весь десктоп ваш с VB.NET/C#.
Начинаете с паскаля, может перейдете на дельфи и ЧО? Ну почему не перейдёте. Это же не религия, чтоб однажды приняв одну, нельзя было бы перейти в другую. Хотя и тут возможны варианты. Лично я с Паскаля прекрасно перешёл на Си и потом на С.
Потом попутно освоил и другие языки. И я не единственный пример.
В своё время выросло целое поколение паскальщиков. И многие из них сейчас работают программистами совсем не на Дельфи. Уж Си похож на Паскаль поболее, чем на Бейсик, ведь у Паскаля и Си общие корни. Кстати, насчёт.NET, есть же Oxygene. Можно и с него перейти на весь современный NET. У нас C был на первом курсе с самых азов.
Но суть не об этом. Зачем это?» напомнило мне, как нас на 3ем (или 4ом, уже точно не помню) курсе преподавали семестр Visual C с MFC. Цель каждой лабы — скопипастить из DOC'файла куски кода и заставить IDE их скомпилировать. Все эти гирлянды макросов и непонятных на тот момент::method. Что и зачем практически не объясняли. Хуже, что этим они отбили всякое желание самостоятельно изучать VC и MFC.
Получили обратный эффект от требуемого при обучении на «вышке». После прочтения комментариев я бы хотел внести ясность — вопрос не в том, на каком языке ведется обучение, в конце концов 90% учеников школ не будут ничего программировать никогда в жизни, а в том, что на протяжении почти 2 десятилетий используется один и тот же.exe файлик, работающий не без ошибок.
Я уверен, что на современных компьютерах и ОС больше сложности с запуском TP, чем пользы от простоты среды программирования. Это замечательная иллюстрация того, как принцип «работает — не трогай» может быть доведен до абсурда.
И всё-таки, Turbo Pascal был хорош. Для своего времени он был очень хорош.
А для нашего времени что-то подобное не факт, что вообще возможно. Объясню вкратце, что я имею в виду. Какой-никакой редактор кода, дебаггер, актуальная система справки (этих наших интернетов тогда не было, если кто не в курсе). 2) Во времена MS-DOS, он давал программисту достаточно широкие возможности.
Почти любой софт тех времен можно было написать на Pascal (теоретически). Это был достаточно мощный инструмент. 3) в то же время, у него не было проблемы, присущей современным IDE. Я про Delphi, Visual Studio etc. Что за проблема? За деревьями не видно леса. Создаем проект, получаем файл с кучей сгенерированной нашей IDE «магии».
Чтобы получить результат — приходится разбираться, как его прикрутить к компоненту, способному банально отобразить текст. Всё сразу объектно-ориентированное, а нам бы, для начала, с циклами разобраться, с массивами, условными операторами. Да, сегодня тоже можно делать софт, который будет чего-то там выводить в консоль. Кому интересна консоль в Windows 7, в 2012 году? И как быть с кириллицей, которая просто так не желает там отображаться? В общем, я думаю, что использование Turbo/Free Pascal в процессе обучения программированию — не такая уж плохая идея. Это почти идеальный вариант для обучения алгоритмам, без понимания которых дальше лучше не соваться (и не имеет значения дальнейшая специализация — будет ли человек кодить на ассемблере под микроконтроллеры, или посвятит себя разработке софта на языках высокого уровня с применением современных парадигм).
Да, от нее несет нафталином, но ничего принципиально лучшего я не вижу. Ну по крайней мере, настолько лучшего, чтобы прям возмущаться, что вместо название инструмента всё еще используют Pascal. ООП при изучении базовых алгоритмов, функций и процедур? Визуальный редактор со списками свойств компонентов, иногда длиной в 2 экрана?
Необходимость писать код в onClick кнопки, в котором мы будем получать текст из свойства поля ввода? И всё это в окне редактора, которое почему-то уже содержит какой-то непонятный текст, который трогать не то, чтобы нельзя, но настоятельно не рекомендуется («мы потом вам объясним, что всё это значит и откуда оно взялось»). Не, никакой магии. Вообще не отвлекает от сути дела. В программе типа program MyProgram; uses CRT; begin clrscr; ReadLn('Enter You name:', Name); WriteLn('Hello, ', Name); end; Конечно отвлекающих букв, которые нужно «просто знать» меньше, но среду тоже надо настроить, и про F9 узнать, да и в самой программе — никогда не понимал, как на самом деле работает процедура ReadLn. Как минимум повторить всю её функциональность самостоятельно — даже не учитывая открытого перечня аргументов, недоступного для самодельных подпрограмм — я даже пробовать не решался, настолько она была непостижима и многогранна.
Текста не очень много, непонятного — ещё меньше, и для изучения for в рамках написанной по указанным учителем правилам процедуры — будь это обработчик onClick, или вышепоказанный образец программы — разницы никакой для ученика. Более того, в IDE с дизайнером форм больше поводов и возможностей покопаться в окружающем богатстве и что-то узнать самостоятельно.
Что касается самого ООП — оно естественно для ума, и вопросов вызывают лишь тонкости, особенности, приёмы и, выражаясь умно, выбор декомпозиции, а не оно само. Когда объекты готовые, ими по началу можно пользоваться, не вникая в концепцию ООП. Приведенный вами код легко и просто преобразуется в блок-схему. Фактически, это алгоритм решения задачи, в чистом виде. Чего не скажешь про код на Delphi, правда?
В IDE с дизайнером форм больше поводов и возможностей покопаться в окружающем богатстве и что-то узнать самостоятельно. — Безусловно. Но это что-то, с вероятностью, стремящейся к 100%, к алгоритмам не будет иметь совершенно никакого отношения. Что касается самого ООП — оно естественно для ума — Хоть 1000 раз, но процесс обучения должен быть последовательным. Не должно быть моментов, когда ученик/студент теряет землю под ногами, это в корне неправильно.
Иначе мы на выходе можем получить «программиста», который будет писать весь код в onClick, а вся суть ООП у него будет сводиться к тому, что к свойству стандартного компонента нужно обращаться через точку. Аргумент про блоксхему — мог бы быть весом, не будь возможности писать блок-схемы процедур вместо блок-схем программы целиком.
Но ведь можно же! Ничуть не сложно рисовать блок-схему обработчика Button1Click, в котором весь алгоритм решения задачи легко сосредотачивается на первых этапах. Я ещё раз повторяю: в обоих случаях земля под ногами ученика очень условная, придуманная! Что в Дельфи, что в Турбо Паскале.
И твёрдость её идентична, особенно для ученика, принимающего её на веру впервые. Главное — чтобы она плоская была, чтоб не было необходимости разрывов алгоритма между begin и end. Если доООП дойдёте — всё в любом случае узнает. А если до ООП Вы не дойдёте в ТурбоПаскале — он из такого курса про ООП вообще ничего не узнает, и Вы хотите сказать, что вот это как-раз и лучше?
Ну, не знаю Как минимум, я сомневаюсь, что нужен такой курс, когда Паскаль уже есть, а элементов ООП до конца курса нет. Вы о том, как работает Read/ReadLn? Эти инструкции предназначены для ввода данных с клавиатуры. Ввод начинается в момент вызова команды и завершается по нажатию на клавишу Enter. ReadLn от Read отличается тем, что по завершению ввода, курсор будет переведен на следующую строку. В качестве аргументов Read/ReadLn можно использовать строку с текстом приглашения («Введите имя» и т.п.), и одну или несколько переменных, в которые будут сохранены результаты ввода. Думаю, приблизительно то же самое должно быть написано в справке, достпуной из IDE.
Что именно в вышесказанном, вам, Delphi-программисту, непонятно? Еще раз обозначу свою позицию, максимально понятно — на этапе изучения базовых алгоритмов вопрос «что происходит внутри» не актуален. Ну правда, если в процессе изучения условных операторов отвлекаться на вопрос «что происходит внутри Read/ReadLn», где мы остановимся? На микрокоде, реализовывающем работу оператора JNZ внутри процессора? Сомневаюсь, что это актуально в данном контексте. С другой стороны, когда на том же этапе приходится работать с такими вещами, как объекты, события, пространство имен и пр.
— это реально очень здорово отвлекает от сути. Кроме того, там тоже можно спросить себя «а как оно устроено внутри» (с тем же эффектом — отвлечение от сути текущих задач). Знаете, если вы всё еще не понимаете и/или не приемлете мою позицию по данному вопросу — я без понятия, как еще объяснить. Мне больше нечего добавить, извините. Если, по вашему, я не прав — так тому и быть, пусть я не прав. Если бы передо мной сейчас стояла задача обучать кого-нибудь программированию — я бы однозначно не выбирал Deplhi/Lazarus/Visual Studio в качестве инструмента обучения (причину уже упомина — «за деревьями леса не видно»).
Turbo/Free Pascal, пожалуй, тоже, т.к. Они весьма устарели. Сегодня, скорее всего, это был бы Python + приличная IDE (Eclipse или PyCharm), с тестированием приложений во встроенной консоли. Но10-15 лет назад я однозначно выбрал бы Turbo Pascal. У меня всё, спасибо за внимание.
Да-да, я все прекрасно понимаю про обучение базовым алгоритмам. Вот только в реальности (сужу исходя из собственной преподавательской практики) мало кому интересны алгоритмы сами по себе, «в отрыве от», как говорится. Рано или поздно ребенку/студенту надоедает писать голые сортировки и обходы графов, и хочется чего-то более настоящего. И скоро он упирается в искусственные ограничения, налагаемые «языком для обучения базовым алгоритмам». Это опасный момент, т.к. Можно «потерять» ученика. К слову, на всех педсоветах молодые преподы поддерживали идею отказаться от Паскаля; хватались и продолжали его отстаивать только закостенелые дядечки, которые ничего другого не знали (да и Паскаль толком тоже).
Проблема университетов, нашего во всяком случае, что Паскалю учат во время всего процесса обучения. Точнее, другого языка для сдачи лаб на ВСЕМ протяжении обучения никто не предлагает. И это грустно как мне кажется. Только если ты очень инициативный — то ты выучишь то что хочешь и будешь сдавать на этом лабы(благо у нас такой ультиматум можно было поставить и преподаватели принимали лабы и на C чистом и на Java, не зная языков). А потом, посмотрев интернеты и почуяв, куда дует ветер, найти на третьем курсе работу.