kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Курсы ПК и ППК Видеоуроки Олимпиады Вебинары для учителей

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

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

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

Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.

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

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

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

Языки программирования Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер) Языки высокого уровня  – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера для обучения : Бейсик, ЛОГО, Паскаль профессиональные : Си, Фортран , Паскаль, Делфи для задач искусственного интеллекта : Пролог, ЛИСП для Интернета : JavaScript, Java, Perl, PHP, ASP для обучения : Бейсик, ЛОГО, Паскаль профессиональные : Си, Фортран , Паскаль, Делфи для задач искусственного интеллекта : Пролог, ЛИСП для Интернета : JavaScript, Java, Perl, PHP, ASP

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

  • Машинно-ориентированные (низкого уровня) - каждая команда соответствует одной команде процессора (ассемблер)
  • Языки высокого уровня – приближены к естественному (английскому) языку, легче воспринимаются человеком, не зависят от конкретного компьютера
  • для обучения : Бейсик, ЛОГО, Паскаль профессиональные : Си, Фортран , Паскаль, Делфи для задач искусственного интеллекта : Пролог, ЛИСП для Интернета : JavaScript, Java, Perl, PHP, ASP
  • для обучения : Бейсик, ЛОГО, Паскаль
  • профессиональные : Си, Фортран , Паскаль, Делфи
  • для задач искусственного интеллекта : Пролог, ЛИСП
  • для Интернета : JavaScript, Java, Perl, PHP, ASP

Структура программы program   ; uses crt; const  … ; { константы } var  … ; { переменные } begin clrscr ; … { основная  программа } readkey ; end . { процедуры и функции  } комментарии в фигурных скобках не обрабатываются

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

program ;

uses crt;

const … ; { константы }

var … ; { переменные }

begin

clrscr ;

… { основная программа }

readkey ;

end .

{ процедуры и функции }

комментарии в фигурных скобках не обрабатываются

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

Основные понятия

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

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

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

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

Алфавит языка 1. Символы, используемые в идентификаторах латинские буквы ( A-Z)   цифры   знак подчеркивания _ латинские буквы ( A-Z)   цифры   знак подчеркивания _ заглавные и строчные буквы не различаются имя не может начинаться с цифры 2. Разделители любой управляющий символ (коды от 0 до 31) пробел Комментарий – { }; * * любой управляющий символ (коды от 0 до 31) пробел Комментарий – { }; * * 3. Специальные символы знаки пунктуации [ ],( ), { }, * *, :=, .. , #, $ знаки операций: буквенные ( not, div, or, mod ) и небуквенные (+, =, *, /, , , =) зарезервированные слова (begin, end) знаки пунктуации [ ],( ), { }, * *, :=, .. , #, $ знаки операций: буквенные ( not, div, or, mod ) и небуквенные (+, =, *, /, , , =) зарезервированные слова (begin, end) 4. Неиспользуемые символы (буквы рус. алфавита, %, &)

Алфавит языка

1. Символы, используемые в идентификаторах

  • латинские буквы ( A-Z) цифры знак подчеркивания _
  • латинские буквы ( A-Z)
  • цифры
  • знак подчеркивания _

заглавные и строчные буквы не различаются

имя не может начинаться с цифры

2. Разделители

  • любой управляющий символ (коды от 0 до 31) пробел Комментарий – { }; * *
  • любой управляющий символ (коды от 0 до 31)
  • пробел
  • Комментарий – { }; * *

3. Специальные символы

  • знаки пунктуации [ ],( ), { }, * *, :=, .. , #, $ знаки операций: буквенные ( not, div, or, mod ) и небуквенные (+, =, *, /, , , =) зарезервированные слова (begin, end)
  • знаки пунктуации [ ],( ), { }, * *, :=, .. , #, $
  • знаки операций: буквенные ( not, div, or, mod ) и небуквенные (+, =, *, /, , , =)
  • зарезервированные слова (begin, end)

4. Неиспользуемые символы (буквы рус. алфавита, %, &)

Константы const     i2 = 45; { целое число }  pi = 3.14; { вещественное число }  qq = ' Вася ';  { строка символов }  L = True;  { логическая величина } целая и дробная часть отделяются точкой можно использовать русские буквы! может принимать два значения:  True ( истина,

Константы

const

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

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

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

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

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

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

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

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

Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Типы переменных: integer    { целая } real , longint    { вещественная } char    { один символ } string    { символьная строка } boolean    { логическая } integer    { целая } real , longint    { вещественная } char    { один символ } string    { символьная строка } boolean    { логическая } Объявление переменных ( выделение памяти ) : var  a, b: integer;   Q: real;   s1, s2: string;   Q: real;   s1, s2: string;

Переменные

Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.

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

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

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

var a, b: integer;

Q: real;

s1, s2: string;

  • Q: real; s1, s2: string;

Типы данных Массивы Целые Порядковые Простые Вещественные Логические Вещественные Структурированные Символьный Массивы Указатели Перечисляемый Записи Строки Тип-диапазон Множества Процедурные Файлы Объекты 8

Типы данных

Массивы

Целые

Порядковые

Простые

Вещественные

Логические

Вещественные

Структурированные

Символьный

Массивы

Указатели

Перечисляемый

Записи

Строки

Тип-диапазон

Множества

Процедурные

Файлы

Объекты

8

Изменение значений переменной Оператор – это команда языка программирования высокого уровня. Оператор присваивания служит для изменения значения переменной. Пример:  program qq;  var a, b: integer;  begin   a := 5;   b := a + 2;   a := (a + 2)*(b – 3);  end. a 5 ? 5 b 5+2 7 ? a 5 7*4 28 8

Изменение значений переменной

Оператор – это команда языка программирования высокого уровня.

Оператор присваивания служит для изменения значения переменной.

Пример:

program qq;

var a, b: integer;

begin

a := 5;

b := a + 2;

a := (a + 2)*(b – 3);

end.

a

5

?

5

b

5+2

7

?

a

5

7*4

28

8

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

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

Общая структура:

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

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

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

+ - * / div mod

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

умножение

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

деление

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

8

Какие операторы неправильные?  program qq;  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. имя переменной должно быть слева от знака := целая и дробная часть отделяются точкой нельзя записывать вещественное значение в целую переменную

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

program qq;

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.

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

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

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

Арифметические функции Функции Abs Назначение Arctan (X) абсолютное знание аргумента Тип результата совпадает с типом X арктангенс аргумента Cos (X) веществ. косинус аргумента Exp (X) веществ. е Frac (X) Ln (X) дробная часть числа веществ. веществ. натуральный логарифм Pi (X) веществ. значение величины Pi= 3,14159265358979932385 Sin (x) веществ. синус аргумента S qr (X) S qr t (X) веществ. квадрат аргумента совпадает с типом X квадратный корень аргумента веществ.

Арифметические функции

Функции

Abs

Назначение

Arctan (X)

абсолютное знание аргумента

Тип результата

совпадает с типом X

арктангенс аргумента

Cos (X)

веществ.

косинус аргумента

Exp (X)

веществ.

е

Frac (X)

Ln (X)

дробная часть числа

веществ.

веществ.

натуральный логарифм

Pi (X)

веществ.

значение величины Pi= 3,14159265358979932385

Sin (x)

веществ.

синус аргумента

S qr (X)

S qr t (X)

веществ.

квадрат аргумента

совпадает с типом X

квадратный корень аргумента

веществ.

Порядок выполнения операций вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо  2 3 5 4 1  7 8 6 9 z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;  2 3 5 4 1  7 8 6 9 z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;  2 6 3 4 7 5 1 12 8 11 10 9 x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));  2 6 3 4 7 5 1 12 8 11 10 9 x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

Порядок выполнения операций

  • вычисление выражений в скобках умножение, деление, div , mod слева направо сложение и вычитание слева направо
  • вычисление выражений в скобках
  • умножение, деление, div , mod слева направо
  • сложение и вычитание слева направо

2 3 5 4 1 7 8 6 9

z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;

  • 2 3 5 4 1 7 8 6 9 z := ( 5*a*c+3*(c-d))/a*(b-c)/ b;

2 6 3 4 7 5 1 12 8 11 10 9

x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

  • 2 6 3 4 7 5 1 12 8 11 10 9 x:= ( a*a+5*c*c-d*(a+b))/((c+d)*(d-2*a));

Оператор ввода read ( a );  { ввод значения переменной a} read ( a, b );  { ввод значений переменных a и b} Как вводить два числа?  через пробел:  25 30  через Enter :  25  30 a 25 b 30 a 25 b 30 14

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

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

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

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

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

25 30

через Enter :

25

30

a

25

b

30

a

25

b

30

14

Оператор вывода write ( a );   { вывод значения переменной a} write ln ( a );  { вывод значения переменной a и переход на новую строчку } writeln ( ' Привет! ' );  { вывод текста } writeln ( ' Ответ: ', c );   { вывод текста и значения переменной c} writeln ( a, '+', b, '=', c ); 14

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

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

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

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

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

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

14

', i, ' writeln ( '', i:5, ' x := 12.345678; writeln ( '', x, ' writeln ( '', x:10, ' writeln ( '', x:7:2, ' end. всего символов всего символов в дробной части 14" width="640"

Форматы вывода

program qq;

var i: integer;

x: real;

begin

i := 15;

writeln ( '', i, '

writeln ( '', i:5, '

x := 12.345678;

writeln ( '', x, '

writeln ( '', x:10, '

writeln ( '', x:7:2, '

end.

всего символов

всего символов

в дробной части

14

Задания для самостоятельной работы Составить программу, переводящую введенные с клавиатуры мили в километры(1 миля =1,852 км) 2. Составить программу, запрашивающую 2 числа и выдающую их  сумму . 14

Задания для самостоятельной работы

  • Составить программу, переводящую введенные с клавиатуры мили в километры(1 миля =1,852 км)

2. Составить программу, запрашивающую 2 числа и выдающую их сумму .

14

Задания для самостоятельной работы 3. Вычислить периметр и площадь прямоугольника, по введенным с клавиатуры сторонам. 4. Составить программу, запрашивающую имя и приветствующую по  этому  имени .  14

Задания для самостоятельной работы

3. Вычислить периметр и площадь прямоугольника, по введенным с клавиатуры сторонам.

4. Составить программу, запрашивающую имя и приветствующую по этому имени .

14

Операторы  языка Паскаль

Операторы языка Паскаль

Операторы языка Паскаль Простые операторы (оператор присваивания, оператор безусловного перехода Goto , пустой оператор) Структурированные операторы (составной оператор, условный оператор IF , условный оператор CASE , оператор цикла REPEAT , оператор цикла WHILE , оператор цикла FOR ) Простые операторы (оператор присваивания, оператор безусловного перехода Goto , пустой оператор) Структурированные операторы (составной оператор, условный оператор IF , условный оператор CASE , оператор цикла REPEAT , оператор цикла WHILE , оператор цикла FOR )

Операторы языка Паскаль

  • Простые операторы (оператор присваивания, оператор безусловного перехода Goto , пустой оператор) Структурированные операторы (составной оператор, условный оператор IF , условный оператор CASE , оператор цикла REPEAT , оператор цикла WHILE , оператор цикла FOR )
  • Простые операторы (оператор присваивания, оператор безусловного перехода Goto , пустой оператор)
  • Структурированные операторы (составной оператор, условный оператор IF , условный оператор CASE , оператор цикла REPEAT , оператор цикла WHILE , оператор цикла FOR )

Условный оператор IF  if    then  begin  { что делать, если условие верно }   end  else begin  { что делать, если условие неверно }   end ; Особенности: перед else  НЕ ставится точка с запятой вторая часть ( else  …) может отсутствовать (неполная форма) если в блоке один оператор, можно убрать слова begin  и end перед else  НЕ ставится точка с запятой вторая часть ( else  …) может отсутствовать (неполная форма) если в блоке один оператор, можно убрать слова begin  и end

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

if then begin

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

end

else begin

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

end ;

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

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

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

Разветвляющиеся алгоритмы

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

Задача. Ввести два целых числа и вывести на экран наибольшее из них.

Блок-схема начало блок b? max:= a; max:= b; вывод max конец 23" width="640"

Блок-схема

начало

блок "решение"

ввод a,b

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

да

нет

a b?

max:= a;

max:= b;

вывод max

конец

23

b then begin end else begin end ; writeln (' Наибольшее число ', max); readkey; end. полная форма условного оператора max := a ; max := b ; 23" width="640"

Программа

uses crt;

var a, b, max: integer;

begin

clrscr;

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

read ( a, b );

if a b then begin

end

else begin

end ;

writeln (' Наибольшее число ', max);

readkey;

end.

полная форма условного оператора

max := a ;

max := b ;

23

= = равно не равно 23" width="640"

Сложные условия

Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций :

  • not – НЕ (отрицание, инверсия) and – И (логическое умножение, конъюнкция, одновременное выполнение условий) or – ИЛИ (логическое сложение, дизъюнкция, выполнение хотя бы одного из условий) xor – исключающее ИЛИ (выполнение только одного из двух условий, но не обоих)
  • not – НЕ (отрицание, инверсия)
  • and – И (логическое умножение, конъюнкция, одновременное выполнение условий)
  • or – ИЛИ (логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)
  • xor – исключающее ИЛИ (выполнение только одного из двух условий, но не обоих)

Простые условия (отношения)

= =

равно

не равно

23

=, =, not and or, xor , =, =, Особенность – каждое из простых условий обязательно заключать в скобки. Пример 4 1 6 2 5 3 if not (a b) or (c d) and (b a) then begin ... end 4 1 6 2 5 3 if not (a b) or (c d) and (b a) then begin ... end 23" width="640"

Сложные условия

Порядок выполнения

  • выражения в скобках
  • выражения в скобках
  • not and or, xor , =, =,
  • not
  • and
  • or, xor
  • , =, =,

Особенность – каждое из простых условий обязательно заключать в скобки.

Пример

4 1 6 2 5 3

if not (a b) or (c d) and (b a)

then begin

...

end

  • 4 1 6 2 5 3 if not (a b) or (c d) and (b a) then begin ... end

23

Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит" ) .

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

23

= 25? да нет x ' не подходит ' ' подходит ' ' не подходит ' конец 28" width="640"

Вариант 1. Алгоритм

начало

ввод x

да

нет

x = 25?

да

нет

x

' не подходит '

' подходит '

' не подходит '

конец

28

= 25 then if x writeln (' Подходит ') else writeln (' Не подходит ') else writeln (' Не подходит '); readkey; end. 28" width="640"

Вариант 1. Программа

uses crt;

var x: integer;

begin

clrscr;

writeln(' Введите возраст ');

read ( x );

if x = 25 then

if x

writeln (' Подходит ')

else writeln (' Не подходит ')

else

writeln (' Не подходит ');

readkey;

end.

28

= 25 и x нет да ' не подходит ' ' подходит ' конец 30" width="640"

Вариант 2. Алгоритм

начало

ввод x

x = 25 и

x

нет

да

' не подходит '

' подходит '

конец

30

= 25) and (x writeln (' Подходит ') else writeln (' Не подходит ') readkey; end. сложное условие 30" width="640"

Вариант 2 . Программа

uses crt;

var x: integer;

begin

clrscr;

writeln(' Введите возраст ');

read ( x );

if (x = 25) and (x

writeln (' Подходит ')

else writeln (' Не подходит ')

readkey;

end.

сложное условие

30

Задания для самостоятельной работы 1 . Составить программу, запрашивающую возраст и отвечающую  «Привет  друг » если возраст введен меньше 16 лет и отвечающую «Не знаю тебя» в противном случае. 2 . Составить программу - отзывающуюся только на имя «Саша» 30

Задания для самостоятельной работы

1 . Составить программу, запрашивающую возраст и отвечающую «Привет друг » если возраст введен меньше 16 лет и отвечающую «Не знаю тебя» в противном случае.

2 . Составить программу - отзывающуюся только на имя «Саша»

30

Задания для самостоятельной работы 3.  Составьте программу, увеличивающую введенное число на 1 , если оно больше или равно100 и уменьшающее число на 1 в противном случае. 4 . Составить программу, вычисляющую функцию: 30

Задания для самостоятельной работы

3. Составьте программу, увеличивающую введенное число на 1 , если оно больше или равно100 и уменьшающее число на 1 в противном случае.

4 . Составить программу, вычисляющую функцию:

30

Операторы циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием) цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием) 30

Операторы циклы

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

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

30

Оператор цикла FOR Увеличение переменной на 1:  for    :=    to   do  begin  { тело цикла }   end; Уменьшение переменной на 1:  for    :=       downto   do  begin  { тело цикла }   end; 30

Оператор цикла FOR

Увеличение переменной на 1:

for := to

do begin

{ тело цикла }

end;

Уменьшение переменной на 1:

for := downto

do begin

{ тело цикла }

end;

30

Оператор цикла FOR Задача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от a  до b ). Особенность: одинаковые действия выполняются 8 раз. блок

Оператор цикла FOR

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

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

блок "цикл"

начало

i := 1,8

конец

i2 := i * i;

i3 := i2 * i;

тело цикла

i, i2, i3

36

Программа uses crt ; var i, i2, i3 : integer; begin clrscr;  for i := 1 to 8 do begin  i2 := i*i ;  i3 := i2*i ;  writeln (i:4, i2:4, i3:4) ;  end; readkey; end. начальное значение переменная цикла конечное значение 36

Программа

uses crt ;

var i, i2, i3 : integer;

begin

clrscr;

for i := 1 to 8 do begin

i2 := i*i ;

i3 := i2*i ;

writeln (i:4, i2:4, i3:4) ;

end;

readkey;

end.

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

переменная цикла

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

36

Цикл FOR с уменьшением переменной Задача. Вывести на экран квадраты и кубы целых чисел от 8 до 1 (в обратном порядке). Особенность: переменная цикла должна уменьшаться. Решение:  ...  for i:=8 1 do begin  i2 := i*i;  i3 := i2*i;  writeln(i:4, i2:4, i3:4);  end;  ... down to 36

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

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

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

Решение:

...

for i:=8 1 do begin

i2 := i*i;

i3 := i2*i;

writeln(i:4, i2:4, i3:4);

end;

...

down to

36

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

Оператор цикла WHILE

while do begin

{ тело цикла }

end;

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

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

while (a

{ тело цикла }

end;

while a

a := a + 1;

36

b d o a := a – b; a := 4; b := 6; while a d := a + b; 36" width="640"

Цикл с условием

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

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

a := 4; b := 6;

while a b d o

a := a – b;

a := 4; b := 6;

while a

d := a + b;

36

b d o a := a + 1; 1 раз b = -2 a := 4; b := 6; while a зацикливание a := 4; b := 6; while a

Сколько раз выполняется цикл ?

2 раза

a = 6

a := 4; b := 6;

while a

1 раз

a = 10

a := 4; b := 6;

while a

0 раз

a = 4

a := 4; b := 6;

while a b d o a := a + 1;

1 раз

b = -2

a := 4; b := 6;

while a

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

a := 4; b := 6;

while a

Цикл WHILE Задача: Ввести целое число ( Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик. Проблема: Неизвестно, сколько шагов надо сделать. Решение: Надо остановиться, когда n  =  0 , т.е. надо делать

Цикл WHILE

Задача: Ввести целое число (

Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.

Проблема: Неизвестно, сколько шагов надо сделать.

Решение: Надо остановиться, когда n = 0 , т.е. надо делать "пока n 0 ".

n

count

123

0

12

1

1

2

0

3

Алгоритм начало ввод n обнулить счетчик цифр count  := 0 ; выполнять

Алгоритм

начало

ввод n

обнулить счетчик цифр

count := 0 ;

выполнять " пока n 0 "

n 0?

нет

да

count

count := count + 1;

n := n div 10;

конец

Программа uses crt ; var n, count: integer; Begin   clrscr;  writeln(' Введите целое число ');  read(n);  count := 0;  while n  0 do begin  count := count + 1;  n := n div 10;  end;  writeln(' В числе ' , n, ' нашли ',  count, ' цифр ' ); readkey; end. , n1: integer; выполнять

Программа

uses crt ;

var n, count: integer;

Begin

clrscr;

writeln(' Введите целое число ');

read(n);

count := 0;

while n 0 do begin

count := count + 1;

n := n div 10;

end;

writeln(' В числе ' , n, ' нашли ',

count, ' цифр ' );

readkey;

end.

, n1: integer;

выполнять " пока n 0 "

n1 := n;

n1,

?

Какая ошибка ?

44

= b d o begin { тело цикла } i := i - 1; end; for i:=a downto b d o begin { тело цикла } end; Замена цикла for на while возможна всегда . Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла . 44" width="640"

Замена for на while и наоборот

i := 1;

while i

{ тело цикла }

i := i + 1;

end;

for i:=1 to 10 d o begin

{ тело цикла }

end;

i := a;

while i = b d o begin

{ тело цикла }

i := i - 1;

end;

for i:=a downto b d o

begin

{ тело цикла }

end;

Замена цикла for на while возможна всегда .

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла .

44

Задания для самостоятельной работы 1.  Найти сумму чисел от 1 до 10 2.  Напечатать таблицу умножения на введенное с клавиатуры число, например ввели 7 7х1=7 7х2=14 …… . 7х9=63 44

Задания для самостоятельной работы

1. Найти сумму чисел от 1 до 10

2. Напечатать таблицу умножения на

введенное с клавиатуры число,

например ввели 7

7х1=7

7х2=14

…… .

7х9=63

44

проверку условия цикла надо делать в конце цикла (цикл с постусловием ). 44" width="640"

Цикл с постусловием ( цикл REPEAT)

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

Особенность: Один раз тело цикла надо сделать в любом случае = проверку условия цикла надо делать в конце цикла (цикл с постусловием ).

44

0? нет условие ВЫХОДА да основной алгоритм блок "типовой процесс" конец 44" width="640"

Цикл с постусловием: алгоритм

начало

ввод n

тело цикла

n 0?

нет

условие ВЫХОДА

да

основной алгоритм

блок "типовой процесс"

конец

44

0; ... { основной алгоритм } end. условие ВЫХОДА until n 0 ; Особенности: тело цикла всегда выполняется хотя бы один раз после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла тело цикла всегда выполняется хотя бы один раз после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла 44" width="640"

Программа

program qq;

var n: integer;

begin

repeat

writeln(' Введите положительное число ');

read(n);

until n 0;

... { основной алгоритм }

end.

условие ВЫХОДА

until n 0 ;

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

  • тело цикла всегда выполняется хотя бы один раз после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла
  • тело цикла всегда выполняется хотя бы один раз
  • после слова until ("до тех пор, пока не…") ставится условие ВЫХОДА из цикла

44

Задания для самостоятельной работы 1. Составить программу , запрашивающую числа до тех пор, пока не ввели числа большего 50 . 2. Составить программу , печатающую  слово « Привет » и  запрашивающую  « Повторить  Д / Н ?». Программа  завершает  выполнение  в  случае  нажатия  Н ,  если  Д,  то  повторяет . 44

Задания для самостоятельной работы

1. Составить программу , запрашивающую числа до тех пор, пока не ввели числа большего 50 .

2. Составить программу , печатающую слово « Привет » и запрашивающую

« Повторить Д / Н ?». Программа завершает выполнение в случае нажатия Н ,

если Д, то повторяет .

44

Оператор выбора CASE Особенности: после case  может быть имя переменной или арифметическое выражение целого типа ( integer ) после case  может быть имя переменной или арифметическое выражение целого типа ( integer )  или символьного типа ( char )  или символьного типа ( char ) case i+3  of  1: begin a := b; end;  2: begin a := c; end; end; var c: char; ... case c  of  ' а ': writeln(' Антилопа ');  ' б ': writeln(' Барсук ');  else writeln(' Не знаю '); end; 44

Оператор выбора CASE

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

  • после case может быть имя переменной или арифметическое выражение целого типа ( integer )
  • после case может быть имя переменной или арифметическое выражение целого типа ( integer )

или символьного типа ( char )

  • или символьного типа ( char )

case i+3 of

1: begin a := b; end;

2: begin a := c; end;

end;

var c: char;

...

case c of

' а ': writeln(' Антилопа ');

' б ': writeln(' Барсук ');

else writeln(' Не знаю ');

end;

44

Оператор выбора Особенности: если нужно выполнить только один оператор, слова begin  и end  можно не писать нельзя ставить два одинаковых значения если нужно выполнить только один оператор, слова begin  и end  можно не писать нельзя ставить два одинаковых значения case i+3  of  1: a := b;  2 : a := c; end; case i+3  of  1: a := b;  1: a := c; end; 52

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

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

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

case i+3 of

1: a := b;

2 : a := c;

end;

case i+3 of

1: a := b;

1: a := c;

end;

52

Оператор выбора Особенности: значения, при которых выполняются одинаковые действия, можно группировать значения, при которых выполняются одинаковые действия, можно группировать case i  of  1: a := b;  2,4 ,6 : a := c;  10..15: a := d;  20,21,25..30: a := e;  else writeln(' Ошибка ');  end; перечисление диапазон смесь 52

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

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

  • значения, при которых выполняются одинаковые действия, можно группировать
  • значения, при которых выполняются одинаковые действия, можно группировать

case i of

1: a := b;

2,4 ,6 : a := c;

10..15: a := d;

20,21,25..30: a := e;

else writeln(' Ошибка ');

end;

перечисление

диапазон

смесь

52

Оператор выбора CASE Задача: Ввести номер месяца и вывести количество  дней в этом месяце. Решение: Число дней по месяцам: 28 дней – 2 (февраль) 30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь) 31 день – 1 (январь), 3 (март), 5 (май), 7 (июль),  8 (август), 10 (октябрь), 12 (декабрь) 28 дней – 2 (февраль) 30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь) 31 день – 1 (январь), 3 (март), 5 (май), 7 (июль),  8 (август), 10 (октябрь), 12 (декабрь) Особенность: Выбор не из двух, а из нескольких  вариантов в зависимости от номера месяца. 52

Оператор выбора CASE

Задача: Ввести номер месяца и вывести количество дней в этом месяце.

Решение: Число дней по месяцам:

28 дней – 2 (февраль)

30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь)

31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)

  • 28 дней – 2 (февраль) 30 дней – 4 (апрель), 6 (июнь), 9 (сентябрь), 11 (ноябрь) 31 день – 1 (январь), 3 (март), 5 (май), 7 (июль), 8 (август), 10 (октябрь), 12 (декабрь)

Особенность: Выбор не из двух, а из нескольких вариантов в зависимости от номера месяца.

52

Алгоритм начало ввод M да M  =  1? оператор выбора D  :=  31; нет да M  =  2? D  :=  28; нет да M  =  12? D  :=  31; нет  вывод  D ошибка ни один вариант не подошел конец 52

Алгоритм

начало

ввод M

да

M = 1?

оператор выбора

D := 31;

нет

да

M = 2?

D := 28;

нет

да

M = 12?

D := 31;

нет

вывод D

ошибка

ни один вариант не подошел

конец

52

0 then writeln(' В этом месяце ', D, ' дней. ') else writeln(' Неверный номер месяца '); readkey; end. ни один вариант не подошел 52" width="640"

Программа

uses crt ;

var M, D: integer;

begin

clrscr;

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

read ( M );

case M of

2: begin D := 28; end;

4,6,9,11: begin D := 30; end;

1,3,5,7,8,10,12: D := 31;

else D := -1;

end;

if D 0 then

writeln(' В этом месяце ', D, ' дней. ')

else

writeln(' Неверный номер месяца ');

readkey;

end.

ни один вариант не подошел

52

Задания для самостоятельной работы 1. По введенному номеру от 1 до 7 определить день недели- например 1 – Понедельник и т.д. 2.  Ставить программу , запрашивающую возраст и при введении до 15 включительно - говорит «Привет», от 16 до 20 говорит «друг», и говорит «Пока» в противном случае. 52

Задания для самостоятельной работы

1. По введенному номеру от 1 до 7 определить день недели- например 1 – Понедельник и т.д.

2. Ставить программу , запрашивающую возраст и при введении до 15 включительно - говорит «Привет», от 16 до 20 говорит «друг», и говорит «Пока» в противном случае.

52

Процедуры Процедура – это вспомогательный алгоритм, который предназначен для выполнения какой-то законченной последовательности действий. Для исполнения подпрограммы процедуры необходимо сначала описать ее, а потом к ней обращаться Описание процедуры включает заголовок (имя) и тело процедуры Заголовок состоит из зарезервированного слова procedure , имени процедуры и заключенных в скобки списка формальных параметров с указанием типа Для исполнения подпрограммы процедуры необходимо сначала описать ее, а потом к ней обращаться Описание процедуры включает заголовок (имя) и тело процедуры Заголовок состоит из зарезервированного слова procedure , имени процедуры и заключенных в скобки списка формальных параметров с указанием типа 52

Процедуры

Процедура – это вспомогательный алгоритм, который предназначен для выполнения какой-то законченной последовательности действий.

  • Для исполнения подпрограммы процедуры необходимо сначала описать ее, а потом к ней обращаться Описание процедуры включает заголовок (имя) и тело процедуры Заголовок состоит из зарезервированного слова procedure , имени процедуры и заключенных в скобки списка формальных параметров с указанием типа
  • Для исполнения подпрограммы процедуры необходимо сначала описать ее, а потом к ней обращаться
  • Описание процедуры включает заголовок (имя) и тело процедуры
  • Заголовок состоит из зарезервированного слова procedure , имени процедуры и заключенных в скобки списка формальных параметров с указанием типа

52

Процедуры Особенности: в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа program qq;  procedure A (x, y: integer);  var a, b: real;  begin  a := (x + y)/6;  ...  end; begin  ... end. локальные переменные 52

Процедуры

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

  • в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа
  • в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют к ним доступа

program qq;

procedure A (x, y: integer);

var a, b: real;

begin

a := (x + y)/6;

...

end;

begin

...

end.

локальные переменные

52

y then z:=x else z:=y end ; begin clrscr ; write (‘введите 4 числа:’); readln (a,b,c,d); bid (a,b,p); bid (c,d,q); bid (p,q,m); writeln (‘наибольшее из 4-х чисел’; m); readkey ; end . 52" width="640"

Процедуры

Задача: найти наибольшее из 4-х чисел, используя подпрограмму нахождения наибольшего из 2-х чисел

program max;

uses crt;

var a,b,c,d,p,q,m: integer;

procedure bid(x,y: real; var z: real);

begin

if xy then z:=x else z:=y

end ;

begin

clrscr ;

write (‘введите 4 числа:’);

readln (a,b,c,d);

bid (a,b,p);

bid (c,d,q);

bid (p,q,m);

writeln (‘наибольшее из 4-х чисел’; m);

readkey ;

end .

52

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

Функции

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

Примеры :

  • вычисление , , расчет значений по сложным формулам ответ на вопрос (простое число или нет?)
  • вычисление , ,
  • расчет значений по сложным формулам
  • ответ на вопрос (простое число или нет?)

Отличия

  • в заголовке в теле функции: хотя бы раз имени функции должно быть присвоено значение
  • в заголовке
  • в теле функции: хотя бы раз имени функции должно быть присвоено значение

52

Функции Особенности: заголовок начинается словом function формальные параметры описываются так же, как и для процедур в конце заголовка через двоеточие указывается тип результата функции располагаются ВЫШЕ основной программы заголовок начинается словом function формальные параметры описываются так же, как и для процедур в конце заголовка через двоеточие указывается тип результата функции располагаются ВЫШЕ основной программы  Max (a, b: integer): integer; function function qq( a, b: integer; x: real ): real; a, b: integer; x: real function Max (a, b: integer): ; integer 62

Функции

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

  • заголовок начинается словом function формальные параметры описываются так же, как и для процедур в конце заголовка через двоеточие указывается тип результата функции располагаются ВЫШЕ основной программы
  • заголовок начинается словом function
  • формальные параметры описываются так же, как и для процедур
  • в конце заголовка через двоеточие указывается тип результата
  • функции располагаются ВЫШЕ основной программы

Max (a, b: integer): integer;

function

function qq( a, b: integer; x: real ): real;

a, b: integer; x: real

function Max (a, b: integer): ;

integer

62

Функции Особенности: можно объявлять и использовать локальные переменные значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции ; объявлять ее НЕ НАДО : можно объявлять и использовать локальные переменные значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции ; объявлять ее НЕ НАДО : function qq (a, b: integer): float; begin  ... end; var x, y: float; function Max (a, b: integer): integer; begin  ... end; Max := a; 63

Функции

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

  • можно объявлять и использовать локальные переменные значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции ; объявлять ее НЕ НАДО :
  • можно объявлять и использовать локальные переменные
  • значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции ; объявлять ее НЕ НАДО :

function qq (a, b: integer): float;

begin

...

end;

var x, y: float;

function Max (a, b: integer): integer;

begin

...

end;

Max := a;

63

y then bid :=x else bid :=y end ; begin clrscr ; write (‘введите 4 числа:’); readln(a,b,c,d ); p:= bid(a,b); q:= bid(c,d); m:= bid(p,q); writeln (‘наибольшее из 4-х чисел’;m); readkey ; end . 63" width="640"

Функции

Задача: найти наибольшее из 4-х чисел, используя подпрограмму нахождения наибольшего из 2-х чисел

program max;

uses crt;

var a,b,c,d,p,q,m: integer;

function bid(x,y: real ) : real;

begin

if xy then bid :=x else bid :=y

end ;

begin

clrscr ;

write (‘введите 4 числа:’);

readln(a,b,c,d );

p:= bid(a,b);

q:= bid(c,d);

m:= bid(p,q);

writeln (‘наибольшее из 4-х чисел’;m);

readkey ;

end .

63

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

Массивы

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

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

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

Примеры:

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

63

Объявление массивов определить имя массива определить тип массива определить число элементов выделить место в памяти определить имя массива определить тип массива определить число элементов выделить место в памяти Массив целых чисел: Размер через константу: тип элементов конечный индекс начальный индекс имя var A  : array[ 1 .. 5 ] of integer ; var A: array[1.. ] of integer ; const N=5; N 66

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

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

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

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

тип

элементов

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

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

имя

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

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

const N=5;

N

66

Массивы Объявление: Ввод с клавиатуры: Поэлементные операции: const N = 5;  var a: array[1..N] of integer;  i: integer; for i:=1 to N do begin  write('a[', i, ']=');  read ( a[i] ); end; for i:=1 to N do a[i]:=a[i]*2; 66

Массивы

Объявление:

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

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

const N = 5;

var a: array[1..N] of integer;

i: integer;

for i:=1 to N do begin

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

read ( a[i] );

end;

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

66

Массивы Задача: Заполнить массив из 5 элементов с клавиатуры и вывести на экран сумму 2 и 5 элементов uses crt;  var i,sum: integer; a: array[1..5] of integer;  begin  clrscr;  for i:=1 to 5 do  begin  write(‘ Введите ’, i, ‘ элемент ’); read (a[i]);  end;  sum:=a[2]+a[5];  write(‘ Сумма 2 и 5 равна ’, sum);  readkey; end. 66

Массивы

Задача: Заполнить массив из 5 элементов с клавиатуры и вывести на экран сумму 2 и 5 элементов

uses crt;

var i,sum: integer; a: array[1..5] of integer;

begin

clrscr;

for i:=1 to 5 do

begin

write(‘ Введите ’, i, ‘ элемент ’); read (a[i]);

end;

sum:=a[2]+a[5];

write(‘ Сумма 2 и 5 равна ’, sum);

readkey;

end.

66

Задания для самостоятельной работы 1. Заполнить массив из 5 элементов и вывести на печать сначала все, ниже третий. 2.  Заполнить массив из 5 элементов с клавиатуры и найти их среднее арифметическое. 66

Задания для самостоятельной работы

1. Заполнить массив из 5 элементов и вывести на печать сначала все, ниже третий.

2. Заполнить массив из 5 элементов с клавиатуры и найти их среднее арифметическое.

66

Строковые величины Строка – это последовательность символов кодовой таблице. Длина строки (количества символов) может лежать в диапазоне 0..255 Для определения длины данных строкового типа используется идентификатор string , за которым следует максимальное значение длины строки данного типа. В программе значения переменных и констант типа char (символьный) заключается в апострофы. Например, st := ’ река ’ var s: string[20]; 66

Строковые величины

Строка – это последовательность символов кодовой таблице.

Длина строки (количества символов) может лежать в диапазоне 0..255

Для определения длины данных строкового типа используется идентификатор string , за которым следует максимальное значение длины строки данного типа.

В программе значения переменных и констант типа char (символьный) заключается в апострофы.

Например, st := ’ река ’

var s: string[20];

66

Символьные строки Задача: ввести строку с клавиатуры и заменить все буквы

Символьные строки

Задача: ввести строку с клавиатуры и заменить все буквы "а" на буквы "б".

program qq;

var s: string;

i: integer;

begin

writeln(' Введите строку ');

readln(s);

for i:=1 to Length(s) do

if s[i] = ' а ' then s[i] := ' б ';

writeln(s);

end.

ввод строки

длина строки

readln(s);

Length(s)

writeln(s);

вывод строки

66

Операции со строками var s, s1, s2: string; Запись нового значения: s := ' Вася '; Объединение: добавить одну строку в конец другой. s1 := ' Привет '; s2 := ' Вася '; s := s1 + ', ' + s2 + '!'; ' Привет, Вася! ' Подстрока: выделить часть строки в другую строку. с 3-его символа s := ' 123456789 '; s 1 := Copy ( s, 3, 6 );  s2 := Copy ( s1, 2, 3 ); 6 штук '345678' '456' 66

Операции со строками

var s, s1, s2: string;

Запись нового значения:

s := ' Вася ';

Объединение: добавить одну строку в конец другой.

s1 := ' Привет ';

s2 := ' Вася ';

s := s1 + ', ' + s2 + '!';

' Привет, Вася! '

Подстрока: выделить часть строки в другую строку.

с 3-его символа

s := ' 123456789 ';

s 1 := Copy ( s, 3, 6 );

s2 := Copy ( s1, 2, 3 );

6 штук

'345678'

'456'

66

Удаление и вставка Удаление части строки: 6 штук s := ' 123456789 '; Delete ( s, 3, 6 );  ' 123456789 ' ' 129 ' строка меняется! с 3-его символа Вставка в строку: начиная с 3-его символа s := ' 123456789 '; Insert ( 'ABC', s, 3 ); Insert ( 'Q', s, 5 );  ' 12 ABC 3456789 ' куда вставляем что вставляем ' 12 AB Q C 3456789 ' 73

Удаление и вставка

Удаление части строки:

6 штук

s := ' 123456789 ';

Delete ( s, 3, 6 );

' 123456789 '

' 129 '

строка

меняется!

с 3-его символа

Вставка в строку:

начиная с 3-его символа

s := ' 123456789 ';

Insert ( 'ABC', s, 3 );

Insert ( 'Q', s, 5 );

' 12 ABC 3456789 '

куда вставляем

что вставляем

' 12 AB Q C 3456789 '

73

Задания для самостоятельной работы 1. Ввели слово, определить его длину и вывести 3 символ, а так же вывести вырезку с 2 символа , длинной 5 символов. 2.  Из слова «вирус» путем замены букв получите слово «фокус». 73

Задания для самостоятельной работы

1. Ввели слово, определить его длину и вывести 3 символ, а так же вывести вырезку с 2 символа , длинной 5 символов.

2. Из слова «вирус» путем замены букв получите слово «фокус».

73

Файлы Файл – это область на диске, имеющая имя. Файлы Текстовые Двоичные Папки  (каталоги) только текст без оформления,  не содержат управляющих символов (с кодами могут содержать любые символы кодовой таблицы *.doc, *.exe, *.bmp, *.jpg, *.wav, *.mp3, *.avi, *.mpg ACSII (1 байт на символ) UNICODE ( 2 байта на символ) *.txt, *.log, *.htm, *.html 73

Файлы

Файл – это область на диске, имеющая имя.

Файлы

Текстовые

Двоичные

Папки (каталоги)

только текст без оформления, не содержат управляющих символов (с кодами

могут содержать любые символы кодовой таблицы

*.doc, *.exe,

*.bmp, *.jpg,

*.wav, *.mp3,

*.avi, *.mpg

ACSII (1 байт на символ)

UNICODE ( 2 байта на символ)

*.txt, *.log,

*.htm, *.html

73

Принцип сэндвича Переменная типа

Принцип сэндвича

Переменная типа "текстовый файл": var f: text;

I этап . открыть файл :

  • связать переменную f с файлом открыть файл (сделать его активным, приготовить к работе)
  • связать переменную f с файлом
  • открыть файл (сделать его активным, приготовить к работе)

assign(f, 'qq.dat');

reset(f); { для чтения }

rewrite(f); { для записи }

append(f); { дописывать данные }

II этап : работа с файлом

read ( f, n ); { ввести значение n }

write ( f, n ); { записать значение n }

writeln ( f, n ); {c переходом на нов.строку }

III этап : закрыть файл

close(f);

76

Работа с файлами Особенности: имя файла упоминается только в команде assign , обращение к файлу идет через файловую переменную файл, который открывается на чтение, должен существовать если файл, который открывается на запись, существует, старое содержимое уничтожается данные записываются в файл в текстовом виде при завершении программы все файлы закрываются автоматически после закрытия файла переменную f  можно использовать еще раз для работы с другим файлом имя файла упоминается только в команде assign , обращение к файлу идет через файловую переменную файл, который открывается на чтение, должен существовать если файл, который открывается на запись, существует, старое содержимое уничтожается данные записываются в файл в текстовом виде при завершении программы все файлы закрываются автоматически после закрытия файла переменную f  можно использовать еще раз для работы с другим файлом 76

Работа с файлами

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

  • имя файла упоминается только в команде assign , обращение к файлу идет через файловую переменную файл, который открывается на чтение, должен существовать если файл, который открывается на запись, существует, старое содержимое уничтожается данные записываются в файл в текстовом виде при завершении программы все файлы закрываются автоматически после закрытия файла переменную f можно использовать еще раз для работы с другим файлом
  • имя файла упоминается только в команде assign , обращение к файлу идет через файловую переменную
  • файл, который открывается на чтение, должен существовать
  • если файл, который открывается на запись, существует, старое содержимое уничтожается
  • данные записываются в файл в текстовом виде
  • при завершении программы все файлы закрываются автоматически
  • после закрытия файла переменную f можно использовать еще раз для работы с другим файлом

76

Пример Задача: в файле input.txt  записаны числа ( в столбик ) , сколько их – неизвестно. Записать в файл output.txt  их сумму. Алгоритм: Открыть файл  input.txt для чтения . Открыть файл  input.txt для чтения . S  :=  0; S  :=  0; Если чисел не осталось, перейти к шагу 7. Прочитать очередное число в переменную x . Если чисел не осталось, перейти к шагу 7. Прочитать очередное число в переменную x . S  :=  S  +  x; S  :=  S  +  x; Перейти к шагу 3. Закрыть файл input.txt . Открыть файл  output.txt для записи . Записать в файл значение S . Закрыть файл output.txt . Перейти к шагу 3. Закрыть файл input.txt . Открыть файл  output.txt для записи . Записать в файл значение S . Закрыть файл output.txt . цикл с условием

Пример

Задача: в файле input.txt записаны числа ( в столбик ) , сколько их – неизвестно. Записать в файл output.txt их сумму.

Алгоритм:

  • Открыть файл input.txt для чтения .
  • Открыть файл input.txt для чтения .
  • S := 0;
  • S := 0;
  • Если чисел не осталось, перейти к шагу 7. Прочитать очередное число в переменную x .
  • Если чисел не осталось, перейти к шагу 7.
  • Прочитать очередное число в переменную x .
  • S := S + x;
  • S := S + x;
  • Перейти к шагу 3. Закрыть файл input.txt . Открыть файл output.txt для записи . Записать в файл значение S . Закрыть файл output.txt .
  • Перейти к шагу 3.
  • Закрыть файл input.txt .
  • Открыть файл output.txt для записи .
  • Записать в файл значение S .
  • Закрыть файл output.txt .

цикл с условием "пока есть данные"

76

Программа p rogram qq; var s, x: integer;  f: text; b egin  assign(f, 'input. tx t');  reset(f);  s := 0;  while not eof(f) do begin  readln(f, x);  s := s + x;  end;  close(f);  assign(f, 'output.t xt ');  rewrite(f);  writeln(f, 'Сумма чисел ', s);  close(f); end. f: text; логическая функция, возвращает True , если достигнут конец файла eof(f) запись результата в файл output.txt 76

Программа

p rogram qq;

var s, x: integer;

f: text;

b egin

assign(f, 'input. tx t');

reset(f);

s := 0;

while not eof(f) do begin

readln(f, x);

s := s + x;

end;

close(f);

assign(f, 'output.t xt ');

rewrite(f);

writeln(f, 'Сумма чисел ', s);

close(f);

end.

f: text;

логическая функция, возвращает True , если достигнут конец файла

eof(f)

запись результата в файл output.txt

76

Обработка текстовых данных Задача: в файле input.txt  записаны строки, в которых есть слово-паразит

Обработка текстовых данных

Задача: в файле input.txt записаны строки, в которых есть слово-паразит " короче ". Очистить текст от мусора и записать в файл output.txt .

Файл input.txt :

Мама, короче, мыла, короче, раму.

  • Мама, короче, мыла, короче, раму.

Декан, короче, пропил, короче, бутан.

А роза, короче, упала на лапу, короче, Азора.

Каждый, короче, охотник желает, короче, знать, где ...

  • Декан, короче, пропил, короче, бутан. А роза, короче, упала на лапу, короче, Азора. Каждый, короче, охотник желает, короче, знать, где ...

Результат - файл output.txt :

Мама мыла раму.

Декан пропил бутан.

А роза упала на лапу Азора.

Каждый охотник желает знать, где сидит фазан.

  • Мама мыла раму. Декан пропил бутан. А роза упала на лапу Азора. Каждый охотник желает знать, где сидит фазан.

76

Обработка текстовых данных пока не кончились данные Алгоритм:  Прочитать строку из файла ( readln ).  Удалить все сочетания

Обработка текстовых данных

пока не кончились данные

Алгоритм:

  • Прочитать строку из файла ( readln ). Удалить все сочетания " , короче, " ( Pos, Delete ) . Перейти к шагу 1.
  • Прочитать строку из файла ( readln ).
  • Удалить все сочетания " , короче, " ( Pos, Delete ) .
  • Перейти к шагу 1.

Обработка строки s :

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

надо одновременно держать открытыми два файла (один в режиме чтения, второй – в режиме записи).

  • надо одновременно держать открытыми два файла (один в режиме чтения, второй – в режиме записи).

искать ", короче,"

repeat

i := Pos(', короче ,', s);

if i 0 then Delete(s, i, 9);

until i = 0;

удалить 9 символов

76

Работа с файлами p rogram qq; var s: string;   i: integer;   fIn, fOut: text; b egin  assign(fIn, 'instr.txt');  reset(fIn);  assign(fOut, 'outstr.txt');  rewrite(fOut);  ... { обработать файл }  close(fIn);  close(fOut); end. файловые переменные fIn, fOut: text; открыть файл для чтения открыть файл  для записи 76

Работа с файлами

p rogram qq;

var s: string;

i: integer;

fIn, fOut: text;

b egin

assign(fIn, 'instr.txt');

reset(fIn);

assign(fOut, 'outstr.txt');

rewrite(fOut);

... { обработать файл }

close(fIn);

close(fOut);

end.

файловые переменные

fIn, fOut: text;

открыть файл для чтения

открыть файл для записи

76

Полный цикл обработки файла пока не достигнут конец файла  while not eof(fIn) do begin  readln(fIn, s);  writeln(fOut, s);  end; обработка строки  repeat  i := Pos(', короче,', s);  if i  0 then  Delete(s, i, 9);  until i = 0; запись

Полный цикл обработки файла

пока не достигнут конец файла

while not eof(fIn) do begin

readln(fIn, s);

writeln(fOut, s);

end;

обработка строки

repeat

i := Pos(', короче,', s);

if i 0 then

Delete(s, i, 9);

until i = 0;

запись "очищенной" строки

76

Задания для самостоятельной работы 1. Создать на диске С файл 1.txt с 5 числами, введенными с клавиатуры. 2. Дописать в существующий файл 1.txt данные, введенные с клавиатуры. 76

Задания для самостоятельной работы

1. Создать на диске С файл 1.txt с 5 числами, введенными с клавиатуры.

2. Дописать в существующий файл 1.txt данные, введенные с клавиатуры.

76


Получите в подарок сайт учителя

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

Категория: Презентации

Целевая аудитория: Прочее

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

Автор: Брыксина Ирина Викторовна

Дата: 13.06.2014

Номер свидетельства: 104164

Похожие файлы

object(ArrayObject)#855 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(66) "Основы программирования на Паскале "
    ["seo_title"] => string(37) "osnovy-proghrammirovaniia-na-paskalie"
    ["file_id"] => string(6) "232204"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(11) "presentacii"
    ["date"] => string(10) "1442767773"
  }
}
object(ArrayObject)#877 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(104) "Методическое пособие по программированию на языке Pascal ABC"
    ["seo_title"] => string(69) "mietodichieskoie-posobiie-po-proghrammirovaniiu-na-iazykie-pascal-abc"
    ["file_id"] => string(6) "250511"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(7) "prochee"
    ["date"] => string(10) "1447086463"
  }
}
object(ArrayObject)#855 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(198) "Лабораторная работа № 1 по языку программирования Турбо Паскаль ПЕРЕМЕННАЯ. ЧИСЛА. ИНСТРУКЦИЯ ПРИСВАИВАНИЯ"
    ["seo_title"] => string(80) "laboratornaia_rabota_1_po_iazyku_proghrammirovaniia_turbo_paskal_pieriemiennaia_"
    ["file_id"] => string(6) "414343"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1494480039"
  }
}
object(ArrayObject)#877 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(122) "Рабочая программа практикума "Программирование на языке "Паскаль" "
    ["seo_title"] => string(68) "rabochaia-proghramma-praktikuma-proghrammirovaniie-na-iazykie-paskal"
    ["file_id"] => string(6) "173975"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(12) "planirovanie"
    ["date"] => string(10) "1424073011"
  }
}
object(ArrayObject)#855 (1) {
  ["storage":"ArrayObject":private] => array(6) {
    ["title"] => string(140) "Разработка урока "Правила записи арифметических выражений на языке Паскаль""
    ["seo_title"] => string(80) "razrabotka-uroka-pravila-zapisi-arifmietichieskikh-vyrazhienii-na-iazykie-paskal"
    ["file_id"] => string(6) "277736"
    ["category_seo"] => string(11) "informatika"
    ["subcategory_seo"] => string(5) "uroki"
    ["date"] => string(10) "1452960264"
  }
}


Получите в подарок сайт учителя

Видеоуроки для учителей

Курсы для учителей

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства