nikf1980 Филиппов
Занимательный Паскаль 7

Занимательный Паскаль

Предисловие

Нужно ли учить школьника программированию, или создание программ – это удел профессионалов?

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

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

Математик скажет: «Пусть Х будет равен тому-то, тогда Х+5 будет равен тому-то, и …»

Эта фраза хорошо знакома нам всем со школьной скамьи. И не случайно: обязательным элементом математической культуры школьника является умение оперировать с неизвестными и решать задачи путём составления уравнений, и строится это искусство на шаблоне «Пусть Х…».

В программировании центральную роль при решении задач играет не понятие неизвестного, а понятие переменной. Программист мыслит так: «Если переменная Х будет принимать, такие-то значения, тогда …». Приёмам и методам Программирования, формированию особого «программистского» мышления и посвящается эта книга.

Математическая культура оттачивалась веками. Методика преподавания программирования только начинает формироваться.

В качестве платформы для обучения мы выбрали наиболее доступный язык программирования: Паскаль. За свою долгую историю Паскаль, как и любой другой язык, постоянно развивался и совершенствовался; было создано много разновидностей, или, как говорят, диалектов языка, несколько различающихся набором слов и правилам их применения. Учесть все возможные особенности диалектов и их реализаций Паскаля в одной методичке невозможно, да и не нужно, ведь каждого отдельно взятого читателя интересует только тот Паскаль, который имеется на его компьютере (например, Паскаль 7х или Паскаль 7.01). Однако некоторые программы, возможно, вам придётся несколько изменить в соответствии с особенностями вашего Паскаля.

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

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

Я искренне надеюсь, что занимательная форма изложения поможет читателю включиться в интереснейшую игру под названием «программирование».

Краткая история Информатики и языков Программирования

Дорогие читатели!

Одним из основных предметов в СШ является Информатика. Что это за наука и что она изучает? Так вот, Информатика – это наука об Информации, о способах информационной деятельности, её обработке и передаче посредством ИКТ (информационно-коммуникативной техники).

Возникает вопрос – а что же такое Информация? Так вот единица информации 1 бит – это количество минимальной информации 0 или 1 в двоичной системе счисления, которая уменьшает неопределенность какой-либо ситуации ровно в 2 раза.

Одним из основных способов информационной деятельности человека является чтение. Успешное освоение большими количествами учебных материалов как по информатике , так и по другим школьным наукам во многом зависит от того – как Вы читаете. Надеюсь , что Вам будет интересно читать Мою Методичку.

Николай Филиппов nikf

Программа . Язык Программирования

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

Мы с Вами ребята начинаем изучать язык программирования Паскаль. Что это за язык? – это Компилятор, наподобие интерпретатора языка Алгол с которым были в школе знакомы Ваши родители.

Что же такое Интерпретатор и чем он отличается от Компилятора – например C++ или TurboPascal 7 ? Интерпретатор на каждом шаге – строке программы , обращается к программе Паскаль и транслирует код на английском языке высокого уровня (понятного вам ученики) в машинный код (понятный процессору любого компьютера), затем код исполняется также пошагово. Код можно вводить строка за строкой, нажимая Enter или написать в виде скрипта в текстовом редакторе кода (например Блокнот) Idle. Компилятор же должен создать бинарный файл на машинном коде процессора из всех строк кода на языке C++ или Turbo Pascal , и только затем выполнить. То есть невозможно построчное, отдельное выполнение, программа должна сначала скомпилироваться – создать исполняемый файл для ОС (операционной системы компьютера).

Разнообразие языков Программирования

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

Основные этапы исторического развития языков программирования

Первые программы писались на так называемом машинном языке, так как для ВМ того времени ещё не существовало развитого ПО , а машинный язык – это единственный способ взаимодействия с аппаратным обеспечением компьютера, так называемым “хардом”.

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

Ассемблеры представляют собой следующий этап развития ПО – поскольку представляют собой среду низкоуровневой разработки и позволяют из команд ассемблера сгенерировать машинный код под конкретный процессор данной ВМ .

Языки программирования высокого уровня и среды разработки IDE были следующим этапом развития ПО. Они представляли собой интерпретатор или компилятор с языка более близкого человеку. В идеале человек и ВМ должны понимать друг – друга на естественном языке человека. Но так как, это – сложно реализовать, то первыми появились языки похожие на Basic English . И , уже затем языки Паскаль и Кумир(который кстати изучается в СШ). Язык Кумир– был похож на естественный Русский язык и поддерживает структурное программирование.

Краткая историческая справка

Язык программирования Pascal был создан в 1970 году на основе языка Алгол-60. Pascal создавался Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68.

Паскаль активно развивается и сейчас. Часто выходят новые версии. Ещё совсем недавно поддерживались две ветки языка: 7х и другие, здесь буквой х обозначается конкретный номер релиза. Между версиями Паскаля есть небольшая разница. В настоящее время поддержка Паскаль 7 прекращена.

Краткая история Информатики и языков Программирования

Дорогие читатели!

Одним из основных предметов в СШ является Информатика. Что это за наука и что она изучает? Так вот, Информатика – это наука об Информации, о способах информационной деятельности, её обработке и передаче посредством ИКТ (информационно-коммуникативной техники).

Возникает вопрос – а что же такое Информация? Так вот единица информации 1 бит – это количество минимальной информации 0 или 1 в двоичной системе счисления, которая уменьшает неопределенность какой-либо ситуации ровно в 2 раза.

Одним из основных способов информационной деятельности человека является чтение. Успешное освоение большими количествами учебных материалов как по информатике , так и по другим школьным наукам во многом зависит от того – как Вы читаете. Надеюсь , что Вам будет интересно читать Мою Методичку.

Николай Филиппов nikf

Программа . Язык Программирования

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

Мы с Вами ребята начинаем изучать язык программирования Паскаль. Что это за язык? – это Компилятор, наподобие интерпретатора языка Алгол с которым были в школе знакомы Ваши родители.

Что же такое Интерпретатор и чем он отличается от Компилятора – например C++ или TurboPascal 7 ? Интерпретатор на каждом шаге – строке программы , обращается к программе Питон и транслирует код на английском языке высокого уровня (понятного вам ученики) в машинный код (понятный процессору любого компьютера), затем код исполняется также пошагово. Код можно вводить строка за строкой, нажимая Enter или написать в виде скрипта в текстовом редакторе кода (например Блокнот) Idle. Компилятор же должен создать бинарный файл на машинном коде процессора из всех строк кода на языке C++ или Turbo Pascal , и только затем выполнить. То есть невозможно построчное, отдельное выполнение, программа должна сначала скомпилироваться – создать исполняемый файл для ОС (операционной системы компьютера).

Разнообразие языков Программирования

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

Основные этапы исторического развития языков программирования

Первые программы писались на так называемом машинном языке, так как для ВМ того времени ещё не существовало развитого ПО , а машинный язык – это единственный способ взаимодействия с аппаратным обеспечением компьютера, так называемым “хардом”.

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

Ассемблеры представляют собой следующий этап развития ПО – поскольку представляют собой среду низкоуровневой разработки и позволяют из команд ассемблера сгенерировать машинный код под конкретный процессор данной ВМ .

Языки программирования высокого уровня и среды разработки IDE были следующим этапом развития ПО. Они представляли собой интерпретатор или компилятор с языка более близкого человеку. В идеале человек и ВМ должны понимать друг – друга на естественном языке человека. Но так как, это – сложно реализовать, то первыми появились языки похожие на Basic English . И , уже затем языки Питон и Кумир(который кстати изучается в СШ). Язык Кумир– был похож на естественный Русский язык и поддерживает структурное программирование.

Краткая историческая справка

Типы данных. Переменные

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

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

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

● целые числа

(type – integer) – положительные и отрицательные

целые числа, а также 0. (например

4,687,-42,0)

● Числа с

плавающей точкой (double – дробные, они же

вещественные числа. (например 1.45, -3.14,

0.00453). Примечание – для разделения целой

и дробной частей здесь используется

точка, а не запятая.

● Строки (тип string – набор

символов, заключённых в кавычки (например

“мяч”, “what is your name?”, ‘dpkg’, ‘0.004’).

Причем отметим, что отдельный – одиночный

символ Char в кавычках также является

строкой, только длиной 1. len(‘a’)=1 ,

type(‘a’)==str. Примечание – кавычки в Паскале

могут быть как одинарными, так и двойными.

Операции в программировании

Операция – это выполнение каких-либо действий над данными, которые в данном случае именуют операндами. Само действие выполняет оператор – специальный инструмент. Например : если бы вы выполняли операцию постройки стола, то вашими операндами были бы доска и гвозди, а оператором – молоток. (10+20 )

(операнд1 10 +(оператор) операнд2 20)

Так например в математике и программировании символ плюса является оператором сложения по отношению к числам, в то же время этот оператор + выполняет операцию конкатенации , т. е. склеивания в случае строк.

10+9

19

‘Hello’+World’

‘HelloWorld’

Здесь следует для себя отметить, что то, что делает оператор в операции , зависит не только от него , но и от типов данных, которыми он оперирует. Например молоток в случае нападения на нас крокодила – перестает играть роль строительного инструмента, а превращается в оружие… Однако в большинстве случаев операторы не универсальны – например знак плюса неприменим , если операндами являются с одной стороны число, а с другой стороны строка.

Тогда: возникает исключение TypeError: unsupported operand type(s) for +: int and str Паскаль сообщит что произошла недопустимая операция склеивания разных типов данных.

Числовые переменные

Самым простым и важным видом переменных являются числовые переменные. Они допускают хорошее наглядное представление , которым пользуются все профессиональные программисты: числовая переменная – это “коробочка” , в которую можно положить на хранение какое-либо число.

Чтобы различать переменные, им дают имена. У каждой переменной есть имя и текущее значение. В дальнейшем будем предполагать, что компьютер уже обучен нижеследующим действиям со значениями переменных:

на русском языке

на английском языке

запросить значение переменной Х с клавиатуры

x =Readln(“x=”);

вычислить значение Х

x=function();

напечатать значение Х

Writeln(x)

если значение переменной Х удовлетворяет условию, то…

if (x<=0) do:

begin

end;

При вычислении значений переменных будем использовать следующие обозначения: сложение =a+b; вычитание -, умножение *, деление /, целочисленное деление //, возведение в степень **, извлечение квадратного корня sqrt(х), синус sin(x), косинус cos(x), целая часть числа int(x), абсолютная часть числа abs(x), случайные числа – библиотека random.

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

Каждый программист

Работа программы во многом определяется ходом изменения значений её переменных.

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

В качестве тренировки разберем следующую задачу:

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

Проверьте правильность своих рассуждений, запустив программу на выполнение…

Program 1;

var int: x,y,z,i;

begin

x=1;

y=1;

z=1;

i=0;

while (i<5) do:

begin

x=x*y*z+1;

y=x*y*z+1;

z=x*y*z+1;

i=i+1;

Writeln(x,y,z);

end;

Readln();

End.

Обратите внимание в этой программе вместо сложения умножение и результат растет уже в геометрической прогрессии . И тогда в качестве начальных значений переменных нужно брать единицы 1, так как если оставить 0 то 0*1*2*3*…* = 0 в любом случае…

Доктор Шибкин

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

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

X=Х+Y+Z+1,

Y=X+Y+Z+1,

Z=X+Y+Z+1

что он и сделал мгновенно в уме: из одинаковости правых частей очевидно, что X=Y=Z, откуда: X=Y=Z=-½.

Когда же он собрался сверить ответ, то понял, что в задании речь идёт не о системе уравнений, а о программе для компьютера. Выполнив задание правильно, профессор с изумлением заметил: “Между двумя решениями нет ничего общего!”. С тех пор доктор Шибкин проникся идеей, что смысл математических и программных обозначений, при всей их схожести , – совершенно различный.

Таблица квадратов

Задача:

Составить программу , – печатающую таблицу квадратов целых чисел.

Решение:

Если значение переменной N будет пробегать натуральный ряд 1, 2, 3, …, N то переменная X=N*N даст квадрат N. Печатая значение N и X и зациклив программу , имеем:

Program 2;

var int: N=1;

begin

while (N<21) do:

begin

X=N*N;

Writeln(N, X);

N=N+1;

end;

Writeln(“End”);

Readln();

end.

Степени числа 2

Задача:

Аналогично таблице квадратов можно составить программу, печатающую числа 2**n: N=N+1; X=2**N. Однако это можно сделать проще, если заметить что степень числа 2 – представляет собой произведение двоек столько раз, каков показатель степени.

Решение:

Если значение переменной N будет пробегать ряд чисел от 1 до 21, то переменная X=1 в первом шаге, и затем X=X*2 в последующих шагах программы даст нам значение степени числа 2. Печатая значение N и X имеем:

Program 3;

var int: N=1;

var int: X=1;

begin

while (N<21) do:

begin

X=X*2;

Writeln(N, X);

N=N+1;

end;

Writeln(“End”);

Readln();

end.

Такой способ вычислений очень рационален. Чтобы лучше это понять, вычислим первые шесть значений 2^n вручную:

2*1=2

2*2=4

4*2=8

8*2=16

16*2=32

32*2=64

Т.е. вместо того, чтобы каждый раз перемножать n двоек, лучше один раз умножить на 2 предыдущее значение: 2^n=2*2^(n-1).

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

Для себя его можно переформулировать в виде правила рекурсии: чтобы двигаться вперёд – смотри назад!

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

Типы данных. Переменные

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

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

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

Операции в программировании

Операция – это выполнение каких-либо действий над данными, которые в данном случае именуют операндами. Само действие выполняет оператор – специальный инструмент. Например : если бы вы выполняли операцию постройки стола, то вашими операндами были бы доска и гвозди, а оператором – молоток. (10+20 )

(операнд1 10 +(оператор) операнд2 20)

Так например в математике и программировании символ плюса является оператором сложения по отношению к числам, в то же время этот оператор + выполняет операцию конкатенации , т. е. склеивания в случае строк.

10+9

19

‘Hello’+World’

‘HelloWorld’

Здесь следует для себя отметить, что то, что делает оператор в операции , зависит не только от него , но и от типов данных, которыми он оперирует. Например молоток в случае нападения на нас крокодила – перестает играть роль строительного инструмента, а превращается в оружие… Однако в большинстве случаев операторы не универсальны – например знак плюса неприменим , если операндами являются с одной стороны число, а с другой стороны строка.

Числовые переменные

Самым простым и важным видом переменных являются числовые переменные. Они допускают хорошее наглядное представление , которым пользуются все профессиональные программисты: числовая переменная – это “коробочка” , в которую можно положить на хранение какое-либо число.

История

Язык программирования Pascal был создан в 1970 году на основе языка Алгол-60.

Pascal создавался Никлаусом Виртом в 1968—1969 годах после его участия в работе комитета разработки стандарта языка Алгол-68. Язык назван в честь французского математика, физика, литератора и философа Блеза Паскаля, который создал одну из первых в мире механических машин, складывающую два числа. Первая публикация Вирта о языке датирована 1970 годом; представляя язык, автор в качестве цели его создания указывал построение небольшого и эффективного языка, способствующего хорошему стилю программирования, использующему структурное программирование и структурированные данные.[источник Википедия]

Последующая работа Вирта была направлена на создание на основе Паскаля языка системного программирования с сохранением возможности вести на его базе систематический, целостный курс обучения профессиональному программированию: «The guiding idea was to construct a genuine successor of Pascal meeting the requirements of system engineering, yet also to satisfy my teacher’s urge to present a systematic, consistent, appealing, and teachable framework for professional programming.». Результатом этой работы стал язык Модула-2, после которого Вирт занялся разработкой объектно-ориентированного языка программирования Oberon на основе всех предыдущих разработок, и затем язык GO от компании Google.

Одной из целей создания языка Паскаль Никлаус Вирт считал обучение студентов структурному программированию. До сих пор Паскаль заслуженно считается одним из лучших языков для начального обучения программированию. Его современные модификации, такие как Object Pascal, широко используются в коммерческом программировании (среда Delphi). Также на основе синтаксиса языка Паскаль создан язык программирования Structured Text (ST) или Structured Control Language (SCL) для программируемых логических контроллеров.[источник Википедия]

К 1990-м годам Pascal стал одним из наиболее распространённых в мире алгоритмических языков программирования. Ведущие разработчики программного обеспечения регулярно выпускали новые версии своих компиляторов для этого языка. Популярные компиляторы того времени: Turbo Pascal (разработан компанией Borland), Microsoft Pascal Compiler, Quick Pascal, Pascal-2, Professional Pascal, USCD Pascal 7 and Go Google.

Список использованной Литературы:

● Филичев

“Занимательный Basic”

●Л.Л.Босова

А.Ю.Босова “Информатика”

● Финогенов

“Турбо Паскаль 7.01”

● Википедия

“Онлайн Энциклопедия”

● https://younglinux.info/