Правила записи выражений в Паскале.

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

Порядок выполнения операций в выражении определяется :

- Приоритетом операций;

- Порядком расположения операций в выражении;

- Наличием скобок.

Значение выражение вычисляется следующим образом: сначала выполняются вычисления в скобках, затем все действия в выражении слева направо с учетом приоритета операций.

Приоритет операций:

1. вычисление функций;

2. not;

3. *,/,div, mod,and;

4. +, -, or, xor;

5. =,,>=,,<.

Оператор присваивания в Паскале имеет вид А:=С;

Где А – переменная любого типа за исключением файлового;

С- выражение, совместимое по типу с А.

Ввод Правила записи выражений в Паскале. данных в программе осуществляется при помощи следующих ператороов:

Read(a1,a2,…,an);

Readln(a1,a2,….,an);

Где а1, а2, …, аn- идентификаторы числовых, литерных или строковых типов.

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

Например,

1 23 55 66 22

80 90

после считывания операторами readln(a,b,c); read(d,e);

переменные примут значения: a=1,b=23,c=55,d=80,e=90.

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

Read(a,b,c);read(d,e);

Переменные примут следующие значения.

a=1,b=23,c=55,d=66,e=22.

Вывод данных на дисплей осуществляется при помощи операторов

Write(b1,b2, .., bn);

Writeln(b1,b Правила записи выражений в Паскале.2,..,bn); .

Здесь b1,b2, .., bn – переменные, константы и выражения, имеющие любой стандартный или строковый тип.

Отличие этих двух операторов состоит в том, что после выполнения процедуры Write курсор на экране остается на строке вывода, во втором случае после вызова процедуры Writeln курсор на экране переводится на следующую строку.

ПРИМЕРЫ ЛИНЕЙНЫХ ПРОГРАММ

Рассмотрим простой пример программы на языке Pascal.

Программа вычисляет площадь круга.

Program square;

Const

pi=3.1415926;

Var

R, L, S : real;

Begin

write ('Введите длину окружности :');

Readln (l);

r:=l/(2*pi);

S:=pi*sqr(r);

writeln ('Площадь круга равна: ',S, 'кв.единиц');

End.

Пример1.

Найти произведение цифр заданного целого положительного четырехзначного числа Правила записи выражений в Паскале. N.

PROGRAM PR_1;

VAR

N,P :word;

N1, N2, N3, N4 : byte;

BEGIN

Writeln(‘ введите натуральное 4-х значное число’);

Readln (N); {ввод заданного числа}

N4:= N mod 10; { последняя цифра}

N1:= N mod 1000; { первая цифра}

N2:= N div 100 mod 10;{вторая цифра}

N3:= N div 10 mod 10; {третья цифра}

P:= N1*N2* N3*N4;

Writeln (‘ ‘,N :5, ‘ ‘, P:6);

Readln;

End.

Пример 2. Для заданного вещественного числа определить последнюю цифру его целой части и первую цифру дробной части

PROGRAM PR_2;

VAR

A: real; {исходное вещественное число}

B: longint;

C : real; {рабочая переменная}

BEGIN

Writeln (‘ Введите вещественное число ‘); { строка – приглашение к вводу}

Readln (A); {ввод числа}

B:= Trunc (A); {отбрасывание дробной Правила записи выражений в Паскале. части}

Writeln( ‘ Последняя цифра целой части‘, B mod 10);

C:= Frac( A); {выделение дробной части}

Writeln (‘ Первая цифра дробной части‘, Trunc (C*10));

Readln;

End.

Пример 3. Написать программу, которая печатает true или false в зависимости от того, выполняется или нет заданное условие:

Квадрат заданного трехзначного целого положительного числа равен кубу суммы цифр этого числа.



PROGRAM PR_3;

VAR

N1,N2, N3, S :byte; {}

N: word; {}

T: boolean; {}

BEGIN

Writeln (‘ ‘);

Readln (N);

N1:= N div 100;

N3:=N mod 10;

N2:= N div 10 mod 10;

S:=N1+N2+N3;

T:= Sqr(N)= Sqr (S) *S;

Writeln(T);

Readln;

End.

ВАРИАНТЫ ИНДИВИДУАЛЬНЫХ ЗАДАНИЙ К КОНТРОЛЬНОЙ РАБОТЕ

ЗАДАНИЕ №1

ЗАДАЧА 1.

1. Присвоить целой переменной h третью Правила записи выражений в Паскале. от конца цифру в записи целого положительного числа k (например: k=130985, то h=9). (Нужно разработать программу, h := (K div 100) mod 10 )

2. var k:integer; { заданное число }3. h:string; { третья цифра заданного числа }4. s:string; { число, представленное в виде строки символов }5. begin str(k,s); { преобразовали число в строку 13098 -> '13098' }6. h:=copy(s,length(s)-2,1) { выделили нужную цифру }7. end.

8. Присвоить целой переменной d первую цифру из дробной части положительно вещественного числа (так, если x=32.975 то d =9).

9. var x:real; { заданное число }10. d:integer; { первая цифра дробной части заданного числа }11. s:string; { число, представленное в виде строки символов }12. begin str(x,s Правила записи выражений в Паскале.); { преобразовали число в строку 32.597 -> '32.597' }13. d:=copy(s,pos('.',s)+1,1) { выделили нужную цифру }14. end.15.

16. Присвоить целой переменной L сумму 2-х последних цифр целой части положительного вещественного числа (так, если x=143.57, то L=4+3=7).

17. найти произведение 2-х первых цифр из дробной части положительного вещественного числа (так , если x=31.956, то P=9*5=45).

18. #include #include

19. int main(){ double x = 31.956; double k; double P = 0; P = floor(modf(x, &k)*10) * floor(modf(x*10, &k)*10); printf("Result is: %f", P); }

20. Вычислить дробную часть среднего геометрического 3-х заданных положительных чисел.

#include #include #include #include using namespace std; int main(int argc, char** argv) { int a, b, c; float Правила записи выражений в Паскале. x; cout <> a; cout <> b; cout <> c; x = pow(a * b * c, 1.0 / 3); printf("Дробная часть - %5.3f \n", x - int(x)); return 0; }

21. Написать программу, которая для заданного А печатает следующую таблицу: А А3 А3 А

22. Значениями литерных переменных С0,С1,С2, являются цифры. Присвоить целой переменной L число, составленное из этих цифр (С0=’1’,С1=’3’,С2=’5например, то L=135)/

uses crt; const zn:string[8]='01234567';//символы в СС 8 var s:string;//глобальные переменные число и строка r:longint; procedure DecToOct;//10 в 8 begin clrscr; write('Введите целое число в СС 10 r='); readln(r); s:=''; while r>0 do begin s:=zn[r mod 8+1]+s; r Правила записи выражений в Паскале.:=r div 8; end; writeln('Число в СС 8=',s); readln end; procedure OctToDec;//8 в 10 var i,k,j:integer; f:longint; begin clrscr; repeat k:=0; write('Введите целое число в СС 8 s='); readln(s); for i:=1 to length(s) do if not(s[i] in ['0'..'7'])then begin writeln('Это не число в СС 8!, повторите ввод.'); k:=1; end; until k=0; r:=0;f:=1; for i:=length(s) downto 1 do begin r:=r+f*(ord(s[i])-48); f:=f*8; end; writeln('Число в СС 10=',r); readln end; var w:char;//локальная переменная для выбора действия begin clrscr; repeat clrscr; writeln('Выберите направление Правила записи выражений в Паскале. перевода:'); writeln('1-из десятичной в восьмеричную'); writeln('2-из восьмеричной в десятичную'); writeln('другое - выход'); readln(w); case w of '1':DecToOct; '2':OctToDec; else exit; end; until not (w in ['1','2']); end.

23. Присвоить литерным переменным С0,С1,С2 левую, среднюю и правую цифры 3-х значного числа k.

#include #include char c1,c2,c0; int k,x,y,z; main() { clrscr(); printf("vvedite k="); scanf("%d",&k); x=k / 100; y=k % 100 / 10; z=k % 10; x=(x)+48; y=(y)+48; z=(z)+48; c1=char(x); c2=char(y); c0=char(z); printf("\nc1=%c",c1); printf("\nc2=%c",c2); printf("\nc0=%c",c0); getch(); return 0; }

24. Используя литерный вывод, вывести Правила записи выражений в Паскале. на экран значение 4-х значного целого положительного числа.

25. Дано 3-х значное отрицательное число. Используя литерный ввод, ввести его посимвольно и присвоить целой переменной k.

26. Дана последовательность литер, имеющая вид: d1+d2-d3*d4(di, i=1,4 – цифры). Вычислить значение выражения.

uses CRT;

function func(xx: Extended): Extended;

begin

func:=exp(-2*xx) - 2*xx + 1

end;

function dfunc(xx: Extended): Extended;

begin

dfunc := -2*exp(-2*xx) - 2

end;

CONST

eps0 : Real = 0.1;

deps = 10;

eps_count = 12;

x0 :Extended = 3;

VAR

r, r1: Extended;

count: array [1..eps_count] of Integer;

i, c: Integer;

ln10: Extended;

BEGIN

ClrScr;

ln10 := ln(10);

for i:=1 to eps_count do

begin

r1 := x0;

r := r1 - func(r1)/dfunc(r1);

c Правила записи выражений в Паскале.:=1;

while abs(r - r1) > eps0 do begin

r1 := r;

r := r1 - func(r1)/dfunc(r1);

{ writeLn(c,' ',r,' ',r1);}

inc(c);

{ if KeyPressed then Halt(0);}

end;

count[i]:=c;

WriteLn(r,' ',eps0:8,' ', count[i],' ',-ln(eps0)/ln10:8:0);

eps0 := eps0 / deps;

end;

END.

27. Используя только литерный ввод, ввести вещественное число, описанное в виде –dd.dd, и присвоить его вещественной переменной х.

uses crt; var c:char; w:real; i:byte; begin clrscr; writeln('Введите число в формате -dd.dd'); w:=0; i:=1; repeat c:=readkey;//читаем код клавиши if (i=1) and(c='-') then//если первый и минус, нормально begin i:=i+1; write Правила записи выражений в Паскале.(c); end else if(i=4)and(c='.') then//если четвертый и точка, нормально begin i:=i+1; write(c); end else if(i in [2,3,5,6]) and(c in ['0'..'9']) then//если цифры и на месте begin write(c); i:=i+1; w:=w*10+(ord(c)-48);//умножаем число на 10 и прибавлям еще цифру end; until i>6; writeln; w:=w/-100;//делим на -100 write(w:0:2); readln end.

28. Используя только литерный ввод, ввести вещественное число, записанное в виде : d.ddE-d, и присвоить его вещественной переменной y.

29. #include

30. #include

31. #include

32. using namespace std;

33. int n1,n2,n3,n4; // объявляем переменные

34. char c1,c2,c3,c4;

35. float y;

36. int main Правила записи выражений в Паскале.()

37. {

38. cout<<"Vvedite d.ddE-d ";

39. cin>>c1>>c2>>c2>>c3>>c4>>c4>>c4; // считываем строку

40. n1=(int)c1-48; // преобразуем из char в int

41. n2=(int)c2-48;

42. n3=(int)c3-48;

43. n4=(int)c4-48;

44. y=(n1+n2*0.1+n3*0.01)*exp(-n4*log(10.0)); // переносим запятую

45. cout<<"Otvet "<

46. getch(); // задержка

47. return 1;

48. }

49. Вывести 4-х значное отрицательное число в виде последовательности символов.

Repeat

51. write('Введите 4х-значное число');

52. readln(n);

53. until(n>999)and(n<10000);

54. write(n mod 10,n div 10 mod 10,n div 100 mod 10, n div 10);

ЗАДАЧА 2

Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется заданное условие, и FALSE в противном случае (Оператор If не Правила записи выражений в Паскале. использовать).

1. Введенный символ не является буквой латинского алфавита и символом «_»(подчеркивание);

2. введенные символы А,В,С образуют целое трехзначное число;

3. введенные символы А и В образуют выражение вида А+В или А-С , где А и С – цифры;

4. из 2-х введенных символов только одна является цифрой;

5. введенные символы С1, С2 образуют число кратное 3, но не кратное 9;

6. введенные четыре символа образуют слово TRUE;

7. квадрат заданное трехзначного числа равен кубу суммы цифр этого числа;

8. введенное число является полным квадратом;

9. введенное целое число является удвоенным нечетным;

10. введенное целое число n является квадратом нечетного числа;

11. введенное целое положительное четырехзначное число является полиндромом Правила записи выражений в Паскале.;

12. среди цифр заданного целого трехзначного число есть одинаковые;

13. среди первых цифр дробной части заданного положительного вещественного числа есть цифра 0.

14. введенный символ, является прописной буквой русского алфавита.

2 Задание № 2. Тема: «Программирование алгоритмов ветвящейся структуры»

Цель: -изучить операторы перехода языка программирования

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

- сформировать навыки изображения алгоритма программы в виде схемы.


documentaqzhgtd.html
documentaqzhodl.html
documentaqzhvnt.html
documentaqzicyb.html
documentaqzikij.html
Документ Правила записи выражений в Паскале.