Запись арифметических выражений. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Запись арифметических выражений.



Действие Результат Смысл
2+3   Плюс
4-1   Минус
2*3   Умножить
10/5   Разделить
17div5   Целочисленное деление
17mod5   Остаток от целочисленного деления

Примеры:

Арифметическое Запись арифметического

выражение выражения в программе

1) ab+cd a*b+c*d

 

2) a(b+c) a*(b+c)

3) a+1 (a+1)/(b+1)

b+1

 

4) 1 1/(a*b)

ab

 

Замечание

В выражениях нужно ставить скобки всегда, когда возникают сомнения в правильной очерёдности действий. Лишняя пара скобок не помешает.

 

Задача 4.

Как правильно записать арифметическое выражение в программе?

Решение.

 

Замечание

В десятичных дробях принято вместо запятой ставить точку.

 

Запись математических функций.

 

Действие Результат Смысл
Sqr(5)   Возведение в квадрат
Sqrt(25)   Корень квадратный
Pi 3.1415... Число "пи"
Frac(23.192) 0.192 Дробная часть числа
Int(3.98) 3.0 Целая часть числа
Round(5.8)   Округление
Abs(-20)   Модуль числа
Random 0.73088 Случайное число из диапазона (0-1)
Random(200)   Случайное целое число из диапазона (0-199)

 

Примеры:

Действия Результыты

 

Sqr(2+1) 9

10+Sqr(2+1) 19

1+Abs(5-8) 4

Sqr(2)+Sqrt(35+1) 10

Sqrt(8+Int(41.5)) 7

21div(Round(Pi+1)) 5

 

Задача 5.

Что напечатает данная программа?

VAR a,b: Integer;

BEGIN

a:=(Sqrt(16)+1)*(20-Sqr(2*2))-11;

b:=11div(a-4);

WriteLn(Sqr(a)+b-1)

End.

 

Ответ. 82

Задача 6.

Написать программу для вычисления площади основания и объёма спичечной коробки, если известны её размеры: высота – 12.41 см., ширина – 8 см., толщина – 5 см.

 

Программа.

 

VAR shirina,tol,S: Byte;

visota,V: Real;

BEGIN

visota:=12.41;

shirina:=8;

tol:=5;

S:= shirina* tol;

V:=S*visota;

Write('S=',S,'V=',V:10:3)

END.

 

 


Оператор ввода данных ReadLn.

(читается – "рид'лайн; переводится – "читай строку")

 

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

Пример.

 

VAR a,b: Integer;

BEGIN

ReadLn(a,b);

WriteLn(a+b)

END.

 

Эта программа на операторе ReadLn остановиться и будет ждать. Человек должен набрать на клавиатуре первое число (значение переменной a), затем нажать клавишу пробела, затем набрать второе число (значение переменной b) и нажать клавишу Enter. Паскаль воспринимает нажатие пробела как сигнал человека о том, что закончен набор на клавиатуре одного числа и сейчас начнётся набор другого. После набора на клавиатуре последнего числа необходимо нажать клавишу

Enter в знак того, что ввод чисел для данного оператора ReadLn закончен и компьютер может продолжать свою работу.

 

Замечание.

Оператор ReadLn можно писать и без скобок, просто так: ReadLn. Компьютер остановиться и будет ждать нажатия клавиши Enter. Таким образом создаются паузы в процессе выполнения программы.

 

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

 

Пример.

VAR a,b: Integer;

BEGIN

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

ReadLn(a,b);

WriteLn(a+b)

END.

 

 

 


Строковые переменные.

 

Значением переменной может быть не только число, но и текст. Оператор a:='Привет всем!' записывает в ячейку a строку Привет всем! Оператор WriteLn(a) выведет на экран текст Привет всем!

Описание VAR a:String говорит о том, что переменная а обязана иметь текстовое значение.

(читается – "стринг"; переводится – "строка")

Строковую переменную можно задавать не только оператором присваивания, но и оператором ReadLn.

Пример.

VAR а: String;

BEGIN

WriteLn('Введите какое-нибудь слово');

ReadLn(a);

WriteLn('Вы ввели слово ',а)

END.

 

Задача7.

Написать программу, которая осуществляла бы такой диалог человека с компьютером:

 

Компьютер выводит на экран:

Здравствуй, я компьютер, а тебя как зовут?

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

имя

Компьютер выводит на экран:

Очень приятно, …. Сколько тебе лет?

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

возраст

Компьютер выводит на экран:

Ого! Целых … лет! Ты уже совсем взрослый!

 

Программа.

 

VAR a: String;

b: Byte;

BEGIN

WriteLn('Здравствуй, я компьютер, а тебя как зовут?');

ReadLn(a);

WriteLn('Очень приятно, ',а,'. Сколько тебе лет?');

ReadLn(b);

WriteLn(' Ого! Целых ',b,' лет! Ты уже совсем взрослый!')

END.

 

Замечание

При вводе одним оператором ReadLn нескольких строковых переменных (или строковых переменных вместе с числовыми) нужно заканчивать ввод каждой переменной нажатием клавиши Enter.

 

 

 


Разветвляющиеся программы.

 

Процедуры ввода и вывода, а также оператор присваивания позволяют писать только линейные программы, в которых все команды выполняются последовательно одна за другой. Но очень часто возникает необходимость выполнять различные команды в зависимости от выполнения какого – то условия. Для таких целей в Паскале введён условный оператор:

If условие then оператор_1

else оператор_2;

(If читается – "иф"; переводится – "если"; then читается "зэн"; переводится – "то"; else читается "элз"; переводится – "иначе")

Работает этот оператор так – сначала проверяется условие, и, если оно верно, выполняется оператор_1, в противном случае выполняется оператор_2.

В простейших случаях условие – это математическое сравнение двух выражений по величине, которое можно записать при помощи следующих знаков:

 

знак отношение
= равно
< меньше
<= меньше или равно
> больше
>= больше или равно
<> не равно

Задача 8.

Составить программу для следующей задачи: Компьютер должен перемножить два числа – 167 и 121. Если их произведение превышает 2000, то компьютер должен напечатать текст Произведение большое, иначе – текст Произведение маленькое. После этого компьютер в любом случае должен напечатать само произведение.

 

Программа.

 

VAR a,b,с: Integer;

BEGIN

a:=167;

b:=121;

c:=a*b;

If c>2000 then WriteLn(' Произведение большое ');

else WriteLn(' Произведение маленькое ');

WriteLn(с)

END.

Рассмотренная нами форма условного оператора называется полной, она позволяет направлять выполнение программы по одному из двух путей. Такую конструкцию называют ветвлением.

В Паскале есть и краткая форма условного оператора, которая просто позволяет выполнять заданный оператор, если выполнено условие:

If условие then оператор_1;

Если условие верно, то выполняется оператор_1, иначе выполняться будет следующий за условным оператор.

Задача 9.

Составить программу для следующей задачи: В компьютер вводится слово. Компьютер должен просто распечатать его. Однако, если введённым словом будет " колхозник ", то компьютер должен вместо него напечатать слово " фермер ".

 

Решение.

VAR a: String;

BEGIN

ReadLn(a);

If a='колхозник' then a:='фермер';

WriteLn(a)

END.

 


Составной оператор.

Часто бывает так, что в случае выполнения некоторого условия надо осуществить несколько действий, а не одно, как это предусмотрено в условном операторе. В этом случае используется составной оператор, который выглядит следующим образом:

begin

оператор_1

оператор_2

.

.

оператор_n

end;

Зарезервированные слова Begin и End называются операторными скобками. Между ними может быть сколько угодно других операторов, но считается всё это одним составным оператором.

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

 

Задача 10.

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

 

Программа.

VAR otvet: String;

a,b: Integer;

BEGIN

WriteLN(' Чем займемся – сложением или возведением в квадрат?');

ReadLn(Otvet);

If Otvet='сложением' then

begin

Writeln('Введите два числа');

ReadLn(a,b);

WriteLn('Сумма равна',a+b)

end

else

begin

WriteLn('Введите число');

ReadLn(a);

WriteLn('Квадрат числа равен',a*a)

end

END.

 

 

Задача 11.

Составить программу для решения квадратного уравнения ax2+bx+c=0, где b не равно 0,

c не равно 0.

 

Программа.

 

Var a,b,c,x,x1,x2,D:real;

BEGIN

WriteLn('Введите a,b,c');

ReadLn(a,b,c);

D:=b*b-4*a*c;

if D<0 then WriteLn('корней нет')

else if D=0 then begin

x:=-b/(2*a);

WriteLn('x=',x:6:2)

end

else begin

x1:=(-b+Sqrt(D))/(2*a);

x2:=(-b-Sqrt(D))/(2*a);

WriteLn('x1=',x1:6:2);

WriteLn('x2=',x2:6:2)

end;

ReadLn

END.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 149; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.144.233.198 (0.084 с.)