- •Основные понятия языка Турбо Паскаль. Организация программы
- •Комментарии
- •Алфавит языка.
- •Inherited | inline | interface | label | library |
- •Элементарные конструкции.
- •Типы данных.
- •Var a : Integer;
- •Операторы языка Паскаль. Оператор присваивания.
- •Оператор перехода. Пустой оператор. Составной оператор.
- •Условный оператор.
- •Оператор выбора.
- •Var V : char;
- •Операторы цикла.
- •I,n: Integer;
- •I,j : integer;
- •Imax,jmax,imin,jmin : integer;
- •Imax,imin,I,n:integer;
- •I,k,j,n : integer;
- •Imax, max, r: integer;
I,n: Integer;
Begin
Writeln('Число элементов массива, <= 30: ' );
Readln(N);
For I:=1 to N do
begin
Writeln(' Элемент № ' , I);
Readln( A[ I ] );
end;
FL:=false;
For I := 1 to N do
Begin
If A[ I ] mod 10 <> 3
then Continue;
Writeln(' Номер первого числа на 3 ' , I);
FL:=true;
Break;
End;
If not FL
then Writeln( ' нет чисел на 3 ' );
End.
Если встречается число, оканчивающееся на 3, происходит вывод сообщения об этом, флаг – переменная FL– становится равнымTRUEи программа заканчивает свою работу, т.к. цикл прерывается. Если же такое число не встречается, происходит нормальное завершение цикла, переменнаяFLостается равнойFALSEи выводится сообщение о том, что таких чисел нет.
В следующем примере требуется поменять местами максимальный и минимальный элементы, найденные среди элементов четных строк матрицы А(M,N).
В следующем примере требуется поменять местами максимальный и минимальный элементы, найденные среди элементов четных строк матрицы А(M,N).
Program Obmen;
Var
A: array[1..30,1..30] of integer;
I,j : integer;
Imax,jmax,imin,jmin : integer;
T,M,N: integer;
Begin
Writeln ('ВВЕДИТЕ ЧИСЛО СТРОК И ЧИСЛО СТОЛБЦОВ МАТРИЦЫ ');
Readln(M,N);
For I:=1 to M do
For J:=1 to N do
BEGIN
Writeln (' A [' , i, ', ' , j, ' ] = ');
Readln( A[I,J]);
end;
IMAX:=1; JMAX:=1; {координаты максимального элемента}
IMIN :=1; JMIN:=1; {координаты минимального элемента}
I:=2;
While (I<=M) do
Begin
For J:=1 to N do
If A[ IMAX, JMAX ]< A[I,J]
then Begin
IMAX:=I;
JMAX:=J;
End
еlse If A[IMIN,, JMIN] > A[I,J]
then Begin
IMIN :=I;
JMIN:=J;
End;
I:=I+2;
End;
T:= A[IMAX, JMAX];
A[IMAX, JMAX]:= A[IMIN, JMIN];
A[IMIN, JMIN] :=T;
For I:=1 to M do
Begin
For J:=1 to N do
Write (' A [' , i, ', ' , j, ' ] = ', A[ I,J ] :6);
Writeln ;
End;
readln;
End.
Здесь используется цикл WHILEдля индексации строк, т.к. нас интересуют только четные строки, следовательно, шаг для строк должен быть равен 2. В циклеFORэтого сделать нельзя.
Запись на языке Паскаль |
Выполняемые функции |
ABS(X) |
| X | |
SQR(X) |
X2 |
SQRT(X) |
Квадрат числа Х |
SIN(X) |
SIN X |
COS(X) |
COS X |
EXP(X) |
ex |
LN(X) |
Ln x |
LOG(X) |
Lg x |
ARCTAN(X) |
Arctg x |
TRUNC(X) |
Выделение целой части числа Х |
ROUND(X) |
Округление числа Х |
ODD(X) |
Определение нечетности числа Х - |
PRED(X) |
Нахождение предыдущего элемента |
SUCC(X) |
Нахождение последующего элемента |
ORD(X) |
Определение порядкового номера символа Х в наборе символов |
CHR(X) |
Определение символа из набора символов по порядковому номеру |
Основные алгоритмы
{ выбор максимума и минимума }
PROGRAM MASSIV2; {max \ min }
VAR
A: ARRAY [1..15] OF INTEGER;
N,H,I,Imin,Imax,LG,RG,MAX,MIN: INTEGER;
BEGIN
WRITELN ('Vvedite chislo el-tov <=15');
READLN (N);
FOR I:=1 TO N DO
BEGIN
WRITELN ('vvedite el-t ',I);
READLN (A[I]);
END;
MAX:=A[1];
Imax:=1;
FOR I:=1 TO N DO
IF A[I]>max
THEN BEGIN
max:=A[I];
Imax:=I;
END;
MIN:=A[1];
Imin:=1;
FOR I:=1 TO N DO
IF A[I]<min
THEN BEGIN
min:=A[I];
Imin:=I;
END;
WRITELN ('min znachenie=',min);
WRITELN ('max znachenie=',max);
READLN;
END.
Второй вариант поиска – за один проход по массиву:
MAX:=A[1];
Imax:=1;
MIN:=A[1];
Imin:=1;
FOR I:=1 TO N DO
begin
IF A[I]>max
THEN BEGIN
max:=A[I];
Imax:=I;
END;
ELSE IF A[I]<min
THEN BEGIN
min:=A[I];
Imin:=I;
END;
End;
Program Nom; { что ближе к концу массива }
var
a:array[1..20] of real;