Домой / Скайп / Скачать презентацию паскаль. Основы программирования на паскале. Вычисление натурального логарифма

Скачать презентацию паскаль. Основы программирования на паскале. Вычисление натурального логарифма

Тема урока: «Циклы (повтор) в программах»

1)Повторить и закрепить знания составления линейных, разветвляющихся программ; 2)Научиться составлять программы, используя циклический оператор – FOR i:=1 TO n DO Begin операторы(тело цикла) end ; 3)Применять операторы в решении типовых задач. Цель урока:

Вставьте пропущенное: Program Sql; Var A,B,C,D, XI, Х2: ??? ; Begin Writeln ("Введите коэффициенты квадратного уравнения ’); Readln (???); D:=B*B-4*A*C; If D

Вопросы группе: 1)В чем отличие программ с ветвлением от линейных? 2)С помощью каких операторов осуществляется выбор в программах? 3) begin….end – Что это? Каковы правила использования в программе?

1)Операторы Ввода/вывода; 2)Операторы выбора; 3) а:=а+3 – что произойдет? 4)Перечислить типы данных; 5)Убрать лишнее AND,OR,END, NOT,IF ; 6) ; - что обозначает? 7) Как обозначается конец программы? 8) Перечислить арифметические операции. 9) Чему равно 120 mod 65 = ? 10) Операторы цикла.

Расставьте соответственно: 1. Read 2. End 3. Begin 4. Integer 5. ; 6. If .. Then 7. := 8. Ввод 9. Конец 10. Целые 11. Прис- воить 12. Следу-ющее действие 13.Начало 14.Если..то

Действительно ли результат а меньше 3 ? a:= 7 b:= - 10 a:=a*(- 7) b:=159 a:=b+a

Найдите 5 ошибок в программе: Program krug ; VAR Pi, r, S: real; Pi:=3.14, WRITELN(‘vvedite radiuc r=’), READ(r); S=Pi *r*r; WRITELN(‘Ploshad kruga S= ’, S) end

Program krug ; VAR Pi, r, S: real; begin Pi:=3.14 , WRITELN(‘vvedite radiuc r=’) , READ(r); S: =Pi *r*r; WRITELN(‘Ploshad kruga S= ’, S) end .

Задача №1 Дано целое N , определить является ли оно четным или нечетным. 2, 4, 6, …- четные, т.к. делятся без остатка на 2(N mod 2 =0) 1, 3, 7, … - нечетные, т.к. делятся на 2 с остатком 1(N mod 2 =1)

Алгоритм Алгоритм Chislo ; перем N: целые; начало Вывод(‘vvedite chislo’) ; Ввод (N) ; ЕСЛИ N mod 2 =0 Т O Вывод(N,‘- chetnoe‘); ЕСЛИ N mod 2 =1 Т O Вывод(N,‘- nechetnoe‘); конец.

Задача № 2 Дано целое двузначное число N (DE), где D – количество десятков, Е – единиц. Определить будет ли сумма цифр этого числа равна 10. Пример: у 28-ми сумма S =2+8=10 – будет, а у 27-ми S=2+7=9 не будет Будем считать десятки: D= N div 10 , а единицы: E= N mod 10

Алгоритм Алгоритм Chislo ; перем N,E,D,S: целые; начало Вывод(‘vvedite chislo’) ; Ввод (N) ; E:=N mod 10; D:=N div 10; S:=E+D; ЕСЛИ S = 10 Т O Вывод(‘summa= 10’) Иначе (‘summa10‘); конец.

Определение: Программы в которых многократно повторяются однотипные действия – циклические программы (с повтором).

Задача: Дано 100 натуральных чисел от 1 до 100 (1,2,3, … 99,100) Посчитать их сумму и вывести в переменную S.

Алгоритм сумма; Перем i,S: целые; Начало S:=0; Для i:=1 до 100 повторять Начало S:= S + i тело Конец; цикла Вывод (S) Конец.

Program summa; VAR i , S: integer; Begin S:=0; FOR i:=1 TO 100 DO begin S:=S+i тело end; цикла WRITE(S) end.

Program summa; VAR i , S: integer; Begin S:=0; FOR i:=1 TO 100 DO begin S:=S+i ; тело WRITE(‘S’, i, ’=‘, s) цикла end; end.

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

ALT + F9 - исправление ошибок CTRL + F9 – запуск программы ALT + F5 – просмотр результата

Задача: 1)Вывести столбец таблицы умножения любого целого числа N на числа от 1 до 10. Пример: N =5, то столбец будет такой- 1*5=5 2*5=10 3*5=15 i * N = P, где i изменяется от …… .. 1…10 10*5=50

Домашнее задание: прокомментировать программу для задачи «Про столбец таблицы умножения»

СПАСИБО ЗА ВНИМАНИЕ!

Николаус Вирт Но думать, что Паскаль - язык исключительно для обучения, было бы неверно. Вот что говорил об этом Н. Вирт (1984 г.): « Утверждалось, что Паскаль был разработан в качестве языка для обучения. Хотя это утверждение справедливо, но его использование при обучении не являлось единственной целью. На самом деле я не верю в успешность применения во время обучения таких инструментов и методик, которые нельзя использовать при решении каких - то практических задач ». * *


Язык программирования Pascal С тех пор Паскаль становился всё более и более популярным, причем не только, как язык для обучения принципам программирования, но и как средство создания достаточно сложного программного обеспечения. В своем первоначальном виде Паскаль имел довольно ограниченные возможности, но расширенный вариант этого языка – Turbo Pascal является мощным языком программирования.


Почему PASCAL? Язык программирования Pascal был назван в честь французского учёного Блеза Паскаля, который еще в 1642 г. изобрел первую механическую счётную машину. Она представляла собой систему взаимодействующих зубчатых колёсиков, каждое из которых соответствовало одному разряду десятичного числа и содержало цифры от 0 до 9. Когда колёсико совершало полный оборот, следующее сдвигалось на одну цифру. Машина Паскаля была суммирующей машиной.


Основные сведения о языках программирования Язык – система знаков. Язык ЭВМ (машинный язык) – двоичная знаковая система. Поэтому, чтобы компьютер мог понять написанную программу, она должна быть переведена на язык, понятный компьютеру. Этот процесс перевода называется трансляцией.




Интегрированная среда Turbo Pascal-7.0 Огромную роль в массовом распространении Паскаля сыграла компания Borland International. Она сумела создать знаменитую Turbo- среду разработки. Это был огромный шаг вперед в облегчении процесса программирования. Почему Turbo? Turbo в переводе с английского сленга означает ускорение. Компилятор, входящий в состав Turbo Pascal очень быстро переводит программу с языка программирования в машинные коды.




Основные средства языка Символы языка - это элементарные знаки, используемые при составлении текстов. Алфавит языка - набор таких символов. Алфавит языка Turbo Pascal 7.0 включает: все латинские прописные и строчные буквы арабские цифры (0 – 9) символы + - * / =,. ; : _ () { } и др. служебные (зарезервированные) слова


Для записи команд, имен функций, поясняющих терминов Turbo Pascal 7.0 существует набор строго определенных слов, которые называются служебными или зарезервированными (это английские мнемонические сокращения). Служебные слова делятся на три группы: операторы (READ, WRITELN и др.) имена функций (SIN, COS и др.) ключевые слова (VAR, BEGIN, END и др.) Основные средства языка


Именем величины называется её обозначение, это слово из букв, цифр и знаков подчёркивания, начинающееся с буквы. Числа: целые, вещественные: с фиксированной точкой (-1.23; 654.2), с плавающей точкой (2, 437,). Шесть операций: + сложение, - вычитание, / деление, * умножение, mod нахождение остатка, div деление нацело.


Арифметическое выражение конструируется из имён, чисел, знаков арифметических действий, математических функций. Для указания порядка действий используются только круглые скобки. Для возведения в квадрат используется обозначение sqr(х). Для извлечения квадратного корня используется обозначение sqrt(х). Модуль обозначается abs(х).


Оператор присваивания Имя переменной:= арифметическое выражение. х:= 3.24 или х:= х+4. Тип переменной 1.Если переменная слева вещественного типа, то арифметическое выражение может быть как целого, так и вещественного типа. 2.Если переменная слева целого типа, то арифметическое выражение только целочисленное.


Структура программы в Паскале 1 часть – описание данных и операторов. 2 часть – программный блок. Общий вид программы: Program (имя программы) label (список меток) const (список постоянных значений) type (описания сложных типов данных) var (описания данных программы) begin (начало программного блока) (алгоритм) end. (конец программы)


Имя программы: не более 8 знаков, начинается с буквы. end c точкой. Описательная часть состоит из 4 разделов: меток, констант, имён и типов переменных. var имя и тип переменной: integer (целый), real (вещественный). Например: var i, j: integer; x: real; Описание каждого типа заканчивается точкой с запятой. Программный блок содержит операторы, описывающие алгоритм решения задачи.


Операторы ввода и вывода: read (список имён) – останавливает работу программы и ждёт, пока пользователь наберёт на клавиатуре числа (через пробел) и нажмёт ENTER. Например: read (i, j); После работы этого оператора курсор располагается за последним числом но не переводится на новую строку. Для перевода курсора на новую строку после ввода данных надо использовать оператор readln(список имён). write (список вывода) – выводит данные на экран. Список вывода - перечисленные через запятую имена результатов вычисления и пояснительные тексты в апострофах. Например: write(х=, х); На экране напечатается число с фиксированной точкой. Например: write(х=, х:6:2); на экране будет выдано число из 6 знаков из них два после запятой, (х =). Перевод курсора на новую строку осуществляется оператором пустого вывода writeln. Оператор пустого ввода readln






Работа в системе Турбо Паскаль Alt + F10 – меню File – New – создать новый файл Enter – следует поставить в конце каждой строки Сtrl + Y – удалить строку Enter – вставить строку Для выполнения программы надо в меню выбрать Run Транслятор – переводит программу с языка Паскаль на машинный язык и ищет синтаксические ошибки. 1.Если ошибки найдены, то произойдёт возврат в редактор, курсор укажет на ошибку. 2.Если ошибки не найдены, программа выполняется










Иногда после слов THEN и ELSE надо выполнить не один, а несколько операторов. Тогда эти операторы заключаются в операторные скобки. Открывающая скобка – слово BEGIN, закрывающая скобка – слово END. Перед словом ELSE точка с запятой не ставится. Рекомендуется каждую пару BEGIN – END записывать в одном столбце. IF условие THEN begin оператор 1; оператор 2; оператор N end ELSE begin оператор 1; оператор 2; оператор M end ;




Program E3; var a,b: integer; begin write (введите два целых числа через пробел, затем нажмите); readln (a,b); if a mod 2 = 0 then writeln (а – чётное) else writeln (а – нечётное); if b mod 2 = 0 then writeln (b – чётное) else writeln (b – нечётное); readln end.


3, если a>0 6, если a 0 6, если a 0 6, если a 0 6, если a0 6, если a title="3, если a>0 6, если a


Program E31; var a,y: real; begin write (введите число затем нажмите); readln (a); if a >0 then y:=3 else y:=6; write (y=,y); readln end. 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end."> 0 then y:=3 else y:=6; write (y=,y); readln end." title="Program E31; var a,y: real; begin write (введите число затем нажмите); readln (a); if a >0 then y:=3 else y:=6; write (y=,y); readln end."> title="Program E31; var a,y: real; begin write (введите число затем нажмите); readln (a); if a >0 then y:=3 else y:=6; write (y=,y); readln end.">


A+b, если a>b a*b, если a b a*b, если a b a*b, если a b a*b, если ab a*b, если a title="a+b, если a>b a*b, если a


Program E32; var a,b,x: real; begin write (введите два числа через пробел затем нажмите); readln (a); if a >b then x:=a+b else x:=a*b; write (x=,x); readln end. b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end."> b then x:=a+b else x:=a*b; write (x=,x); readln end." title="Program E32; var a,b,x: real; begin write (введите два числа через пробел затем нажмите); readln (a); if a >b then x:=a+b else x:=a*b; write (x=,x); readln end."> title="Program E32; var a,b,x: real; begin write (введите два числа через пробел затем нажмите); readln (a); if a >b then x:=a+b else x:=a*b; write (x=,x); readln end.">




Организация циклов Повторяющиеся действия в программировании называются циклом Оператор безусловного перехода goto n, n - целое число (не более 4-х символов), метка. Метка повторяется 3 раза: 1.В разделе Label; 2.В операторе goto; 3.Перед оператором на который осуществляется безусловный переход.


Организация циклов с помощью операторов условного и безусловного переходов. Задача. Найти сумму первых двадцати чисел. (1+2+3….+20). а ……………20 S ………….


Алгоритм Евклида: будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равными. Например: Исходные 1 шаг 2 шаг 3 шаг а= 25 b= НОД(а,b)=5


Program E5; var а, b: integer; begin write (НОД=,а); readln; end. write (Введите два натуральных числа через пробел); readln (a,b); while ab do if a>b then a:=a-b else b:=b-a; b then a:=a-b else b:=b-a;"> b then a:=a-b else b:=b-a;"> b then a:=a-b else b:=b-a;" title="Program E5; var а, b: integer; begin write (НОД=,а); readln; end. write (Введите два натуральных числа через пробел); readln (a,b); while ab do if a>b then a:=a-b else b:=b-a;"> title="Program E5; var а, b: integer; begin write (НОД=,а); readln; end. write (Введите два натуральных числа через пробел); readln (a,b); while ab do if a>b then a:=a-b else b:=b-a;">




B then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);" title="Program E6; var а, b: integer; begin write (НОD=,а); readln; end. repeat until a=b; if a>b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);" class="link_thumb"> 40 Program E6; var а, b: integer; begin write (НОD=,а); readln; end. repeat until a=b; if a>b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b); b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);"> b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);"> b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);" title="Program E6; var а, b: integer; begin write (НОD=,а); readln; end. repeat until a=b; if a>b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);"> title="Program E6; var а, b: integer; begin write (НОD=,а); readln; end. repeat until a=b; if a>b then a:=a-b; if b>a then b:=b-a write (Введите два натуральных числа через пробел); readln (a,b);">




Программирование на языке Паскаль Алгоритм и его свойства

Что такое алгоритм? 3 Мухаммед ал-Хорезми (ок. 783–ок. 850 гг.)Алгоритм - это точное описание порядка действий, которые должен выполнить исполнитель для решения задачи за конечное время. Исполнитель – это устройство или одушёвленное существо (человек), способное понять и выполнить команды, составляющие алгоритм. Формальные исполнители: не понимают (и не могут понять) смысл команд (одну и ту же команду всегда выполняют одинаково).

Свойства алгоритма 4 Дискретность - алгоритм состоит из отдельных команд, каждая из которых выполняется за конечное время. Детерминированность (определённость) - при каждом запуске алгоритма с одними и теми же исходными данными получается один и тот же результат. Понятность - алгоритм содержит только команды, входящие в систему команд исполнителя. Конечность (результативность) - для корректного набора данных алгоритм должен завершаться через конечное время. Корректность - для допустимых исходных данных алгоритм должен приводить к правильному результату.

Как работает алгоритм? 5 дискретный объект 1 2 3 4 алгоритм шаг 1 шаг 2 шаг 32 3 4 5 5 4 3 2 дискретный объект 25 16 9 4 получает на вход дискретный объект в результате строит другой дискретный объект (или выдаёт сообщение об ошибке) обрабатывает объект по шагам на каждом шаге получается новый дискретный объект

Способы записи алгоритмов 6 естественный язык псевдокод установить соединение пока не принята команда «стоп» принять команду выполнить команду завершить сеанс связи установить соединение нц принять команду выполнить команду кц_при команда = ‘stop’ завершить сеанс связи

Способы записи алгоритмов 7 блок-схема set. Connection; repeat cmd: = get. Command; execute. Command(cmd); until cmd = «stop»; close. Connection; программа принять командуустановить соединение завершить соединение выполнить команду «стоп» ? данет

9 Программа – это алгоритм, записанный на каком-либо языке программирования набор команд для компьютера Команда – это описание действий, которые должен выполнить компьютер. откуда взять исходные данные? что нужно с ними сделать? 1970 – язык Паскаль (Н. Вирт)Оператор – это команда языка программирования высокого уровня.

Простейшая программа 10 Program { название программы } ; begin { начало программы } { тело программы } end. { конец программы } комментарии в скобках {} не обрабатываются Что делает эта программа? ? название алгоритма

Вывод на экран 11 program z 1; begin write(‘2+’); { без перехода } write ln (‘2=? ‘); { на новую строку } write ln (‘ Ответ: 4’); end. Протокол: 2+2=? Ответ:

Вывод на экран 12 write({ список вывода }); { без перехода } write ln ({ список вывода }); { на новую строку } Список вывода: 1. Значение арифметиче ского выражения. 2. Список переменных через запятую. 3. Текст в апострофах. Примеры: write(SQRT (58) / 0. 5); writeln(a, b, c); writeln(‘ Чётное ‘);

Вывод данных 13 { вывод значения переменной a} { вывод значения переменной a и переход на новую строку } { вывод текста и значения переменной c}write(a); write ln (a); writeln(‘ Привет! ‘); writeln(‘ Ответ: ‘ , c); writeln (a, ‘+’ , b, ‘=’ , c);

Арифметические выражения 14 a: = (c + b * 5 * 3 — 1) / 2 * d; Приоритет (старшинство): 1) функция 2) скобки 3) умножение и деление 4) сложение и вычитание 213 4 5 6 d bc a

Стандартные функции 15 abs (x) - модуль sqrt (x) - квадратный корень sqr (x) - квадрат sin (x) - синус угла, заданного в радианах cos (x) - косинус угла, заданного в радианах exp (x) - экспонента е х ln (x) - натуральный логарифм trunc (x) - отсечение дробной части round (x) - округление до ближайшего целого writeln(‘x^8 ‘, exp (ln (x)*8): 0: 3);

Задания 16 « A »: Вывести на экран значение переменной V (объёма шара) , если R=5 (R- радиус). По виду: V = { значение } « B »: Вывести на экран рисунок из букв Ж ЖЖЖЖЖЖЖ HH HH ZZZZZ « C »: Вывести на экран значение переменной V (объёма куба) , если H = 7 (H – длина ребра куба) . По виду: V = { значение }

Сложение чисел 17 Задача. Ввести с клавиатуры два числа и найти их сумму. Протокол: Введите два целых числа 25 30 25+30=55 компьютер пользователь компьютер считает сам! 1. Как ввести числа в память? 2. Где хранить введенные числа? 3. Как вычислить? 4. Как вывести результат? ?

Сумма: псевдокод 18 program qq; begin { ввести два числа } { вычислить их сумму } { вывести сумму на экран } end. Псевдокод: алгоритм на русском языке с элементами Паскаля. Компьютер не может исполнить псевдокод! !

Переменные 19 Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Значение Имя Поместится? ? Другой тип данных В переменной хранятся данные определенного типа!!

Имена переменных 20 МОЖНО использовать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и строчные буквы НЕ различаются имя не может начинаться с цифры Какие имена правильные? AXby R&B 4 Wheel Вася “Pes. Barbos” TU 154 _ABBA A+

Объявление переменных 21 Типы переменных: integer { целая } real { вещественная } и другие… Объявление переменных: var a, b, c: integer ; выделение места в памяти variable – переменная тип – целые список имен переменных

Тип переменной 22 область допустимых значений допустимые операции объём памяти формат хранения данных для предотвращения случайных ошибок

Ввод значения в переменную 23 read (a); 1. Программа ждет, пока пользователь введет значение и нажмет Enter. 2. Введенное значение записывается в переменную a. ! оператор ввода

Ввод значений переменной 24 через пробел: 25 30 через Enter: 25 30 read (a, b); Ввод значений двух переменных (через пробел или Enter). a 25 b

Изменение значений переменной 25 var a, b: integer ; . . . a: = 5 ; b: = a + 2 ; a: = (a + 2)*(b – 3); b: = b + 1 ; a ? 5 5 b ? 5+27 a 5 7*428 b 7 7+

Вывод данных 26 { вывод значения переменной a} { вывод значения переменной a и переход на новую строку } { вывод текста и значения переменной c}write(a); write ln (a); writeln(‘ Привет! ‘); writeln(‘ Ответ: ‘ , c); writeln (a, ‘+’ , b, ‘=’ , c);

Сложение чисел: простое решение 27 program Sum ; var a, b, c: integer ; begin read (a, b); c: = a + b; writeln (c); end. Что плохо? ?

Сложение чисел: полное решение 28 program Sum ; var a, b, c: integer ; begin writeln(‘ Введите два целых числа ‘); read (a, b); c: = a + b; writeln (a, ‘+’ , b, ‘=’ , c); end. Протокол: Введите два целых числа 25 30 25+30=55 компьюте р пользователь

Снова про оператор вывода 29 a: = 123 ; write(a: 5); Форматный вывод: Вычисление выражений: writeln (a, ‘+’ , b, ‘=’ , a+b); a+b 123 5 знаков

Арифметические выражения 30 a: = (c + b * 5 * 3 — 1) / 2 * d; Приоритет (старшинство): 1) скобки 2) умножение и деление 3) сложение и вычитание 213 4 5 6 d bc a

Стандартные функции 31 abs (x) - модуль sqrt (x) - квадратный корень sin (x) - синус угла, заданного в радианах cos (x) - косинус угла, заданного в радианах exp (x) - экспонента е х ln (x) - натуральный логарифм trunc (x) - отсечение дробной части round (x) - округление до ближайшего целого

Программирование на языке Паскаль



В 1970 году в мире программирования произошли по крайней мере два великих события- появились операционная система UNIX и новый язык программирования, созданный профессором Никлаусом Виртом из швейцарского Федерального Технологического Института в Цюрихе. Вирт назвал его в честь великого французского математика и философа XVII века Блеза Паскаля.

Никлаус Вирт (Niklaus Wirth)

Блез Паскаль


Язык Паскаль удобен для начального обучения программированию, не только

потому, что учит как правильно написать программу, но и тому, как правильно

разрабатывать методы решения задач программирования


  • прописные и строчные буквы латинского алфавита от A до z , а также символ подчеркивания (_), который тоже считается буквой.
  • Прописные и строчные буквы взаимозаменяемы (рАвНоЗнАчНы);
  • арабские цифры 0 1 2 3 4 5 6 7 8 9 ;
  • специальные одиночные знаки: + – * / = . , : ; ^ $ # @ ;
  • специальные парные знаки: () { } ;
  • составные знаки: = .. (* *) (..) .

Структура программы

Программа на языке Паскаль состоит из:

// Заголовок (необязательная часть)


  • Описание меток;
  • Определение констант;
  • Определение типов;
  • Описание переменных;
  • Описание процедур и функций.

  • begin { начало программы }
  • { тело программы }
  • end. { конец программы }

Структура программы

Program имя программы; { заголовок программы }

Uses …; {раздел подключения модулей}

Label ; { раздел описания меток }

Const ; { раздел описания констант }

Туре ; { раздел определения типов }

Var ; { раздел описания переменных }

Function ; Procedure ; { раздел описания функций и процедур }

... { раздел операторов }


Из чего состоит программа?

Константа – постоянная величина, имеющая имя.

Переменная – изменяющаяся величина, имеющая имя (ячейка памяти).

Процедура – вспомогательный алгоритм, описывающий некоторые действия (рисование окружности).

Функция – вспомогательный алгоритм для выполнения вычислений (вычисление квадратного корня, sin ) .


Константы

i2 = 45; { целое число }

pi = 3.14; { вещественное число }

q = " Вася "; { строка символов }

L = True; { логическая величина }

целая и дробная часть отделяются точкой

можно использовать русские буквы!

может принимать два значения:

  • True (истина, «да») False (ложь, «нет»)
  • True (истина, «да»)
  • False (ложь, «нет»)

Переменные

Типы переменных:

  • integer { целая } real { вещественная } char { один символ } string { символьная строка } boolean { логическая }
  • integer { целая }
  • real { вещественная }
  • char { один символ }
  • string { символьная строка }
  • boolean { логическая }

Объявление переменных ( выделение памяти ) :

variable – переменная

тип – целые

var a, b, c: integer ;

список имен переменных


Пример программы

write(‘ Это моя первая программа ! ’);

Запустите программу на исполнение просмотрите результат.


Оператор вывода

Write(‘ текст ’); - оператор вывода текста и переменных на экран (оставляет курсор на текущей строке);

Writeln(‘ текст ’); - оператор вывода текста и переменных на экран (переносит курсор на новую строку);


Задание

  • Выведите следующий текст на экран:

Привет всем!

Я лучший программист ОСШ №3!

Обратите внимание на то, что текст выводится в две разные строчки



Вычисление математических выражений в ABC Pascal


  • Приоритет выполнения операций в ABC Pascal такой же, как и в математике.
  • Достаточно только научиться правильно записывать математические выражения на языке Pascal

Арифметические действия

Операция

Наименование

Сложение

Вычитание

Умножение

Деление (только для вещественного типа)

А div B

Вычисление целой части (неполного частного)

Вычисление остатка

Вычисли:

10 div 3 18 mod 4


Примеры

Математическая запись

Запись на языке Pascal

37(25+87,5)-17(4,6+1,9)

37*(25+87.5)-17*(4.6+1.9)

(a +2* b-3*c)/(5*a+4)

(a+b)/(a-b)+a*b/3.14

Десятичная запятая в Pascal обозначается точкой


Стандартные функции

Функция Паскаля

Математическая запись

Название

Абсолютная величина числа Х (модуль)

Возведение числа в квадрат

Экспонента

Вычисление квадратного корня

Вычисляет дробную часть числа

Округляет до ближайшего целого числа

Отсекает дробную часть

Определите результат:

Frac(16.68); Round(16.68); Trunc(16.68);


Стандартные функции

Функция Паскаля

Математическая запись

Название

Вычисление синуса

Вычисление косинуса

Целая часть числа

Вычисление натурального логарифма

Возведение числа в степень

Возвращает случайное число в диапазоне от 0 до Х

Число π


Градусы в Pascal нужно перевести в радианы

Запись на языке Pascal

Математическая запись


Операторы ЯП Pascal ABC


:= выражение; Арифметическое выражение может включать константы имена переменных знаки арифметических операций: константы имена переменных знаки арифметических операций: + - * / div mod + - * / div mod вызовы функций круглые скобки () вызовы функций круглые скобки () деление нацело умножение остаток от деления деление" width="640"

Оператор присваивания

имя переменной := выражение ;

Арифметическое выражение может включать

  • константы имена переменных знаки арифметических операций:
  • константы
  • имена переменных
  • знаки арифметических операций:

+ - * / div mod

  • + - * / div mod
  • вызовы функций круглые скобки ()
  • вызовы функций
  • круглые скобки ()

деление нацело

умножение

остаток от деления


Какие операторы неправильные?

program qq;

var a, b: integer;

x, y: real;

10 := x;

y:= 7 , 8;

b:= 2.5;

x:= 2*(a + y);

a:= b + x;

имя переменной должно быть слева от знака :=

целая и дробная часть отделяются точкой

нельзя записывать вещественное значение в целую переменную


Оператор ввода

read (a); { ввод значения переменной a}

read (a, b); { ввод значений переменных a и b}

Как вводить два числа?

через пробел:

через Enter :


Оператор вывода

write (a); { вывод значения переменной a}

write ln (a); { вывод значения переменной a и переход на новую строчку }

writeln (" Привет! "); { вывод текста }

writeln (" Ответ: ", c); { вывод текста и значения переменной c}

writeln (a, "+", b, "=", c);


Сложение двух чисел

Задача. Ввести два целых числа и вывести на экран их сумму.

Простейшее решение:

program qq;

var a, b, c: integer;

read (a, b);

c:= a + b;

writeln (c);


Полное решение

program qq;

var a, b, c: integer;

writeln(" Введите два целых числа ");

read (a, b);

c:= a + b;

writeln (a, "+", b, "=", c);

компьютер

Протокол :

Введите два целых числа

25+30=55

пользователь



ВЫЧИСЛИТЬ:

12 div 4 =

1 9 div 5 =

12 mod 3 =

1 36 mod 10 =


На Паскале

На языке математики

Модуль числа х

Возведение в квадрат числа х

Trunc(x)

е х

Round(x)

Вычисление дробной части

Корень квадратный из х

Округляет до ближайшего целого числ

Random(x)

Отсекает дробную часть

Синус х

Exp/y*ln(x))

Возвращает случайное число от 0 до х

Косинус х

[ х ]

х у

Ln x


Домашнее задание

1. Вычислить длину окружности и площадь круга по заданному радиусу

2. Вычислить периметр прямоугольного треугольника по его катетам




Условный оператор ( полная форма )

полная форма ветвления

условие

Действие1

Действие2

вывод


then begin { что делать, если условие верно } end else begin { что делать, если условие неверно } end ; Особенности: перед else НЕ ставится точка с запятой begin и end перед else НЕ ставится точка с запятой если в блоке один оператор, можно убрать слова begin и end" width="640"

Условный оператор (полная форма)

if условие then begin

{ }

else begin

{ что делать, если условие неверно }

Особенности:

  • перед else НЕ ставится точка с запятой если в блоке один оператор, можно убрать слова begin и end
  • перед else НЕ ставится точка с запятой
  • если в блоке один оператор, можно убрать слова begin и end

Условный оператор (не полная форма )

неполная форма ветвления

условие

Действие

вывод


then begin { что делать, если условие верно } end ; Особенности: если в блоке один оператор, можно убрать слова begin и end если в блоке один оператор, можно убрать слова begin и end" width="640"

Условный оператор (неполная форма)

if условие then begin

{ что делать, если условие верно }

Особенности:

  • если в блоке один оператор, можно убрать слова begin и end
  • если в блоке один оператор, можно убрать слова begin и end


Домашнее задание

  • Составьте программу, которая уменьшает первое число в пять раз, если оно больше второго.

2. Запишите программу, в которой значение переменной с вычисляется по формуле: a+b , если а нечетное и a*b , если а четное .



b then c:= a + b else c:= b – a;" width="640"

Домашнее задание

1. Написать программу решения задачи:

а). Известно значение х. Вычислить у, если

б). Даны координаты точки. Выяснить лежит ли эта точка в 3 координатной четверти?

2. Определите значение переменной c после выполнения следующего фрагмента программы:

a:= 6 ;

b:= 15 ;

a:= b – a*2;

if a b then

c:= a + b

else c:= b – a;




Цикл – это многократное выполнение одинаковой последовательности действий.

  • цикл с известным числом шагов (цикл с параметром ) цикл с неизвестным числом шагов (цикл с условием )
  • цикл с известным числом шагов (цикл с параметром )
  • цикл с неизвестным числом шагов (цикл с условием )



:= начальное значение to конечное значение do begin { тело цикла } end; Уменьшение переменной на 1 (шаг -1) : for переменная:= начальное значение downto конечное значение do begin { тело цикла } end;" width="640"

Увеличение переменной на 1 (шаг 1):

for переменная := начальное значение to

конечное значение do begin

{ тело цикла }

Уменьшение переменной на 1 (шаг -1) :

for переменная := начальное значение downto

конечное значение do begin

{ тело цикла }


Особенности:

  • integer ) to ) или -1 ( downto ) begin и end можно не писать: to ) не выполняется ни разу (
  • переменная цикла может быть только целой ( integer )
  • шаг изменения переменной цикла всегда равен 1 ( to ) или -1 ( downto )
  • если в теле цикла только один оператор, слова begin и end можно не писать:
  • если конечное значение меньше начального, цикл ( to ) не выполняется ни разу ( проверка условия в начале цикла, цикл с предусловием)

for i:= 1 to 8 do

writeln( " Привет " );


  • в теле цикла не разрешается изменять переменную цикла
  • при изменении начального и конечного значения внутри цикла количество шагов не изменится:

for i:= 1 to n do begin

writeln( " Привет " );

n:= n + 1;

нет зацикливания




do begin { тело цикла } end; Особенности: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать: while (a d o begin { тело цикла } end; while a d o a:= a + 1;" width="640"

while условие do begin

{ тело цикла }

Особенности:

  • можно использовать сложные условия: если в теле цикла только один оператор, слова begin и end можно не писать:
  • можно использовать сложные условия:
  • если в теле цикла только один оператор, слова begin и end можно не писать:

while (a d o begin

{ тело цикла }

while a d o

a:= a + 1;


b d o a:= a – b; a:= 4; b:= 6; while a d o d:= a + b;" width="640"
  • условие пересчитывается каждый раз при входе в цикл
  • если условие на входе в цикл ложно, цикл не выполняется ни разу
  • если условие никогда не станет ложным, программа зацикливается

a:= 4; b:= 6;

while a b d o

a:= a – b;

a:= 4; b:= 6;

while a d o

d:= a + b;




until условие " width="640"

Цикл с постусловием – это цикл, в котором проверка условия выполняется в конце цикла.

тело цикла

until условие


ЗАДАЧА

Найти сумму квадратов всех натуральных чисел от 1 до 100. Решим эту задачу с использованием всех трех видов циклов.


"Пока" .

Program qq;

var a, s: integer;

s:=s+a*a;

writeln(s);


100 ; writeln(s); end." width="640"

"До"

Program qq;

var a, s: integer;

s:=s+a*a;

until a 100 ;

writeln(s);


"С параметром"

Program qq;

var a, s: integer;

for a:=1 to 100 do

s:=s+a*a;

writeln (s);


Задача.

Вывести на экран квадраты и кубы целых чисел от 1 до 8.

Особенность:

одинаковые действия выполняются 8 раз.


блок «цикл»

i 1 := i * i;

i 2 := i 1 * i;

тело цикла

i, i 1 , i 2


Программа

program qq;

var i, i1, i2: integer;

for i:=1 to 8 do begin

i1:= i*i;

i2:= i1*i;

writeln(i, i1, i2);

начальное значение

переменная

конечное значение


Цикл с уменьшением переменной

Задача. Вывести на экран квадраты и кубы целых чисел от 8 до 1 (в обратном порядке).

Особенность: переменная цикла должна уменьшаться.

Решение:

for i:=8 1 do begin

i1:= i*i;

i2:= i1*i;

writeln(i, i1, i2);

down to




Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом.

Особенности:

  • все элементы имеют один тип весь массив имеет одно имя
  • все элементы имеют один тип
  • весь массив имеет одно имя
  • все элементы расположены в памяти рядом

Примеры:

  • список учеников в классе квартиры в доме школы в городе
  • список учеников в классе
  • квартиры в доме
  • школы в городе
  • данные о температуре воздуха за год

НОМЕР элемента массива

(ИНДЕКС )

массив

ЗНАЧЕНИЕ элемента массива

НОМЕР (ИНДЕКС) элемента массива: 2

ЗНАЧЕНИЕ элемента массива: 10


Объявление массивов

Зачем объявлять?

  • определить имя массива определить тип массива определить число элементов выделить место в памяти
  • определить имя массива
  • определить тип массива
  • определить число элементов
  • выделить место в памяти

Массив целых чисел:

Размер через константу:

элементов

конечный индекс

начальный индекс

var A : array[ 1 .. 5 ] of integer ;

var A: array of integer ;

const N=5;


Что неправильно?

var a: array of integer;

A := 4.5;

var a: array ["z".."a"] of integer;

A["B"] := 15;

["a".."z"]

var a: array of integer;

A := "X";


Объявление:

Ввод с клавиатуры:

Поэлементные операции:

Вывод на экран:

const N = 5;

var a: array of integer;

i: integer;

a =

a =

a =

a =

a =

for i:=1 to N do begin

write("a[", i, "]=");

read (a[i]);

Почему write ?

for i:=1 to N do a[i]:=a[i]*2;

writeln(" Массив A:");

for i:=1 to N do write(a[i]:4);

Массив A:

1 0 24 68 112 26


Задача:

1. Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива.

Пример:

Введите пять чисел:

4 15 3 10 14

среднее арифметическое 9.200

РЕШЕНИЕ:


Program qq;

var N: array of integer;

for i:=1 to 5 do begin

write ("N[",i,"]");

for i:=1 to 5 do begin

write(" среднее", k:6:2);