Turbo Pascal 7.0 Программирование на языке высокого уровня презентация

Содержание

Луковкин С.Б. МГТУ. ЯПВУ (краткая справка) Примеры: Algol, Fortran, Cobol, C, C++, Visual Basic, Java, Python, PHP, Ruby, Perl, Pascal, Delphi, C#.... Языкам высокого уровня свойственно умение работать

Слайд 1Луковкин С.Б. МГТУ.
Turbo Pascal 7.0 Программирование на языке высокого уровня.
Луковкин Сергей Борисович,

к.ф.н., доцент кафедры «Автоматика и вычислительная техника» МГТУ
2008 г.

Слайд 2Луковкин С.Б. МГТУ.
ЯПВУ (краткая справка)
Примеры: Algol, Fortran, Cobol, C, C++,

Visual Basic, Java, Python,
PHP, Ruby, Perl, Pascal, Delphi, C#....
Языкам высокого уровня свойственно умение работать с комплексными
структурами данных.
В большинстве из них интегрирована поддержка строковых типов, объектов,
операций файлового ввода-вывода и т. п.
Первым языком программирования высокого уровня
считается компьютерный язык Plankalkül,
разработанный немецким инженером Конрадом Цузе ещё в период 1942—1946 гг.
Однако транслятора для него не существовало до 2000 г.
Первым в мире транслятором языка высокого уровня является ПП
(Программирующая Программа), он же ПП-1, успешно испытанный в 1954 г.
Транслятор ПП-2 (1955 г., 4-й в мире транслятор) уже был оптимизирующим
и содержал собственный загрузчик и отладчик, библиотеку стандартных процедур.
Транслятор ПП для ЭВМ Стрела-4 уже содержал и компоновщик (linker) из модулей.
Однако, широкое применение высокоуровневых языков началось с
возникновением Фортрана и созданием компилятора для этого языка (1957).

Слайд 3Луковкин С.Б. МГТУ.
Историческая справка
Язык Pascal разработан Никлаусом Виртом на кафедре информатики

Стэндфордского университета в середине 60-х годов ХХ века.
В 1985 г. появился язык Turbo Pascal 3.0. Затем появились его версии 4.0 … 7.0
Delphi – система (среда) программирования, использующая язык Object Pascal. (1995 г.)
Другие ЯПВУ: Fortran, Basic, Visual Basic, С, C++, Borland C++, C#, Oberon, ….



Слайд 4Луковкин С.Б. МГТУ.
Список литературы
Павловская Татьяна Александровна «Паскаль» - СПб. Питер 2007.
Фаронов

В.В. TurboPascal 7.0
ТурбоПаскаль 7.0
Фаронов В.В. Delphi 5
Культин Н. Самоучитель Delphi 4.0

Фото(Т.А. Павловская и Вирт)
Фото (Павловская на курсах)


Слайд 5Луковкин С.Б. МГТУ.
Лекция 1.
Символы, лексемы, выражения и операторы ТР;
Классификация типов данных

ТР;
Структура программы на языке ТР;

Слайд 6Луковкин С.Б. МГТУ.
Состав языка ТР 7.0
Символы:
буквы: A-Z, a-z, _
цифры: 0 1

2 3 4 5 6 7 8 9
спец. символы: +, *, { , } , ( , ) #, …
пробельные символы
Лексемы ( словарная единица языка):
константы 13 3.14 ‘Константин’
имена (идентификаторы) Kolobok a _11
ключевые ( зарезервированные) слова begin var if
знаки операций + - :=
разделители ; [ ] ,
Выражения:
правило вычисления значения (a + b)*с
Операторы:
исполняемые c := a + b
описания var a, b : real;


Слайд 7Луковкин С.Б. МГТУ.
Константы (Const)
Целые десятичные:

127 -89
Целые шестнадцатеричные: $FF12 $A3
Вещественные с пл. точкой: 12.34 -3.1415
Вещественные с порядком: 2.7e2 3.5E-12
Символьные: ‘z’ ‘=‘ #98 #64
Строковые: ‘Это строка’ , ‘варкалось’
Логические: TRUE и FALSE

Слайд 8Луковкин С.Б. МГТУ.
Имена (идентификаторы)
имя должно начинаться с буквы или с _

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

Примеры правильных имен:
Perimeter, A, x01, A13, A_and_B.

Примеры неправильных имен:
2late, Big one, Iseekю.


Слайд 9Луковкин С.Б. МГТУ.
Ключевые (зарезервированные) слова
Ключевые слова — идентификаторы, имеющие специальное значение для

компилятора. Их можно использовать только в том смысле, в котором они определены.
Например:
Program begin end
array do for uses
var const type label …. и т.д.
Если ключевое слово заключено в апострофах, то это константа: ‘Begin’

Слайд 10Луковкин С.Б. МГТУ.
Знаки операций
Знак операции — один или более символов, определяющих действие

над операндами. Внутри знака операции пробелы не допускаются. Например, целочисленное деление записывается как div. Операции делятся на унарные (с одним операндом) и бинарные (с двумя).
A and B ; X >= 0.5 ; s<>0.2 ; y/z ; L div m ; k mod n

Слайд 11Луковкин С.Б. МГТУ.
Операции и их приоритеты.
Унарная операция not, унарный минус -

, взятие адреса @.
Операции типа умножения:
* / div mod and shl shr.
Операции типа сложения:
+ - or xor
Операции отношения:
= <> < > <= >= in
ПРИОРИТЕТ УБЫВАЕТ СВЕРХУ – ВНИЗ !

Слайд 12Луковкин С.Б. МГТУ.
Классификация типов данных ТР
Порядковые: целый, логический, символьный, перечисляемый, интервальный(

тип-диапазон).

Слайд 13Луковкин С.Б. МГТУ.
Концепция типа данных
Тип данных определяет:

внутреннее представление данных, а следовательно,

и множество их возможных значений;
допустимые действия над данными (действия - это операции или функции).


Слайд 14Луковкин С.Б. МГТУ.
Структура программы на ТР.
Program ИМЯ_ПРОГРАММЫ;
{$ ….} – директивы компилятора
Uses

список имён модулей;

LABEL объявление глобальных меток;
CONST объявление глобальных констант;
TYPE объявление глобальных типов;
VAR объявление глобальных имён;

Далее идут описания ПРОЦЕДУР или ФУНКЦИЙ

PROCEDURE ИМЯ ПРОЦЕДУРЫ;
или
FUNCTION ИМЯ_ФУНКЦИИ: тип;

Label … ; Const … ; Type … ; Var …. ; - объявление локальных меток, констант, типов и переменных.
BEGIN ……. END; - тело процедуры или функции;

Основной блок программы
BEGIN ……. END.


Слайд 15Луковкин С.Б. МГТУ.

Заголовок программы; директивы;
подключаемые модули;
Глобальные метки, константы, типы,
переменные;
Раздел процедур и

функций
заголовок процедуры или функции;
локальные метки, константы, типы,
переменные;
Begin …… end;

Основная программа:
BEGIN …. END.

Структура программы на TP 7.0


Слайд 16Луковкин С.Б. МГТУ.


PROGRAM my_01;

BEGIN
WRITELN(‘ Это

моя первая программа на Turbo Pascal’);
Readln;
End.

=======================================================
Процедуры ввода – Read, Readln – ввод с клавиатуры
и
вывода Write, Writeln - вывод на экран ПК.

Простейшая программа на ТР 7.0


Слайд 17Луковкин С.Б. МГТУ.
Структура Модуля
Unit имя;

Interface

Uses

Type

Private

Public

End;


Слайд 18Луковкин С.Б. МГТУ.
Лекция 2.
Логический тип данных;
Целые типы; Операции с данными целого

типа;
Стандартные процедуры и функции (для переменных порядкового типа)

Слайд 19Луковкин С.Б. МГТУ.
Логические типы
Основной логический тип данных - boolean. Величины этого

типа занимают в памяти 1 байт и могут принимать два значения: true (истина) или false (ложь). Внутреннее представление значения false — 0 (ноль), значения true — 1.
Для совместимости с другими языками определены типы ByteBool, WordBool и LongBool длиной 1, 2 и 4 байта соответственно. Истинным в них считается любое отличное от нуля значение.
К величинам логического типа применяются логические операции and, or, xor и not и операции отношения.


Слайд 20Луковкин С.Б. МГТУ.
Логические операции


Слайд 21Луковкин С.Б. МГТУ.
Целые типы
Byte => Word => Shortint =>integer => Longint


Слайд 22Луковкин С.Б. МГТУ.
Операции с данными целого типа
Арифметические операции


Слайд 23Луковкин С.Б. МГТУ.
Операции с данными целого типа (продолжение)
Операции отношения: >

< = <= >= <>
Поразрядные операции: and, or, xor, not
Операции сдвига: shl, shr


Слайд 24Луковкин С.Б. МГТУ.
Операции с данными целого типа
ПРИМЕРЫ
Var n, k, r, q:

shortint;
….
n:=17; k:=5;
q:=n div k;
r:= n mod k;
….
writeln( n < k ) ;
writeln( n > 22) ;



Слайд 25Луковкин С.Б. МГТУ.
Стандартные математические функции


Слайд 26Луковкин С.Б. МГТУ.
Стандартные процедуры и функции (для переменных порядкового типа)


Слайд 27Луковкин С.Б. МГТУ.
Лекция 3. Вещественный и символьный типы.
Вещественный тип. Операции.Функции.
Символьный тип.

Операции.Функции.
Стандартные математические функции


Слайд 28Луковкин С.Б. МГТУ.
Вещественные типы
Внутреннее представление вещественного числа состоит из двух частей

— мантиссы и порядка; каждая часть имеет знак.
Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных.
Точность числа определяется количеством бит, отведённых для записи мантиссы, а диапазон — количеством бит для записи порядка.

Слайд 29Луковкин С.Б. МГТУ.
Вещественные типы ТР 7.0



Слайд 30Луковкин С.Б. МГТУ.
Функции для работы с данными вещественного типа





Слайд 31Луковкин С.Б. МГТУ.
Операции с данными вещественного типа
Арифметические
+ - * /
Операции отношения

= <= > >= <>

Возведения в степень нет ( кроме функции SQR):
Для возведения X в степень S надо выполнить следующие действия:
XS = exp(s*Ln(X)); ( X>0 );


Слайд 32Луковкин С.Б. МГТУ.
Примеры выражений ТР, использующие математические
функции.
1) Возведение в степень: Y

= xs Y =exp(s*Ln(x))
2) Вычисление тангенса: Tg(x) = sin(x)/cos(x);
3) Вычисление логарифма с произв. основанием Logs (x) = Ln(x)/Ln(s);


Пример:

Замечания


Слайд 33Луковкин С.Б. МГТУ.
Контрольные вопросы 1.1
Какие из перечисленных констант являются допустимыми?

259

8) 0.008E-14.2
0,01 9) 8.3e+05
‘ф’ 10) ‘$’
1.7*e3 11) *
$EEC 12) “6”
‘///’ 13) ‘с’’езд’
$EEH 14) -277+2


Слайд 34Луковкин С.Б. МГТУ.
Контрольные вопросы 1.2
Число -350 можно хранить в переменной типа:
byte

word shortint integer real

В переменной типа byte можно хранить числа:
15 207 -12 -198 1224

Результат операции сложения целых =

Результат операции сравнения целых =

Результат вычисления выражения sin(4) – cos(6) =


Слайд 35Луковкин С.Б. МГТУ.
Контрольные вопросы 1.3
вычислить при e=4, a=3: e +sqrt(e) * 1e1

/ 2 * a
Ответ: 34


Слайд 36Луковкин С.Б. МГТУ.
Символьный тип
Этот тип данных, обозначаемый ключевым словом char, служит

для представления любого символа из набора допустимых символов. Для хранения в памяти под каждый символ отводится 1 байт.
К символам можно применять операции отношения (<, <=, >,>=, =, <>), при этом сравниваются коды символов. Примеры: Var s,t :char; ….. s:=‘f’; t:=‘w’; writeln(st)


Слайд 37Луковкин С.Б. МГТУ.
ASCII table ( первые 128 символов)


Слайд 38Луковкин С.Б. МГТУ.
Функции для работы с символьным типом данных.



Слайд 39Луковкин С.Б. МГТУ.
Лекция 4.
Переменные
Константы
Выражения
Ввод с консоли; вывод на консоль
Линейные программы.


Слайд 40Луковкин С.Б. МГТУ.
Переменные
Переменная — это величина, которая во время работы программы

может изменять свое значение.
Все переменные, используемые в программе, должны быть описаны в разделе описания переменных, начинающемся со служебного слова var.
Для каждой переменной задается ее ИМЯ и ТИП, например:
var number : integer; x, y : real; option : char;

Слайд 41Луковкин С.Б. МГТУ.
Типизированные константы
При объявлении можно присвоить переменной некоторое начальное значение

(инициализировать).
Инициализированные переменные описываются после ключевого слова const и могут использоваться в программе как обычные переменные:
const
number : integer = 100;
x : real = 0.02;
option : char = ’ю’;

Слайд 42Луковкин С.Б. МГТУ.
Именованные константы
Вместо значений констант можно (и нужно!) использовать в

программе их имена.

Это облегчает читаемость программы и внесение в нее изменений:

const
weight = 61.5;
n = 10;
g = 9.8;

Слайд 43Луковкин С.Б. МГТУ.
Выражения
Выражение — правило вычисления значения.
В выражении участвуют операнды,

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


t + sin(x)/2 * x
результат имеет вещественный тип

a <= b + 2
результат имеет логический тип

(x > 0) and (y < 0)
результат имеет логический тип


Слайд 44Луковкин С.Б. МГТУ.
Оператор присваивания
переменная := выражение;

a := b + c;
x :=

1;
x := x + 0.5;



вещественная переменная := целое выражение;

Слайд 45Луковкин С.Б. МГТУ.
Процедуры ввода-вывода
ВВОД с КОНСОЛИ
read(список); readln[(список)];
Список – последовательность имён,

разделённых запятыми: Read (a,b);
Ввод значения каждой переменной выполняется так:
значение переменной выделяется как группа символов, расположенных между разделителями ( пробелами);
эти символы преобразуются во внутреннюю форму представления, соответствующую типу вводимой переменной;
значение записывается в ячейку памяти, определяемую именем переменной.

Слайд 46Луковкин С.Б. МГТУ.
Lazarus (вывод в MEMO)
procedure TForm1.Button1Click(Sender: TObject);  var i : integer;  begin  Form1.Memo1.Clear;

//очистка объекта TMemo for i:=1 to 40 do  begin  Form1.Memo1.Lines.Append(IntToStr(i));
// значение i выводиться с новой строки  end;  end;



Слайд 47Луковкин С.Б. МГТУ.
Lazarus
Ввод данных в программу осуществляется
путем изменения свойства text объекта TEdit в коде.


Например, ввод значения переменной  N через TEdit1:
N : = StrToInt(Edit1.Text);

StrtoInt()  – функция  преобразует текстовую
информацию, введенную в Edit1,
в цифровую типа Integer 
StrToFloat()  – функция  преобразует текстовую
информацию, введенную в Edit1,
в действительное число

Слайд 48Луковкин С.Б. МГТУ.
Lazarus
var   stringValue : string;   floatValue  : Extended; begin   // Set up the source string

containing a number representation   stringValue := '123.456E+002';   // Convert it to a floating point number   floatValue  := StrToFloat(stringValue);   // And display the value   ShowMessage(stringValue+' = '+FloatToStr(floatValue)); end;

Слайд 49Луковкин С.Б. МГТУ.
Lazarus
var   amount1, amount2, amount3 : Extended; begin   amount1 := 1234567890.123456789;  // High precision

number   amount2 := 1234567890123456.123;  // High mantissa digits   amount3 := 1E100;                 // High value number   ShowMessage('Amount1 = '+FloatToStr(amount1));   ShowMessage('Amount2 = '+FloatToStr(amount2));   ShowMessage('Amount3 = '+FloatToStr(amount3)); end;

Слайд 50Луковкин С.Б. МГТУ.
 ShowMessage('Используя 8,4 = '+FloatToStrF(amount1, ffFixed, 8, 4));   ShowMessage('Используя 4,4 =

'+FloatToStrF(amount1, ffFixed, 4, 4));   ShowMessage('Используя 4,2 = '+FloatToStrF(amount1, ffFixed, 4, 2));   ShowMessage('Используя 2,4 = '+FloatToStrF(amount1, ffFixed, 2, 4));   // Показ в формате General   ShowMessage('');   ShowMessage('General форматирование :');   ShowMessage('');   ShowMessage('Используя 8,4 = '+FloatToStrF(amount1, ffGeneral, 8, 4));   ShowMessage('Используя 4,4 = '+FloatToStrF(amount1, ffgeneral, 4, 4));   ShowMessage('Используя 4,2 = '+FloatToStrF(amount1, ffGeneral, 4, 2));   ShowMessage('Используя 2,4 = '+FloatToStrF(amount1, ffGeneral, 2, 4));   // Показ в формате Number   ShowMessage('');   ShowMessage('Number форматирование :');   ShowMessage('');   ShowMessage('Используя 8,4 = '+FloatToStrF(amount1, ffNumber, 8, 4));   ShowMessage('Используя 4,4 = '+FloatToStrF(amount1, ffNumber, 4, 4));   ShowMessage('Используя 4,2 = '+FloatToStrF(amount1, ffNumber, 4, 2));   ShowMessage('Используя 2,4 = '+FloatToStrF(amount1, ffNumber, 2, 4)); end;

 ShowMessage('Используя 8,4 = '+FloatToStrF(amount1, ffFixed, 8, 4));   ShowMessage('Используя 4,4 = '+FloatToStrF(amount1, ffFixed, 4, 4));   ShowMessage('Используя 4,2 = '+FloatToStrF(amount1, ffFixed, 4, 2));   ShowMessage('Используя 2,4 = '+FloatToStrF(amount1, ffFixed, 2, 4));   // Показ в формате General   ShowMessage('');   ShowMessage('General форматирование :');   ShowMessage('');   ShowMessage('Используя 8,4 = '+FloatToStrF(amount1, ffGeneral, 8, 4));   ShowMessage('Используя 4,4 = '+FloatToStrF(amount1, ffgeneral, 4, 4));   ShowMessage('Используя 4,2 = '+FloatToStrF(amount1, ffGeneral, 4, 2));   ShowMessage('Используя 2,4 = '+FloatToStrF(amount1, ffGeneral, 2, 4));   // Показ в формате Number   ShowMessage('');   ShowMessage('Number форматирование :');   ShowMessage('');   ShowMessage('Используя 8,4 = '+FloatToStrF(amount1, ffNumber, 8, 4));   ShowMessage('Используя 4,4 = '+FloatToStrF(amount1, ffNumber, 4, 4));   ShowMessage('Используя 4,2 = '+FloatToStrF(amount1, ffNumber, 4, 2));   ShowMessage('Используя 2,4 = '+FloatToStrF(amount1, ffNumber, 2, 4)); end;


Слайд 51Луковкин С.Б. МГТУ.
Вывод на консоль
write(список);
или
writeln[(список)];

var n : integer;
b :

real;
... n:=1; b:=4.12417; …
writeln(’Значение n = ’, n:3, ’ b = ’, b:5:2, sin(n) + b);

Значение n = 1 b = 4.124.9614709848E+00


Слайд 52Луковкин С.Б. МГТУ.
Правила формирования списка в процедуре вывода
Список вывода разделяется запятыми.
Список

содержит выражения логических, целых, вещественных, символьного и строкового типов.
После любого значения можно через двоеточие указать количество отводимых под него позиций.
Для вещественных чисел можно (нужно) указать второй формат, указывающий, сколько позиций из общего количества позиций отводится под дробную часть числа.
Если форматы не указаны, то для вывода целого числа, символа и строки отводится минимально необходимое для их представления количество позиций.
Под вещественное число отводится 17 позиций, 10 из них — под дробную часть.
Форматы могут быть выражениями целого типа.

Слайд 53Луковкин С.Б. МГТУ.
Примеры форматированного и бесформатного вывода
Пусть: K,P,Q – целого типа,

R – вещественного, B – булевского типа, С – символ, S – строка, _ пробел.

Слайд 54Луковкин С.Б. МГТУ.
Линейные программы
Это самые простые программы.
Операторы таких программ выполняются

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

Слайд 55Луковкин С.Б. МГТУ.
Пример линейной программы (перевод температуры из шкалы Фаренгейта в шкалу

Цельсия)

program temperature;
var tf, tc : real;
begin
write('Введите температуру по Фаренгейту = ');
readln(tf);
tc := 5 / 9 * (tf - 32);
writeln('По Фаренгейту: ', tf:6:2,
' в градусах Цельсия: ', tc:6:2);
Readln;
end.


Слайд 56Луковкин С.Б. МГТУ.
Пример №2 Программа перевода градусной меры угла в радианную
Вводим

величину угла в градусной мере в виде d m s. Например 23 46 28 = 23° 46’ 28’’ .
Переводим минуты и секунды в градусы alf = d + m/60 + s/3600 .
Радианная мера угла x= (p /180)*alf .
Выводим на экран x.
Вычисляем и выводим на экран sin(x) и cos(x).

Слайд 57Луковкин С.Б. МГТУ.
Пример №3 Программа перевода радианной меры угла в градусную
Вводим

величину угла в радианах: x (x>0)
Переводим радианную меру угла x в градусную alf = (180/p)*x .
Выделяем градусы, минуты и секунды: d = int(alf); am = Frac(alf)*60 ; m = int(am); as = Frac(am)*60 ; s = round(as);
Выводим на экран d m s.

Слайд 58Луковкин С.Б. МГТУ.
Лекция 5.
Основные операторы Turbo Pascal.
Примеры программ с ветвлением

и циклами.

Слайд 59Луковкин С.Б. МГТУ.
Простейшие операторы ТР 7.0
Составной оператор:
Begin S1; S2;

…. End;
Пустой оператор: ; ;
Безусловные операторы и функции:
Goto <метка> ;
Break – выход из цикла;
Exit – выход из подпрограммы;
Halt(n) – завершает работу программы с кодом = n.


Слайд 60Луковкин С.Б. МГТУ.
Операторы ветвления IF … then … else

If then

S1 else S2;



If <выражение> then S;


Слайд 61Луковкин С.Б. МГТУ.
Операторы ветвления IF (примеры)
sx:=1;
if x < 0 then sx :=

-1;
=======================================
if (a < b) and (a < d) then s:=‘left’ else
if (a > b) and (a > d) then s:=‘right’
else s:=‘middle’
где расположена (.) a
=======================================
if a < b then if a < c then m := a else m := c else if b < c then m := b else m := c;

поиск min из {a,b,c}

Слайд 62Луковкин С.Б. МГТУ.
Пример (применение оператора if).


-2
-2


1
-2
-2
2
x
y

program shoot;
var x, y: real;
begin
writeln(‘ Введите значения х и у:’);
readln(x, y);
if (sqr(x) + sqr(y) <= 1) or (x <= 0) and (y <= 0)
and (y >= - x - 2)
then
writeln(‘ Точка попадает в область’)
else
writeln(‘ Точка не попадает в область’);
end.

Слайд 63Луковкин С.Б. МГТУ.
Оператор выбора CASE
case выражение of
константы_1 : S1;
константы_2 : S2;
………..
константы_n

: Sn;
[ else : S0; ]
end;


Слайд 64Луковкин С.Б. МГТУ.
Пример (CASE)
Var a: byte;
……
case a of
4 : writeln(’4’);
5, 6

: writeln(’5 или 6’);
7 .. 12: writeln(’от 7 до 12’);
end;

Слайд 65Луковкин С.Б. МГТУ.
Операторы циклов
Перечисляемый
For i:=A to B do

<оператор>;
For i:=B downto A do <оператор>;

С предусловием
While <Условие> Do <оператор>;

С постусловием
Repeat <тело цикла> Until <условие>;

Слайд 66Луковкин С.Б. МГТУ.
Блок-схема цикла For
i:=A
i


Слайд 67Луковкин С.Б. МГТУ.
Блок-схема цикла While
Условие
Выполняется ?

Выполнить операторы цикла
да
нет
да
нет


Слайд 68Луковкин С.Б. МГТУ.
Блок-схема цикла Repeat … Until
Условие
Выполняется ?

Выполнить операторы цикла
да
нет


Слайд 69Луковкин С.Б. МГТУ.
Операторы циклов (комментарии)
Операторы перечисляемого цикла могут не выполниться ни одного

раза (например, если A > B для “ For … to …“ )
Количество выполнений операторов перечисляемого цикла известно заранее( = B-A+1).
Тело цикла Repeat …. Until выполняется хотя бы 1 раз в любом случае.
While … Do может не выполниться ни разу.

for i:= -1 to 5 do write( ‘A’);
for k:=6 downto 4 do writeln(‘W’);
M:=2; repeat writeln(‘Эх, раз …’) until M< 0;
{это ∞ цикл }
K:=4; S:=0.0; while K > 0 do begin s:=s+1/K; K:=K-1 end;


Слайд 70Луковкин С.Б. МГТУ.
Пример использования оператора For …. To …. Do

…;


a

b

y=f(x)


Program tabula_F; { табуляция y=k*x2 }
Var a,b, k, x, y,h: real;
N,i:byte;
Begin
Write(‘ Введите k= ‘); Readln(k);
Write(‘ Введите a,b,N= ‘); Readln(a,b,N);
h:=(b-a)/(N-1); {шаг табуляции функции}
writeln(' —————————');
writeln('| X | Y |');
writeln(' —————————');
For i:= 1 to N do begin
x:=a+(i-1)*h;
y:=k*sqr(x);
writeln('|', x:9:2,' |', y:9:2,' |');
end;
writeln(' —————————');
end.

x

y


Слайд 71Луковкин С.Б. МГТУ.
Пример использования оператора while do S;
program tabula;
var

Xa, Xb, Hx, k, x, y : real;
begin
writeln('Введите Xa, Xb, Hx, k');
readln(Xa, Xb, Hx, k);
writeln(' —————————');
writeln('| X | Y |');
writeln(' —————————');
x := Xa;
while x <= Xb do begin y := k * x;
writeln('|', x:9:2,' |', y:9:2,' |');
x := x + Hx;
end;
writeln(' —————————');
end.

y = k⋅x

Xb



Xa


Слайд 72Луковкин С.Б. МГТУ.
Цикл с постусловием Repeat ….. Until …
program

square_root;
var A, eps, Xp, X : real;
begin
writeln('Введите аргумент и точность : ');
readln(A, eps);
If ((A <0) or (eps < 0)) then Halt(100);
X := A/2; { начальное приближение. Его лучше вводить.}
repeat Xp := X;
X := (Xp + A/ Xp) / 2;
until abs(X – Xp) < eps;
writeln('Корень из ', А:6:3, ' с точноcтью ', eps:7:5,
'равен ', X :9:5);
end.

Слайд 73Луковкин С.Б. МГТУ.
Лекция 6. Типы данных, определяемые программистом.


Слайд 74Луковкин С.Б. МГТУ.
Как происходит описание типов в программе?
type
имя_типа = описание_типа
...
var


имя_переменной : имя_типа

ИЛИ

var
имя_переменной : описание_типа


Слайд 75Луковкин С.Б. МГТУ.
Простые типы данных, определяемые программистом
ЭТО:
Перечисляемый тип
Тип-диапазон (интервальный

тип)

Слайд 76Луковкин С.Б. МГТУ.
Перечисляемый тип данных
type
Имя_типа = (список имен констант);
type
Colors

= (Black, Blue, Green, Cyan, Red, Magenta, Brown);

var m, n : Colors;

m := Blue; n := m;

Пояснение: ord(Green)=2; m:=Red; n:= succ(Magenta);



Слайд 77Луковкин С.Б. МГТУ.
Интервальный тип данных (тип-диапазон)
Type Hour =

0 .. 23; Min = 0..59;
Cent_20 = 1901 .. 2000;
Range = -100 .. 100;
Letters = ’a’ .. ’z’;
Degree = 0 .. 360;

var r : -100 .. 100; или
var r : Range;
Var x:Letters; …
Write(High(x),Low(x));

Type имя_типа = Const_1 .. Const_2



Слайд 78Луковкин С.Б. МГТУ.
Массивы
Массив - упорядоченная совокупность однотипных элементов, рассматриваемая как единое

целое.
Доступ к элементу массива осуществляется указанием его индекса.

ОПИСАНИЕ типа Массив:

Type имя_типа_массива = array [тип_индексов]
of тип_элементов массива

Замечания:
Тип_индексов – любой порядковый тип (кроме LongInt)
Обычно это тип – диапазон;



Слайд 79Луковкин С.Б. МГТУ.
Примеры описания массивов (одномерные массивы)
type mas = array [1 .. 7]

of real;
Color = array [byte] of mas;
A = array [1..10] of boolean;

Const n=50;
const K : mas = (1, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2);
var с : mas;
a, b : array [1 .. n] of integer;
Y: array [char] of byte;
M:array[2..5] of string [4] ;

M[2]:=‘Неуд’; M[3]:=‘Удов’; M[4]:=‘Хор’; M[5]:=‘Отл’;


Слайд 80Луковкин С.Б. МГТУ.
Двумерные массивы
a33
a32
a31
a23
a22
a21
a13
a12
a11
Var a : Array [1..3, 1..3]

of Real;
или
Type Mtr = Array [1..3, 1..3] of Real;

Var U, W, Q : Mtr;

Квадратная матрица
a [3x3]

Расположение элементов двумерного массива в памяти:

Первая строка

Вторая строка

Третья строка


Слайд 81Луковкин С.Б. МГТУ.
Инициализация 2D-массивов
Type mas2=array[1..3, 1..4] of integer;

const B: mas2 =

( ( 2, 3, 1, 0),
( 1, 9, 1, 3),
( 3, 5, 7, 0) );

Const m =4; n=5;
Var a:array[1..m, 1..n] of real;


for i := 1 to m do
for j := 1 to n do read (a[i, j]);


Слайд 82Луковкин С.Б. МГТУ.
Поиск максимального элемента массива и его номера
Program Max_E;

{ поиск макс.элемента и его номера }
const n = 10;
var a : array [1 .. n] of real;
i ,im : integer;
max : Real;
begin
writeln('Введите ', n, ' элементов массива');
for i := 1 to n do read(a[i]);
max := a[1];
im := 1;
for i := 2 to n do
if a[i] > max then begin max := a[i]; im:=i end;
writeln('Максимальный элемент: ', max:6:2, ‘ его номер=‘, im:3)
end.





Слайд 83Луковкин С.Б. МГТУ.
ПРИМЕР: Количество отрицательных элементов массива и сумма всех элементов.
Program

Summa_Elem;
const n = 10;
var sum:real; a : array [1 .. n] of real;
i, num : integer;
begin
writeln('Введите ', n, ' элементов массива');
for i := 1 to n do read(a[i]);

sum := 0;
num := 0;
for i := 1 to n do begin
if a[i] < 0 then inc(num);
sum := sum + a[i];
end;

writeln('Отрицательных элементов: ', num);
writeln('Сумма элементов: ', sum:10:3);
end.


Слайд 84Луковкин С.Б. МГТУ.
Вычисление значения кусочно-непрерывной функции (вариант 20).


Слайд 85Луковкин С.Б. МГТУ.
Схема решения задачи (вариант 20).
1) На отрезке [-4; 0)

уравнение прямой y(x) = (-1/2)x;

2) На отрезке [0;2) часть окружности с центром в точке
(0; 2) и радиусом R:
x2 + (y-2)2 = R2, где R=2.
Выразим y через x: (y-2)2 = 4-x2; y-2 = ±(4-x2)(1/2)
Выбираем знак «-». Это нижняя часть окружности:
y = 2-(4-x2)1/2;
3) На отрезке [2; 4) часть окружности с центром (2; 0):
Её уравнение : (x-2)2 + y2 = 4 ; y= ± (4 - (x-2)2 )1/2
Выбираем «+»: …y = +(4 - (x - 2)2 )1/2
4) На отрезке [4; 5] уравнение прямой y= -(x-4), или
y = -x+4


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика