ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.01.2024
Просмотров: 90
Скачиваний: 1
СОДЕРЖАНИЕ
Алгоритм – это последовательность понятных предписаний исполните-лю, приводящая к решению задачи.
Формальный исполнитель – исполнитель, не выходящий за пределы предписаний алгоритма.
Этапы решения задач на компьютере
Тело брошено вертикально вверх с начальной скоростью с некоторой высоты.
Определить его местонахождение и скорость в заданный момент времени.
g – ускорение свободного падения (g=9,81 м/с2)
Надо: V – скорость в данный момент времени
H – высоту в данный момент времени
II этап Создание математической модели
III этап Создание алгоритма решения и способа записи (блок-схема)
Языки программирования и их классификация
Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.
Разновидности транслятора – компилятор и интерпретатор.
Program pr_1;{заголовок программы}
Uses Crt; {модуль подключения очистки экрана}
Var V0, H0, t, g, V, H: real; {раздел описания переменных}
Write(‘введите начальные скорость,
Выражения записываются в одну строку, без надстрочных и подстрочных записей.
Составные типы по определенным правилам строятся из простых.
<переменная>:=<переменная>|<константа>|<выражение>
a:=b; {переменной a присвоить значение переменной b}
Рекомендуется оператор ввода использовать в сочетании с оператором вывода
Тип «массив» относится к группе структурных (составных) типов.
Массив описывается в разделе var с использованием конструкции:
array [n..m] of type; где вместо type должен быть указан общий для всех элементов тип.
mouths : array [1..12] of byte;
Ссылка на 4-ый элемент массива имеет вид: mouths[4]
Возможности модуля GraphABC – анимация без мерцания
Действия с точками и прямоугольниками
SetPixel(x,y,color: integer); Закрашивает один пиксел с координатами (x,y) цветом color.
Рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).
Рисует окружность с центром в точке (x,y) и радиусом r.
Ellipse(x1,y1,x2,y2: integer);
Rectangle(x1,y1,x2,y2: integer);
Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).
RoundRect(x1,y1,x2,y2,w,h: integer);
Стандартные цвета задаются символическими константами:
Алгоритмы и исполнители
Определение
Алгоритм – это последовательность понятных предписаний исполните-лю, приводящая к решению задачи.
Примеры алгоритмов:
Рецепт, инструкция, технологическая карта, руководство пользователю, программа развития…, программа курса информатики, и т.д.
Свойства алгоритма
- Понятность
- Точность
- Дискретность(последовательность)
- Массовость (универсальность)
- Результативность (конечность)
Исполнитель
Исполнитель алгоритма – это устройство, приспособление, робот, организация, человек и т.п., способное выполнять определенные действия.
Формальный исполнитель – исполнитель, не выходящий за пределы предписаний алгоритма.
Этапы решения задач на компьютере
- Постановка задачи
- Создание математической (информационной) модели задачи
- Создание алгоритма решения и способа записи
- Словесная форма записи (произвольная)
- Графическая (блок-схема)
- Перевод алгоритма на язык ЭВМ (составление программы)
- Отладка и контрольный запуск программы
- Анализ полученных результатов
- Отладка программы и корректировка (возврат к пп. 1-5)
- Запуск программы и ввод исходных данных конкретной задачи
Пример
Тело брошено вертикально вверх с начальной скоростью с некоторой высоты.
Определить его местонахождение и скорость в заданный момент времени.
I этап Постановка задачи
Дано: V0 –начальная скорость
H0 –начальная высота
g – ускорение свободного падения (g=9,81 м/с2)
t – время
Надо: V – скорость в данный момент времени
H – высоту в данный момент времени
- Тело мало по сравнению с Землей, поэтому считаем материальной точкой
- Скорость бросания мала, поэтому:
- Ускорение свободного падения считать постоянной величиной
- Сопротивлением воздуха можно пренебречь
II этап Создание математической модели
Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (V0), начальной высоте (H0) и ускорении свободного падения (g) зависимость скорости (V) и высоты (H) от времени (t) можно описать следующими мате-матическими формулами:V= V0- g* t, H= H0+ V* t -
III этап Создание алгоритма решения и способа записи (блок-схема)
начало
Ввод данных
V0, H0, t
V= V0- g* t
Y= H0+ V* t -
Вывод V и H
конец
IV этап Написание программы
Basic | Pascal |
CLS INPUT”введите начальные скорость, высоту и время”; V0, H0,t g=9.81 V= V0- g* t H= H0+ V* t - g*t^2/2 PRINT”скорость=”;V PRINT”высота=”;H END | Program pr_1; Uses Crt; Var V0, H0, t, g, V, H: real; Begin Clrscr; Write(‘введите начальные скорость, высоту и время’); Readln(V0, H0, t); g:=9.81; V:= V0- g* t; H:= H0+ V* t - g*sqr(t)/2; Writeln(‘скорость=’,V); Writeln(‘высота=’,H); Readln; End. |
Языки программирования и их классификация
Программа (program, routine) – упорядоченная последовательность команд (операторов, инструкций) компьютера для решения задачи.
Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.
Языки программирования
Языки низкого уровня
ACCEMBLER
Языки высокого уровня
Узкопрофессиональные
FORTRAN, COBOL
Процедурные
FORTRAN, COBOL, ALGOL, BASIC, PASCAL, C
Универсальные
ALGOL, BASIC, PASCAL, C, PROLOG, DELPHI
Объектно-ориентированные PROLOG, DELPHI, VISUAL BASIC,
- компилятор
- интерпретатор
Разновидности транслятора – компилятор и интерпретатор.
Язык программирования Паскаль
Алфавит языка Pascal
- 26 букв латинского алфавита
- 10 арабских цифр
- 4 знака арифметических операций: +; -; *; /
- 6 знаков отношений: =; >; <; <>;>=; <=
- Специальные символы и знаки: ;; :; ‘; (; ); {; }; #; &; _ и т.д.
- 33 буквы русского алфавита.
Синтаксис языка Pascal
Служебное слово – набор латинских букв, имеющий единственный смысл и единственную форму написания. (например: PROGRAM, BEGIN, VAR, …). Используется для написания операторов.
Идентификатор – набор латинских букв, цифр, символов, начинающийся с буквы и, не включающий в себя служебное слово. (например: Max_elem, k1[1], …). Используется для обозначения величин, меток.
Структура программы:
Program pr_1;
Begin
End.
Раздел описаний
Тело программы
Структура программы:
Program pr_1;{заголовок программы}
Uses Crt; {модуль подключения очистки экрана}
Var V0, H0, t, g, V, H: real; {раздел описания переменных}
Begin {начало программы}
Clrscr; {очистка экрана}
Write(‘введите начальные скорость,
высоту и время’);
Readln (V0, H0, t);
g:=9.81;
V:= V0- g* t;
H:= H0+ V* t - g*sqr(t)/2;
Writeln(‘скорость=’,V);
Writeln(‘высота=’,H);
Readln; {задержка}
End. {конец программы}
Тело
программы
Правила записи выражений
Выражения записываются в одну строку, без надстрочных и подстрочных записей.
= 1/x
= SQR(a)
= a1
= SQRT(x)
Операторы языка Pascal
Простые (линейные)
Составные (с условием)
Операторы: присваивания, ввода, вывода, графики
Развилка
Цикл
Операторы: ветвления, выбора, условного перехода (обхода)
Операторы: цикла с предусловием, цикла с постусловием, цикла с параметром
Система типов языка Паскаль.
Скалярные типы
Паскаль имеет развитую и изощренную систему типов. На основе небольшого числа стандартных типов программист может конструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи.
Все имеющиеся в Паскале типы принято делить на группы. Типы, принадлежащие одной группе, имеют определенное сходство. Выделяют простые, составные, ссылочные и процедурные типы, которые в свою очередь еще подразделяются:
Классификация типов
1. Простые типы:
скалярные:
- целые;
- вещественные;
- символьные;
- булевский (логический) тип;
- Ссылочные типы;
- Процедурные типы.
перечислимые;
ограниченные;
2. Составные типы:
регулярные (массивы);
комбинированные (записи);
файловые;
множественные;
строковые;
объекты;
Составные типы по определенным правилам строятся из простых.
Ссылочные типы образуются из любых других типов. Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из простых.
Первичными в иерархии типов являются скалярные типы, представляющие традиционные в языках программирования множества значений (целые, вещественные, символьные, булевские) и их модификации, учитывающие архитектурные особенности аппаратуры. Название | Идентификатор | Множество допустимых значений | Размер памяти |
Целые типы | |||
Короткий целый | Shortint | -128...127 | 1 байт |
Байтовый | Byte | 0…255 | 1 байт |
Слово | Word | 0…65 535 | 2 байта |
Целый | Integer | -32 768…32 767 | 2 байта |
Длинный целый | Longint | -2147483648 ..2147483647 | 4 байта |
Вещественные типы | |||
Вещественный | Real | -1,7*1038.. -2,9*1 039, 2,9*1039.. 1,7*1038 | 6 байт |
С одинарной точностью | Single | -3,4*1038.. -1,5*1045, 1,5*1045..3,4*1038 | 4 байт |
С двойной точностью | Double | -1,7*10308*..-5,0*10-324.. 5,0*10-324.. 1,7*10308 | 8 байт |
С повышенной точностью | Extended | -1,1*104932..-1,9*104951, 1,9*104951.. 1,1*104932 | 10 байт |
Сложный | Comp | -263+1…263-1 | 8 байт |
Операторы языка Pascal
Простые (линейные)
Составные (с условием)
Операторы: присваивания, ввода, вывода, графики
Развилка
Цикл
Операторы: ветвления, выбора, условного перехода (обхода)
Операторы: цикла с предусловием, цикла с постусловием, цикла с параметром
Оператор присваивания
<переменная>:=<переменная>|<константа>|<выражение>
Например:
a:=b; {переменной a присвоить значение переменной b}
A:=15;
B:=‘Информатика’;
C:=true;
D:=a+12;
Оператор вывода
WRITE;
WRITELN;
Например:
WRITE (a,b);
WRITELN(a);
WRITELN(‘Информатика’);
WRITELN(‘a=‘, a);
Оператор ввода
READ;
READLN;
Например:
READ (a,b);
READLN(a);
Рекомендуется оператор ввода использовать в сочетании с оператором вывода
WRITE(‘Введите Ваше имя’);
READLN(NAME);
Операторы языка Pascal
Простые (линейные)
Составные (с условием)
Операторы: присваивания, ввода, вывода, графики
Развилка
Цикл
Операторы: ветвления, выбора, условного перехода (обхода)
Операторы: цикла с предусловием, цикла с постусловием, цикла с параметром
Оператор ветвления
IF <условие> THEN <группа операторов 1> ELSE <группа операторов 2>;
Если условие выполняется товыполняется группа операторов 1
иначе выполняется группа операторов 2
Пример:
Program pr_2; {заголовок программы}
Uses Crt; {модуль подключения очистки
экрана}
Var t: real; {раздел описания переменных}
Begin {начало программы}
Clrscr; {очистка экрана}
Write(‘введите температуру воздуха’); {комментарий ввода}
Readln (t); {вводится значение температуры}
If t<=15 Then Writeln(‘сегодня холодно’)
Else Writeln(‘сегодня тепло’);
End. {конец программы}
<условие>
<Группа1>
<Группа2>
Блок-схема
Полная форма
да
нет
IF <условие> THEN <группа операторов 1> ELSE <группа операторов 2>;
<условие>
<Группа1>
Блок-схема
Сокращённая форма
да
нет
IF <условие> THEN <группа операторов 1>;
Условие
Простое
Составное
A=B
X>1
(x>1) and (x<5)
(x<1) or (x>5)
Операторы цикла
1. Оператор цикла с параметром
FOR P:=Pнач. TO Pкон. DO <тело цикла>;
Где P - параметр цикла (изменяемая переменная),
Pнач - начальное значение параметра цикла,
Pкон - конечное значение параметра цикла.
Тело цикла – группа операторов, выполнение которых необходимо выполнить до достижения Ркон .
ДЛЯ P от Pнач. ДO Pкон. ВЫПОЛНИТЬ <тело цикла>;
Операторы цикла
1. Если Pнач больше чем Pкон
FOR P:=Pнач. DOWNTO Pкон. DO <тело цикла>;
При этом шаг изменения -1
P, Pнач , Pкон
Тело цикла
Блок-схема оператора цикла с параметром
Пример 1: вывести на экран 2005 раз фразу «С Новым Годом!»
Program pr_3; {заголовок программы}
Uses Crt; {модуль подключения очистки экрана}
Var n : integer; {переменная которая изменяется от 1 до
2005}
Begin {начало программы}
Clrscr; {очистка экрана}
For n:=1 To 2005 Do Writeln(‘С Новым Годом!’);
End. {конец программы}
Пример 2: Вычислить сумму натуральных чисел от 1 до 50.
Определим переменные:
i – переменная, являющаяся счетчиком (номером) очередного натурального числа,
S – сумма, которая вычисляется по закону РЕКУРСИИ. (S:=S+ очередное слагаемое).
Program pr_4;
Uses Crt;
Var i, S : integer;
Begin
Clrscr;
S:=0;
For i:=1 To 50 Do S:=S+i;