
- •ИнформатикА и программированИе Методические указания по выполнению индивидуального домашнего задания
- •Новосибирск 2010
- •Содержание
- •Введение
- •Методические рекомендации Выбор варианта индивидуального задания
- •Содержательная часть индивидуального задания
- •Требования к оформлению и порядок защиты индивидуального задания
- •Контрольный пример
- •Разветвляющиеся алгоритмы
- •Циклические алгоритмы
- •Блок-схема алгоритма:
- •Варианты индивидуального задания
- •Раздел 1. Линейные алгоритмы
- •Раздел 2. Разветвляющиеся алгоритмы
- •Рассчитать размер премии, если известен оклад, план и фактическое выполнение плана.
- •Рекомендуемая литература
- •Индивидуальное домашнее задание
- •Новосибирск 2010
- •Методические указания по выполнению индивидуальной расчетной работы
Контрольный пример
Линейные алгоритмы
Задание 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.