Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_ИРР_алг_ч1(с примерами).doc
Скачиваний:
9
Добавлен:
13.11.2018
Размер:
870.4 Кб
Скачать

Контрольный пример

Линейные алгоритмы

Задание 1. Составить программу, которая вычисляет площадь круга и длину окружности по введенному радиусу.

Блок-схема алгоритма

Программа на Бейсике:

CONST pi=3.1415

INPUT ”Введите радиус”;r

s=pi*r^2

l=2*pi*r

PRINT ”Площадь круга = ”, s

PRINT ”Длина окружности = ”, l

END

Программа на Паскале

PROGRAM Pr1_1;

VAR r,s,l : real;

BEGIN

WRITELN (’Введите радиус’);

READLN (r);

S : = PI*SQR(r);

L : = 2*PI*r;

WRITELN (’Площадь круга =’, s:8:2);

WRITELN (’Длина окружности = ’, l:8:2);

END.

Задание 2. Вычислить значение по формуле: .

Программа на Бейсике:

INPUT ”Введите аргумент x”;x

z=SQR(ABS((x^2+6)/SIN(x)))

PRINT ”z = ”, z

END

Программа на Паскале

PROGRAM Pr1_2;

VAR x, z : real;

BEGIN

WRITELN (’Введите аргумент x’);

READLN (x);

z : = SQRT(ABS((SQR(x)+6)/SIN(x)));

WRITELN (’z =’, x:9:3);

END.

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

Задание. Даны три положительных числа. Определить, могут ли эти числа являться длинами сторон треугольника, если могут, то какой это будет треугольник – равнобедренный, равносторонний или разносторонний.

Блок-схема алгоритма:

Программа на Бейсике:

INPUT ”Введите три положительных числа: ”, a, b, c

IF a+b<=c OR b+c<=a OR a+c<=b THEN

PRINT ”Введенные числа не могут быть сторонами треугольника”

ELSEIF a=b AND a=c THEN

PRINT ”треугольник – равносторонний”

ELSEIF a=b OR a=c OR b=c THEN

PRINT ”треугольник – равнобедренный”

ELSE

PRINT ”треугольник – разносторонний”

END IF

END

Программа на Паскале:

PROGRAM Pr2;

VAR a, b, c: REAL;

BEGIN

WRITE (’Введите три положительных числа: ’);

READ (a, b, c);

IF (a+b<=c) OR (b+c<=a) OR (a+c<=b) THEN

WRITELN (’Введенные числа не могут быть сторонами треугольника’)

ELSE

BEGIN

IF (a=b) AND (a=c) THEN

WRITELN (’треугольник – равносторонний’)

ELSE

BEGIN

IF (a=b) OR (a=c) OR (b=c) THEN

WRITELN (’треугольник – равнобедренный’)

ELSE

WRITELN (’треугольник – разносторонний’)

END

END

END.

Циклические алгоритмы

Задание 1. Работа с одномерными массивами (простые циклы).

Определить сумму и количество элементов массива а(15), значения которых больше 10.

Блок-схема алгоритма:

Программа на Бейсике:

DIM a(15) AS SINGLE

s AS SINGLE

k, i AS INTEGER

FOR i=1 TO 15

INPUT a( i )

NEXT i

s=0: k=0

FOR i=1 TO 15

IF a( i ) > 10 THEN s=s+a( i ): k=k+1

NEXT i

PRINT ”сумма = ”; s; ”, кол-во = ”; k

END

Программа на Паскале:

PROGRAM PR2_1;

VAR a: ARRAY [1..15] OF REAL;

s: REAL;

k, i: INTEGER;

BEGIN

FOR i: =1 TO 15 DO

READLN (a[ i ] );

s : = 0; k: = 0;

FOR i: =1 TO 15 DO

IF a[ i ] > 10 THEN

BEGIN

s=s+a( i );

k=k+1

END;

WRITELN ( ’ сумма = ’, s:10:2, ’ кол-во = ’, k)

END.

Задание 2. Работа с двумерными массивами (сложные циклы)

Определить и вывести для каждой строки двумерного массива с(10,12) количество элементов, значения которых больше 10, но меньше 20.

Блок-схема алгоритма:

Программа на Бейсике:

DIM c(1 TO 10, 1 TO 12)

DIM i, j, k AS INTEGER

RANDOMIZE TIMER

FOR i=1 TO 10

FOR j=1 TO 12

c(i , j)=INT(RND*21)

NEXT j

NEXT i

FOR i=1 TO 10

k = 0

FOR j=1 TO 12

IF c(i , j)>10 AND c(i , j)<20 THEN k= k+1

NEXT j

PRINT i; ”строка - ”; k ; ”элементов”

NEXT i

END

Программа на Паскале:

PROGRAM PR5_2;

VAR c: ARRAY [1..10, 1..12] OF REAL;

i, j, k: INTEGER;

BEGIN

RANDOMIZE;

FOR i: =1 TO 10 DO

FOR j: =1 TO 12 DO

c[i , j]: =RANDOM(20);

FOR i: =1 TO 10 DO

BEGIN

k : = 0;

FOR j: =1 TO 12 DO

IF (c[i , j]>10) AND (c[i , j]<20) THEN k : = k+1;

WRITELN (i,’ строка - ’, k, ’ элементов’)

END

END.