Презентация на тему: Среда программирования Pascal ABC. Изучаем паскаль Вычисление натурального логарифма


Никлаус Вирт В начале 70-х годов XX века швейцарский учёный Никлаус Вирт разработал язык программирования, и дал ему название Паскаль, в честь знаменитого французского математика XVII века, изобретателя первой счётной машины Блеза Паскаля. С помощью ЯП Паскаль можно разрабатывать программы самого разного назначения. Синтаксис этого языка интуитивно понятен даже тем, кто только начинает осваивать азы программирования.




Алфавит языка прописные и строчные буквы латинского алфавита от A до z, а также символ подчеркивания (_), который тоже считается буквой. Прописные и строчные буквы взаимозаменяемы (рАвНоЗнАчНы); арабские цифры; специальные одиночные знаки: + – * / =., : ; ^ $ специальные парные знаки: () { } ; составные знаки: =.. (* *) (..).








Структура программы Program NameProgram; {заголовок программы} Uses …;{раздел подключения модулей} Label …; {раздел описания меток} Const …; {раздел описания констант} Туре …; {раздел определения типов} Var …; {раздел описания переменных} Function …; Procedure …; {раздел описания функций и процедур} BEGIN... {раздел операторов} END.











Арифметические действия Если в программе записать: Writeln(3+8); То после исполнения программы в экране выполнения появится надпись 3+8 Если же записать: Writeln(3+8); //без апострофов То после исполнения программы в экране выполнения появится надпись 11, т.е. Pascal произведет сам расчёт Попробуйте вычислить выражение: 185(14+16)

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



В 1970 году в мире программирования произошли по крайней мере два великих события- появились операционная система UNIX и новый язык программирования, созданный профессором Никлаусом Виртом из швейцарского Федерального Технологического Института в Цюрихе. Вирт назвал его в честь великого французского математика и философа XVII века Блеза Паскаля.

Никлаус Вирт (Niklaus Wirth)

Блез Паскаль


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

потому, что учит как правильно написать программу, но и тому, как правильно

разрабатывать методы решения задач программирования


  • прописные и строчные буквы латинского алфавита от A до z , а также символ подчеркивания (_), который тоже считается буквой.
  • Прописные и строчные буквы взаимозаменяемы (рАвНоЗнАчНы);
  • арабские цифры 0 1 2 3 4 5 6 7 8 9 ;
  • специальные одиночные знаки: + – * / = . , : ; ^ $ # @ ;
  • специальные парные знаки: () { } ;
  • составные знаки: = .. (* *) (..) .

Структура программы

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

// Заголовок (необязательная часть)


  • Описание меток;
  • Определение констант;
  • Определение типов;
  • Описание переменных;
  • Описание процедур и функций.

  • begin { начало программы }
  • { тело программы }
  • end. { конец программы }

Структура программы

Program имя программы; { заголовок программы }

Uses …; {раздел подключения модулей}

Label ; { раздел описания меток }

Const ; { раздел описания констант }

Туре ; { раздел определения типов }

Var ; { раздел описания переменных }

Function ; Procedure ; { раздел описания функций и процедур }

... { раздел операторов }


Из чего состоит программа?

Константа – постоянная величина, имеющая имя.

Переменная – изменяющаяся величина, имеющая имя (ячейка памяти).

Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности).

Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin ) .


Константы

i2 = 45; { целое число }

pi = 3.14; { вещественное число }

q = " Вася "; { строка символов }

L = True; { логическая величина }

целая и дробная часть отделяются точкой

можно использовать русские буквы!

может принимать два значения:

  • True (истина, «да») False (ложь, «нет»)
  • True (истина, «да»)
  • False (ложь, «нет»)

Переменные

Типы переменных:

  • integer { целая } real { вещественная } char { один символ } string { символьная строка } boolean { логическая }
  • integer { целая }
  • real { вещественная }
  • char { один символ }
  • string { символьная строка }
  • boolean { логическая }

Объявление переменных ( выделение памяти ) :

variable – переменная

тип – целые

var a, b, c: integer ;

список имен переменных


Пример программы

write(‘ Это моя первая программа ! ’);

Запустите программу на исполнение просмотрите результат.


Оператор вывода

Write(‘ текст ’); - оператор вывода текста и переменных на экран (оставляет курсор на текущей строке);

Writeln(‘ текст ’); - оператор вывода текста и переменных на экран (переносит курсор на новую строку);


Задание

  • Выведите следующий текст на экран:

Привет всем!

Я лучший программист ОСШ №3!

Обратите внимание на то, что текст выводится в две разные строчки



Вычисление математических выражений в ABC Pascal


  • Приоритет выполнения операций в ABC Pascal такой же, как и в математике.
  • Достаточно только научиться правильно записывать математические выражения на языке Pascal

Арифметические действия

Операция

Наименование

Сложение

Вычитание

Умножение

Деление (только для вещественного типа)

А div B

Вычисление целой части (неполного частного)

Вычисление остатка

Вычисли:

10 div 3 18 mod 4


Примеры

Математическая запись

Запись на языке Pascal

37(25+87,5)-17(4,6+1,9)

37*(25+87.5)-17*(4.6+1.9)

(a +2* b-3*c)/(5*a+4)

(a+b)/(a-b)+a*b/3.14

Десятичная запятая в Pascal обозначается точкой


Стандартные функции

Функция Паскаля

Математическая запись

Название

Абсолютная величина числа Х (модуль)

Возведение числа в квадрат

Экспонента

Вычисление квадратного корня

Вычисляет дробную часть числа

Округляет до ближайшего целого числа

Отсекает дробную часть

Определите результат:

Frac(16.68); Round(16.68); Trunc(16.68);


Стандартные функции

Функция Паскаля

Математическая запись

Название

Вычисление синуса

Вычисление косинуса

Целая часть числа

Вычисление натурального логарифма

Возведение числа в степень

Возвращает случайное число в диапазоне от 0 до Х

Число π


Градусы в Pascal нужно перевести в радианы

Запись на языке Pascal

Математическая запись


Операторы ЯП Pascal ABC


:= выражение; Арифметическое выражение может включать константы имена переменных знаки арифметических операций: константы имена переменных знаки арифметических операций: + - * / div mod + - * / div mod вызовы функций круглые скобки () вызовы функций круглые скобки () деление нацело умножение остаток от деления деление" width="640"

Оператор присваивания

имя переменной := выражение ;

Арифметическое выражение может включать

  • константы имена переменных знаки арифметических операций:
  • константы
  • имена переменных
  • знаки арифметических операций:

+ - * / div mod

  • + - * / div mod
  • вызовы функций круглые скобки ()
  • вызовы функций
  • круглые скобки ()

деление нацело

умножение

остаток от деления


Какие операторы неправильные?

program qq;

var a, b: integer;

x, y: real;

10 := x;

y:= 7 , 8;

b:= 2.5;

x:= 2*(a + y);

a:= b + x;

имя переменной должно быть слева от знака :=

целая и дробная часть отделяются точкой

нельзя записывать вещественное значение в целую переменную


Оператор ввода

read (a); { ввод значения переменной a}

read (a, b); { ввод значений переменных a и b}

Как вводить два числа?

через пробел:

через Enter :


Оператор вывода

write (a); { вывод значения переменной a}

write ln (a); { вывод значения переменной a и переход на новую строчку }

writeln (" Привет! "); { вывод текста }

writeln (" Ответ: ", c); { вывод текста и значения переменной c}

writeln (a, "+", b, "=", c);


Сложение двух чисел

Задача. Ввести два целых числа и вывести на экран их сумму.

Простейшее решение:

program qq;

var a, b, c: integer;

read (a, b);

c:= a + b;

writeln (c);


Полное решение

program qq;

var a, b, c: integer;

writeln(" Введите два целых числа ");

read (a, b);

c:= a + b;

writeln (a, "+", b, "=", c);

компьютер

Протокол :

Введите два целых числа

25+30=55

пользователь



ВЫЧИСЛИТЬ:

12 div 4 =

1 9 div 5 =

12 mod 3 =

1 36 mod 10 =


На Паскале

На языке математики

Модуль числа х

Возведение в квадрат числа х

Trunc(x)

е х

Round(x)

Вычисление дробной части

Корень квадратный из х

Округляет до ближайшего целого числ

Random(x)

Отсекает дробную часть

Синус х

Exp/y*ln(x))

Возвращает случайное число от 0 до х

Косинус х

[ х ]

х у

Ln x


Домашнее задание

1. Вычислить длину окружности и площадь круга по заданному радиусу

2. Вычислить периметр прямоугольного треугольника по его катетам




Условный оператор ( полная форма )

полная форма ветвления

условие

Действие1

Действие2

вывод


then begin { что делать, если условие верно } end else begin { что делать, если условие неверно } end ; Особенности: перед else НЕ ставится точка с запятой begin и end перед else НЕ ставится точка с запятой если в блоке один оператор, можно убрать слова begin и end" width="640"

Условный оператор (полная форма)

if условие then begin

{ }

else begin

{ что делать, если условие неверно }

Особенности:

  • перед else НЕ ставится точка с запятой если в блоке один оператор, можно убрать слова begin и end
  • перед else НЕ ставится точка с запятой
  • если в блоке один оператор, можно убрать слова begin и end

Условный оператор (не полная форма )

неполная форма ветвления

условие

Действие

вывод


then begin { что делать, если условие верно } end ; Особенности: если в блоке один оператор, можно убрать слова begin и end если в блоке один оператор, можно убрать слова begin и end" width="640"

Условный оператор (неполная форма)

if условие then begin

{ что делать, если условие верно }

Особенности:

  • если в блоке один оператор, можно убрать слова begin и end
  • если в блоке один оператор, можно убрать слова begin и end


Домашнее задание

  • Составьте программу, которая уменьшает первое число в пять раз, если оно больше второго.

2. Запишите программу, в которой значение переменной с вычисляется по формуле: a+b , если а нечетное и a*b , если а четное .



b then c:= a + b else c:= b – a;" width="640"

Домашнее задание

1. Написать программу решения задачи:

а). Известно значение х. Вычислить у, если

б). Даны координаты точки. Выяснить лежит ли эта точка в 3 координатной четверти?

2. Определите значение переменной c после выполнения следующего фрагмента программы:

a:= 6 ;

b:= 15 ;

a:= b – a*2;

if a b then

c:= a + b

else c:= b – a;




Цикл – это многократное выполнение одинаковой последовательности действий.

  • цикл с известным числом шагов (цикл с параметром ) цикл с неизвестным числом шагов (цикл с условием )
  • цикл с известным числом шагов (цикл с параметром )
  • цикл с неизвестным числом шагов (цикл с условием )



:= начальное значение to конечное значение do begin { тело цикла } end; Уменьшение переменной на 1 (шаг -1) : for переменная:= начальное значение downto конечное значение do begin { тело цикла } end;" width="640"

Увеличение переменной на 1 (шаг 1):

for переменная := начальное значение to

конечное значение do begin

{ тело цикла }

Уменьшение переменной на 1 (шаг -1) :

for переменная := начальное значение downto

конечное значение do begin

{ тело цикла }


Особенности:

  • integer ) to ) или -1 ( downto ) begin и end можно не писать: to ) не выполняется ни разу (
  • переменная цикла может быть только целой ( integer )
  • шаг изменения переменной цикла всегда равен 1 ( to ) или -1 ( downto )
  • если в теле цикла только один оператор, слова begin и end можно не писать:
  • если конечное значение меньше начального, цикл ( to ) не выполняется ни разу ( проверка условия в начале цикла, цикл с предусловием)

for i:= 1 to 8 do

writeln( " Привет " );


  • в теле цикла не разрешается изменять переменную цикла
  • при изменении начального и конечного значения внутри цикла количество шагов не изменится:

for i:= 1 to n do begin

writeln( " Привет " );

n:= n + 1;

нет зацикливания




do begin { тело цикла } end; Особенности: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: while (a d o begin { тело цикла } end; while a d o a:= a + 1;" width="640"

while условие do begin

{ тело цикла }

Особенности:

  • можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать:
  • можно использовать сложные условия:
  • если в теле цикла только один оператор, слова begin и end можно не писать:

while (a d o begin

{ тело цикла }

while a d o

a:= a + 1;


b d o a:= a – b; a:= 4; b:= 6; while a d o d:= a + b;" width="640"
  • условие пересчитывается каждый раз при входе в цикл
  • если условие на входе в цикл ложно, цикл не выполняется ни разу
  • если условие никогда не станет ложным, программа зацикливается

a:= 4; b:= 6;

while a b d o

a:= a – b;

a:= 4; b:= 6;

while a d o

d:= a + b;




until условие " width="640"

Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.

тело цикла

until условие


ЗАДАЧА

Найти сумму квадратов всех натуральных чисел от 1 до 100. Решим эту задачу с использованием всех трех видов циклов.


"Пока" .

Program qq;

var a, s: integer;

s:=s+a*a;

writeln(s);


100 ; writeln(s); end." width="640"

"До"

Program qq;

var a, s: integer;

s:=s+a*a;

until a 100 ;

writeln(s);


"С параметром"

Program qq;

var a, s: integer;

for a:=1 to 100 do

s:=s+a*a;

writeln (s);


Задача.

Вывести на экран квадраты и кубы целых чисел от 1 до 8.

Особенность:

одинаковые действия выполняются 8 раз.


блок «цикл»

i 1 := i * i;

i 2 := i 1 * i;

тело цикла

i, i 1 , i 2


Программа

program qq;

var i, i1, i2: integer;

for i:=1 to 8 do begin

i1:= i*i;

i2:= i1*i;

writeln(i, i1, i2);

начальное значение

переменная

конечное значение


Цикл с уменьшением переменной

Задача. Вывести на экран квадраты и кубы целых чисел от 8 до 1 (в обратном порядке).

Особенность: переменная цикла должна уменьшаться.

Решение:

for i:=8 1 do begin

i1:= i*i;

i2:= i1*i;

writeln(i, i1, i2);

down to




Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом.

Особенности:

  • все элементы имеют один тип весь массив имеет одно имя
  • все элементы имеют один тип
  • весь массив имеет одно имя
  • все элементы расположены в памяти рядом

Примеры:

  • список учеников в классе квартиры в доме школы в городе
  • список учеников в классе
  • квартиры в доме
  • школы в городе
  • данные о температуре воздуха за год

НОМЕР элемента массива

(ИНДЕКС )

массив

ЗНАЧЕНИЕ элемента массива

НОМЕР (ИНДЕКС) элемента массива: 2

ЗНАЧЕНИЕ элемента массива: 10


Объявление массивов

Зачем объявлять?

  • определить имя массива определить тип массива определить число элементов выделить место в памяти
  • определить имя массива
  • определить тип массива
  • определить число элементов
  • выделить место в памяти

Массив целых чисел:

Размер через константу:

элементов

конечный индекс

начальный индекс

var A : array[ 1 .. 5 ] of integer ;

var A: array of integer ;

const N=5;


Что неправильно?

var a: array of integer;

A := 4.5;

var a: array ["z".."a"] of integer;

A["B"] := 15;

["a".."z"]

var a: array of integer;

A := "X";


Объявление:

Ввод с клавиатуры:

Поэлементные операции:

Вывод на экран:

const N = 5;

var a: array of integer;

i: integer;

a =

a =

a =

a =

a =

for i:=1 to N do begin

write("a[", i, "]=");

read (a[i]);

Почему write ?

for i:=1 to N do a[i]:=a[i]*2;

writeln(" Массив A:");

for i:=1 to N do write(a[i]:4);

Массив A:

1 0 24 68 112 26


Задача:

1. Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива.

Пример:

Введите пять чисел:

4 15 3 10 14

среднее арифметическое 9.200

РЕШЕНИЕ:


Program qq;

var N: array of integer;

for i:=1 to 5 do begin

write ("N[",i,"]");

for i:=1 to 5 do begin

write(" среднее", k:6:2);

Описание слайда:

Система Pascal ABC Система Pascal ABC предназначена для обучения программированию на языке Паскаль и ориентирована на школьников и студентов младших курсов. По мнению авторов первоначальное обучение программированию должно проходить в достаточно простых и дружественных средах, в то же время эти среды должны быть близки к стандартным по возможностям языка программирования и иметь достаточно богатые и современные библиотеки стандартных подпрограмм. Язык Паскаль признан многими российскими преподавателями как один из лучших именно для начального обучения. Однако, среда Borland Pascal, ориентированная на MS DOS, устарела, а среда Borland Delphi с ее богатыми возможностями сложна для начинающего программиста. Так, попытка начинать обучение с написания событийной программы в Borland Delphi вызывает у обучаемого массу сложностей и приводит к ряду неправильно сформированных навыков.Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Некоторые языковые конструкции в Pascal ABC допускают, наряду с основным, упрощенное использование, что позволяет использовать их на ранних этапах обучения. Например, в модулях может отсутствовать разделение на секцию интерфейса и секцию реализации. В этом случае модули устроены практически так же, как и основная программа, что позволяет приступить к их изучению параллельно с темой "Процедуры и функции". Тела методов можно определять непосредственно внутри классов (в стиле Java и C#), что позволяет создавать классы практически сразу после изучения записей, процедур и функций. Ряд модулей системы программирования Pascal ABC специально создавался для учебных целей:Модуль растровой графики GraphABC обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi. Он доступен в несобытийных программах и позволяет легко создавать анимацию без мерцания. Модуль Events позволяет создавать простейшие событийные программы без использования объектов (события представляют собой обычные процедурные переменные). Модули Timers и Sounds позволяют создавать таймеры и звуки, которые также реализованы в процедурном стиле. Эти модули можно использовать даже в консольных программах. Модуль контейнерных классов Containers позволяет работать с основными структурами данных (динамические массивы, стеки, очереди, множества), реализованными в виде классов. Модуль векторной графики ABCObjects предназначен для быстрого изучения основ объектно-ориентированного программирования, а также позволяет создавать достаточно сложные игровые и обучающие программы. Модуль визуальных компонентов VCL позволяет создавать событийные приложения с главной формой в стиле Delphi. Классы VCL немного упрощены по сравнению с аналогичными классами Delphi. Имеется редактор форм и инспектор объектов. Технология восстановления формы по коду программы позволяет обойтись для приложения с главной формой одним файлом (!). В языке Pascal ABC имеются арифметические операции с типизированными указателями (в стиле языка C), а также тип complex, предназначенный для работы с комплексными числами.Компилятор Pascal ABC является компилятором переднего плана (front-end). Это означает, что он не генерирует исполняемый код в виде.exe-файла, а создает в результате компиляции дерево программы в памяти, которое затем выполняется с помощью встроенного интерпретатора. В итоге скорость работы программы примерно в 20 раз медленнее скорости работы этой же программы, откомпилированной в среде Borland Pascal, и в 50 раз медленнее этой программы, откомпилированной в среде Borland Delphi.В системе Pascal ABC ученик может выполнять так называемые проверяемые задания, обеспечивающие постановку задачи со случайными исходными данными, контроль операций ввода-вывода, проверку правильности решения, а также ведение протокола решения задач.Проверяемые задания реализованы в виде электронного задачника по программированию Programming Taskbook, содержащего 1000 задач по программированию разного уровня сложности (от простейших задач до задач на файлы, указатели и рекурсию) а также в виде исполнителей Робот и Чертежник, предназначенных для быстрого обучения основам программирования школьников младших и средних классов.В свободно распространяемую версию Pascal ABC & Programming Taskbook Mini Edition входит мини-версия электронного задачника (200 задач) и урезанный комплект задач для исполнителей Робот и Чертежник. Версия Pascal ABC & Programming Taskbook Complete Edition содержит полный комплект задач.

Cлайд 1

Cлайд 2

Урок 1. Моя первая программа Нашей первой программой будет программа-приветствие. Она просто выведет текст на экран компьютера и завершит свою работу. Мы также рассмотрим основные правила оформления программы. program First; begin write("Привет,"); writeln("друзья!"); writeln("Это вторая строка") end. Первая строка-заголовок программы. Program-служебное слово; First – имя нашей программы, его придумываете сами. В конце строки стоит «;» При перечислении инструкций Паскаля между ними нужно ставить «;» . Дальше идет тело программы. Оно всегда начинается со слова begin. Здесь в конце строки нет «;» Следующая команда или оператор выводит слово ПРИВЕТ на экран; текст для вывода всегда заключается в апострофы. (" "). Этот оператор выводит на экран слово ДРУЗЬЯ! и переводит курсор на следующую строку. Т.к. символы «ln» в операторе writeln означают «line» - строка. Здесь в конце строки «;» не обязательна, т.к. это последний оператор (перед end «;» можно не ставить). End – заканчивает тело программы и в конце обязательно стоит точка. В результате выполнения программы получаем

Cлайд 3

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

Cлайд 4

Схема прохождения этапов создания программы на компьютере. начало Edit (редактирование) Ошибка? Compile (компиляция) Ошибка? Build (построение) Ошибка? Run (выполнение) Ошибка? Конец Да Да Да Да Нет Нет Нет Нет

Cлайд 5

Запустите программу Паскаль АВС со значка на рабочем столе Главное меню Переход - F10 Окно редактирование Переход из главного меню - Alt Окно вывода Запуск на выполнение программы – F9

Cлайд 6

Наберите в окне редактирования свою первую программу, запустите на выполнение кнопкой F9 . program First; begin write("Привет, "); writeln("друзья!"); writeln("Это вторая строка") end. Процессы компиляции и запуска программы на выполнение можно объединить, вызвав команду Run (F9) сразу после набора текста программы. Выход из программы осуществляется с помощью команды Exit в меню File. Задание 1. Напишите программу, которая выводит на экран текст: Важно Не путать Write и Writeln ! Проверяем.

Cлайд 7

Задание 2. Напишите программу, которая выводит на экран фразу «Всем привет!» 20 раз – в таблице из 5 строк по 4 столбца. Подсказка. Для задания расстояния между колонками используйте несколько пробелов. Напишите сначала только один оператор write? Который выведет одну фразу (не забудьте про пробелы). Затем скопируйте его еще 4 раза, чтобы получить целую строку. В конце не забудьте поставить переход на следующую строку (writeln). Копировать begin и end не нужно! Проверяем.
Поделиться