СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Язык программирования Паскаль и его структура

Категория: Информатика

Нажмите, чтобы узнать подробности

В данном материале студенты узнают об основателях структурного программирования; о структурном языке программирования Паскаль и его развитии; о навыках программирования на Паскале; основные сведения о среде программирования PascalABC.NET 

Просмотр содержимого документа
«Язык программирования Паскаль и его структура»

Учебный элемент

Тема: «Язык программирования Паскаль и его структура.» - 13 -

Предмет: «Информатика»




Цели:


Изучив данный учебный элемент, Вы узнаете:

  • об основателях структурного программирования;

  • о структурном языке программирования Паскаль и его развитии;

  • о навыках программирования на Паскале;

  • о среде программирования PascalABC.NET 












Оборудование, материалы и вспомогательные средства:


    1. персональный компьютер;

    2. мультимедиа проектор;

    3. презентация урока;

    4. раздаточный материал.







Сопутствующие учебные элементы и пособия:


  1. Учебник И.Г. Семакин и др. 11 класс

О языке Паскаль


Никлаус Вирт

Язык Паскаль был разработан в 1970 году Никлаусом Виртом как язык, обеспечивающий строгую типизацию и интуитивно понятный синтаксис. Он был назван в честь французского математика, физика и философа Блеза Паскаля.

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

 


Блез Паскаль



Среда Turbo Pascal

Наиболее популярным решением для персональных компьютеров в 80-е - начале 90 годов стал компилятор и интегрированная среда разработки Turbo Pascal фирмы Borland. Встроенный компилятор обеспечивал высокую скорость компиляции и высокое качество кода (отсюда приставка Turbo). Среда Turbo Pascal обеспечивала также отладку кода, содержала богатый набор примеров. Все эти качества позволили Turbo Pascal стать стандартом Паскаля де-факто.


Выпущенная в 1995 г. как продолжение среды Turbo Pascal система программирования Delphi стала одной из лучших сред для быстрого создания приложений. Delphi ввела в язык Паскаль ряд удачных объектно-ориентированных расширений; обновленный язык получил название Object Pascal. Начиная с версии Delphi 7.0, язык Delphi Object Pascal стал называться просто Delphi, однако, старое название используется часто. Последняя версия среды - Delphi XE.


Среда Delphi 7

Наиболее известной свободной реализаций языка Паскаль является Free Pascal. Помимо открытости исходного кода, его основным преимуществом является мультиплатформенность, а также поддержка различных диалектов Паскаля. На основе FreePascal создана свободная мультиплатформенная среда Lazarus, аналогичная среде Delphi. Однако, бедный и не меняющийся десятилетиями консольный интерфейс интегрированной среды Free Pascal, мало совместимый с современными интерфейсами рабочих столов операционных систем, всё более отталкивает обучаемых, неправильно формируя у них представление, что Паскаль - устаревший язык.

С другой стороны, среда Delphi по мере развития становилась все более громоздкой и малопригодной для обучения программированию. Кроме того, отсутствует бесплатная версия Delphi даже для академического использования. Данные факторы привели к практически полному исчезновению Delphi из сферы образования, а для среды Lazarus, несмотря на ее бесплатность, такие случаи единичны.

Наконец, появление платформ Java и .NET, включающих мощный язык программирования и мощные стандартные библиотеки ослабило позиции языка Delphi. Для обучения программированию стали чаще использоваться такие языки как Java, C, C++, C#, Visual Basic, Python, Haskell.

Одним из ярких событий, связанных с развитием языка Паскаль, стало появление языка и компилятора Oxygene фирмы RemObjects, который создатели заслуженно назвали современным Паскалем 21 века. Oxygene может генерировать код под различные платформы, в том числе под платформы .NET и Java. Основным его недостатком является отсутствие бесплатного компилятора и среды для образовательных целей. Кроме того, Oxygene достаточно сильно отличается от канонического языка Паскаль (методы классов вместо процедур и функций), что отражает его сугубо профессиональную направленность.

Язык и система программирования PascalABC.NET призваны изменить сложившуюся ситуацию и вернуть языку Паскаль былую привлекательность, как для обучения, так и для профессионального программирования.


Среда программы Pascal ABC.NET

В состав интегрированной среды входят:

  • Текстовый редактор

  • Компилятор

  • Отладчик

  • Справочная система

  • Среда выполнения программы

Символы языка - это элементарные знаки, используемые при составлении текстов. Алфавит языка - набор таких символов.

Алфавит языка Pascal включает:

  • все латинские прописные и строчные буквы

  • арабские цифры (0 – 9)

  • символы + - * / = , . ; : ’ _ ( ) { } и др.

  • служебные (зарезервированные) слова

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

Служебные слова делятся на три группы:

  • операторы (READ, WRITELN и др.)

  • имена функций (SIN, COS и др.)

  • ключевые слова (VAR, BEGIN, END и др.)

Любая программа на Паскале имеет определенную структуру:

  1. Заголовок программы

  2. Раздел описаний

  3. Тело программы

PROGRAM имя;
Const; - раздел констант;
Var; - раздел переменных;
BEGIN
оператор 1;
оператор 2;
…..
оператор n-1;
оператор n;
Readln
END.

Программа начинается с заголовка, имеющего следующий вид: Program имя программы;.

В имени программы не должно быть пробелов, оно не должно начинаться с цифры, состоять только из латинских букв, цифр и символа “_” (подчеркивания).

Далее идёт раздел описаний. Например - раздел описаний констант начинается со служебного (ключевого) слова Const; переменных - со служебного (ключевого) слова Var.

После раздела описаний идёт тело программы (раздел операторов), начинающееся со служебного (ключевого) слова Begin, после которого записываются операторы языка. За ними оператор Readln будет ожидать нажатия клавиши Enter в окне выполнения программы. Раздел операторов завершается служебным (ключевым) словом End, после которого ставится точка.

Ввод информации с клавиатуры осуществляется с помощью оператора READ.

Когда в программе встречается оператор READ, то её действие приостанавливается до тех пор, пока не будут введены исходные данные.

Имеет вид:

  • READ(а,b,...)

  • READLN(а,b,..,), где а,b,... - имена вводимых переменных

  • READLN - применяется, когда исполнение программы желательно задержать до нажатия клавиши ENTER.

Для вывода информации на экран используется оператор WRITE.

Имеет вид:

  • WRITE(а,b,...)

  • WRITELN(а,b,..), где а,b,... - список выводимых констант, переменных, выражений.

Примеры:

  1. WRITE(2*2) - выводит на экран: 4

  2. WRITE(‘2*2=’) - выводит на экран: 2*2=

  3. WRITE(‘2*2=’, 2*2) - выводит на экран: 2*2=4

Знакомство со средой программирования PascalABC.NET

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

Program p1; 
Var a,b,с: integer; {Числа в языке Pascal различаются как целые и вещественные}
Begin 
WriteLn
('Введите два целых числа через пробел'); 
ReadLn(a,b); 
с:=a*b; 
WriteLn('Их произведение равно ', с); 
ReadLn 
End.

Комментарий к программе

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

После раздела описаний идёт тело программы (раздел операторов), начинающееся со служебного (ключевого) слова Begin, после которого записываются операторы языка. Первый оператор нашей программы это WriteLn(‘Введите два целых числа через пробел’); - вывести на экран текст, заключенный между апострофами. Символы “Ln” после Write означает, что курсор автоматически переходит на следующую строку после вывода. Следующий оператор ReadLn(a,b) - читать данные с клавиатуры. В данном случае необходимо ввести два целых числа через пробел. Переменной, а присваивается значение, равное первому введенному числу, а переменной b присваивается значение, равное второму введенному числу. В операторе ReadLn символы “Ln” имеют тот же смысл, что и в операторе Writeln. После этих двух операторов стоит оператор присваивания: с:=а*b. Значение выражения из правой части оператора присваивания заменяет текущее значение переменной из левой части. Тип значения выражения обычно должен совпадать с типом переменной. При выполнении оператора переменная с получит значение, равное произведению числа а на число b. Так как в результате умножения двух целых чисел получается целое число, то переменную с мы описали как тип Integer (значениями которого могут быть лишь целые числа).

Следующий оператор - это снова оператор WriteLn ('Их произведение равно', с) - он выведет на экран текст, заключенный между апострофами, а за текстом - значение переменной с. Затем следующий оператор ReadLn будет ожидать нажатия клавиши Enter в окне выполнения. Раздел операторов завершается служебным (ключевым) словом End, после которого ставится точка.

Сначала компилятор проверяет, не содержит ли программа синтаксических ошибок.

Обнаружив ошибку, останавливает свою работу, устанавливает курсор в то место программы, где найдена ошибка и выводит сообщение жёлтым цветом на красном фоне.

Успешная компиляция приводит к появлению сообщения о количестве строк программы и объёме доступной оперативной памяти.

Пример программ на языке Паскаль

Задачи линейного алгоритма

Условный оператор и оператор выбора

  1. Вывод предложения


begin

writeln('Привет, мир!');

end.


  1. Площадь круга


const Pi = 3.1415;

var

r: real; // радиус круга

S: real; // площадь круга

begin

write('Введите радиус круга: ');

readln(r);

S := Pi*r*r;

writeln('Площадь круга равна ',S);

end.


  1. Вычисление А в степени 8


// Использование вспомогательных переменных

var r: real;

begin

write('Введите r: ');

readln(r);

var r2,r4,r8: real; // вспомогательные переменные

r2 := r * r;

r4 := r2 * r2;

r8 := r4 * r4;

writeln(r,' в степени 8 = ',r8);

end.


  1. Вычисление расстояния между точками на прямой


var

a,b: real; // координаты точек

r: real; // расстояние между точками на прямой

begin

write('Введите координату точки a: ');

readln(a);

write('Введите координату точки b: ');

readln(b);

r := abs(a-b);

writeln('Расстояние между точками = ',r);

end.


  1. Нахождение гипотенузы


var

a,b: real; // катеты

c: real; // гипотенуза

begin

write('Введите катеты прямоугольного треугольника: ');

readln(a,b);

c := sqrt(a*a+b*b);

writeln('Гипотенуза = ',c);

end.


  1. Бросание кубиков


var

r1,r2: integer; // значения на верхних гранях кубиков

begin

r1 := Random(6)+1;

r2 := Random(6)+1;

writeln('Очки, выпавшие на кубиках: ',r1,' ',r2);

writeln('Сумма очков равна ', r1+r2);

end.


  1. Перемена местами двух значений


var x,y: real;

begin

write('Введите x,y: ');

readln(x,y);

var v: real; // вспомогательная переменная

v := x;

x := y;

y := v;

writeln('Новые значения x,y: ',x,' ',y);

end.


  1. Выделение цифр из двухзначного числа


var

x: integer; // двузначное число

c1,c2: integer; // первая и вторая цифры двузначного числа

begin

write('Введите двузначное число: ');

readln(x);

c1 := x div 10;

c2 := x mod 10;

writeln('Первая и вторая цифры двузначного числа: ',c1,' ',c2);

end.


  1. Таблица Пифагора (умножения)


begin

writeln('Таблица Пифагора');

for var i:=1 to 9 do

begin

for var j:=1 to 9 do

write(i*j:4);

writeln;

end;

end.



  1. Минимум из двух значений

var

x,y: integer;

min: integer;

begin

write('Введите x и y: ');

readln(x,y);

if x

min := x

else min := y;

writeln('Минимум = ',min);

end.


  1. Определение четности числа

var x: integer;

begin

write('Введите x: ');

readln(x);

if x mod 2 = 0 then

writeln('Это четное число')

else writeln('Это нечетное число');

end.


  1. Состоит ли двузначное число из одинаковых цифр.

var x: integer;

begin

write('Введите двузначное число: ');

readln(x);

var c1 := x div 10;

var c2 := x mod 10;

if c1=c2 then

writeln('Цифры числа совпадают')

else writeln('Цифры числа не совпадают');

end.


  1.  Упорядочение двух значений по возрастанию.

var

x,y: integer;

v: integer;

begin

write('Введите x,y: ');

readln(x,y);

if xy then

begin

v := x;

x := y;

y := v

end;

writeln('Результат упорядочения по возрастанию: ',x,' ',y);

end.


  1. Проверка числа на двузначность.

var x: integer;

begin

write('Введите x: ');

readln(x);

if (x=10) and (x

writeln('Двузначное число')

else writeln('Не двузначное число')

end.


  1. Наименование сезона по номеру месяца.

var

Month: integer;

Season: string;

begin

write('Введите номер месяца: ');

readln(Month);

if (Month=1) or (Month=2) or (Month=12) then

Season := 'Зима'

else if (Month=3) or (Month=4) or (Month=5) then

Season := 'Весна'

else if (Month=6) or (Month=7) or (Month=8) then

Season := 'Лето'

else Season := 'Осень';

writeln('Это ',Season)

end.


  1. Определение четверти, в которой находится точка.

var

x,y: integer; // Координаты точки

Quater: integer; // Номер четверти

begin

write('Введите координаты точки: ');

readln(x,y);

if x0 then

if y0 then

Quater := 1

else Quater := 4

else

if y0 then

Quater := 2

else Quater := 3;

writeln('Номер четверти = ',Quater);

end.


  1.  Нахождение корней квадратного уравнения.

var

a,b,c: real;

x1,x2,D: real;

begin

writeln('Введите коэффициенты a,b,c квадратного уравнения a*x*x+b*x+c=0: ');

readln(a,b,c);

D := b*b - 4*a*c;

if D

writeln('Корней нет')

else if D=0 then

begin

x1 := -b/2/a;

writeln('Корни совпадют: x1=x2=',x1);

end

else

begin

x1 := (-b-sqrt(D))/2/a;

x2 := (-b+sqrt(D))/2/a;

writeln('Корни: x1=',x1:0:3,' x2=',x2:0:3);

end;

end.


  1. Словесное наименование сезона по номеру месяца.

var

Month: integer;

Season: string;

begin

write('Введите номер месяца: ');

readln(Month);

case Month of

1,2,12: Season := 'Зима';

3..5: Season := 'Весна';

6..8: Season := 'Лето';

9..11: Season := 'Осень';

end;

writeln('Это ',Season)

end.


  1.  Определение того, является ли символ цифрой или буквой.

var

Symbol: char;

begin

write('Введите символ: ');

readln(Symbol);

case Symbol of

'a'..'z': writeln('Это маленькая английская буква');

'A'..'Z': writeln('Это большая английская буква');

'0'..'9': writeln('Это цифра');

end;

end.

Практическая часть

  1. Выполнить примеры (1-19) в оболочке программы Pascal ABC.NET

  2. Построить блок схему алгоритма для задачи №9 и №10



Контрольные вопросы

    1. Что такое среда программирования?

    2. Опишите среду программирования Pascal ABC.NET

    3. Как сохранить текст программы?

    4. Какова структура программы на языке Pascal?








Иванилова Т.С.

Липецкий политехнический техникум


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!