Лекция 1. Основные понятия. Данные. Консольное приложение (Воробьева И.А. - Информатика. Язык Паскаль), страница 4
Описание файла
Файл "Лекция 1. Основные понятия. Данные. Консольное приложение" внутри архива находится в папке "Воробьева И.А. - Информатика. Язык Паскаль". PDF-файл из архива "Воробьева И.А. - Информатика. Язык Паскаль", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Мы небудем использовать этот раздел.раздел типов type// В этом разделе определяют типы,которые не являются базовыми(предопределенными) в программе,например массивы, записи и многоедругоеРАЗДЕЛОПИСАНИЙразделконстантconstpi = 3.14;разделпеременныхvarx: real;функцииy1, y2: real;значенияFunc: real;функцииразделпроцедур ифункций// аргумент сложной// промежуточные// значение сложной// Этот раздел не имеет своегозаголовка.Здесьописываютсяподпрограммы, которые создаютсяпользователем самостоятельно1819Воробьева И.А.
«Информатика. Язык Паскаль»BEGIN// Вывод на экран заголовка иприглашения для ввода Xwriteln('Простые вычисления поформулам');writeln('Введите значение аргумента вдиапазоне от 0.1 до 0.6:');write('X = ');readln(x);клавиатурыРАЗДЕЛ ДЕЙСТВИЙ(ОПЕРАТОРОВ)Начинается с ключевого словаbegin и заканчивается словомend, после которого должнастоять точка. Разделдействий – это выполняемаячасть программы, состоящаяиз операторов.// ввод аргумента X с// Вычисление отдельных частейфункцииy1:=exp(2.2*x);y1:=sqrt(y1);y2:= sin( (pi*x)/(x+2.0/3.0) );y2:= abs(y2);// Вычисление сложной функции по еечастямFunc:= y1 - y2 + 1.7;// Вывод результата не экранwriteln;writeln( 'Значение функции = ',Func:7:3);// Задерживаем завершениепрограммы до нажатия клавишиENTERreadln;END.1920Воробьева И.А.
«Информатика. Язык Паскаль» Обязательные разделы выделены цветом таблицы и их всего два:«ЗАГОЛОВОК» и «РАЗДЕЛ ДЕЙСТВИЙ». Остальные разделы могутполностью отсутствовать. Каждая переменная должна быть описана до ее использования впрограмме и отнесена к одному и только одному типу. Названия всех разделов программы указываются только один раз.Исключение «РАЗДЕЛ ОПИСАНИЙ»: все его подразделы могутчередоваться в произвольном порядке и встречаться несколько раз(если это удобно по смыслу), главное выполнять обязательноеусловие – «никакие: тип, константа, переменная, подпрограммаНЕ ДОЛЖНЫ использоваться ДО того, как они были описаны»Приведем таблицу основных математических функций в Паскале иеще нескольких полезных функций для работы с вещественнымипеременными.ОБЫЧНАЯ ЗАПИСЬ3x|x|Sin xCos xArctg xLn xТаблица 2.2ЗАПИСЬ В ЯЗЫКЕ ПАСКАЛЬ3*x6/10Abs(x)Sin(x), x – в радианах***Cos(x), x – в радианах***Arctan(x), x – в радианах***Exp(x)Ln(x)Sqrt(x)Sqr(x)Exp((d/m)*ln(x)), для x>0Power(x,(d/m)), для x>0Подключается пакет Math в разделе usesTg xSin(x)/cos(x)Ln(x)/ln(a)Случайное целое в диапазоне от 0 доRandom(n)(n-1)***Примечание перевод градусов в(x*PI)/180, где x – величина угла врадианы, если х был задан в градусах градусах, PI – стандартная именованнаяконстанта2021Воробьева И.А.
«Информатика. Язык Паскаль»Таблица 2.3НАЗНАЧЕНИЕ ФУНКЦИИЦелая часть вещественного числаДробная часть вещественного числаОкругление значения вещественного(типа) до целого (типа)Function Round(X: Real): Longint;Усечение значения вещественного (типа)до целого (типа)ПРИМЕР РАБОТЫA := int(-9.7) -> в A -9.0A := frac(9.3) -> в A 0.3A := round(9.5) -> в A 10A := round(-9.5) -> в A -10A := round(9.4) -> в A 9A := round(-9.4) -> в A -9A := trunc(9.5) -> в A 9A := trunc(-9.5) -> в A -9Function Trunc(X: Real): Longint;Операторные скобки BEGIN … ENDКогда в программе нужно в случае ее ветвления или выполнения«тела цикла» выполнить более одной инструкции, тогда в языке Паскальприменяют «операторные скобки»:BEGIN<операция 1>;<операция 2>;…<операция N>;END;Инструкции WRITE, WRITELN – вывод на экран сообщений и значенийпеременных.write(Переменная1, Переменная2, … Переменная N);// переменные могут быть разных типов.write(‘Допущена ошибка’); // вывод сообщения2122Воробьева И.А.
«Информатика. Язык Паскаль»Пусть есть переменная Num целого типа:write(‘Допущена ошибка номер: ’, Num);значение переменной Num// вывод сообщения иВозможности форматированного выводаwrite(‘Допущена ошибка номер: ’, Num: 5); // вывод сообщения изначение переменной Num, при этом 5 означает ширину поля выводадля числа (если число занимает меньше, чем 5 позиций, оно будетдополнено пробелами слева, а если больше, то параметр простопроигнорируется)Пусть есть переменные R1 = - 0.1502 и R2 = 52.27 вещественного типа:write(‘Допущена ошибка: ’, Num, ‘ для величины R1= ’, R1: 10);// вещественная величина R1 будет выведена в экспоненциальнойформе: -1.5Е-0001.
Если ширины поля вывода не хватит длякорректного вывода, тогда число будет выведено в экспоненциальнойформе, умещающейся в 10-ти позициях, т.е. минимально возможнаякорректная запись в экспоненциальной формеwrite(‘R1= ’, R1: 11); // вещественная величина R1 будет выведенав экспоненциальной форме: -1.50Е-0001Чтобы вывести на экран R = -0.1502 и K = 52.27 надо записать команду:write(‘R = ’, R:7:4, ‘ K = ’, K:5:2);// в формате вещественныхчисел первое число означает ширину поля вывода, а второе – числознаков после запятой.
При такой форме записи основнымпараметром является число знаков после запятой, а не ширина полявывода, экспоненциальная форма не используется.Инструкция writeln отличается от write тем, что переводит курсор нановую строку. Имеет смысл инструкция writeln; без параметров – онаобеспечит вставку «пустой строки» в форматированном выводе.2223Воробьева И.А. «Информатика. Язык Паскаль»Инструции READ, READLN – ввод с клавиатуры значений переменных.read(Переменная1, Переменная2, … Переменная N);// переменные могут быть разных типов.При вводе с клавиатуры, переменные отделяются пробелом, а командадля считывания ждет нажатия ‘ENTER’.Для переменных A, C типа integer, D типа real и B типа char ввод склавиатуры выглядит так:12 -57 -0.34 Z (нажатие ‘ENTER’)Тогда после выполненияread(A, C, D, B);переменные примут значения:A=12, C= - 57, D=0.34, B=’Z' .Отличие команд READ и READLNЕсли записаны командыто ввод с клавиатурыприсвоитЕсли записаны командыто ввод с клавиатурыприсвоитread(A, B);read(C);20 672 2 (нажатие ‘ENTER’)A=20, B=672, C=2.readln(A, B);read(C);20 672 2 (нажатие ‘ENTER’)A=20, B=672,а переменная C будет ожидать нового ввода.Т.е.
команда readln отсекает все «лишние» введенные с клавиатурызначения, кроме первых двух для указанных в ней переменных A и B.2324Воробьева И.А. «Информатика. Язык Паскаль»2.2. Логический тип boolean. Логические операции. Операторветвления «IF..ELSE»Логический тип в Паскале принимает два значения:TRUE – истина, FALSE – ложь.Описание переменнойvarFlg: boolean;Flag: Boolean = FALSE;constErZ = TRUE;Описание константыОперации (пример)Flg:= ErZ AND Flag OR NOT (3 < 3.01);Таблица истинности и приоритетов операций. Таблица 2.4приоритетоперацииaTrueTrueFalseFalseвысшийbTrueFalseTrueFalseNOT aНЕ a¬aFalseFalseTrueTrue→a AND baИba˄bTrueFalseFalseFalse→a OR ba ИЛИ ba˅bTrueTrueTrueFalse→низшийa XOR bИсключающееИЛИa bTrueFalseFalseTrueоперациисравнения<, ≤, =, ≥, >,≠всегда брать вскобки(a > b) OR(c = 75)-------------запись вПаскале:«≤» : <=«≥» : >=«≠» : <>2425Воробьева И.А.
«Информатика. Язык Паскаль»Пример.2.1. Установить истинность или ложность выраженияпри.Решение.Запишем на языке Паскаль оператор присвоения дляпеременной F типа boolean:Упростим выражение справа, соблюдая все правила приоритетов:Таким образом переменная F примет значение логического выражения ибудет равна True.формальное описаниепример употребления в ПаскалеконструкцииIF <логическое значение> THENIF A = -35 THEN<операция>;Inc(A);\\ или A:= A+1;IF <логическое значение> THENIF (Flg=False) OR (A <= 7.0) THEN<операция>BEGINELSEFlg:= True;<операция>;A:= 2 * A;ENDELSEA:= 0.5 * A;IF <логическое значение> THENIF NOT Flg THENIF <логическое значение THENIF A > 5 THEN<операцияwrite(‘A больше 5’)ELSEELSE<операцияwrite(‘A меньше или равно 5’)ELSEELSEIF <логическое значение THENIF A <> 0 THEN<операция ;BEGINwrite(‘A не равно 0’);write(‘ A =’, A:3);END;2526Воробьева И.А.
«Информатика. Язык Паскаль» Число вложений «не ограничено», но не рекомендуется усложнять всетак, чтобы самому наделать кучу ошибок, запутавшись в ветвлениях. Ветви могут быть полные или «усеченные» в любых комбинациях. Внимание! В инструкции перед «ELSE» не ставят символ «;».Пример.2.2.
Установить принадлежит ли точка с координатами (x, y)закрашенной фигуре и если да, то увеличить счетчик K на единицу, иначевывести сообщение «Не принадлежит».Решение. Уравнение данной окружности:. Точки награнице фигуры будем считать попавшими в нее. Тогда программа наПаскале будет иметь следующий вид.program TwoDots;varx, y: real;flg: boolean;k: byte;// координаты точек// переменная-флаг принадлежности точки// счетчик =0, если точка не принадлежит, =1 иначе.BEGIN// ИНИЦИАЛИЗАЦИЯ исходных данныхflg:= False;// пусть точка не принадлежитk:= 0;2627Воробьева И.А.
«Информатика. Язык Паскаль»// Вывод на экран заголовка и приглашения для ввода координатwriteln('Принадлежность точки фигуре');write('Введите абсциссу X: ');readln(x);// ввод X с клавиатурыwriteln;write('Введите ординату Y: ');readln(y);// ввод Y с клавиатурыwriteln;// Вывод на экран исходных данных для самоконтроляwriteln('Введена точка: ', x:10:1, y:10:1); // Вывод форматирован!!!// Вычисление логического выражения принадлежности точкиflg:= ((sqr(x) + sqr(y)) <= 4) AND (x >= 0) AND (y <= 0);if flg thenk:=k+1elsewriteln (‘Не принадлежит’);// Задерживаем завершение программы до нажатия клавиши ENTERreadln;END.27.