Язык программирования Паскаль
Додохова К.А.
Программирование циклических алгоритмов
Программирование циклических алгоритмов
Типы данных. Простые типы данных.
Типы данных. Простые типы данных.
Алгоритм
Алгоритм
Язык программирования Паскаль
Язык программирования Паскаль
Программирование линейных алгоритмов
Программирование линейных алгоритмов
Программирование алгоритмов ветвления
Программирование алгоритмов ветвления
Алгоритм
АЛГОРИТМ – это описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
АЛГОРИТМ – это конечная последовательность команд исполнителю.
! Каждый алгоритм предназначен для определенного исполнителя.
Исполнитель – живое существо или автоматическое устройство, которое способно к восприятию и исполнению команд.
4
Свойства алгоритмов
- Дискретность;
- Детерминированность(однозначность);
- Конечность;
- Массовость;
- Результативность.
Типы алгоритмов
- Линейные алгоритмы
- Разветвляющиеся алгоритмы
- Циклические алгоритмы
Линейный алгоритм
Линейный алгоритм – описание действий, которые выполняются однократно в заданном порядке.
Алгоритм называется линейным, если исполнитель выполняет команды последовательно друг за другом (в порядке их записи).
Пример.
- Достать ключ из кармана.
- Вставить ключ в замочную скважину.
- Повернуть ключ два раза против часовой стрелки.
- Вынуть ключ.
Разветвляющийся алгоритм
Разветвляющийся алгоритм – это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий.
Пример:
Если завтра на улице будет пасмурная погода, то я возьму с собой зонтик, в противном случае зонтик оставлю дома.
Циклический алгоритм
Циклический алгоритм – это описание действий, которые должны повторяться указанное число раз или пока не выполнено заданное условие.
Пример:
- Покрасить доску;
- Если есть еще доска, переместиться к следующей доске и перейти к действию 1;
- Если доски закончились завершить работу.
Способы описания алгоритмов
- Словесный способ
- Графический способ
- Алгоритмический язык или язык программирования.
Графический способ
Графический способ описания алгоритма - это способ представления алгоритма с помощью общепринятых графических фигур, называемых блок - схемами , каждая из которых описывает один или несколько шагов алгоритма .
Начало
Конец
Ввод
Вывод
Действие
Условие
Счетчик
Графический способ
Идет дождь?
Да
Нет
Не берем зонт
Берем зонт
Начало
Подойти к переходу
Дождаться зеленого света
Перейти улицу
Конец
Язык программирования Паскаль
История создания языка
- Создан в 1971 году;
- Никлаус Вирт – швейцарский профессор;
- Назван в честь французского ученого Блеза Паскаля;
- В 1979 году утвержден в качестве стандартного языка программирования;
- С помощью этого языка можно составлять программы для решения различных задач, также можно составлять программы-приложения.
Алфавит языка
- символы, используемые в идентификаторах;
- разделители;
- специальные символы;
- неиспользуемые символы.
Идентификатор - это имя любого объекта языка. Состоит из латинских букв (a...z), цифр (0...9) и знака подчеркивания и не должен начинаться с цифры.
Разделители используются для отделения друг от друга идентификаторов, чисел и зарезервированных слов. К разделителям относятся: пробел и комментарий.
К специальным знакам относятся знаки пунктуации (. () [] .. : ;), знаки операций и зарезервированные слова (служебные слова). Знаки операций могут быть как символьные (+, -, *, / и т.д.), так и буквенными (mod, div, not).
Неиспользуемые символы - это коды ASCII. К ним относятся все русские буквы, а также символы %,&, ! и т.п
13
Структура программы на языке паскаль
program ;
begin
end.
uses
Const
Label
Type
Var
Программирование линейных алгоритмов
Базовые операторы
Оператор вывода
Оператор ввода
Оператор присваивания
Оператор вывода
Write( )
Writeln( )
Write – от англ «пиши»
Предназначен для вывода на экран текста или результата вычислений
Оператор вывода
команда
Write(‘текст‘)
Результат на экране
текст
Х=3
Write(X)
Write(‘текст1’);
Write(‘текст1’, ‘ ‘);
Write(‘текст2’);
Write(‘X=‘,X)
3
Write(‘текст2’);
X=3
текст1текст2
Или
Write(‘текст1’);
Write(‘ ‘, ‘текст2’);
текст1 текст2
Оператор вывода
Write ln ( )
Делает переход на следующую строку
команда
Write(‘текст1’);
Результат на экране
Write(‘текст1’);
Текст1
Write ln (‘текст2’);
Writeln;
Текст1
Текст2
Write(‘текст2’);
текст2
Оператор ввода
Read( )
Readln( )
Read- от англ «читай»
Предназначен для ввода данных с клавиатуры
Оператор ввода
Read(a,b,c)
Вводит значения для переменных a , b, c в одну строку.
Readln(a,b,c)
Вводит значения для переменных a, b, c «столбиком»
Оператор присваивания
Переменная := число/выражение
Правильная запись
A:=2;
Не правильная запись
A:=B
A+2:=2
A=B
A:=B+1
2:=A+2
Оператор присваивания
Команды
Результат
A:=2;
B:=a+2;
A=? B=?
b:=2;
A:=1;
A:=B;
A=? B=? C=?
B:=a;
A=? B=?
C:=a+B
A:=B
Программирование линейных алгоритмов
Program privet;
Begin
Write(‘Привет, это я!’);
End.
Вывести на экран приветствие:
Привет, это я!
Program privet;
Begin
Write(‘Привет,’);
Writeln(‘это я!’)
End.
Вывести на экран приветствие:
Привет,
это я!
Программирование линейных алгоритмов
P=(a+b)*2
Найти периметр прямоугольника
а
в
Начало
Program perimetr;
Var a,b,P:integer;
Begin
Write(‘введите стороны прямоугольника’);
Read(a,b);
P:=(a+b)*2;
Writeln(‘P=’,P);
End.
Ввод сторон прямоугольника a и b
P=(a+b)*2
Вывод рез-та P
Конец
Программирование алгоритмов ветвления
Операторы ветвления:
Условный оператор
Оператор выбора
Условный оператор
Полная форма:
If then else
Условие
НЕТ
ДА
Действие 2
Действие 1
Не полная форма:
If then
ДА
НЕТ
Условие
Действие
B then Max:=A else Max:=B; Writeln(Max); End. ab да нет Max=a Max=b Вывод Max конец " width="640"
Условный оператор
Задача. Написать программу для нахождения максимального значения из двух целых чисел
начало
Ввод чисел а и b
Program sravnenie;
Var A, B, Max: integer;
Begin
Write(‘введите два числа’);
Read (A, B);
If AB then Max:=A else Max:=B;
Writeln(Max);
End.
ab
да
нет
Max=a
Max=b
Вывод Max
конец
3 then writeln(A); End. да a3 нет Вывод а конец " width="640"
Условный оператор
Задача. Написать программу, которая выводит на экран число, если оно больше 3.
начало
Ввод числа а
Program chislo;
Var A: integer;
Begin
Write(‘введите число’);
Read (A);
If A3 then writeln(A);
End.
да
a3
нет
Вывод а
конец
=0 then If D0 then writeln(‘два вещ корня’) else writeln(‘один вещ корень’) else writeln(‘нет вещ корней’); Readln; End. начало Ввод коэффициентов Вычисление дискриминанта D:=B*B+4*A*C нет D=0 да D0 да нет Вывод: «нет вещ-х корней» Вывод: «два вещ. корня» Вывод: «один вещ. корень» конец " width="640"
Условный оператор
Задача. Составить программу, которая определяет количество корней квадратного уравнения по дискриминанту.
Решение :
Program Diskr;
Var A, B, C, D: real;
Begin
Write(‘введите коэффициенты A, B, C:’);
Readln(A, B, C);
D:=Sqr(B)-4*A*C;
If D=0 then
If D0 then writeln(‘два вещ корня’) else writeln(‘один вещ корень’)
else writeln(‘нет вещ корней’);
Readln;
End.
начало
Ввод коэффициентов
Вычисление дискриминанта
D:=B*B+4*A*C
нет
D=0
да
D0
да
нет
Вывод: «нет вещ-х корней»
Вывод: «два вещ. корня»
Вывод: «один вещ. корень»
конец
Оператор выбора
Case K of
A1: ;
A2: ;
…
An:
Else
End;
Где K – выражение-селектор (имеет только порядковый целый, логический, символьный тип);
A1, …,An – константы (того же типа, что и селектор);
Оператор выбора
Задача: Составить программу, которая преобразует введенные с клавиатуры целые числа из диапазона (1..4) в их словесное представление.
Program chislo;
Var N: integer;
Begin
Write(‘введите число:’);
Readln(N);
Case N of
1: writeln(‘один’);
2: writeln(‘два’);
3: writeln(‘три’);
4: writeln(‘четыре’)
Else writeln(‘введено другое число’)
End;
End.
Программирование циклических алгоритмов
Операторы цикла
Цикл с предусловием (цикл – пока)
Цикл с постусловием (цикл – до)
Цикл с параметром
Цикл с предусловием (цикл – пока)
Форма записи:
While do
Блок-схема:
условие
да
нет
Тело цикла
Цикл с предусловием (цикл – пока)
Задача. Вычислить сумму натурального ряда чисел от 1 до N.
Program primer;
Var a, s, n: integer;
Begin
Write(‘введите N’);
Readln(N); S:=0;
While a
begin
s:=s+a;
a:=a+1;
End;
Writeln(‘результат
суммирования равен’, s);
Readln;
end.
k do begin zz:=zz+1; n:=n+5; k:=k*2; end; Writeln(zz); end. " width="640"
Цикл с предусловием (цикл – пока)
Определить, что будет в переменной zz после выполнения следующей программы.
Program AA; var zz, n, k : integer; begin zz:=0; n:=2; k:=1; while nk do begin zz:=zz+1; n:=n+5; k:=k*2; end; Writeln(zz);
end.
Цикл с постусловием (цикл – до)
Форма записи: repeat until
Блок-схема:
Тело цикла
условие
нет
да
n; Writeln(‘результат суммирования равен’, s); Readln; end. начало Ввод N s:=s+a; a:=a+1 AN нет да Вывод s конец " width="640"
Цикл с постусловием (цикл – до)
Задача. Вычислить сумму натурального ряда чисел от 1 до N.
Program primer;
Var a, s, n: integer;
Begin
Write(‘введите N’);
Readln(N); s:=0;
repeat
s:=s+a;
a:=a+1;
until an;
Writeln(‘результат суммирования равен’, s);
Readln;
end.
Цикл с постусловием (цикл – до)
Определить, что будет в переменной xx после выполнения следующей программы.
Program AA; var xx, k : integer; begin xx:=0; k:=2; repeat xx:=xx+1; k:=k+1; until k=7; Writeln(xx);
end.
Цикл c параметром
Формы записи: 1) for i:=n to m do 2) for i:=m downto n do
Блок-схема
Счетчик:=N1…N2
Тело цикла
Цикл c параметром
Задача. Написать программу, которая выводит на экран кубы чисел от 1 до 10
Program kub;
Var a, c: integer;
Begin
For a:=1 to 10 do
begin
c:=a*a*a;
Writeln(‘kub chisla=’, c);
end;
end.
начало
Счетчик:=1..10
да
нет
С=a*a*a
конец
Цикл c параметром
Задача. Написать программу, которая выводит на экран квадраты чисел от 10 до 1.
начало
Program primer_4;
Var n, c: integer;
Begin
For n:=10 downto 1 do writeln (n*n);
end.
Счетчик:=N…1
да
нет
Вывод N*N;
конец
Цикл c параметром
Определить, какие числа будет выдавать на экран дисплея следующая программа.
program Pr; var k : integer; begin for k:=1 to 2 do writeln(k); end.
Цикл c параметром
Определить, что будет в переменной xx после выполнения следующей программы.
Program AA; var xx, i : integer; begin xx:=0; for i:=3 to 5 do xx:=xx+1; Writeln(xx);
end.
Типы данных
Типы данных
Простые типы
Составные типы
- Целые;
- Вещественные;
- Символьные;
- Логические.
Целые типы данных
Тип
Диапазон значений
Byte
ShortInt
Объем памяти
0 … 255
– 128 … 127
1 байт, без знака
Word
1 байт, со знаком
0 … 65535
Integer
– 32768 … 32767
2 байта, без знака
LongInt
2 байта, со знаком
– 2147483648 … 2147483647
4 байта, со знаком
Вещественные типы данных
Single
Действительные короткие
Real
4 байта
Действительные (основной тип)
Double
Действительные длинные
6 байтов
Extended
8 байтов
Действительные очень длинные
12 байтов
Символьные типы данных.
Char
1 символ
String
1 байт
Строка символов
от 1 до 255 байтов
Логические типы данных.
Boolean
Значение True или False
1 байт
Простые типы данных.
Формат вывода
Для того, чтобы данные не «слипались» при выводе их на экран и для десятичного представления действительных чисел, в командах Write и Writeln используется формат вывода.
Для целых чисел и символьных данных:
Переменная : общее число знаков
х:5
Для действительных чисел:
Переменная : общее число знаков : число знаков после точки
х:6:2
Задача. Составить программу, которая запрашивает у пользователя имя и возраст. Затем выводит на их на экран.
Program Dialog;
Var a: integer;
b: string;
Begin
Writeln(‘Привет! Как тебя зовут?');
Readln (b);
Writeln (‘Рад с тобой познакомиться ', b);
Writeln(‘Сколько тебе лет?');
Readln (a);
Writeln (b,' Тебе ', a, ‘ лет ');
Readln;
end.
Использованная литература:
- Паскаль для школьников. –СПб.Жпитер, 2007. – 256с.
- Информатика. Базовый курс. 7-9 классы/ И.Г. Семакин, Л.А. Залогова, С.В. Русаков, Л.В. Шестакова. – М. Бином. Лаборатория знаний, 2003г. – 390с.
- Изучаем TURBO PASCAL. – СПб.Жпитер, 2001. – 320с.
- Л.Л. Босова, УМК по информатике для 5-7 классов Москва, 2007 Алгоритмы и исполнители. Типы алгоритмов.
- Данные. Типы данных. Диалоговые программы. М.Е. Макарова. ( http :// uchinfo . com . ua )