Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика ЗКМЗКЕ_1курс / Лекция_1_Паскаль_2012_задачи.doc
Скачиваний:
22
Добавлен:
05.06.2015
Размер:
175.62 Кб
Скачать

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;