Программа в паскаль а 5 в 4 если а b то

В нашем пятом уроке мы поговорим о логическом типе данных Boolean и познакомимся с условным оператором IF… THEN… ELSE… Не пугайтесь, мы всегда идём от простого к сложному и, конечно, используем пройденный ранее материал. Так что рекомендую почитать прошлые уроки, если вы впервые попали ко мне на сайт.

Из пройденного материала можно вспомнить, что числовые типы данных оперируют числами, а вот в логическом типе объектом служат логические выражения. Такими высказываниями могут являться любые утверждения, дающие ответ «да» или «нет». В этом случае говорят, что утверждение является истинным или ложным. К примеру, высказывание: «Меня зовут Владимир» для меня является истинным, а другое: «Мне 20 лет» — ложным, так как я значительно старше.

Область математики, исследующая логику, выделена в отдельную дисциплину — алгебру логики. По имени английского математика девятнадцатого века Джоржа Буля, который активно развивал эту область, её часто называют булевой алгеброй. Алгеброй, так как над логическими выражениями можно производить некие операции, которые до определённой степени являются аналогами арифметическим действиям.

Паскаль урок 5: отладка программы

Джорж Буль

В Паскале переменные логического типа тоже называются булевыми, а тип записывается как Boolean. У таких переменных могут быть только два значения: true — истина или false — ложь, которые иногда записывают как 1 для истины и 0 для ложных высказываний, соответственно.

Выше я уже сказал, что логические выражения можно объединять. Этой цели служат несколько операторов: конъюнкция — AND (И), дизъюнкция — OR (ИЛИ), отрицание — NOT (НЕ) и XOR (исключающее ИЛИ). Чаще других нам придётся иметь дело с первыми двумя, но следует выяснить как работают и остальные операторы. Я приведу их таблицы истинности, из которых, надеюсь, всё станет ясно.

Конъюнкция

Оператор AND (И) — конъюнкция, является наиболее жёстким объединением. Чтобы было ясно, о чём я говорю, давайте представим, что «А» и «B» — это некие логические высказывания, каждое из которых может принимать значение истина или ложь. Из таблицы, приведённой ниже ясно, как работает конъюнкция. Для простоты: 0 — ложь, 1 — истина.

A B A and B
1
1
1 1 1

Итак, конъюнкция — «И» истинна тогда и только тогда, когда оба изначальных выражения тоже истинны. В других случаях такое объединение ложно.

Дизъюнкция

Теперь поговорим об операторе OR (ИЛИ) — дизъюнкции. Даже из его названия ясно, что для того, чтобы такое объединение было истинным, достаточно, чтобы хотя бы одно из начальных высказываний было истинным. Взгляните на таблицу истинности ИЛИ.

A B A or B
1 1
1 1
1 1 1

Pascal ABC.NET vs Python. Решение задачи №4 (разветвляющийся алгоритм)

Отрицание

Правильная запись условия на языке Паскаль

✔ Условные операторы. Решение задач на Паскале. Примеры для курса информатики в 5-9 классах. Варианты решения для Turbo/Borland Pascal и PascalABC.NET.

Примеры логических операторов для курса информатики в 5-9 классах

    Список операторов отношения в языке Паскаль
  • больше >
  • меньше
  • больше или равно >=
  • меньше либо равно
  • сравнение =
  • не равно <>
    Примеры правильных записей на Паскале
  • a > b
  • c < 5
  • a = 0
  • b
  • a + b >= c
  • b <> 0
  • a — 5 <> b + 6
  • a mod 2 = 0
  • a div 2 > 0
  • a — 5 = 0
    Примеры не правильных записей на Паскале
  • a > b > c — ошибка, когда a, b и c — числовые типы
  • a > b > c — не является ошибкой, когда a и b — числовые типы, при этом c — boolean
  • a = b = c — не является ошибкой, когда a, b и c имеют тип boolean. Если одна или все переменные имеют другой тип, то ошибка
  • a, b > 8
  • c
  • a == 0
  • b = < c
  • a + b => c
  • b >< 0
  • a — 5
    Логические операции в языке Паскаль ставят между двумя условиями
  • AND (И, конъюнкция) — должны выполняться оба условия (должны быть истинными).
  • OR (ИЛИ, дизъюнкция) — достаточно, чтобы выполнялось одно из условий говорит (одно или оба условия истинны).
  • XOR (исключающее ИЛИ, строгая дизъюнкция) — одно из двух условий выполняется (истинно), а другое — не выполняется (ложно).
  • NOT (отрицание, инверсия) — исинное значение стновится ложным, а ложное — истинным.

При использовании логических операторов, каждое условие заключают в круглые скобки.

    Примеры правильных записей на Паскале
  • (a > b) AND (b > c)
  • (a > b) OR (a > c)
  • (a = 5) XOR (b = 5) — 1) истинно, когда a равно 5, b не равно 5; 2) истинно, когда a не равно 5, b равно 5; 3) в других случаях — ложно
  • NOT (a < 10) — эквивалентно a >= 10
  • ((a = 0) OR (b <> 0)) AND (c > 0) — истинно, когда a равно 0 или b не равно нулю и при этом c больше нуля
  • a AND b — переменные a и b имеют тип Boolean
  • NOT a OR b — вначале делается инверсия a, затем проверяется ИЛИ
  • NOT (a OR b) — вначале выполняется ИЛИ, затем делается инверсия.
    Примеры не правильных записей на Паскале
  • a AND b > 0 — ошибка, когда a или b имеют тип boolean
  • a AND b > 0 — не является ошибкой, когда a и b — числовые типы
  • a, b OR c, d — ошибка, так как нельзя использовать запятую
  • (a > 5) NOT AND (b < 10) — ошибка, так как нельзя сделать отрицание для AND
  • a > b AND b > c — ошибка, когда все переменные числового типа
  • a > b AND d > c — не является ошибкой, когда a, b, d — числовые типы, с имеет тип Boolean
  • a > (b AND d) > c — ошибка, когда все переменные числового типа
  • a > (b AND d) > c — ошибка, когда одна из переменных a, b или c имеет тип Boolean, а остальные переменные числового типа
  • a > (b AND d) > c — не является ошибкой, когда a, b, d — числовые типы, с имеет тип Boolean
Читайте также:
Как активировать программу без кода активации

Пример программы на PascalABC.NET, показывающей логические операции

begin
Println(‘Оператор if ‘);
var a : Boolean = True;
var b : Boolean = True;
if NOT a OR b then Println(‘1) NOT a OR b’);
if NOT (a OR b) then Println(‘1) NOT (a OR b)’)
else Println(‘1) не выполнено’);

a := False;
if NOT a OR b then Println(‘2) NOT a OR b’);
if NOT (a OR b) then Println(‘2) NOT (a OR b)’)
else Println(‘2) не выполнено’);

b := False;
if NOT a OR b then Println(‘3) NOT a OR b’);
if NOT (a OR b) then Println(‘3) NOT (a OR b)’);

a := True;
if NOT a OR b then Println(‘4) NOT a OR b’)
else Println(‘4) не выполнено’);
if NOT (a OR b) then Println(‘5) NOT (a OR b)’)
else Println(‘5) не выполнено’);
end.

Результат работы программы
Оператор if
1) NOT a OR b
1) не выполнено
2) NOT a OR b
2) не выполнено
3) NOT a OR b
3) NOT (a OR b)
4) не выполнено
5) не выполнено

✔ Условные операторы. Решение задач на Паскале. Примеры для курса информатики в 5-9 классах. Варианты решения для Turbo/Borland Pascal и PascalABC.NET.

Источник: 256.ru

запись математических выражений на языке паскаль

Алгебраические (арифметические) выражения – это конструкции, содержащие данные, знаки математических операций, математические функции.

Имеющиеся в языке Паскаль математические операции представлены в таблице 2.1, там же показаны простейшие примеры их использования.

Таблица 2.1. Математические операции в Pascal

Обратите внимание на тип операндов (т.е. тип данных, на которые действует операция) и тип результата, отмеченные в таблице. Если операция предназначена для работы только с целыми типами данных, то при попытке применения её к вещественным данным, компилятор сообщит об ошибке.

Тип результата выражения важен, при присваивании этого результата какой-либо переменной. Правила присваивания были описаны выше. Нужно помнить, что если результат алгебраической операции вещественный, то при попытке присвоить его целой переменной компилятор сообщит об ошибке.

Несколько примеров допустимых и недопустимых алгебраических выражений представлены в таблице 2.2.

Таблица 2.2. Примеры алгебраических выражений

В алгебраических выражениях часто используются математические функции, такие как sin, cos, ln и т.п. Необходимо помнить, что аргументы функции всегда заключаются в скобки, знаков умножить между функцией и аргументом ставить не надо. Список стандартных математических функций приведен в приложении В. Несколько примеров использования функций в алгебраических выражениях приведено ниже.

Таблица 2.3. Примеры использования функций в алгебраических выражениях

Порядок выполнения операций внутри алгебраического выражения определяется приоритетом операций (таблица 2.4).Согласно принятым в языке Паскаль правилам, сначала будут выполнены операции в скобках, затем вычислены функции, унарные операции, операции умножения или деления и только затем – операции сложения и вычитания.

Таблица 2.4. Приоритет математических операций

Давайте проясним действие приоритета операций на примерах.

image010

Также неправильно писать 1+ sqr ( a )/(3* a ), т.к. сначала значение квадрата sqr ( a ) будет поделено на 3а, затем к результату прибавится 1.

Типы переменных величин, операторы ввода и вывода.

2. Математические функции в Паскале.

В принципе div и mod к функциям отнести нельзя, это скорее математические действия (как и сложение, вычитание, умножение и деление), но пусть они будут в этой табличке. Div и Mod работают только с целыми числами и с переменными целых типов.
К сожалению в Паскале (кроме версии PascalABC) нет функции возведения Х в степень Y. В этом случае можно использовать циклы (об этом позже), а можно для положительного Х воспользоваться следующей формулой:
xy можно записать так: exp(y*ln(x)).

Читайте также:
Топ 10 майнинг программ

3. Запись математических выражений в языке ПАСКАЛЬ.

Попробуйте самостоятельно записать математическое выражение на компьютерном языке:

Задачи для самостоятельного решения.
1. Составьте программу вычисления значения выражения:

2. Составьте программу, которая вычисляет целую часть от деления a на b и находит остаток от деления b на а.
3. Дед Мороз готовит новогодние сладкие подарки. Снеговик доставил ему два сорта самых вкусных конфет по N кг. Каждая конфета первого сорта весит в два раза меньше, чем конфета второго сорта, а конфет второго сорта в килограмме ровно M. Сколько подарков сможет составить Дед Мороз, если каждому малышу он должен положить по T конфет. Сколько конфет останется?
4. Из пункта А вышел пешеход со скоростью V1 км/ч. Через время T за ним выехал автомобиль со скоростью V2 км/ч. (V2>V1). Через сколько времени автомобиль догонит пешехода?

1. Математические функции в Паскале.

2. Пример: Составьте программу, вычисляющую выражение:

Запись математических выражений на языке паскаль

3. Подберите такие значения x, y, z, чтобы значение а= 2.000

4. Что изменится и почему, если в программе заменить команду Writeln(‘a=’,a:7:3); на команду Writeln(a);?

5. Как распечатать только целую часть результата?

Этапы выполнения задания (b).

I Определение исходных данных: переменные x, y.

II Определение результатов: переменная b.

III Алгоритм решения задачи.

1. Ввод исходных данных

2. Вычисление значения выражения

3. Вывод результата.

IV Описание переменных:

Все переменные, определенные для решения задачи, имеют тип real. (Переменные x, y могут быть и целого типа, а переменная b только вещественного типа, поскольку в выражении используется функция вычисления квадратного корня.)

Write(‘введите значение x=’);

Write(‘введите значение y=’);

Можешь загрузить! Пример 3_б

VI Тестирование программы:

1. Запустите программу и введите значения

Проверьте, результат должен быть следующим:

Проверить правильность вычислений можно на калькуляторе.

2. Заполните таблицу

3. Подберите такие значения x, y, чтобы значение b= 2.000.

Проверка знаний Тест: Построение простейших арифметических выражений

Задачи для самостоятельного решения

Составить программу вычисления значения выражения:

Перевести из линейной записи в обычную следующие выражения :

Примечание. В программах на Паскале дробное число записывается с помощью точки. Например, 12.6; 3.6; 4.7.

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

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

lin2.h2

Проверка знаний Тест: Арифметические выражения

Примеры решения задач

1. Составить программу вычисления значения выражения:

program Prim_3_1;
var a,b,c, d : r eal ;
begin
writeln (‘Введите 3 численных значения через пробел и нажмите :’);
readln (a,b,c );
d := (4.2/a-3.2*b)/(c/7+8) ;
writeln (‘ d =’, d );

Можешь загрузить! Пример 3_1

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

Можешь загрузить! Пример 3_3_а

Можешь загрузить! Пример 3_3_б

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

program Prim_ 3_4 ;
var t,g : r eal ;
begin
writeln (‘Введите з начени я t и нажмите :’);
readln ( t );
g := abs(2.4*t-100)+abs(t-2.2)-sqrt(sqr(t)/(18+abs(t))) ;
writeln (‘ g =’, g );

Можешь загрузить! Пример 3_4

Выражения Паскаль

Какую структуру имеют выражения Паскаль? Выражения Паскаль задают определенное правило, по которому вычисляется некоторое значение. В состав выражений входят:

Математические операции Паскаль:

Приведем стандартные математические операции в Паскале:

+ — сложение (3+58=61)
— — вычитание (4-42=-38)
* — умножение (8*12=96)
/ — деление (46/23=2)

Однако кроме этих стандартных операций в Паскале предусмотрены еще 2 математические операции:

div — деление нацело (10/3=3)
mod — деление с остатком (10/3=1)

Логические операции Паскаль:

В языке Паскаль присутствуют еще и логические операции над аргументами логического типа, например, у нас даны две логические переменные A и B. В таблице истинности запишем результат выполнения тех или иных логических операций:

vyrazheniya paskal 1

Под not понимается логическое отрицание («НЕ»), and означает логическое умножение («И»), or подразумевает логическое сложение («ИЛИ»), xor раскрывает логическое «исключающее ИЛИ».

Операции отношения Паскаль:

Теперь поговорим об операциях отношения в Турбо Паскаль:

vyrazheniya paskal 2

Уникальность операций отношения состоит в том, что их можно выполнять не только над числами, но и над строками, символами, множителями и указателями.

Приоритет операций Паскаль:

Как в математике, так и в программировании присутствует приоритет операций. В Турбо Паскале порядок вычисления выражения фиксируется по старшинству содержащихся в нем операций:

vyrazheniya paskal 3

В математике тем не менее возможно переопределить порядок выполнения операций при помощи скобок. Турбо Паскаль — не исключение:

Математические функции Паскаль:

Приведем основные математические функции, которые разработчики Турбо Паскаль предусмотрели и вставили в системную библиотеку:

abs(n) — абсолютное значение числа n,

sin(n) — синус числа n, где n — угол в радианах,

cos(n) — косинус числа n, где n — угол в радианах,

В Турбо Паскале не предусмотрены функций тангенса и котангенса. Чтобы их вычислить, используют выражения sin(x)/cos(x), cos(x)/sin(x) соответственно.

Читайте также:
Что значит другие программы

atan(n) — арктангенс числа n,

exp(n) — число e = 2,718 в степени n,

ln(n) — натуральный логарифм числа n,

pi — число Пи = 3,14,

sqr(n) — квадрат числа n.

В Турбо Паскале нет функции, чтобы возвести число в произвольную степень, поэтому, как и в математике, можно либо многократно умножать число на себя для возведения в целочисленную степень, либо воспользоваться функциями экспоненты и натурального логарифма, чтоб возвести число как в целочисленную, так и в вещественную степень (более эффективный способ):

2^(1.33) = exp(1.33*ln(2))

sqrt(n) — квадратный корень из числа n,

trunc(n) — число, равное целой части числа n (отбрасывается дробная часть числа n, результатом выполнения будет число с типом longint),

frac(n) — число, равное дробной части числа n,

int(n) — число, равное целой части числа n (в результате получается число с типом real),

round(n) — округление числа n (возвращаемое значение будет иметь тип longint),

random(n) — генератор псевдослучайных чисел в диапазоне 0 до n (если аргумент отсутствует, т.е. просто random, то в результате выполнения этой функции появится вещественное число от 0 до 1).

program chislo;

var j: integer;

begin randomize;

for j:=1 to 7 do

writeln(random(26)-10);

inc(m,n) — увеличение значения числа m на n (если число n не указано, то число m увеличивается на единицу),

dec(m,n) — уменьшение значения числа m на n (если число n не указано, то число m уменьшается на единицу).

Язык программирования TurboPascal

Turbo Pascal. Программирование арифметических выражений

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

Оператор присваивания является одним из основных операторов любого языка программирования.

Оператор присваивания предназначен для присваивания переменной значения выражения.

Формат оператора присваивания:

В операторе присваивания слева от знака присваивания «:=» записывается переменная, а справа – выражение, численное значение которого присваивается этой переменной.

Выполнение оператора присваивания приведет к вычислению выражения и присваиванию значения выражения переменной.

Обязательным является требование, чтобы выражение и переменная были совместимы по присваиванию.

Например, оператор присваивания

Следует обратить внимание, что всем переменным в правой части оператора присваивания ранее уже были присвоены значения предыдущими операторами, например,

Здесь переменной t присваивается значение, которое до этого момента имела переменная t, плюс 1. Если переменная t имела до выполнения этого оператора значение равное 7, то после исполнения оператора t:=t+1 значение переменной будет равно 8.

Арифметические выражения

Арифметические выражения строятся из арифметических констант, переменных, функций и операций над ними.

Правила записи и смысл арифметических выражений в Паскале почти не отличаются от обычной математической записи.

В арифметических выражениях используются следующие операции и соответствующие знаки:

Операция Знак операции
Сложение +
Вычитание
Умножение *
Деление /
Деление целых чисел div
Остаток от деления целых чисел mod

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

Арифметические операции выполняются в порядке старшинства: сначала вычисление функции, затем умножение, деление, сложение, вычитание.

Если последовательность выполнения операций не определяется их старшинством, действия выполняются слева направо. Желаемый порядок выполнения операций всегда может быть задан соответствующим образом расставленными круглыми скобками. Допускается ставить лишние круглые скобки, если это упрощает чтение формулы.

Рассмотрим арифметическое выражение

В таблице приведен порядок выполнения операций:

Операция Операция
1 a*x 7 -a*x*x+b/x*c+y
2 a*x*x 8 c*n
3 -a*x*x 9 (a-b)
4 b/x 10 c*n/(a-b)
5 b/x*c 11 -a*x*x+b/x*c+y-c*n/(a-b)
6 -a*x*x+b/x*c

ЗАМЕЧАНИЕ. Все данные, входящие в арифметическое выражение, должны быть одного типа.

Исключение составляют только константы и переменные целого типа (integer), которые разрешается использовать в выражениях вещественного типа (real). Если в выражении используются данные целого и вещественного типа, результат операции будет вещественного типа. В других случаях необходимо выполнять преобразование данных.

Пример. Пусть переменные x и y описаны следующим образом:

Следующие операторы являются ошибочными:

Для обеспечения совместимости типов необходимо выполнять преобразования данных. Для преобразования Real в Integer имеются две функции:

Round() – округляет Real до ближайшего целого;

Trunc() – усекает Real путем отбрасывания дробной части.

Правильная запись рассматриваемых операторов: x:=y+2; и x:=y/x; имеет вид:

Программируя арифметические выражения, нужно иметь в виду следующие основные правила:

В арифметических выражениях могут использоваться различные элементарные функции. В языке Турбо Паскаль существуют стандартные функции. Пользователь может не знать, как вычисляется стандартная функция, ему достаточно правильно записать имя функции и ее аргумент. Наиболее часто используемые стандартные функции приведены в таблице:

Примеры записи простых арифметических выражений и операторов присваивания приведены в таблице:

Обычная математическая запись Запись на Турбо Паскале
formula1 x/(y*z) или x/y/z
formula2 y*x/z
formula3 (x+a)/(y+b)
formula4 1/(m*sqrt(a+b))
formula5 x1:=(-b+sqrt(b*b-4*a*c))/(2*a)
formula6 y:=sin(x)
formula7 sqr((x+y-z)/2/a)

Типичные ошибки в записи выражений:

4x+1 Пропущен знак умножения между 4 и x

a+sinx Аргумент x функции sinx не заключен в скобки

((a+b)/sqr(c*7) не хватает закрывающей скобки

ЗАДАЧА2 . Вычислить корни квадратного уравнения

по известным формулам

korni kvur

Предположим, что дискриминант этого уравнения больше нуля и уравнение имеет только действительные корни. Программа нахождения корней уравнения приведена ниже.

Источник: folkmap.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru