Слайд 2Типы данных. Назначение
Типы данных определяют:
Возможные значения переменных
Внутреннюю форму представления числа
в памяти PC
Операции на данными
В языке Паскаль (Делфи) типы данных
(переменных) указывают в программе заранее!
Слайд 4Типы данных. Описание.
Пример программы:
program parimer;
var x:byte;
begin
read(x);
write(x);
readln;
end.
Описание типа данных в программе
Варианты
описание переменных в программе:
a) var переменная:тип данных;
b) var переменная1,переменная2:тип данных;
Вопрос:
Какие
значения можно вводить с клавиатуры?
Слайд 5Типы данных. Примеры
Пример программы:
program parimer;
var x:real;
begin
read(x);
write(x);
readln;
end.
Вопрос:
Введено с клавиатуры значение:
125;
b) true;
c)
Привет
Что будет происходить после ввода значений?
Слайд 7Переменные. Определение.
Переменной называют элемент программы, который предназначен для хранения, коррекции
и передачи данных внутри программы.
Слайд 8Переменные. Работа с переменными.
Присвоение значение переменной:
а) переменная:= значение переменной;
b) переменная:=
переменная;
Значение (или значение переменной) которое ПЕРЕДАЕТСЯ переменной
Переменная которой ПРИСВАЕВАЕТСЯ значение
Слайд 9Переменные. Примеры
Передача переменной числового значения “3”:
var x:byte;
begin
x:=3;
end.
Передача переменной числового значения
“54666”:
var x:string;
begin
x:=‘Текс’;
end.
Слайд 10Переменные. Примеры
Передача переменной X числового значения переменной Y.
Вывод на
экран значения переменной Y:
var x,y:byte;
begin
read(x);
y:=x;
write(y);
readln;
end.
Слайд 11Переменные. Примеры
Задача. Увеличить переменную X на единицу
var x,y,c:byte;
begin
x:=3;
x:=x+1;
end.
x:=x+1;
Старое значение “x”
Новое
значение “x”
Слайд 12Переменные. Примеры
Задача.
Поменять местами значения переменных X и Y:
var x,y,c:byte;
begin
c:=y;
y:=x;
x:=c
end.
Слайд 13Паскаль.
Математические операции.
Слайд 15Математические операции. Функции
Abs(X)
Возвращает абсолютное значение числа X.
Cos(X), Sin(X)
Возвращает косинус (синус)
числа X, где X - угол в радианах.
Ln(x)
Возвращает число,
равное натуральному логарифму от числа X.
Pi
Число Пи.
Sqr(X)
Возвращает число, равное квадрату числа X.
Sqrt(X)
Возвращает число, равное квадратному корню из числа X.
Слайд 16Математические операции. Примеры.
Задача. Сложить два числа 2 и 6. Вывести
результат на экран:
var x:byte;
begin
x:=2+6;
write(x);
end.
Слайд 17Математические операции. Примеры.
Задача. Прибавить единицу к введенному с клавиатуры числа.
Вывести результат на экран.
var x:integer;
begin
read(x);
x:=x+1;
write(x);
end.
Слайд 18Математические операции. Примеры.
Задача. Возвести в квадрат число введенное с клавиатуры.
Вывести результат на экран.
Решение 1:
var x:integer;
begin
read(x);
x:=x*x;
write(x);
end.
Решение
2:
var x:integer;
begin
read(x);
x:=sqr(x);
write(x);
end.
Слайд 19Задания:
Запишите значения a и b после выполнения следующих операций
1.
a :=
100;
b := 30;
a := a – b *
3;
b:=a+b;
2.
a := 0;
b := 0;
a := 10 – b * 3;
b:=a+b;
3.
a := 100;
b := 30;
a := a – с * 3;
b:=a+b;
4.
a:=3.4;
b:=2.1;
c:=a+b;
a:=c+4;
b:=c+a;
5.
temp:=3;
col:=temp/2;
temp:=col*2;
a:=temp+col;
b:=temp-col;
6.
c:=1;
c:=c+4;
a:=c/5;
a:=a+c;
b:=a+c;
Слайд 21Оператор read.
Оператор чтения данных с экрана:
Read(x) – читает с экрана
значение и присваивает его переменной х
Read(x,y) - читает поочередно с
экрана значения и присваивает их переменной х и y соответственно.
Слайд 22Оператор write.
Оператор чтения данных с экрана:
Write(x) – выводит на экран
значение переменной x.
Write(‘text’) – выводит на экран текст, находящийся в
кавычках.
Write(x:10:3) – выводит значение переменной округленной до 3 знаков после запятой.
Если х=12.0099493, то после команды Write(x:10:3) на экран выведется х в формате -____12.009
Write('Число=',y) – выводит на экран текст “Число=” и значение переменной y.
Write('Число ',y,’ отрицательное’) – выводит на экран текст “Число ”, значение переменной y и текст “ отрицательное”
Слайд 23Запишите, что появится на экране в результате выполнения данной части
кода.
1
a:=3; d:=12;
write(a);
write(d);
2
a:=3; d:=12;
writeln(a+b);
write(d-a);
3
a:=3; d:=12;
write(‘Sum=’,a);
writeln(‘Y=’,d-a);
4
a:=3.0032; d:=12.9943;
write(‘Sum=’,a+d);
Y:=d-a;
write(‘Y=’,Y:5:2);
5
a:=3.12345; d:=12.1234;
write(‘a=’,a:4:2);
write(‘d=’,d:6:3);
6
a:=3.12345; d:=12.1234;
write(a:4:2,’ ‘, a:5:3);
write(d:6:3);
Слайд 24Задание:
Написать программу, находящую значение арифметического выражения
Слайд 26Оператор if. Описание.
Описание 1: if условие then оператор 1;
Логическое
условие (простое или составное)
Оператор 1
Определение: “Оператор 1” выполняется
тогда и только тогда, когда “условие” является истинным!
Описание 2: if условие then оператор 1 else оператор 2;
Определение: “Оператор 2” выполняется тогда и только тогда, когда “условие” является ложным!
Слайд 27Оператор if. Другие определения.
Описание:
if условие then оператор 1 else
оператор2;
Если условие истинно то оператор 1 иначе оператор 2;
Описание
на русском языке:
Слайд 28Рассмотрим четыре варианта записи оператора IF:
If then P1 else
P2;
If then P1;
If () or () then P1 else
P2;
If (<условие1>) and (<условие2>) then P1 else P2;
где <условие>,<условие1>, <условие2> - переменные логического типа. Р1, Р2 - простые или составные операторы.
В третьем и четвертом примерах два условия объединены служебными словами or (или) и and (и). В результате объединения получается новая логическая переменная, истинность которой определяется согласно следующей таблицы.
Слайд 29Оператор if. Логические операции.
Логические операции используются для проверки различных условий.
Если условие выполняется, то оно считается истинным (true), если нет
– ложным (false).
Пример.
1.) Если x = 5, то x>3 – выражение будет истинно (true).
2.) Если x = 8, то x<=7 – выражение будет ложно (false).
Слайд 30Оператор if. Примеры.
Задача: Составить программу для вывода на экран сообщения
о том является ли число отрицательным или положительным.
Решение
1:
program test;
var x:real;
begin
writeln('Введите число');
read(x);
if x>=0 then write('Число является положительным');
end.
Решение 2:
....
if x>=0 then write('Число является положительным') else write('Число является отрицательным');
…
Слайд 31Оператор if. Примеры.
Задача: Даны два числа вывести наибольшее их них.
Решение:
program test;
var x,y:integer;
begin
writeln('Введите число 1');
read(x);
writeln('Введите число 2');
read(y);
if x>y then
write('Число ’,x,’больше числа ’, y)
else write('Число ‘,y,’больше числа ’, x);
end.
Слайд 32Оператор if. Примеры.
Задача: Проверить является ли число четным.
Решение 1:
program chetno;
var x:integer;
begin
writeln('Введите число');
read(x);
if (x mod 2)=0 then write('Число четное')
else write('Число не четное');
end.
Слайд 33Оператор if. Задачи.
Задача 1. Проверить является ли число больше 8.
Задача
2. Проверить делится ли число на 3.
Задача 3. Проверить является
ли число нечетным
Задача 4. Даны два числа, вывести на экран наименьшее из них.
Задача 5. Дано целое число. Если оно является положительным, то прибавить к нему 5; в противном случае – вычесть 1. Результат вывести на экран.
Задача 6. Даны 3 целых числа, найти количество положительных чисел.
Слайд 34Оператор if. Составные лог. операторы.
Логические операторы and (логическое “и”), or
(логическое “или”) – позволяют создавать составные логические выражения.
Таблица истинности для
and (“и”)
Слайд 35Оператор if. Составные лог. операторы.
Таблица истинности для or (“или”)
Слайд 36Оператор if. Составные лог. операторы.
Таблица истинности для not (отрицание)
Слайд 37Оператор if. Примеры выражений.
Пример 1:
X = 5 и
Y = 6
Выражение (x5) – истинно
true
true
Выражение (x
(y>5) – ложно
false
true
Слайд 38Оператор if. Примеры выражений.
Пример 2:
X = 5 и
Y = 6
Выражение (x5) – истинно
true
true
Выражение (x
(y>5) – истинно
false
true
Слайд 39Оператор if. Примеры выражений.
Пример 3:
X = 5 и
Y = 6
Выражение (not x
истинно
false
Слайд 40Оператор if. Примеры.
Задача: Составить программу для проверки является ли число
больше 5 и меньше 20 одновремено.
Решение:
program test;
var x:integer;
begin
writeln('Введите число');
read(x);
if (x>5)
and (x<20) then write('Является')
else write('Не является');
end.
Слайд 41Оператор if. Программные скобки.
Описание 3:
if условие then
begin
оператор 1;
оператор 2;
...
оператор n;
end;
Открытие программных скобок
Закрытие
программных скобок
Слайд 42Оператор if. Программные скобки.
Задача:
Поменять местами переменные, если первая переменна больше
второй.
…
If x > y then
begin
c:=y;
y:=x;
x:=y;
end;
writeln(x,’ ’,y);
end.
Слайд 43Оператор if. Программные скобки.
Задача:
Составить программу для вычисления корней квадратного уравнения
Математическое описание
Разработка структуры программы
Слайд 44Оператор if. Программные скобки.
Program P3;
Var a,b,c,d,x1,x2:real;
Begin
a:=1; b:=3; c:=5;
D:=sqr(b)-4*a*c;
If D>=0 then
Begin
X1:=(-b+sqrt(D))/2/a;
X2:=(-b-sqrt(D))/2/a;
writeln(‘Первый
корень равен ’,x1);
writeln(‘Второй корень равен ’,x2);
End
Else
Writeln(‘Действ.корней нет’);
End.
Слайд 45…
d:= B*B-4*A*C;
If d > 0 then
begin
x1:=(-1)*B+sqr(d);
x2:=(-1)*B-sqrt(d);
writeln(‘Первый корень равен ’,x1);
writeln(‘Второй
корень равен ’,x2);
end;
If d = 0 then …
If d
< 0 then …
end.
Слайд 46Оператор case...of...end
Для ситуаций, где имеется несколько (три и более) альтернатив,
больше подходит оператор case. Этот оператор называется оператором выбора и
имеет следующий вид:
case expression of
values_l: statement_l;
values_2: statement_2;
...
values_n: statement_n;
else
statement;
end;
Слайд 49Оператор Case
Пусть необходимо преобразовать целое число N в зависимости от
величины остатка от его деления на 17 следующим образом:
если N
mod 17 = 0, то N := 0;
если N mod 17 = 1 или 6, то N := -N;
если N mod 17 = 2, 3 или 5, то N := 2xN;
если N mod 17 = 4, то N := ЗхN;
во всех прочих случаях N :=* 5xN.
Слайд 50Оператор Case
Решение этой задачи на Паскале выглядит следующим образом:
case N
mod 17 of
0 : N :=
0;
1, 6 : N := -N;
2, 3, 5 : N := 2 * N;
4 : N := 3 * N;
else N := 5 * N;
end;
В данном примере селектором является выражение N mod 17. Кроме того, имеются 4 списка значений и ветвь else.
Слайд 51Оператор Case и If сравнение
case N mod 17 of
0
: N := 0;
1, 6
: N := -N;
2, 3, 5 : N := 2 * N;
4 : N := 3 * N;
else N := 5 * N;
end;
if N mod 17=0 then N := 0;
if (N mod 17=1) or
(N mod 17=6) then N:=-N;
if (N mod 17=2) or
(N mod 17=3) or
(N mod 17=5) then N:=2*N;
if N mod 17=4 then N:=3*N
else N := 5 * N;
Слайд 52Оператор Case
Селектор интервального типа:
case I of
1..10 : Writeln ('число ',
I:4, ' в диапазоне 1 - 10');
11..20 : Writeln ('число
', I:4, ' в диапазоне 11 - 20');
21.. 30 : Writeln ('число ', 1:4, ' в диапазоне 21 - 30 ')
else Writeln ('число', I:4, ' вне пределов контроля')
end;
Слайд 53Оператор Case
Селектор целочисленного типа:
case I of
1 : Z := I
+ 10;
2 : Z := I + 100;
3 : Z
:= I + 1000
end;
Слайд 54Оператор Case
Селектор перечисляемого пользовательского типа:
var
Season: (Winter, Spring, Summer, Autumn);
begin
…
case Season
of
Winter : Writeln ('Winter');
Spring : Writeln ('Spring');
Summer : Writeln ('Summer');
Autumn
: Writeln ('Autumn')
end;
end;
Слайд 55По введенному вами номеру дня недели выводит на экран его
название.
var Day : byte;
begin
Write ('Введите номер дня недели (от 1
до 7) :');
Readln (Day);
case Day of {Вычисление значения выражения и выбор}
1: Writeln ('Понедельник');
……….
6: Writeln ('Суббота');
else
Writeln ('Воскресенье');
end;
end.
Слайд 56Арифметические действия над числами пронумерованы следующим образом: 1 — сложение,
2 — вычитание, 3 — умножение, 4 — деление. Дан
номер действия N (целое число в диапазоне 1–4) и вещественные числа A и B (В не равно 0). Выполнить над числами указанное действие и вывести результат. Использовать оператор case
Слайд 57program case1;
uses crt;
var a,b,s:integer; n:byte;
begin
clrscr;
Writeln
(‘Введите первое число’); Read(a);
Writeln (‘Введите второе число, не равное
нулю’); Read(b);
writeln('Введите требуемое действие над числами');
writeln('1-сложение,2-вычитание,3-умножение,4-деление,');
read(n);
IF (N=>1) and (N<=4) then
case N of
1:S:=a+b;
2:S:=a-b;
3:S:=a*b;
4:S:=a/b;
end;
writeln('Ответ:',s);
else begin writeln('Число не входит в диапазон от 1 до 4');
end; readkey;
end.
Слайд 58Задачи на CASE
Составить программу, которая в зависимости от порядкового номера
дня месяца (1,2,..,12) выводит на экран количество дней в этом
месяце.
Слайд 60Циклы.
Определение 1:
Многократно повторяющийся участок вычислительного процесса называется циклом.
Определение 2:
Если заранее
известно количество необходимых повторений, то цикл называется арифметическим. Если же
количество повторений заранее неизвестно, то говорят об итерационном цикле.
Слайд 61Циклы. Арифметические циклы.
Описание:
for переменная := значение 1 to значение 2
do оператор;
Оператор for вызывает оператор, находящийся после слова do, по
одному разу для каждого значения в диапазоне от “значения 1” до “значения 2”.
Пример: for i:=1 to 10 do write(i);
Для i от 1 до 10 печатай значение i.
Слайд 62Циклы. Арифметические циклы.
Задача:
Вывести на экран числа от 1 до 16.
Решение:
…
х:=0;
for
х:=1 to 16 do WriteLn(x);
…
Слайд 63Циклы. Арифметические циклы.
Задача:
Вывести на экран таблицу умножения на 8.
Решение:
…
for i:=1
to 10 do WriteLn(‘8 * ‘,i,’= ’,8*i);
…
Слайд 64Циклы. Арифметические циклы.
Задача 1:
Даны целые числа К и N
(N > 0).
Вывести N раз число К.
for i:=1 to
N do writeln(K); readln;
Или
for i:=1 to N do write(K,’ ‘); readln;
Или
for i:=1 to N do writeln(i,’) ’,K); readln;
Слайд 65Циклы. Арифметические циклы.
Задача 2:
Даны два целых числа А и В
(А < В). Вывести в порядке возрастания все целые числа,
расположенные между А и В (включая сами числа А и В ), а также количество N этих чисел.
for i:=A to B do
begin
write(I,’ ‘);
N:=N+1;
end;
Writeln;
Writekn(N);
Слайд 66Циклы. Арифметические циклы.
Задача 3:
Даны два целых числа А и В
(А < В). Вывести в порядке убывания все целые числа,
расположенные между А и В (не включая числа А и В ), а также количество N этих чисел.
for i:=B downto A do
begin
write(I,’ ‘);
N:=N+1;
end;
Writeln;
Writekn(N);
Слайд 67Циклы. Арифметические циклы.
Задача:
Дано вещественное число — цена 1 кг конфет.
Вывести стоимость 1.2,1.4, ..., 2 кг конфет.
var i:integer; Cena,
A, aa:real;
begin
read(A);
aa:=1;
for i:=1 to 5 do
begin
aa:=aa+0.2;
Cena:=aa*A;
writeln('Price of ',aa:2:1,'kg = ', Cena:6:2);
end;
readln;
readln;
end.
Слайд 68Циклы. Арифметические циклы.
Задача:
Даны два целых числа А и В (А
< В). Найти сумму всех целых чисел от А до
В включительно.
for i:=A to B do Sum:=Sum+I;
Даны два целых числа А и В (А < В). Найти произведение всех целых чисел от А до В включительно.
for i:=A to B do P:=P*I;
Даны два целых числа А и В (А < В). Найти сумму квадратов всех целых чисел от А до В включительно.
for i:=A to B do Sum:=Sum+I*I;
Слайд 69Циклы. Арифметические циклы.
Задача:
Вывести все нечетные значения от 1 до 20.
Вывести
все нечетные значения от 1 до n.
Рассчитать значения у для
значений х, равных 4,5,…,28.
Вывести значения sin0.1, sin0.2,…,sin1.1.
Вывести значения .
Напечатать таблицу стоимости 5, 10, 15, …, 100г сыра (стоимость 1 кг сыра вводится с клавиатуры).
Напечатать таблицу стоимости 10,20,30,…,200г конфет (стоимость 1 кг конфет вводится с клавиатуры).
Вывести значения 2.1, 2.2, 2.3,…,2.8.
Вывести значения 3.2,3.3,3.4,…,3.9.
Слайд 70Итерационные циклы.
В итерационных циклах производится проверка некоторого условия, и в
зависимости от результата этой проверки происходит либо выход из цикла,
либо повторение выполнения тела цикла.
Если проверка условия производится перед выполнением блока операторов, то такой итерационный цикл называется циклом с предусловием (цикл "пока"), а если проверка производится после выполнения тела цикла, то это цикл с постусловием (цикл "до").
Слайд 71Итерационные циклы.
Особенность этих циклов заключается в том, что тело цикла
с постусловием всегда выполняется хотя бы один раз, а тело
цикла с предусловием может ни разу не выполниться. В зависимости от решаемой задачи необходимо использовать тот или иной вид итерационных циклов.
Слайд 72Работа с файлами.
Файл — это самостоятельная последовательность символов, записанная в
постоянную память компьютера. Это определенная выделенная область информации.
Var f1,
f2: text;
Слайд 73Когда и зачем нужно использовать файлы
необходимо сохранять выходные данные при
отладке;
большое количество входных данных (тот, кто вручную тестировал прогрраммы с
заполнением матриц, меня понимает);
многократное введение одной и той же информации, с минимальными изменениями или вовсе без изменений;
Слайд 74Команды для работы с файлами
assign(f, 'имя_файла'); — устанавливает связь между
файловой переменной и самим файлом
reset(f); — Открыть для чтения. Если
файла не существует, то будет выведена ошибка.
rewrite(f); — Создать или перезаписать. Если файла не существует, то он будет создан;
append(f); — Создать или открыть и дописать в конец файла. Если файла не существует, то он будет создан;
close(f); — Сохранить и закрыть файл.
Слайд 75Команды для работы с файлами
read(f,a,b); — читать из файла f две
переменные a и b. После выполнения этой процедуры указатель в
файле передвинется за переменную b;
readln(f,a,b,c); — читать из файла f три переменные a, b и c, а затем перевести указатель (курсор) на начало следующей строки; если кроме уже считанных переменных в строке содержалось еще что-то, то оно будет проигнорировано.
write(f,a,b,c); — записать в файл f переменные a, b и c;
writeln(f,a,b); — записать в файл f переменные a и b, а затем записать туда же символ "конец строки".
Слайд 76Примеры работы с файлами
Пример:
var Vf : file;
begin
...
AssignFile(Vf,'work.dat'); //инициализирует
файловую переменную
Rewrite(Vf); //создает файл 'work.dat'
CloseFile(Vf); //закрывает файл