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

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

Embed Size (px)

DESCRIPTION

Язык программирования Pascal. Структура программы Pascal. P rogram имя программы ; U ses раздел подключения модулей ; Const раздел констант ; Var раздел описаний переменных ; B egin операторы ; E nd. Пример структуры программы Pascal. Program pr1 ; { Заголовок } Const { константы } - PowerPoint PPT Presentation

Citation preview

Page 1: Язык программирования  Pascal

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

Page 2: Язык программирования  Pascal

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

Program имя программы;Uses раздел подключения модулей;Const раздел констант;Var раздел описаний переменных;Begin

операторы;End.

Page 3: Язык программирования  Pascal

Пример структуры программы Pascal

Program pr1; {Заголовок}Const {константы}

g=9.8;Var {объявление переменных} a,b : integer; {целые числа -32768..+32767}

x,y : real; {дробные числа}Begin

A:=192+42; {оператор присваивания}X:=a/8;

End.

Page 4: Язык программирования  Pascal

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

Оператор присваивания имеет вид: переменная := выражение;

i := i + 1; // увеличивает значение переменной i на 1

В PascalABC.NET определены также операторы

+=, -=, *=, /=

Page 5: Язык программирования  Pascal

Целые числа в Free Pascal

integer {целые числа -32768..+32767}longint {длинные целые -2M..+2M} Byte {0..255}Word {0..65тыс}

Page 6: Язык программирования  Pascal

Полный список типов целых чисел (PascalABC.NET)

Тип Размер, байт Диапазон значений

shortint 1 -128..127

smallint 2 -32768..32767

integer, longint 4 -2147483648..2147483647

int64 8 -9223372036854775808..9223372036854775807

byte 1 0..255

word 2 0..65535

longword, cardinal 4 0..4294967295

uint64 8 0..18446744073709551615

Page 7: Язык программирования  Pascal

Целочисленное деление и остаток

Program pr2; {Заголовок}Var

a,b : integer; {целые числа -32768..+32767}Begin

A:=8 div 3 ; {=2 div - ц.ч. деление}B:=7 mod a; {=1 mod – остаток от деления}Write (‘a=’,a,’ b=’,b); {вывод на экран}Readln {пауза до нажатия enter}

End.

Page 8: Язык программирования  Pascal

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

{выводит информацию в одну строку}Write (‘Hello ’,a+2*b);

Writeln (‘Первая строка’); {переносит в конце}Writeln (‘Вторая строка’);Writeln(a:10,b:10,c:10,d:10); {Табуляция в 10}

Read(a); {ввод значения a с клавиатуры}Readln(b); {ввод 1 строки}

Page 9: Язык программирования  Pascal

сумматор

Uses CRT;Var A, B:integer;Begin

Clrscr; {очистка экрана}Textcolor(10); {цвет текста 0-15}Writeln(‘Введите два числа’);Readln(a,b);Write (‘Сумма чисел равна ’,a+b);Readln;

End.

Page 10: Язык программирования  Pascal

******* * ** * * ** ** * * ** *** * * * *******

Page 11: Язык программирования  Pascal

Вещественные числа (real, double)

Описание

Ввод значений x yВывод выражения

Кол-во цифр после запятой

Var x,y : real;

BeginWrite(‘Введите x,y ‘);Readln(x,y);Writeln(‘x/y=’,

x/y :0:3)Readln;

End.

Page 12: Язык программирования  Pascal

Арифметические операции

• Div• Mod

Page 13: Язык программирования  Pascal

Найти корни квадратного уравнения

Ax2+Bx+C=0

D=B2-4ac

X=

var a,b,c,d,x1,x2:real;begin writeln('Введите a,b,c'); readln(a,b,c); d:=sqr(b)-4*a*c; x1:=(-b-sqrt(d))/(2*a); x2:=(-b+sqrt(d))/(2*a); writeln(‘d=’, d :0:2, ‘ x1=’, x1 :0:2,

‘ x2=’, x2 :0:2); End.

Page 14: Язык программирования  Pascal

Вычисления в программе

1. Дана сторона квадрата а. Найти его периметр P=4a

Var a,p:real;Begin

write(‘a=’);readln(a);P:= ; //пишем формулу Pwriteln(‘p=’, p :0:2)

End.

Примео ввода:

a=7.21Пример вывода:

P=30.84

Page 15: Язык программирования  Pascal

Условный оператор (ветвление)или разветвляющийся алгоритм - форма организации действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность шагов

Условие

Действие 2Действие 1

Да Нет

Page 16: Язык программирования  Pascal

Условный оператор (ветвление)

if условие then оператор1

else оператор2;

Vara:integer;

Beginwrite(‘Введите

число:‘);readln(a);if a mod 2 = 0then write (‘Четное’)else write (‘Нечетное’);

End.

IfA mod 2 = 0

‘Нечетное’‘Четное’

Да Нет

Ввод а

Page 17: Язык программирования  Pascal

Цикл с параметром

FOR i:=нач. to кон. Do опер.;

Page 18: Язык программирования  Pascal

Даны целые числа K и N (N > 0). Вывести N раз число K.

K=5 N=45 5 5 5

Var i,k,n:integer;

BeginWrite(‘k=‘);Readln(k);Write(‘N=’);Readln(n);For i:=1 to N do write(k, ’ ’);Readln

End.

Page 19: Язык программирования  Pascal

Цикл с предусловием

WHiLE условие DO оператор;

WHiLE условие DO begin

оператор1;оператор2;…

end;

Условие

оператор

Да

Нет

Page 20: Язык программирования  Pascal

Задача While1

Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Не используя операции умножения и деления, найти длину незанятой части отрезка A.

Var A,B:real;Begin

write(‘A=’); readln(A);write(‘B=’); readln(B);While A>=B do A:=A-B;writeln(‘Остаток: ’, A :0:2);readln

End.

А

Page 21: Язык программирования  Pascal

Задача While2

Var A,B:real; i:integer;Begin

write(‘A=’); readln(A);write(‘B=’); readln(B);While A>=B do

beginA:=A-B;i:=i+1end;

writeln(‘Остаток: ’, A :0:2);readln

End.А

Даны положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B(без наложений). Не используя операции умножения и деления, найти количество отрезков B, размещенных на отрезке A.

Page 22: Язык программирования  Pascal

While 3

Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело Nна K, а также остаток от этого деления.

Page 23: Язык программирования  Pascal

While 4

Дано целое число N (> 0). Если оно является степенью числа 3, то вывести True, если не является — вывести False.

Var N, M:integer;Begin

M:=1;While M<N do M:=M*3;Writeln(M=N);End.

Page 24: Язык программирования  Pascal

While 5

Дано целое число N (> 0), являющееся некоторой степенью числа 2: N = 2K. Найти целое число K — показатель этой степени.

Var N, M, k:integer;Begin

M:=1;While M<N do

beginM:=M*3;

end;

End.

Page 25: Язык программирования  Pascal

While 6

• Дано целое число N (> 0). Найти двойной факториал N:

• N!! = N·(N−2)·(N−4)·…

Page 26: Язык программирования  Pascal

Строковые типы• Символьный тип ‘A’ ‘2’ ‘%’ #32(по номеру)

– Var c : char;– C:= ‘a’;chr(42); - возвр. символ ‘A’ по номеруord(‘D’); - возвр. Номер символа

• Строковый тип ‘Привет мир’ (макс. 255 симв)Var a,b : string;begin

a:=‘тепло’;B:=‘ход’;writeln(a+b); {Конкатинация}

End.

Page 27: Язык программирования  Pascal

Строковые операторы

S:=‘информатика’;Length(s); возвр. длину строкиCopy(s,3,5); возвр. часть строки нач.3-го 5 символов

позиция^ ^кол-во символов

Pos(‘а’,s); возвр. позицию вхождения подстроки в строку

Delete(s,8,4); удаление части строки позиция^ ^кол-во символовInsert(‘ция’,s,8); вставка подстр. в строку позиция^ s[3] – возвращает 3-й символ ‘ф’Writeln(copy(s,3,3) + s[8]); {‘фор’ + ’т’}

Page 28: Язык программирования  Pascal

Program STRING7;var s:string;Beginreadln(s);writeln('Код первого символа: ', ord(s[1]));writeln('Код последнего символа: ', ord(s[ length(s) ]) );end.

{Это фрагмент второй задачи. Пишите в новом файле. Допишите программу}For i:=1 to N do S:=S+C;

Page 29: Язык программирования  Pascal

Одномерные массивы

М- это упорядоченный набор данныхVar a:array [нач ..кон] of тип_данных;

Var a:array [0..9] of integer; i:integer;

Begina[0]:=14;for i:=1 to 9 do a[i]:=i;

End.

0 1 2 3 4 5 6 7 8 9

14 1 2 3 4 5 6 7 8 9

Page 30: Язык программирования  Pascal

Array 1 (Массив)

Дано целое число N (> 0). Сформировать и вывести целочисленный массив размера N, содержащий N первых положительных нечетных чисел: 1, 3, 5, … .

Var a:array[1 .. 100] of integer;i, N :integer;

Beginwrite(‘N=’); readln(n);a[1]:=1;for i:=2 to N do

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

write(a[i],’ ‘);readln

End.

Page 31: Язык программирования  Pascal

Array 2 (Массив)

Дано целое число N (> 0). Сформировать и вывести целочисленный массив размера N, содержащий N первых степеней двойки: 2, 4, 8, 16 … .

Var a:array[1 .. 100] of integer;i, N :integer;

Beginwrite(‘N=’); readln(n);a[1]:=2;for i:=2 to N do

begina[i]:= a[i-1]*2 ;write(a[i],’ ‘);

end;End.

Page 32: Язык программирования  Pascal

Двумерные массивы

матрица 5х4 Var a:array[1..5, 1..4]

of integer;i – строка j – столбец For i:=1 to 5 do

For j:=1 to 4 doa[i,j]:=(i-

1)*4+j;

i j 1 2 3 4

1 1 2 3 4

2 5 6 7 8

3 9 10 11 12

4 13 14 15 16

5 17 18 19 20

Page 33: Язык программирования  Pascal

Matrix1.Даны целые положительные числа M и N. Сформировать целочисленную матрицу размера M × N, у которой все элементы I-й строки имеют значение 10·I (I = 1, …, M).

M=3 N=5

VAR a:array[1..100,1..100]of integer; i, j, M,N:integer;Begin write(‘M=’);readln(M);

write(‘N=’);readln(N);For i:=1 to M do begin

For j:=1 to N dobegin

a[i,j]:=i*10;write(a[i,j] :4);

end;writeln

end;End.