Строгая последовательность команд, выполнение которых приводит к решению поставленной задачи Алгоритм (программа) Объект способный понять и выполнить.

Презентация:



Advertisements
Похожие презентации
ОБЩИЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ ПАСКАЛЬ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Advertisements

Урок 6 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Арифметические выражения. Выражение - это формальное правило для вычисления некоторого значения. В зависимости от типа значения выражения можно разделить.
Урок 3 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Тема урока Переменная. Тип данных. Ввод и вывод данных.
Знакомство с языком Паскаль Структура программы Ветвление на Паскале Циклические программы Пример линейной программы Пример программы с ветвлением Пример.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Оператор цикла с предусловием. Оператор цикла с предусловием используется в тех случаях, когда заранее неизвестно число повторений цикла. Форма записи.
класс-ПОВТОРЕНИЕ ОСНОВНЫХ ПОНЯТИЙ ТЕМЫ « ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ » 8 КЛАСС.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Циклы на языке Pascal повторение. Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать.
1 Программирование на языке Паскаль Тема 1. Введение.
10 класс Урок 55.. Выражения и операции Любое выражение имеет определенный тип и после вычисления возвращает некоторое значение. Простейшими.
Тема: « Линейные вычислительные алгоритмы. ». Язык Паскаль был разработан в 1970г. Никласом Виртом как язык обучения студентов программированию. Паскаль.
Программирование Задания В2, В5. Оператор присваивания в языке программирования Задание В2 – базовый уровень, время – 2 мин.
Основы языка Данные, Переменная, Константа Типы данных Оператор присваивания Оператор read, write Оператор if Оператор цикла Паскаль.
Урок информатики 9 физико-математический класс.
Алгоритмы и алгоритмизацияАлгоритмы и алгоритмизация.
Тема 1. Введение 1.
Транксрипт:

Строгая последовательность команд, выполнение которых приводит к решению поставленной задачи Алгоритм (программа) Объект способный понять и выполнить алгоритм (программу) Исполнитель Обстановка (совокупность условий) в которой исполнитель может исполнить алгоритм (программу) Среда обитания исполнителя Набор действий (команд) которые исполнитель понимает и может исполнить Система команд исполнителя Наука о методах и приемах составления алгоритмов и написания программ Алгоритмизация (программирование)

Способы записи алгоритмов Словесный 1. Вскипятить воду 2. Забросить пельмени 3. Посолить по вкусу 4. Подождать пока пельмени всплывут 5. Варить еще 5 минут 6. Выключить и слить воду 7. Разложить по тарелкам. 8. Добавить сметану Графический (блок-схема) Программный program integer25; var K, d : integer; begin write(Введите число'); readln(K); d := (K+3) mod 7; writeln(Результат: ', d); end.

Блок-схема Блок начала и конца алгоритма. Этим блоком начинается и заканчивается программа Блок ввода-вывода. Используется когда в алгоритм вносятся необходимая информация и выводится результат работы Командный блок. В данном блоке записывается одна команда. В алгоритме может быть несколько команд Блок проверки условия. Используется в алгоритмах с ветвлением и в алгоритмах с циклами. Начало/Конец Ввод/вывод данных Команда (оператор) Проверка условия Алгоритм приготовления чая Алгоритм нахождения значения x: 5x+6=16

Линейный С ветвлением (разветвляющийся) С циклом (циклический) Каждая команда алгоритма выполняется один раз в строгой последовательности друг за другом В зависимости от условия выполняется либо один набор команд, либо другой набор команд В зависимости от условия данный набор команд повторяется пока условие истинно Виды алгоритмов

Язык программирования Pascal Швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования Ведущий разработчик языков Паскаль, Модула-2, Оберон Лауреат премии Тьюринга 1984 года Никлаус Вирт (1934)

PascalABC Закладки с текстами программ Текст программы Область вывода данных Область ввода данных

Структура программы на зыке Pascal program имя программы; раздел подключения модулей раздел описаний begin операторы; end. Латинскими символами, не должно начинаться с цифры и содержать знаков пробел Правильно: My_Programm5 Неправильно: 5 Моя программа Латинскими символами, не должно начинаться с цифры и содержать знаков пробел Правильно: My_Programm5 Неправильно: 5 Моя программа Разделы для подготовки к написанию программы Операторы программы (конструкции, команды, вызовы и т.д.) для решения поставленной задачи Все операторы должны заканчиваться ; Операторы программы (конструкции, команды, вызовы и т.д.) для решения поставленной задачи Все операторы должны заканчиваться ;

Типы данных Числовые типы Тип Название типа Диапазон значений byte беззнаковый целый word беззнаковый целый Integer целый real вещественный char символьныйсимвол в кодировке Windows string строковыйстрока не более 255 символов boolean логическийTrue (истина) или False (Ложь)

Описание переменных Переменная – область памяти, куда записываются и хранятся данные во время выполнения программы Требования к имени переменной как и к имени программы, причем имена переменных должны быть уникальными – не совпадать между собой и именем программы. В разделе описаний: var имя переменной,…, имя переменной : тип; Пример: var a, b, c : byte; summa : real;

Ввод данных Ввод данных предназначен для записи начальных значений в переменные, на основании которых будут производиться последующие вычисления. В теле программы: Read( имя переменной,…, имя переменной ); ReadLn( имя переменной,…, имя переменной ); Пример: ReadLn(alpha, beta); Read(x1);

Вывод данных Вывод данных предназначен для отображения полученного результата при решении задачи. В теле программы: Write( имя переменной,…, имя переменной ); WriteLn( имя переменной,…, имя переменной ); Пример: WriteLn(x1, x2, x3); Write (summa);

Оператор присваивания имя переменной := выражение ; Результат выражения записывается в переменную, имя которой находится слева от знака присваивания. Пример: a := 5+2; b := alpha+3; s := 3.14*R*R; Неправильно: a + b := 5*(c+2); 2*rad := 120; Важно: при последующих присвоениях переменной – старое значение заменяется на новое Пример: a := 5; a := a + 5; 5 10

Арифметические операции и выражения Арифметическое выражение –имеет числовой тип. Выражение состоит из операндов с использованием операций, скобок, вызовов функций и т.д. Операции: + сложение - разность * умножение / деление Пример: Математическая записьНа языке Pascal a x 1 2 +x 2 2 a/(x1*x1+x2*x2) a 3 +b 2 -4c xy+3c 2 (a*a*a+b*b-4*c)/(x*y+3*c*c)

Стандартные математические функции ФункцияОписание abs(x)Возвращает модуль числа x sqr(x)Возвращает квадрат числа x sqrt(x)Возвращает квадратный корень числа x sin(x)Возвращает синус числа x cos(x)Возвращает косинус числа x power(x, y)Возвращает число x в степени y round(x)Возвращает результат округления числа x до ближайшего целого trunc(x)Возвращает целую часть x frac(x)Возвращает дробную часть x random(x)Возвращает случайное целое число в диапозоне от 0 до x-1 randomВозвращает случайное вещественное число в диапазоне от [0 до 1) A div BЦелочисленное деление (сколько полных раз В содержится в А). A mod BОстаток от целочисленного деления. Пример: x := 3.14; a := sin(x); b := cos(x) + x mod a; gamma := random(10)-a/b; y := (sin(gamma) + cos(gamma))/sqrt(abs(x); Нельзя использовать имена функций в именах переменных. Неправильно: abs := round(10.2); power := sqrt(abs(x-10));

Этапы написания программы Для решения задачи сначала необходимо составить модель решения. Например: с клавиатуры вводятся значения сторон прямоугольника, найти и вывести значение площади Объявление переменных 1 1 program example; var x, y, S : real; Ввод начальных данных для дальнейшей обработки 2 2 begin ReadLn(x); ReadLn(y); Обработка начальных данных 3 3 S := x*y; Вывод результата 4 4 WriteLn(S); end.

«Красивый» ввод-вывод Для более понятийной работы программы следует включать комментарии для объяснения работы программы. Комментарии выводятся с помощью команды Write ( WriteLn )и. WriteLn(комментарий); Пример: program example; var x, y, S : real; begin write(Введите первую сторону ); readln(x); write(Введите вторую сторону ); readln(y); S := x*y; writeln(Площадь, S); end.

Простые и составные условия. Логические операции Условие – логическое выражение. Условие всегда принимает только одно из двух логических значений – TRUE (истина) или FALSE (ложь). Операции: < меньше > больше = больше или равно = равно не равно not отрицание условия and логическое сложение or логическое умножение Пример: 5 > 2 true 5 5 false x+y > 0 зависит от суммы var flag : boolean; … begin … flag := x > sqrt(y);

Составные (сложные) условия. Сложное условие состоит из нескольких простых объединенных логическими операциями And и Or. Пример: (x > 0) or (y >0)(x mod 2 > 0) and (a*b > 0) Пусть сложное условие состоит из двух простых, обозначим первое A и второе B, 1 – True, 0 – False. ABA and BA or B

Нахождение значений сложных условий Для нахождения значения сложного условия сначала нужно найти значение каждого простого в его составе, а затем при помощи таблицы истинности найти значение самого условия. (7 > 5) or (8 8 ) 1 01 or (x>0) or (y>0)(a 5) Примеры образования условий по контексту задачи: Точка A(x,y) находиться в IV полуплоскости- (x > 0) and (y < 0) Сумма двух чисел не отрицательна - (A+B>0) or (A+B=0) Квадрат со стороной a вмещается в прямоугольник со сторонами x и y- (a < x) and (a < y)

Условный оператор Условный оператор – конструкция обеспечивающая разветвление программы, т.е. выполнение одной из двух последовательностей команд в зависимости от условия. Есть дождь Взять зонт да Не брать зонт нет Горит свет Выключить да нет Полная форма Краткая форма

Условный оператор Условие Набор операторов 1 да Набор операторов 2 нет Полная форма if условие then begin оператор ; … ; оператор end else begin оператор ; … ; оператор end; Условие Набор операторов да нет Краткая форма if условие then begin оператор ; … ; оператор end; Если условие истинно то выполняются операторы из then в противном (когда условие ложно) выполняются команды else

Условный оператор Пример: с клавиатуры вводятся два числа, вывести вначале наибольшее, а затем наименьшее. program if8; var x, y : integer; begin write(Введите первое число: '); readln(x); write(Введите первое число: '); readln(y); if x > y then begin writeln(x, ', y) end else begin writeln(y, ', x) end; end.

Операторы цикла Оператор цикла(цикл) – конструкция обеспечивающая повторное выполнение команд, до тех пор по некоторое условие истинно. Каждый шаг выполнение цикла – итерация. Различают три цикла: - цикл с параметром for (рабата цикла продолжается пока параметр цикла не пройдет все значения от начального до конечного); - цикл с предусловием while (работа цикла продолжается пока логическое условие истинно); - цикл с постусловием repeat (работа цикла продолжается пока логическое условие ложно);

Оператор цикл For Для записи используется следующая конструкция: for параметр := начальное значение to конечное значение do begin оператор ; … ; оператор end ; или for параметр := начальное значение downto конечное значение do begin оператор ; … ; оператор end ; Важно что бы в цикле с to начальное значение было меньше конечного, в цикле с downto наоборот. Параметром цикла обязательно должна быть переменная целого типа. Начальным и конечным значениями параметра могут являться как целые числа так и целые переменные.

Оператор цикл For параметр := начальное значение; конечное значение Набор операторов Пример: N := 10; for i := 3 to N do begin a := 2*3.14*i; writeln(a); end; На первом шаге параметр принимает начальное значение После чего идет выполнение операторов в теле цикла На следующем шаге параметр увеличивается на единицу и опять выполняется тело цикла. Работа цикла прекращается когда на последнем шаге параметр принимает конечное значение

Оператор цикл For Пример: с клавиатуры вводятся число N (N>0), найти сумму 1+1/2+1/3+…1/(N-1)+1/N. program For10; var i, N : integer; S : real; begin write(Введите N (N > 0): '); readln(N); S := 0; for i := 1 to N do begin S := S + 1/i; end; writeln(Сумма: ', S) end. Нарастающая сумма i=1: S=0+1/1=1 i=2: S=1+1/2=1.5 i=3: S=1.5+1/3=1.83 … i=1: S=0+1/1=1 i=2: S=1+1/2=1.5 i=3: S=1.5+1/3=1.83 …

Оператор цикл While Для записи используется следующая конструкция: while условие do begin оператор ; … ; оператор end ; Тело цикла while работает пока условие в его составе принимаем истинное значение. На каждом шаге цикла проходит проверка условия и если оно стало ложно – цикл прекращает работу. Условие Набор операторов да нет Работа цикла зависит от значения условия. Если условие истинное, то выполняется тело цикла. И обратно идет возврат к проверке условия На каком-то шаге условие становится ложным и происходит выход из цикла

Оператор цикл While Пример: с клавиатуры вводятся положительные числа A и B (A>B), на отрезке длиной A размещено максимально возможное количество отрезков длины B, не использую операции * и /, найти длину незанятой части отрезка A: program While1; var A, B, d : integer; begin write(Введите B (B > 0): '); readln(B); write(' Введите A (A > B): '); readln(A); d := A; while d >= B do begin d := d - B end; writeln(Остаток: ', d); end. Важно: В любой программе использующей цикл while необходимо избегать случая зацикливания, т.е. такой ситуации когда условие цикла постоянно истинное, и не может поменять свое значение

Массивы Массив – набор элементов одного типа, каждый из которых имеет свой номер – индекс. Объявление массива: var имя массива : array [ индекс1.. индекс2 ] of тип ; Пример: var A, B : array[1..10] of byte; Matrix : array[0..20] of real; Десять элементов с индексами от 1 до 10 Двадцать один элемент с индексами от 0 до 20

Массивы Графически массив можно представить в виде таблицы, каждая ячейка которой имеет свой номер. var M : array[1..5] of real; M Запись значения элемента массива : имя массива [ индекс ] := выражение ; Пример: M[1] := 2; M[2] := sin(3.14); M[3] := (M[1]+M[2]) mod 2; M

Ввод – вывод элементов массива var i : integer; M : array[1..5] of real; … begin … //ввод значений массива с клавиатуры for i := 1 to 5 do begin readln(M[i]); end; //вывод значений массива на экран for i := 1 to 5 do begin writeln(M[i]); end;

Использование массивов Пример: найти среднее арифметическое и геометрическое элементов массива случайных вещественных чисел, размер массива вводится с клавиатуры, размер не больше 10: program Array10; var i, N : integer; Arr : array [1..10] of real; S, P : real; begin write(Введите N '); readln(N); for i := 1 to N do begin Arr[i] := random; end; for i := 1 to N do begin S := S + Arr[i]; P := P * Arr[i]; end; writeln(Арифметическое ', S/N); writeln(Геометрическое ', sqrt(P)); end. Ввод N - размера массива Заполнение массива до N случайными числами при помощи функции random Вычисление S – суммы всех значений массива и P – произведения всех элементов массива Вывод результата

Поиск элементов массива по заданным свойствам параметр := начальный индекс; конечный индекс элемент массива подходит по свойству Набор операторов 1 да Набор операторов 2 нет Пример: заполнить массив десятью случайными целыми числами не белее 100. Вывести те элементы массива и их индексы, которые меньше некоторого целого числа N: program ArrayIF; var i, N : integer; M : array [1..10] of integer; begin for i := 1 to 10 do begin ReadLn(M[i]); end; ReadLn(N); for i := 1 to 10 do begin if M[i]< N then writeln(i,' ',M[i]) end; end.

Символьные и строковые величины Символьные переменные задаются с помощью типа данных Char (символ в кодировке Windows). Строковые переменные задаются с помощью типа данных String (строка длиной не более 255 символов). Пример: var a, b, bukva : char; str, l1, l2 : string; begin … a := A; bukva := S; str := Hello;

Строковые переменные Строковые переменные можно представить в виде массива, где значение с индексом 0 – длина строки. Пример: var str : string; begin str := World Wide Web; … Str WorldWideWeb Длина строки

Стандартные функции работы со строками ФункцияОписание length(s)Возвращает целое число – длину строки s copy(s,i,k)Возвращает часть строки s, длиной k начиная с позиции i delete(s,i,k)Удаляет в строке s k символов начиная с позиции i insert(s1,s2,i)Вставляет подстроку s1 в строку s2 с позиции i pos(s1,s2)Возвращает позицию подстроки s1 в строке s2 (или 0 если нет) setlength(s,n)Устанавливает длину строки s равной n concat(s1,...,sn)Возвращает строку-результат слияния строк s1,...,sn (длина

Алгоритмы работы со строками Пример: с клавиатуры вводятся две строки и целое число N, вырезать из первой строки часть от символа с номером N до конца и к оставшейся части присоединить вторую строку. program Str10; var s1, s2 : string; N, l : integer; begin write(Первая строка: '); readln(s1); write(Вторая строка: '); readln(s2); write(Число N: '); readln(N); l := length(s1); delete(s1,N,l); insert(s2,s1,N); writeln(s1); end. Ввод первой строки Ввод второй строки Ввод номера символа Длина строки Удаление части строки Присоединение второй строки к оставшейся первой