Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 5 лет назад пользователемОльга Михопарова
1 Программный принцип работы компьютера Компьютер – как исполнитель команд. Языки программирования Умение решать задачи такое же практическое искусство, как умение плавать или бегать на лыжах. Ему можно научиться только путем подражания или упражнения. американский математик. Дьердъ Пойа
2 Фронтальный опрос 1. Этапы решения задачи на ЭВМ? Этапы решения задачи на ЭВМ? Этапы решения задачи на ЭВМ? 2. Что такое алгоритм? 3. Какие типы структур алгоритмов вы знаете? Какие типы структур алгоритмов вы знаете? Какие типы структур алгоритмов вы знаете? 4. В каких формах записи может быть представлен алгоритм? 5. Какай алгоритм называется линейным?
3 Программа это алгоритм, записанный на языке понятном компьютеру на языке программирования. Языком программирования называют систему обозначений, служащую в целях точного описания алгоритмов для выполнения на ЭВМ. Оператор – команда действий, которые необходимо выполнить для реализации алгоритма Основные понятия
4 Языки программирования. История появления языка программирования QBasic. Beginner's All-purpose Symbolic Instruction Code (Всецелевой язык программирования для начинающих) (1964 г.) Ада Лавлейс (1815 – 1852) Язык Паскаль был создан Никлаусом Виртом Никлаусом Виртом в г.
5 Структура программы на языке Pascal BEGIN ОБРАЩЕНИЕ К МОДУЛЯМ Graph CRT DOS Заголовок программы Обращение к модулям Раздел описаний Раздел операторов END РАЗДЕЛ ОПИСАНИЯ Меток Констант Типов Переменных Подпрограмм Предложений
6 Заголовок Program ; Program pascal1(input,output); Раздел описания модулей Uses Crt, Graph{ABC}; Label 3, 471, 29, Quit; Const pi = 3.14; e = 2.7; разделе описания переменных Var имя: тип var p,q,r: Integer; A,B: Char; F1,F2: Boolean;
7 Типы данных составные ссылочные ординарные диапазонные предописанные Целые Integer Символьные Char Логические Boolean Простые типы перечисляемые Массив Array Файловые File Процедурные Procedure Fuction Записные Record Множественные Set вещественные Real
8 Целые типы Shortint ( , 1 байт), Integer ( , 2 байта), Longint ( , 4 байта), Byte ( , 1 байт), Word ( , 2 байта).
9 Вещественные типы Real (занимает 6 байт, диапазон от 2.9E-39 до 1.7E+38 по модулю, точность значащих цифр) Single (занимает 4 байта, диапазон от 1.5E- 45 до 3.4E+38 по модулю, точность 7-8 значащих цифр) Double (занимает 8 байт, диапазон от 5.0Е- 324 до 1.7Е+308 по модулю, точность значащих цифр) Extended (занимает 10 байт, диапазон от 3.4E-4932 до 1.1E+4932 по модулю, точность значащих цифр). Comp (занимает 8 байт, диапазон от -9.2E-18 до 9.2E+18, хранятся точно, поскольку это целые числа)
10 Лексическая структура языка Лексемы – специальные символы, слова, идентификаторы имени, числа, символы строки, метки. Латинские буквы A-Z, a-z Специальные символы (знаки операций, пунктуации, зарезервированные слова): + - * /., : ; = <> = :=.. () { } (* *) [ ] ^ _ & пробел Цифры, только арабские 0…9 Не различают прописные и строчные буквы Зарезервированные слова: AND ARRAY BEGIN CASE CONST DIV DO DOWNTO ELSE END FILE FOR FORWARD FUNCTION GET IF IN LABEL MOD NIL NOT OF ON PACKED PROCEDURE PROGRAM RECORD REPEAT SET STRING THEN TO TYPE UNITL VAR WHILE WITH и т.д.
11 Операции и выражения Выражением называют числовую или строковую константу, переменную или по определенным правилам записанную комбинацию констант, переменных и функций, соединенных знаками операций и скобками, определяющими последовательность выполнения этих операций. Под переменной в языках программирования понимают программный объект (число, слово, часть слова, несколько слов, символы), имеющий имя и значение, которое может быть получено и изменено программой. Примеры А, m, А1, Sum и т.д.
12 Арифметические операции Операция ОбозначениеПример Результат Сложение+2+57 Вычитание Умножение*3*412 Деление/ 15/3 15/ Целочисленно е деление \, DIV15\43 Возведение в степень ^ a b =Exp(b*Ln(Abs(а)) 2^3= 2*2*2 3 -1/2 = Exp(b*Ln(Abs(a )) 8 Остаток от деления MOD13 MOD 53
13 Математические функции действиеQBasic Pascal Примечание КореньSQR(X)SQRT(X) аргумент положительное число Модуль числаABS(X) СинусSIN(X) аргументом служит радианная мера угла КосинусCOS(X) ТангенсTAN(X) SIN(X)/COS(X) Целая часть числаINT(X) Натуральный логарифм LOG(X)LN(x) x>o Арктангенс хATN ( x )ARСTАN ( x ) Экспонента хEXP ( x ) Генерация случайных чисел в диапазоне 0…1 RND[(x)]x := random Определение знака числа х SGN (x) Квадрат числа х х^2 SQR(X)
14 Выражения в Паскале Выражение – совокупность операндов и операций. Операнды – константы, переменные, функции. Арифметические операции – бинарные операции + - * /, (* - умножение / - деление) унарные операции + и -. бинарные операции div и mod определены только для целых чисел, переменных типа integer. div – деление нацело 5 div 2 = 2 mod – остаток от деления 43 mod 10 = 3
15 Приоритет операций Приоритет - порядок выполнения операций в выражении. Операции, имеющие одинаковый приоритет, выполняются слева направо. Для изменения порядка операций используют скобки (), скобки обладают наивысшим приоритетом. Таблица приоритетов операций вычисление функций 0 not 1 (высший) *, /, div, mod, and, 2 +, -, or, xor 3 =, <>,, =, in 4 (низший)
16 Правила записи выражений Все записи в одну строку. Знаки умножения опускать нельзя. Главный критерий правильности записи выражения - совпадение порядка выполнения операций с принятым в математике.
17 Арифметические выражения Какие из приведенных выражений правильно записаны на языке ПАСКАЛЬ? 1 (A+B+C)/2 2 A^ 2C 3 SIN(X+2)*2 4 2COS(A+2)-A 5 X^.Y+Z (X+Y*3.2-A)B 7 X+Y/(Z*Z) 8 X*X+Y*Y=R*R 9 SQRT(A*2+B*B)
18 Запишите выражения на языке программирования:
19 Операции отношения Операции отношения производят сравнение двух величин. Результат сравнения может быть истиной 1 (TRUE) или ложью 0(FALSE). Логическое умножение Запись операции: X AND Y. Логическое сложение Запись операции: X OR Y. Логическое отрицание Запись операции: NOT X. Знак логическо го соотношения Проверяемое отношение Пример выражен ия =равно = b не равно >< b <меньшеaбольшеа> b <=меньше или равно a<=b >=больше или равно a>=b
20 Язык программирования Pascal Линейные программы Операторы ввода, вывода, присваивания
21 Оператор присваивания := Выполняет изменение значения переменной Синтаксис := ; Семантика Вычисляется в правой части, Результат записывается в. Ограничение. Тип выражения должен быть совместим по присваиванию с переменной. Например: Одинаковые типы совместимы. Выражение типа integer можно присвоить переменной типа real. Обратное неверно. Пример a := (3 + 5) * 8; b := a + 2;
22 Оператор присваивания Какое значение получит переменная Y после выполнения следующей программы? Х:= 5; A:= 2; В:= -1; У:= A*X+B; 9
23 Оператор присваивания Какое значение получит переменная Y после выполнения следующей программы? А:=12; В:=14; А:=10; В:=В+5; У:=А+В; END. 29
24 Оператор присваивания Какое значение получит переменная X после выполнения следующей программы? A:= 3; B:= 4; A:=(A+B)/2+A*2; X:=SQRT(A+B*B-0.5); END. 5
25 Оператор присваивания Какое значение получит переменная S после выполнения программы? A:=5; B:=6; S:=A*B; A:=-1; B:=3; S:=S+A*B 27
26 Алиса спрашивает у кролика: - Куда мне надо идти? Мудрый кролик ей отвечает. - Все зависит от того, куда Вам надо прийти"
27 Оператор присваивания Среди приведенных выражений указать правильные операторы присваивания 1 X:=X+5 5 X+2:=Y 2 Y:=7 6 K+5:=X+Y 3 WRITE(C=,C:6:2) 7 WRITE(A+B) 4 Z:=SQR(Z)+5.3*X 8 X:=X*X+A*X+B
28 Операторы и процедуры ввода read, readln Синтаксис read( ); readln( ); - вызывает переход к следующей строке. Семантика Происходит считывание данных с клавиатуры и запись их в переменные из по порядку. Примеры: read (a,b); readln (x,y,z);
29 Вывод write, writeln Вывод в окно вывода Синтаксис: Write [ writeln ]( ); Семантика: 1. Вычисление значений выражений. 2. Вывод значений. Процедура writeln после вывода своих параметров осуществляет переход на следующую строку. Пустой writeln вызывает пропуск строки. Пример:
30 Вывод write writeln. Форматы вывода. В процедурах вывода write и writeln можно указать формат вывода, в виде :m:n, где m и n - целые значения.. :m - ширина поля вывода. :n - количество знаков после десятичной точки Если длина выводимого значения меньше ширины поля вывода, то выводимый текст слева дополняется пробелами. Выравнивание по правому краю. Если длина выводимого значения больше ширины поля вывода, то формат игнорируется. Значения с форматом вывода вида :m будут представлены в экспоненциальной форме. Например, если a, b - целые, то при выполнении операторов a:=-2437; b:=13555; writeln(a:6,'Привет!':9); writeln(b:1); в окно вывода : Привет! Например: writeln( :10:3); // ___ writeln( :10:5); // _ writeln( :10:2); // ____ writeln( :10:0); // _______-15 writeln( :10:7); // writeln((0,1):10:1); // _(0.0,1.0) (здесь символом _ изображены пробелы).
31 Примеры использования := Program swap1; var x, y,v: integer; begin read(x,y); writeln(x=,x, ' y=', y); v := x; x := y; y := v; writeln(x=,x, ' y=', y); end. Program swap2; var x, y: integer; begin read(x, y); writeln(x=,x, ' y=', y); x := x + y; y := x - y; x := x - y; writeln(x=,x, ' y=', y); end. Пример 1. Перемена местами двух целых значений. Дано: x, y;
32 Задания на линейные алгоритмы Разработать математическую модель. Составить блок-схему алгоритма и тест. Написать программу на языке Pascal. Задача 1. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c, периметр P и площадь S. Задача 2. Найти длину окружности L и площадь круга S заданного радиуса R.(L=2πR; S= πR 2 ; считать, что π=3,14). Задача 3. Скорость первого автомобиля V1 км/ч, второго V2 км /ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга. Задача 4. Найти расстояние между двумя точками с заданными координатами (x 1, y 1 ) и (x 2, y 2 ) на плоскости. Расстояние вычисляется по формуле Задача 5. Даны координаты трех вершин треугольника: (x1, y1),(x2, y2), (x3, y3). Найти его периметр P и площадь S. Для нахождения площади треугольника со сторонами a, b, c использовать формулу Герона 73. Написать программу, которая преобразует введенное с клавиатуры дробное число в денежный формат. Например, число 12.5 должно быть преобразовано к виду 12 руб. 50 коп.
33 Операции div и mod mod ВНИМАНИЕ!!! Операции div и mod определены только для данных типа integer Целочисленное деление x div y = x / y, округленное до ближайшего целого по направлению к нулю. Остаток от целочисленного деления x mod y = x - (x div y) * y. Пример использования 1. Для определения четности числа: x mod 2 = 0 x четное x mod 2 <> 0 x нечетное 2. Для операций с цифрами числа Сумма цифр целого трехзначного числа А. s:=a div 100+a mod 100 div 10 +a mod 10;
34 Задачи div и mod
35 Оператор write, writeln 1 write (' A=',A:5:2) 5 write(x:6:3,f:7:4) 2 write(a,b,c) 6 write(s,d) 3 writeln 7 write(s=, s:6:3,,w=,w:8:4) 4 write ( x=', x: 10:5) 8 write(sqrt(25)+5) 1. Какие из операторов вывода, приведенные в таблице, выводят только значения переменных? 2. Какие из приведенных операторов вывода выводят имена переменных и их значения? 3. Какой оператор определяет пропуск строки?
36 Структура линейных алгоритмов и программ Начало Ввод данных Действие 1 Действие N Действие 2 … Вывод данных конец Оператор комментарий Begin Оператор ввода данных с клавиатуры Read[Ln] Оператор присваивания « := » Оператор вывода данных Write[Ln] Оператор завершения программы END.
37 Написать программу для вычисления значения функции, для разных значений х PROGRAM PR1(Input,Output); VAR y: REAL; X: INTEGER; BEGIN READLN(x); y:=cos(sqr(x))+sqr(x); WRITELN(y); END.
38 Написать программу для вычисления значения функции, для разных значений х REM PR1(Input,Output) INPUT Введите значение х;x y:=cos(x^2)+ x^2; PRINT y=;y END
39 Полное решение program pr2; var a, b, c: integer; begin writeln('Введите два целых числа'); read ( a, b ); c := a + b; writeln ( a, '+', b, '=', c ); end. Результат: Введите два целых числа =55 это выводит компьютер это вводит пользователь
40 Пример 2: Составить алгоритм и программу вычисления длины окружности и площади круга по данному радиусу Начало Ввод r = 3,14 L=2 r S= r 2 Вывод L,S конец REM Вычисление длины окружности и площади круга INPUT "Введите радиус ", r PI = 3.14 L = 2 * PI * r S= PI * r ^2 PRINT "Длина окружности равна: ", L PRINT "Площадь равна: ", s END Алгоритм Программа
41 Пример 3: Написать программу, запрашивающую высоту дома в метрах, ускорение свободного падения и вычисляющая время падения кирпича с крыши этого дома Начало Ввод h g = 9,8 t= Вывод t конец REM Время падения кирпича с крыши INPUT "Введите высоту дома h=", h g = 9.8 T=SQR(2* h / g) вычисление времени PRINT время падения кирпича с крыши дома высотой h = ; h; метров; t=; t ; метров END
42 Пример 3: Составить алгоритм и программу запрашивающую у клиента курс доллара на сегодняшний день, затем имеющую у него рублевую сумму и рассчитать сколько долларов вы ему обменяете на рубли REM Обмен доллара INPUT "Введите курс доллара ", d INPUT "Введите количество рублей ", P Kd = P\d PRINT На ;P;рублей можно обменять; Kd;долларов США с курсом доллара;d;рублей за доллар END Начало Ввод d Kd=P\d Вывод P,d,Kd конец Ввод P АЛГОРИТМПРОГРАММА
43 Составление программ разветвляющейся структуры. Операторы ветвления ТЕМА
44 Условный оператор в ПАСКАЛЕ if then begin {что делать, если условие верно} end else begin {что делать, если условие неверно} end; Особенности: перед else НЕ ставится точка с запятой вторая часть ( else …) может отсутствовать (неполная форма) если в блоке один оператор, можно убрать слова begin и end
45 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения: надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого. Особенность: действия исполнителя зависят от некоторых условий (если … иначе …). Алгоритмы, в которых последовательность шагов зависит от выполнения некоторых условий, называются разветвляющимися.
46 Вариант 1. Блок-схема начало max:= a; ввод a,b вывод max a > b? max:= b; конец да нет полная форма ветвления блок "решение" Если a = b? ?
47 Вариант 1. Программа program maximum; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); if a > b then begin end else begin end; writeln ('Наибольшее число ', max); end. max := a ; max := b ; полная форма условного оператора
48 Вариант 2. Блок-схема неполная форма ветвления начало max:= a; ввод a,b вывод max max:= b; конец да нет b > a?
49 Вариант 2. Программа program qq; var a, b, max: integer; begin writeln('Введите два целых числа'); read ( a, b ); max := a; if b > a then writeln ('Наибольшее число ', max); end. max := b ; неполная форма условного оператора
50 Оператор Выбора Case Program dni_nedeli; Var n: byte; Begin Readln(n); Case n of 1: writeln(понедельник ); 2: writeln(вторник ); 3: writeln(среда ); 4: writeln(четверг ); 5: writeln(пятница ); 6: writeln(суббота ); 7: writeln(воскресенье); else writeln(дня недели с номером, n,нет); end; end. case селектор of значение 1: оператор 1; значение 2: оператор 2; значение 3: оператор 3;... Else операторN end;
51 ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ. ТЕМА ЦИКЛИЧЕСКИЕ ОПЕРАТОРЫ
52 Цикл с известным числом повторений FOR или цикл с параметром форма записи: FOR = ТО [STEP ] NEXT. Здесь: FOR (Для), TO (до), STEP (шаг), NEXT (следующий) ключевые слова;
53 Циклы Цикл – это многократное выполнение одинаковой последовательности действий. цикл с известным числом шагов цикл с неизвестным числом шагов (цикл с условием) Задача. Вывести на экран квадраты и кубы целых чисел от 1 до 8 (от a до b ). Особенность: одинаковые действия выполняются 8 раз. Можно ли решить известными методами? ?
54 Алгоритм с условием начало i, i2, i3 конец нет да i <= 8? i := 1; i := i + 1; i2 := i * i; i3 := i2 * i; задать начальное значение переменной цикла проверить, все ли сделали вычисляем квадрат и куб вывод результата перейти к следующему i
55 Алгоритм (с блоком "цикл") начало i, i2, i3 конец i2 := i * i; i3 := i2 * i; i := 1,(1)8 блок "цикл" тело цикла
56 Программа program stepen; var i, i2, i3: integer; begin for i:=1 to 8 do begin i2 := i*i; i3 := i2*i; writeln(i:4, i2:4, i3:4); end; end.
57 Пример 1. В простую переменную с клавиатуры последовательно ввести N чисел и посчитать их сумму. 'Определение суммы чисел последовательности CLS INPUT "Сколько чисел в последовательности";N S = О FOR I = 1 ТО N STEP 1 INPUT "Очередное число ="; X S = S + X NEXT I PRINT "Сумма равна"; S END
58 Пример 2: Вычислить сумму двухзначных натуральных чисел REM Вычислить сумму двухзначных натуральных чисел FOR I=10 TO 99 s=s+I NEXT PRINT "Результат = ",s END
59 Пример 3: вычислить факториал числа а (записывается так: а!). REM Вычислить факториал числа a=5 f=1 FOR I=1 TO a f=f*I NEXT PRINT f END Факториал - это произведение чисел от 1 до а. Например, 5! (факториал пяти) - это 5!=1*2*3*4*5
60 Этапы решения задач на ЭВМ 1. Постановка задачи; 2. Математическая постановка задачи; 3. Выбор метода решения задачи; 4. Алгоритмизация; 5. Составление программы; 6. Тестирование и отладка программы; 7. Анализ полученных результатов. 8. Документирование
61 Структурные виды алгоритмов Линейный Разветвляющий ся Циклический
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.