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

Тема урока: «Циклы (повтор) в программах»

1)Повторить и закрепить знания составления линейных, разветвляющихся программ; 2)Научиться составлять программы, используя циклический оператор – FOR i:=1 TO n DO Begin операторы(тело цикла) end ; 3)Применять операторы в решении типовых задач. Цель урока:

Вставьте пропущенное: Program Sql; Var A,B,C,D, XI, Х2: ??? ; Begin Writeln ("Введите коэффициенты квадратного уравнения ’); Readln (???); D:=B*B-4*A*C; If D

Вопросы группе: 1)В чем отличие программ с ветвлением от линейных? 2)С помощью каких операторов осуществляется выбор в программах? 3) begin….end – Что это? Каковы правила использования в программе?

1)Операторы Ввода/вывода; 2)Операторы выбора; 3) а:=а+3 – что произойдет? 4)Перечислить типы данных; 5)Убрать лишнее AND,OR,END, NOT,IF ; 6) ; - что обозначает? 7) Как обозначается конец программы? 8) Перечислить арифметические операции. 9) Чему равно 120 mod 65 = ? 10) Операторы цикла.

Расставьте соответственно: 1. Read 2. End 3. Begin 4. Integer 5. ; 6. If .. Then 7. := 8. Ввод 9. Конец 10. Целые 11. Прис- воить 12. Следу-ющее действие 13.Начало 14.Если..то

Действительно ли результат а меньше 3 ? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Найдите 5 ошибок в программе: Program krug ; VAR Pi, r, S: real; Pi:=3.14, WRITELN(‘vvedite radiuc r=’), READ(r); S=Pi *r*r; WRITELN(‘Ploshad kruga S= ’, S) end

Program krug ; VAR Pi, r, S: real; begin Pi:=3.14 , WRITELN(‘vvedite radiuc r=’) , READ(r); S: =Pi *r*r; WRITELN(‘Ploshad kruga S= ’, S) end .

Задача №1 Дано целое N , определить является ли оно четным или нечетным. 2, 4, 6, …- четные, т.к. делятся без остатка на 2(N mod 2 =0) 1, 3, 7, … - нечетные, т.к. делятся на 2 с остатком 1(N mod 2 =1)

Алгоритм Алгоритм Chislo ; перем N: целые; начало Вывод(‘vvedite chislo’) ; Ввод (N) ; ЕСЛИ N mod 2 =0 Т O Вывод(N,‘- chetnoe‘); ЕСЛИ N mod 2 =1 Т O Вывод(N,‘- nechetnoe‘); конец.

Задача № 2 Дано целое двузначное число N (DE), где D – количество десятков, Е – единиц. Определить будет ли сумма цифр этого числа равна 10. Пример: у 28-ми сумма S =2+8=10 – будет, а у 27-ми S=2+7=9 не будет Будем считать десятки: D= N div 10 , а единицы: E= N mod 10

Алгоритм Алгоритм Chislo ; перем N,E,D,S: целые; начало Вывод(‘vvedite chislo’) ; Ввод (N) ; E:=N mod 10; D:=N div 10; S:=E+D; ЕСЛИ S = 10 Т O Вывод(‘summa= 10’) Иначе (‘summa10‘); конец.

Определение: Программы в которых многократно повторяются однотипные действия – циклические программы (с повтором).

Задача: Дано 100 натуральных чисел от 1 до 100 (1,2,3, … 99,100) Посчитать их сумму и вывести в переменную S.

Алгоритм сумма; Перем i,S: целые; Начало S:=0; Для i:=1 до 100 повторять Начало S:= S + i тело Конец; цикла Вывод (S) Конец.

Program summa; VAR i , S: integer; Begin S:=0; FOR i:=1 TO 100 DO begin S:=S+i тело end; цикла WRITE(S) end.

Program summa; VAR i , S: integer; Begin S:=0; FOR i:=1 TO 100 DO begin S:=S+i ; тело WRITE(‘S’, i, ’=‘, s) цикла end; end.

Тело цикла – те самые действия, которые нужно многократно повторять. Тело цикла заключаем в операторные скобки begin … .. end;

ALT + F9 - исправление ошибок CTRL + F9 – запуск программы ALT + F5 – просмотр результата

Задача: 1)Вывести столбец таблицы умножения любого целого числа N на числа от 1 до 10. Пример: N =5, то столбец будет такой- 1*5=5 2*5=10 3*5=15 i * N = P, где i изменяется от …… .. 1…10 10*5=50

Домашнее задание: прокомментировать программу для задачи «Про столбец таблицы умножения»

СПАСИБО ЗА ВНИМАНИЕ!

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



В 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);

1 слайд

«ЗНАКОМСТВО С ЯЗЫКОМ ПАСКАЛЬ» УРОК НА ТЕМУ: Учитель математики и информатики МБО УСОШ № 2 г. Калача-на-Дону Волгоградской области Анисимовой Н.А.

2 слайд

ЦЕЛЬ УРОКА: выяснить структуру программы, операторы, правила оформления и пунктуацию языка Turbo Pascal.

3 слайд

Система программирования TURBO PASCAL. Паскаль – это универсальный язык программирования, позволяющий решать самые разнообразные задачи обработки информации.

4 слайд

1)язык программирования Тurbo Pascal; 2)интегрированная среда программирования(компилятор: переводит программу в машинный код и интерпретатор: исполняет команды) СОСТАВ СИСТЕМЫ ПРОГРАММИРОВАНИЯ ТР:

5 слайд

1)латинские буквы – большие и малые; 2)буквы русского алфавита - большие и малые; 3)цифры – от 0 до 9; 4)знаки операций - +, -, /, *,=, =; 5)разделительные знаки – () { } ; . , ‘ _% & # и т. Д. Алфавит языка программирования TURBO PASCAL

6 слайд

7 слайд

Заголовок программы Раздел описания переменных Раздел операторов (основная часть)

8 слайд

Раздел описания переменных начинается со слова Var , за которым идет список имен однотипных переменных через запятую. В языке Паскаль существует два числовых типа величин: вещественный (Real) и целый (Integer). Имена переменных составляются из латинских букв и цифр, причем первым символом - буква. VAR список однотипных переменных: INTEGER; список однотипных переменных:REAL;

9 слайд

Раздел операторов – основная часть программы. Начало и ко-нец раздела отмечаются служебными словами BEGIN и END , которые являются операторными скобками. Между этими сло-вами помещаются все команды алгоритма, записанные на языке Паскаль (операторы). Разделителем операторов являет-ся точка с запятой. В самом конце программы ставится точка. BEGIN READ(список ввода); READLN(список ввода); переменная:=арифметическое выражение; WRITE(список вывода); WRITELN(список вывода); END.

10 слайд

Ввод исходных данных с клавиатуры происходит по опе-ратору READ или READLN (читать). Оператор READLN отличается от READ только тем, что после ввода данных курсор перемещается в начало новой строки. переменная:=арифметическое выражение; WRITE(список вывода); WRITELN(список вывода); END. READ(список ввода); READLN(список ввода);

11 слайд

переменная:=арифметическое выражение; Арифметический оператор присваивания: слева- переменная, справа - арифметическое выражение, которое должно быть вычислено. Составной символ:= читается как «присвоить». Сначала вычисляется арифметическое выражение, затем полученное значение присваивается переменной.Пример: a:= sqr (x) + sin (y) / (12*z + 5)

12 слайд

mod div / * - + SIN (x) COS (x) SQR (x) SQRT (x) ABS (x) Sin x Cos x x 2 |x| x сложение вычитание умножение деление деление нацело Остаток от деления

13 слайд

Правила записи арифметических выражений Арифметическое выражение записывается в строку Нельзя ставить подряд два знака арифметических операций Нельзя опускать знак умножения между сомножителями Используются только круглые скобки Последовательность выполнения операций определяется по их приоритетам () F(x) * / + - div mod

14 слайд

Вывод результатов происходит по WRITE или WRITELN (писать). Результаты выводятся в порядке их перечисле-ния в списке. Разница в выполнении операторов WRITE и WRITELN состоит в том, что после выполнения операции вывода по оператору WRITELN курсор перемещается в начало новой строки. WRITE(список вывода); WRITELN(список вывода);

15 слайд

Задание 1: AXby 6) TU154 2) R&B 3) 4Wheel 4) Вася 5) “PesBarbos” 7) 8) _ABBA 9) A+B

16 слайд

program zadacha1; var a, b: integer; x, y: real; begin a:= 5; 10:= x; y:= 7,8; b:= 2.5; x:= 2*(a + y); a:= b + x; end. имя переменной должно быть слева от знака:= целая и дробная часть отделяются запятой и несоответствие типов Несоответствие типов ЗАДАНИЕ 2: Найдите ошибки в записи программы.

PASCAL ВВЕДЕНИЕ В ЯЗЫК ПРОГРАММИРОВАНИЯ 2006 СТРУКТУРА КУРСА интерфейс и основные определения; структура программы; вывод на экран текстовой информации; ввод данных с клавиатуры; подключение и использование системных модулей; работа с основными типами данных (целый, вещественный, строковый, массив, файловый) работа с графикой; использование подпрограмм (процедуры и функции); использование модулей. 2 ИНТЕРФЕЙС СРЕДЫ PASCAL Язык программирования Turbo Pascal 7.0 заключён в инструментальную оболочку. Она включает в себя: многооконный текстовый редактор; компоновщик программ; отладчик программ; систему помощи; компилятор. 3 ИНТЕРФЕЙС СРЕДЫ PASCAL 4 Список открытых файлов: Alt + 0 Быстрый доступ к открытым файлам: Alt + <№ окна> ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ Зарезервированное слово – это специальное слово, используемое языком программирования для отделения логических областей программы. Оператор – это команда языка выполняющая какое-либо действие (проверка условия, организация цикла и пр.) Идентификатор – это имя, свободно избираемое программистом для элементов программы. Тип данных – это характеристика идентификатора, определяющая множество значений, которые он может принимать (целые или дробные числа, строки символов, логически выражения и пр.). 5 ОБЩАЯ СТРУКТУРА ПРОГРАММЫ Program Имя_программы; Uses раздел подключаемых модулей; Label раздел описания меток; Const раздел описания констант; Type раздел описания собственных типов данных; Var раздел описания переменных; Begin Основное тело программы; End. Минимальный код: 6 ВЫВОД НА ЭКРАН Для вывода информации на экран, используются операторы: Write или Writeln. F9 – Компиляция + проверка Ctrl+F9 – Запуск F9 → Ctrl+F9 – избежание ошибок Отображение результатов выполнения программы 7 ВЫВОД НА ЭКРАН Результат применения операторов: WRITE «Пустой» оператор WRITELN добавляет пустую строку WRITELN 8 УПРАЖНЕНИЕ Выведите информацию на экран так, как показано ниже Hello! Nice to see you! Call me computer. Используемый материал: Операторы вывода: Write, WriteLn «Пустой» оператор WriteLn; вставляет пустую строку. 9 ПОДКЛЮЧЕНИЕ ДОПОЛНИТЕЛЬНЫХ МОДУЛЕЙ Дополнительные модули расширяют возможности ваших программ, путём введения дополнительных операторов. Модули подключаются в разделе Uses. Program My; Uses Модуль1, Модуль2 ; ________________________ ________________________ ________________________ ________________________ МОДУЛЬ 1 Набор ресурсов 1 … МОДУЛЬ N Модули: Системные Собственные Набор ресурсов N Очистка текстового экрана Ожидание нажатия на клавишу Подключённый модуль с именем CRT 10 ВЫВОД В ПРОИЗВОЛЬНОЕ МЕСТО ЭКРАНА GotoXY (X, Y: Integer) Где X, Y – координата знакоместа на экране. X может принимать значения от 1 до 80, а Y от 1 до 25. Например: Program My_program; {Подключение модуля} Uses Crt; Begin {Очистка экрана} ClrScr; {Вывод данных} GotoXY(1, 1); write("▒"); GotoXY(80, 1); write("▒"); GotoXY(1, 25); write("▒"); GotoXY(80, 25); write("▒"); {Задержка экрана} ReadKey; End. Программа выводит по углам экрана символ “▒” (код 177). 11 ВЫВОД В ЦВЕТЕ TextColor (Color); Определяет цвет символов. TextBackground (Color); Определяет цвет знакоместа. Program MyProgram; Uses Crt; Begin TextColor(Red); TextBackGround(Blue); Write("На дворе "); TextColor(White); Write("трава, "); TextColor(Green); TextBackGround(Yellow); Write("на траве "); TextBackGround(Magenta); Write("дрова."); End. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Цвета Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 12 – чёрный – синий – зелёный – циановый – красный – сиреневый – коричневый – светло-серый – тёмно-серый – голубой – светло-зелёный – светло-циановый – розовый – светло-сиреневый – жёлтый – белый РАБОТА С ДАННЫМИ РАБОТА С ДАННЫМИ ОБЪЯВЛЕНИЕ ИДЕНТИФИКАТОРОВ 14 ЗАДАНИЕ ТИПА ДАННЫХ Идентификация данных Однозначность операций над данными ЗАДАНИЕ ЗНАЧЕНИЙ Операции с данными ИДЕНТИФИКАТОРЫ Термин идентификатор применяется к константам, переменным, функциям, процедурам, компонентам и другим объектам, определяемым пользователем. Разрешённые символы: латинские буквы; цифры; знак подчёркивания. Ограничения: не должны начинаться с цифры, но могут начинаться со знака подчёркивания. не могут состоять из нескольких слов. не могут совпадать с каким-либо из ключевых слов. В идентификаторах не учитывается регистр символов. Ошибочные идентификаторы: Данные My name 2Array Var { { { { Используются русские символы } Есть пробел } Начинается с цифры } Совпадает с ключевым словом } 15 ТИПЫ ДАННЫХ Тип данных – это характеристика идентификатора, определяющая множество значений, которые он может принимать (целые или дробные числа, строки символов, логически выражения и пр.). 16 ЦЕЛЫЙ ТИП ДАННЫХ 17 Конечный набор возможных значений тип byte shortint word integer longint диапазон 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647 ! Выход за пределы диапазона приводит к ошибке! разм ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ Переменная – это идентификатор, способный хранить какое-либо значение (число, строку и т.п.) и менять его в процессе работы программы. Синтаксис: Var <имя переменной> : <тип переменной> ; Program Имя_программы; Uses раздел подключаемых модулей; Var раздел описания переменных; Begin Основное тело программы; End. Зарезервировано место в памяти компьютера под 3-и переменных 18 ЗАДАНИЕ ЗНАЧЕНИЙ ПЕРЕМЕНЫМ Для задания значения переменной, необходимо воспользоваться оператором присваивания:= Синтаксис записи: <Переменная> := <Значение> ; В переменную (целочисленную) с именем А заносится значение 3 19 ОПЕРАЦИИ С ЦЕЛЫМИ ПЕРЕМЕННЫМИ 20 Арифметические операции: + - * / Стандартные операции: div | mod | sqr Нельзя использовать с целыми типами В переменную с именем S заносится сумма значений, которые хранятся в переменных X и Y Значение, хранящееся в переменной с именем S выводится на экран УПРАЖНЕНИЕ 21 1. Напишите программу, которая выводит на экран результат умножения чисел 15 и 20. 2. Напишите программу, которая выводит на экран значение функции f 2 x 3 y , при x=11, y=3 Используемый материал: Переменные объявляются в разделе Var Целый тип называется Integer Синтаксис присвоения переменной значения: <Переменная> := <Значение> ; После каждого оператора ставится знак; (кроме begin и последнего end) ВЕЩЕСТВЕННЫЙ ТИП ДАННЫХ Множество значений √ √ Порядковый тип Вещественный тип Односторонняя совместимость: Вещественный Целый Целый Вещественный! Выход за пределы диапазона и несоблюдение правил совместимости приводит к ошибке! 22 ОПЕРАЦИИ С ВЕЩЕСТВЕННЫМИ ПЕРЕМЕННЫМИ 23 Стандартные операции: pi | Sqrt | Sin | Cos | Abs | Exp | Ln Round | Trunc (вещественный → целый) Например (X, S – тип Real): X:= pi/3; S:= Sin(X) * 100; Write (Round(S)); В переменную с именем S заносится отношение значений, которые хранятся в переменных X и Y Позиция числа и число символов в дробной части числа E – обозначает степень числа. 5.6E-5 = 5.6·10-5 СТРОКОВЫЙ ТИП ДАННЫХ 24 Строки – упорядоченный набор символов. Строки заключены в апострофы. Строки не совместимы с целыми и вещественными типами. Тип Диапазон String 255 символов { Основные операторы для строк } + { конкатенация } Length (S); { длина строки } Например: X:= ‘Вася’; Write(‘В вашем имени’, Length(X), ‘букв.’); S:= X; X:= S; УПРАЖНЕНИЕ Напишите программу, которая выводит на экран результат деления чисел 12.89 и 0.22 с отображением только трёх значащих цифр после запятой в следующем формате: первое число разделить на второе число = результат Write (X:1:3, ‘ razdelit na ’, y:1:3, ‘ = ’ z:1:3) Используемый материал: Строковый тип называется String Строки заключаются в опострафы Конкатенация строк происходит через знак + В операторе вывода на экран, разные типы отделяются запятой 25 ВВОД ДАННЫХ С КЛАВИАТУРЫ 26 Для того, чтобы ввести информацию с клавиатуры, необходимо воспользоваться оператором ввода: Read или ReadLn. Синтаксис: Read (N1, N2, … Nn); Где N1, N2, … Nn – переменные (целые, вещественные, строковые) В переменную Х, заносится значение введенное с клавиатуры После ввода значения, необходимо нажать клавишу Enter Если переменных в операторе указано несколько, то они вводятся через пробел, либо через нажатия клавиши Enter УПРАЖНЕНИЕ 27 1. Напишите программу «мини-калькулятор», которая вычисляет сумму двух чисел, введенных с клавиатуры. 2. Напишите программу, которая спрашивает как Вас зовут, а после того как Вы напишите свое имя выводит приветствие. Например, если Вы ввели имя Ваня, то программа выведет фразу: Привет, Ваня!!! Используемый материал: Операторы ввода: Read, ReadLn ОПЕРАТОРЫ УСЛОВНЫЙ ОПЕРАТОР 29 Условный оператор реализует «ветвление», т.е изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия. Проверка условия НЕТ Действие 1 Пойду на пляж Идёт дождь ДА Действие 2 Возьму зонт Действие 3 Пойду в кино ПРОВЕРКА УСЛОВИЙ Операции сравнения: > - больше < - меньше = - равно >= - больше или равно <= - меньше или равно <> - не равно 30 Логические операции: Not And Or - Не -И - Или Например: Если Мой рост > Роста Пети, То я выше Пети Если (идёт дождь) Или (идёт снег), То я останусь дома Если Не ((идёт дождь) И (ветер)), То я пойду гулять При использовании логических операций, условия заключаются в скобки СИНТАКСИС ЗАПИСИ УСЛОВНОГО ОПЕРАТОРА Краткая форма: If <условие> then <оператор>; Например, если в переменной Х значение меньше чем 0, тогда в эту же переменную записывается значение 1: If X<0 Then X:= 1; Полная форма: If <условие> then <оператор_1> else <оператор_2> ; Например: If X>5 Then X:= X - 1 Else X:= X + 1; После слов Then и Else можно использовать только один оператор Перед словом Else, знак; отсутствует 31 УПРАЖНЕНИЕ 32 1. Напишите программу, которая получает на вход сумму в долларах и сумму в евро, а затем выводит на экран в какой валюте сумма больше (1 доллар=28 руб., 1 евро=35 руб.) 2. Напишите программу, которая получает на вход три числа, а затем выводит на экран максимальное из них. Используемый материал: Формы записи условного оператора: If <условие> Then <оператор>; If <условие> Then <оператор_1> Else <оператор_2> ; Перед Else знак; не ставится Операции сравнения: > < = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z > 0 Then Begin X:= 1; Y:= -1; WriteLn(‘Информация принята’); End Else WriteLn(‘Ошибка’); 33 ОПЕРАТОР ВЫБОРА CASE Оператор выбора используется для замены конструкций из вложенных условных операторов. Синтаксис записи Case <порядковая_переменная> of <значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N> Else <оператор_N+1> ; End; В операторе выбора можно использовать операторные скобки Не обязательная строка 34 ОПЕРАТОР ВЫБОРА CASE Case Рост ученика of 16..30: Вы ученик начальных классов; 31,32,33: Вы учитесь в классе 5-6 ; 34..50: Вы старшекласник Для перечисления значений используется запятая, для выбора диапазона – двоеточие Else Вы явно не ученик; End; Case x of -128..-1: writeln(‘Отрицательные’); 0: writeln(‘Ноль’); 1..127: writeln(‘Положительные’) Else WriteLn(‘Выход из диапазона’); End; 35 УПРАЖНЕНИЕ Напишите программу, которая получив число, выводит на экран соответствующий день недели. Например, ввели число 2, программа должна вывести ‘Вторник’. Если число выходит за пределы 1..7, то должно быть выведено сообщение, что такого дня нет. Используемый материал: Оператор выбора: Case <порядковая_переменная> of <значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N> ; Else <оператор_N+1> ; End; 36 ЦИКЛЫ 37 Циклическими называются алгоритмы, у которых выполнение некоторых операторов осуществляется многократно с одними и теми же модифицированными данными (например, процедура умножения чисел через их многократное сложение). В языке Паскаль имеются три оператора цикла: For (цикл с параметром или на заданное число повторений) While (цикл ПОКА) Repeat (цикл ДО) Если число повторений известно, то лучше воспользоваться оператором цикла с параметром. ЦИКЛ С ПАРАМЕТРОМ 38 Цикл на заданное число повторений с возрастающим или убывающим значением параметра For {парам} := {нач_зн} To {кон_зн} Do {оператор} ; Тело цикла Замечания Параметр – целый тип; В цикле можно использовать операторные скобки; В теле цикла нельзя менять параметр цикла; Параметр цикла увеличивается на единицу; Начальное значение > конечного, иначе тело цикла игнорируется; Для уменьшения параметра, за место To, использовать DownTo. ЦИКЛ С ПАРАМЕТРОМ 39 Написать программу, которая запрашивает целые числа (a, b), причём a := <нач_зн> To <кон_зн> Do <оператор> ; Параметр – целый тип (обычно, Integer); В цикле можно использовать операторные скобки; Параметр цикла увеличивается на единицу 40 ЦИКЛ WHILE («ПОКА») Цикл While сначала проверяет условие, и только если оно истинно выполняет тело цикла. While {условие} do {оператор}; В теле кода, написанном ниже цикл не выполниться ни разу: x:=1; While x>1 do x:=x-1; Можно получить бесконечный цикл. Например: x:=1 While x>0 do х:=х+1; 41 ЦИКЛ WHILE («ПОКА») Программа, вывода на экран суммы чисел от a до b. While not keypressed do begin Delay(2000); End; Цикл работает, пока изменяющаяся переменная f не станет больше значения b 42 УПРАЖНЕНИЕ 43 1. Космонавты решили на луне садить берёзы, причем каждый год увеличивать число берёз в два раза, в первый год посадили 3 берёзы. Выведите на экран через, сколько лет число берёз превысит 10 000. 2. Напишите программу, которая определяет максимальное из введенных чисел с клавиатуры (ввод чисел заканчивается числом 0). Ниже представлен рекомендуемый вид экрана: Введите числа. Для завершения ввода введите 0. 89 15 0 Максимальное число 89. Используемый материал: Оператор цикла While: While <условие> do <оператор> ; Цикл While сначала проверяет условие, и только если оно истинно выполняет основное тело цикла. ЦИКЛ REPEAT («ДО ТЕХ ПОР») 44 Цикл Repeat сначала выполняет тело цикла, а лишь затем проверяет условие Repeat {тело_цикла} Until {условие}; Нет необходимости в цикле Repeat использовать составной оператор, т.к. данная конструкция предусматривает выполнение не одного, а нескольких операторов, заключенных между словами Repeat и Until. ЦИКЛ REPEAT («ДО ТЕХ ПОР») Программа, вывода на экран суммы чисел от a до b. Цикл работает, пока изменяющаяся переменная f не станет больше значения b 45 СРАВНЕНИЕ ЦИКЛОВ For While Repeat 46 Выбор модели цикла, зависит лишь от удобства его использования в конкретной ситуации. Мы практически всегда можем вместо одно-го вида цикла воспользоваться другим УПРАЖНЕНИЕ Вычислите значение функции y x 3 x 2 16 x 43 для x изменяющегося в диапазоне от -4 до 4 включительно с шагом 0,5. Используемый материал: Оператор цикла Repeat: Repeat <тело_цикла> Until <условие> Цикл Repeat сначала выполняет тело цикла, а лишь затем проверяет условие 47 ПРЕРЫВАНИЕ ЦИКЛОВ 48 Для гибкого управления циклическими операторами используются процедуры: Break - выход из цикла; Continue - завершение очередного прохода цикла; Примеры: Найти минимальное число i, для которого сумма чисел от 1 до i больше 100. Как только s (сумма чисел от 1 до i) становиться больше 100 срабатывает оператор break и происходит выход из цикла. s:=0; for I:= 1 to 100 do begin if s>100 then break; s:= s + i; end; Writeln (‘минимальное число i, такое, что (1+2+..+i)>100 равно ’,i); С клавиатуры вводятся 10 чисел и в цикле считается сумма только положительных. Если число отрицательное, то выполняется оператор continue, который начинает следующий проход цикла. s:=0; for I:= 1 to 10 do begin Readln (k); if k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс> ] A := 7; МАССИВЫ Массив объявляется в разделе Var: {Имя} : Array [ {нач_зн} .. {кон_зн} ] of {тип} ; Примеры объявления массивов: Var A: Array of String; B: Array of Real; С: Array of Integer; Примеры заполнения массивов значениями: A:=‘Вася’; A:=‘Петя’; A:=‘Маша’; A:=‘Олеся’; Write (A); For f:=1 to 10 do C[f] := f*2; For f:=1 to 10 do WriteLn (C[f]); 51 УПРАЖНЕНИЕ 52 Напишите программу, которая запрашивает у пользователя 7 целых чисел и заносит их в массив. В массиве находится максимальный элемент и отображается на экране. Например: Введите 1 число: 4 Введите 2 число: 8 Введите 3 число: 9 Введите 4 число: 2 Введите 5 число: 4 Введите 6 число: 5 Введите 7 число: 0 Максимальное число: 9 Используемый материал: Объявления массива: <Имя> : Array [<нач_зн> … <кон_зн> ] of <тип> ; Доступ к массиву: <Имя массива> [ <Индекс> ] ГЕНЕРАТОР СЛУЧАЙНЫХ ЧИСЕЛ (ГСЧ) Для генерации в программе случайных чисел, используют следующие операторы: Randomize – инициализация ГСЧ. Объявляется только в самом начале программы; Random – генерирует случайное число от 0 до 1 (вещественный тип); Random (N) – генерирует случайное число от 0 до N-1 (целый тип); 53 МНОГОМЕРНЫЕ МАССИВЫ 54 Список интервалов для каждой размерности массива {Имя} : Array [ {нач_зн} .. {кон_зн} , {нач_зн} .. {кон_зн} , {и т.д.} ] of {тип} ; Пример объявления двухмерного массива (матрицы, таблицы) на 4 строки и 6 столбцов: Var A: Array of Integer; Пример заполнения массива: For i:=1 to 4 do For j:=1 to 6 do A := i+j; Ai , j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 УПРАЖНЕНИЕ Напишите программу, которая заполняет двухмерный массив случайными числами от -10 до 20 и выводит суммы элементов расположенных по диагонали таблицы. Используемый материал: Инициализация ГСЧ: Randomize Случайное число от 0 до N-1: Random (N) 55 РАБОТА С ФАЙЛАМИ РАБОТА С ФАЙЛАМИ 57 Файл: Начало файла Указатель)a@$ku⌂|"Hd9v*9(L*M=БYGRMxduВ █ 8e*ВOtCDrTVzHGJ1aBD>@Б\(r8sE} █ :wcJvAmRa"v/.Wai;$`SWI=y2]suB █ ?Hq>vF(LmBcV^Adz4P4.6b]o{QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF(LmBcAdz4wcP]o{QkВ █ 8c8df]e"v,su>+),VAEFБjFV,W$Q- █ y0G1GjN$-eБ|sqZ0`QnВ%\БD%y █ █ █ - признак конца строки █ - признак конца файла Переменная Создание, чтение, запись, закрытие. РАБОТА С ФАЙЛАМИ Последовательность действий, при работе с файлами: 1. Объявление файловой переменной (ФП); 2. Ассоциация ФП с файлом; 3. Открытие файла для чтения/записи; 4. Операции с файлом; 5. Закрытие файла (так же разрывается связь между файлом и ФП); 1. Объявление ФП <Имя> : File of <тип> ; <Имя> : Text; Var f: Text; h: File of Integer; 2. Ассоциация ФП с файлом Assign (<ФП>, <имя файла>); Assign (f, ‘c:\my\Data.ghm’) 58 РАБОТА С ФАЙЛАМИ 3. Открытие файла для чтения/записи Reset (<ФП>); - открывает файл для чтения Rewrite (<ФП>); - открывает файл для записи 4. Операции с файлом Read (<ФП>, <П1> , <П2> , …); - считывает в переменные <П1>, <П2> и т.д. по одному элементу с позиции указателя. Write (<ФП> , <П1> , <П2> , …); - записывает в файл значения переменных <П1>, <П2> и т.д. по одному элементу с позиции указателя. EoLn (<ФП>); - возвращает True, если достигнут конец строки. EoF (<ФП>); - возвращает True, если достигнут конец файла. 5. Закрытие файла Close (<ФП>); 59 РАБОТА С ФАЙЛАМИ Упростите программу, если известно, что матрица размером 5x5 (используйте цикл For) 60 УПРАЖНЕНИЕ 61 Напишите программу «ДОМ-3». В первом файле содержаться имена участников в именительном падеже. Во втором, те же самые имена, но в винительном. В третьем – список выражения чувств или какое-то действие (любит, не любит, целует, хочет укусить, обожает, уважает, ненавидит, хочет видеть, обнимает). Программа должна случайно брать информацию из этих файлов и создавать новый по следующему принципу: <имя в им. пад> <чувство/действие> <имя в вин. пад> Ольга любит Сергей Олег хочет видеть Романа Катя уважает Настю И т.д. Используемый материал: Название операторов: Assign, Rewrite, Reset, Write, Read, Close. ГРАФИКА ГРАФИКА Для работы с графикой в Pascal необходимы два файла – модуль graph.tpu и драйвер графического адаптера egavga.bgi. Первый находится в каталоге \UNITS, а второй – в \BGI. ! Драйвер egavga.bgi. Необходим при работе exe файла! Чтобы рисовать, надо: 1. подключить модуль GRAPH (в разделе Uses); 2. инициализировать графику (InitGraph); 3. что-нибудь нарисовать; 4. закрыть графический режим (CloseGraph) 63 ГРАФИКА Инициализация графического режима Рисование линии. Перо переходит из точки (0,0) в точку (639, 479). PROGRAM Primer_1; Uses Graph, crt; Var Gd,Gm: Integer; BEGIN Gd:=0; InitGraph (Gd,Gm,‘d:\BP\bgi"); Line (0,0,639,479); ReadKey; CloseGraph; END. 639 пикс. Система координат 479 пикс. 64 Закрытие графического режима УПРАЖНЕНИЕ 65 1. Изобразить в центре экрана прямоугольный треугольник 2. Изобразить в центре экрана прямоугольник с сторонами в двое меньшими, чем соответствующие стороны экрана Используемый материал: Графический модуль: Graph Инициализация графики: InitGraph Закрытие графического режима: CloseGraph; ГРАФИКА + ЦВЕТ SetColor(Color: word); Устанавливает цвет пера GetColor: word; Возвращает цвет пера SetBkColor(color: word); Устанавливает цвет фона. GetBkColor: word; Возвращает цвет фона. Цвета Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White 66 – чёрный – синий – зелёный – циановый – красный – сиреневый – коричневый – светло-серый – тёмно-серый – голубой – светло-зелёный – светло-циановый – розовый – светло-сиреневый – жёлтый – белый ГРАФИЧЕСКИЕ ПРИМИТИВЫ Line (x, y); Чертит линию от текущей координаты пера до координат (x,y). MoveTo (x, y); Устанавливает перо в координаты (x,y). PutPixel (x, y, Color); Рисует точку с координатами (x,y) цветом Color. GetPixel (x, y): word; Возвращает цвет точки с координатами (x,y). Rectangle (x1, y1, x2, y2); Строит контур прямоугольника. Circle (x, y, r); Рисует окружность с центром в (x,y) и радиусом r. SetLineStyle (Ln, 0, T) Изменяет параметры контуров. Ln - стиль линии (0..3): 67 x1, y1 T - толщина линии: 1 = нормальная; 3 = толстая. FillEllipse (x, y, Xr, Yr); Рисует закрашенный эллипс с центром в (x,y) и радиусами Xr и Yr. SetFillStyle (Type, Color); Устанавливает тип (0..11) и цвет штриховки замкнутых фигур ClearDevice; Очищает графический экран закрашивая его в текущий цвет фона x2, y2 ГРАФИЧЕСКИЕ ПРИМИТИВЫ 68 УПРАЖНЕНИЕ 69 1. Напишите программу, рисующее на экране монитора домик; 2. Напишите программу, рисующая на экране монитора звёздное небо со звёздами случайного радиуса (от 1 до 5 пикс.) и случайным расположением. Цвет тоже случайный (белый, светло-серый, тёмносерый); Используемый материал: SetColor (Color: word); - Устанавливает цвет рисования SetBkColor (color: word); - Устанавливает текущий цвет фона. Line (x, y); - Чертит линию от текущей координаты пера до координат (x,y). MoveTo (x, y); - Устанавливает перо в координаты (x,y). PutPixel (x, y, Color); - Рисует точку с координатами (x,y) цветом Color. Rectangle (x1, y1, x2, y2); - Строит контур прямоугольника из линий текущего цвета. Circle (x, y, r); - Рисует окружность с центром в (x,y) и радиусом r. FillEllipse (x, y, Xr, Yr); - Рисует закрашенный эллипс с центром в (x,y) и радиусами Xr и Yr. ГРАФИКА + АНИМАЦИЯ Пауза в мСек. 70 ПОДПРОГРАММЫ ПОДПРОГРАММЫ Подпрограммы позволяют выделять повторяющуюся часть кода в отдельные фрагменты и вставлять из в нужные места программы. Функция, в отличие от процедуры возвращает результат вызова. Процедуры Функции Подпрограммы: пишутся между ключевыми словами Begin End; идентифицируются по именам, которые пишутся по правилам задания идентификаторов; могут иметь входные и выходные параметры; полностью повторяют структуру основной программы. 72 Program My; Подпрограмма 1 [Код подпрог-мы 1] Подпрограмма 2 [Код подпрог-мы 2] Begin Подпрограмма 2 Подпрограмма 1 Пример системных подпрограмм: Write(“Ок”); ClrScr; Length (S); Random; // // // // процедура с одним параметром процедура без параметров функция с одним параметров функция без параметров Подпрограмма 2 End. ПОДПРОГРАММЫ (ППР) Вложенность подпрограмм Программа Подпрограмма 1 Подпрограмма 3 Подпрограмма 4 Подпрограмма 2 73 Область доступности переменных Переменные, описанные в некоторой ППР, известны в пределах её тела, ВКЛЮЧАЯ и все вложенные ППР (переменная описанная в ППР1 будет доступна и в ППР3,4). Имена переменных, описанных в ППР, могут совпадать с именами переменных из других ППР (в каждой из ППР может быть объявлена одинаковая переменная). Имя переменной, описанное в ППР, экранирует одноимённые переменные из ППР, объемлющих данный (если в ППР1 и ППР3 объявлены одинаковые переменные, то в каждой ППР эти переменные будут уникальны). Переменные программы называются глобальные, А переменные подпрограмм – локальные. ПРОЦЕДУРЫ БЕЗ ПАРАМЕТРОВ Синтаксис записи: Procedure {имя процедуры}; {Раздел переменных, констант, типов, меток, модулей} Begin {Тело процедуры}; End; Пример использования процедуры без параметров: 74 ПРОЦЕДУРЫ БЕЗ ПАРАМЕТРОВ Пример экранирования одноимённых переменных: Program My_program; Uses Crt; Var A:String; // Описание процедуры Procedure My_Procedure; Var A:String; Begin A:= "Подпрограмма"; Writeln(A); End; Begin A:= "Тело"; Writeln(A); My_Procedure; Writeln(A); End. // Вызов процедуры 75 ПРОЦЕДУРЫ С ПАРАМЕТРАМИ 76 Для того, чтобы подпрограммы были более универсальными, применяются специальные механизмы обмена данными между программой и её подпрограммами. Системные процедуры с параметрами: SetColor (Red); { Процедура с Rectangle (0, 0, 639, 479); { Процедура с InitGraph (Gd,Gm,‘d:\BP\bgi"); { Процедура с { параметрами одним параметром } несколькими параметрами } несколькими разнотипными } } Синтаксис записи процедуры с параметрами Procedure {Имя} ({Область входных переменных} Var {Область выходных переменных (для каждой переменной свой Var)}); Структура областей: Переменная_1, Переменная_2, … : Тип; ........................ Переменная_N-1, Переменная_N, … : Тип; Любая из областей может отсутствовать ПРОЦЕДУРЫ С ПАРАМЕТРАМИ Использование входных параметров Процедура рисования окаймляющего экран прямоугольника, заданного цвета Без параметров С параметрами Procedure Cir; Begin SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Procedure Cir (i, b:Integer); Begin SetColor (i); SetBkColor (b); Rectangle (0, 0, 639, 479); End; Вызов процедуры в программе: Вызов процедуры в программе: i:=6; b:=12; Cir; Cir(6, 12); 77 ПРОЦЕДУРЫ С ПАРАМЕТРАМИ Использование выходных параметров Процедура преобразования угла из градусной меры в радианную. PROGRAM EX_26_3; VAR x,a: real; PROCEDURE Rad(alfa: real; var betta: real); {выходная переменная} BEGIN Betta:= pi*alfa/180; END; BEGIN Write("Введите угол в градусах: "); Readln(x); Rad(x, a); {Вызов процедуры} Writeln("Ему равен угол в радианах = ",a:6:4); END. 78 УПРАЖНЕНИЕ 79 1. Напишите процедуру, рисующую треугольник, в следующем формате: Triangle (x1,y1, x2,y2, x3,y3, Color) 2. Напишите процедуру вычисления площади прямоугольника в следующем формате: SRect (a, b, S) где, S – выходной параметр процедуры. Используемый материал: Procedure {Имя} ({Область входных переменных} Var {Область выходных переменных}); Структура областей: Переменная_1, Переменная_2, … : Тип; ........................ Переменная_N-1, Переменная_N, … : Тип; ФУНКЦИИ 80 Синтаксис записи функции Function ({Область входных переменных} Var {Область выходных переменных}): {Тип} ; Оформление процедуры Оформление функции Procedure S(a,b:real; var s:real); Begin s:= a+b; End; Function Sum (a,b: real): real; Begin Sum:= a+b; End; Вызов процедуры Вызов функции S(10, 20, A); Write (A); A:= S(10, 20); WriteLN (A); WriteLN (S(20, 30)); Оформлять некоторую подпрограмму как функцию целесообразно только в том случае, если ожидается некоторый результат её работы. Если подпрограмма ориентирована только на выполнение некоторой последовательности действий (вывод на экран, рисование и т.д.), лучше оформить её как процедуру. УПРАЖНЕНИЕ Напишите функцию вычисления площади прямоугольника в следующем формате: SRect (a, b) Используемый материал: Function {Имя} ({Область входных переменных} Var {Область выходных переменных}): {Тип} ; Структура областей: Переменная_1, Переменная_2, … : Тип; ........................ Переменная_N-1, Переменная_N, … : Тип; 81 МОДУЛИ МОДУЛИ 83 Модуль (UNIT) - самостоятельная программная единица, ресурсы (процедуры и функции) которой могут быть использованы другими программами. Program My1; Uses Модуль1, Модуль2 ; __________________________ __________________________ __________________________ __________________ МОДУЛЬ 1 Набор ресурсов 1 … Program My2; Uses Модуль1, Модуль2 ; __________________________ __________________________ __________________________ __________________ МОДУЛЬ N Набор ресурсов N Модули подключаются к программе через раздел USES МОДУЛИ. СТРУКТУРА 84 Модуль состоит из следующих частей: 1. Заголовок модуля. 2. Интерфейсная часть. (описания видимых объектов) 3. Реализационная часть. (описания скрытых объектов) 4. Инициализационная часть (не обязательна). Unit {Имя модуля}; Interface { Раздел глобальных переменных, констант, типов} { модулей } { Список заголовков процедур и функций } Implementation { Раздел локальных переменных, констант, типов} { Реализация процедур и функций } Begin {Часть инициализации } End. ! Имя заголовка модуля должно совпадать с именем файла модуля! МОДУЛИ Пример модуля: Unit My_Unit; Interface Var ms: Array of Real; { Глобальный массив } Function Cub(x:integer):Integer; { Функция Cub = x^3 } Function ext4(x:integer):Integer; { Функция ext4 = x^4 } Implementation Function Cub(x:integer):Integer; { Реализация функции Cub } Begin Cub:= x*x*x; End; Function Ext4(x:integer):Integer; { Реализация функции ext4 } Begin Ext4:= x*x*x*x; End; End. 85 УПРАЖНЕНИЕ 86 Напишите модуль одной функцией и одной процедурой: { Функция вычисление X1=1/x } X1(a:real):real; { Процедура печати на экране слова S, в позиции X, Y WriteXY(S:String; X,Y:Iteger); Используемый материал (структура модуля): Unit {Имя модуля}; Interface { Раздел глобальных переменных, констант, типов} { модулей } { Список заголовков процедур и функций } Implementation { Раздел локальных переменных, констант, типов} { Реализация процедур и функций } Begin {Часть инициализации } End. }

Чтобы пользоваться предварительным просмотром презентаций создайте себе аккаунт (учетную запись) Google и войдите в него: https://accounts.google.com


Подписи к слайдам:

Язык программирования Pascal Основные понятия А. Жидков

Язык программирования Язык программирования (ЯП) – это формализованная система для описания алгоритмов, которая определяет Алфавит (набор символов) Лексику (набор лексических элементов) Синтаксис (правила написания операторов) Семантику (правила исполнения операторов)

АЛФАВИТ ЯЗЫКА Алфавит – упорядоченный набор символов. Цифры 0 1 2 …. 9 Латинские буквы a b c …. z A B C …Z Знаки операций + * / - >

Лексические элементы языка ключевые слова (begin, end, if, for…) константы (2, "ABC", #5) идентификаторы (a, b1) спецсимволы (:= += * + /) комментарии (3 вида { .. } (* .. *) // ..)

Ключевые слова языка (Внимание!!! Нельзя использовать как идентификаторы) and array as begin break case class const constructor continue destructor div do downto else end exit external externalsync file finalization for forward function if in inherited initialization is mod not of or private procedure program property protected public record repeat set shl shr sizeof string then to type unit until uses var while with xor

Структура Pascal- программы program First; const Pi = 3.14; var r: real ; S,C: real; begin write ("Введите радиус окружности: "); readln (r); S:= Pi*r*r; C:= 2*Pi*r; writeln ("Длина окружности равна C= ",С); writeln ("Площадь круга равна S= ",S); end . Имя программы Заголовок Секция описаний Операторы (блок) Начало блока операторов Конец блока операторов Внимание!!! Операторы языка отделяются знаком; Внимание!!! Программа заканчивается end.

Составной оператор (блок) Составной оператор – это группа операторов заключенных в “ операторные скобки ” Begin … . е nd . Пустой оператор содержит только; , никаких действий не выполняет.

Идентификаторы (имена) Идентификатор – это имя объекта (модуля, функции, переменной). Синтаксис: Идентификатор - последовательность латинских букв и цифр, начинающаяся с буквы. Заглавные и строчные транслятор не различает. Ограничение длины идентификатора (63 символа). Рекомендуется!!! Использовать осмысленные идентификаторы и общепринятые сокращения – это улучшает читаемость программ. Примеры: srednee; V; F; m; massa; m1; skorost

Константы Константа – это величина, которая не может измениться. Числовые константы - это числа 3 3.5 1.75е2 $4ff Строковые константы – это символы в апострофах ‘ Привет кадет ’ . ВНИМАНИЕ!!! Именованные константы надо описать в секции описаний const . Синтаксис: const = ; Например: const Pi = 3.14; Count = 10; Name = "Mike";

Переменные и их описание Переменная - это группа ячеек памяти, имеющая имя, тип и значение. Имя переменной – идентификатор. Тип переменной - определяет: множество принимаемых ею значений количество связанных с ней ячеек памяти. Значение переменной – содержимое группы ячеек памяти отведенных под нее. ВНИМАНИЕ!!! Переменная должна быть описана в секции описаний VAR .

Секция описаний переменых VAR - группа имен переменных, разделенных запятыми. ВНИМАНИЕ!!! Знаки: и; обязательны. Пример: var a,b,c: integer ; d: real ; e,f: integer ; s,s1: string ; ch: char ; Синтаксис: VAR: ;

Типы переменных boolean (логический) real (вещественный) complex (комплексный) string (строковый) тип " массив ” тип " запись ” тип " указатель ” Процедурный Файловый Классовый Типы: integer (целый) byte (байтовый) char (символьный) Перечислимый Диапазонный называются порядковыми. Только эти типы могут быть индексами массивов, переключателями оператора case и параметром цикла for .

Необходимые для нас типы тип длина комментарий string (текстовый) 256 байт Последовательность символов, в нулевом байте хранится длина строки. integer (целый) 4 байта Целые от - 2 147 483 648 до 2 147 483 647 real (вещественный) 8 байт C одержат 15-16 десятичных цифр и по модулю

Типы данных Какие из приведенных чисел являются константами целого типа? 1 2.1E3 4 0.7E-1 7 22.78 2 128 5 +0.9 8 -2100 3 -350 6 +71 9 1E5 2 3 6 8

Типы данных Какие из приведенных чисел являются вещественными константами в экспоненциальной форме? 1 11 4 -0,5E-2 7 2.7E05 2 1.3 5 1050 8 -1.38 3 -1.2E5 6 37.75 9 +3.21E-03 3 7 9

Идентификаторы Какие из приведенных выражений могут служить именами переменных? 1 5B 4 SIN 7 1AB 2 E6 5 G 8 +LN 3 Л1 6 10 9 L5 2 5 9

Стандартные функции Pascal Имя и параметры Действие Abs(x) модуль |x| Sqr(x) квадрат x 2 Sqrt(x) квадратный корень из Sin(x) синус Sin x Cos(x) косинус Cos x Ln(x) натуральный логарифм Ln(x) Exp(x) (где e =2.718281...) Arctan(x) арктангенс arctg x Power(x,y) x в степени y x y Int(x) целая часть х Frac(x) дробную часть х Random случайное число в диапазоне }